[Doc][px4][ros2][gazebo][yolov8]PX4-ROS2-Gazebo-YOLOv8

2024-09-02 22:36
文章标签 yolov8 doc px4 ros2 gazebo

本文主要是介绍[Doc][px4][ros2][gazebo][yolov8]PX4-ROS2-Gazebo-YOLOv8,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GIT地址:Https://github.com/monemati/PX4-ROS2-Gazebo-YOLOv8

apt install python3.8-venv

 Create a virtual environment

# create
python -m venv /home/xg/px4-venv# activate
source /home/xg/px4-venv/bin/activate

Clone repository

git clone https://github.com/monemati/PX4-ROS2-Gazebo-YOLOv8.git

Install PX4

cd /home/xg
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
cd PX4-Autopilot/
make px4_sitl

但是提示make不了。又找了其他的文章,ros2+px4的安装

Https://blog.csdn.net/Zecet/article/details/130474620

一、Install PX4

以下步骤需要科学上网:

  下载PX4源码

git clone https://github.com/PX4/PX4-Autopilot.git --recursive
cd /home/xg/PX4-Autopilot
make px4_stil gazebo-classic

 

    安装配套的工具,这步需要注意,我这里安装了一些没用的更新源,需要先删除这部分更新源

APT的源列表通常存储在/etc/apt/sources.list文件中,或者在/etc/apt/sources.list.d/目录下的多个.list文件中。你可以通过以下命令查看这些源

cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/

 2. 编辑/etc/apt/sources.list文件

首先,检查主/etc/apt/sources.list文件,看看是否有导致403错误的源。

你可以使用你喜欢的文本编辑器来编辑这个文件,比如nano或vim:

sudo vim /etc/apt/sources.list

 在文件中,找到并删除或注释掉(在行前加#)那些导致403 Forbidden的源。例如:

# deb http://example.com/ubuntu focal main restricted

更新APT缓存

 删除或注释掉有问题的源后,运行以下命令来更新APT缓存:

sudo apt-get update

确保更新过程不再出现403 Forbidden的错误。

 保存并退出编辑器

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

 

 

    重启电脑(我通过stop docker再start docker操作来模拟,具体是否有效暂不确定)

二、Setup XRCE-DDS Agent & Client

要让ROS2和PX4通讯,需要在PX4上运行XRCE-DDS的客户端,并在计算机上运行XRCE-DDS的代理

1.Setup the Agent

启动一个终端,输入以下指令

git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/

但是make 时失败,提示cmake版本要4.20以上,当前我的版本是4.16.我尝试直接升级失败,因此选择手动升级

wget https://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4-linux-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-3.21.4-linux-x86_64.sh --skip-license --prefix=/opt/cmake

当时,wget下载很慢,直接到该地址通过浏览器的方式进行下载,再放到环境中

然后更新环境变量:

echo 'export PATH=/opt/cmake/bin:$PATH' >>~/.bashrc
source ~/.bashrc

这样再查看cmake版本:

可以了,这样再执行make操作

cd /home/xg/Mirco-XRCE-DDS-Agent
rm -rf ./build
mkdir build && cd build
cmake ..
make

sudo make install
sudo ldconfig /usr/local/lib/

 

2.启动代理,连接模拟器运行的XRCE-DDS的客户端

MicroXRCEAgent udp4 -p 8888

这样代理就启动了,但是在启动PX4的客户端之前,代理不会接收到任何信息。

Start the Client

PX4的仿真环境会自动启动XRCE-DDS的客户端,并连接到UDP 8888端口。我们打开一个新的终端,启动PX4的仿真:

注意,一定要在px4的目录下,否则会出现错误提示:

cd /home/xg/PX4-Autopilot
make px4_sitl gazebo-classic

三、重新弄下,

1.用了v1.9的image重新展开。重新安装一次

 sudo docker run -itd --privileged -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY     -v /home/xg/dockfile:/root/chans_files -v /dev/dev -v /run/udev:/run/udev --device /dev/video0 --device /dev/video1 --device /dev/media0 -p 6788:22 --gpus=all ros2_orbslam3_usbcam_d435i_mono_ok_20240821:v1.9 /bin/bash
sudo docker exec -it 1526ebadab12 /bin/bash

service ssh restart

2.删除无效的更新源:

  APT的源列表通常存储在/etc/apt/sources.list文件中,或者在/etc/apt/sources.list.d/目录下的多个.list文件中。你可以通过以下命令查看这些源

vim /etc/apt/sources.list

3.开始下载PX4的V1.14.0版本

参考:https://blog.csdn.net/weixin_42037083/article/details/137102858

git clone https://github.com/PX4/PX4-Autopilot.git
cd /home/xg/PX4-Autopilot
git checkout v1.14.0

下一步这个操作会经历180次失败,无所谓,一直尝试,直到完全下载更新完

 git submodule update --init --recursive 

 4.安装必要的组件

bash /home/xg/PX4-Autopilot/Tools/setup/ubuntu.sh

GitHub - theunknowninfinite/Real-Time-UAV-Obstacle-Avoidance-Using-Nonlinear-Programming: Real-time obstacle avoidance utilizing the ModalAI Sentinel Drone with the PX4 flight stack and an Intel Realsense D435i .

 Https://github.com/theunknowninfinite/Real-Time-UAV-Obstacle-Avoidance-Using-Nonlinear-Programming

pip3 uninstall em && pip3 install empy==3.3.4
pip3 install  pyros-genmsg setuptools

5.执行make

cd /home/xg/PX4-Autopilot
make  px4_sitl gazebo-classical

 5.安装XRCE

5.1 先升级cmake到3.21

wget https://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4-linux-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-3.21.4-linux-x86_64.sh --skip-license --prefix=/opt/cmake

 wget下载很慢,直接到该地址通过浏览器的方式进行下载,再放到环境中

然后更新环境变量:

echo 'export PATH=/opt/cmake/bin:$PATH' >>~/.bashrc
source ~/.bashrc

这样再查看cmake版本:

cmake --version

 

5.2 安装

git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/
# mavros
sudo apt install ros-foxy-mavros ros-foxy-mavros-extras
# geographiclib
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #此行代码运行完毕需要一定时间

    mkdir -p ~/ws_sensor_combined/src/cd ~/ws_sensor_combined/src/git clone https://github.com/PX4/px4_msgs.gitgit clone https://github.com/PX4/px4_ros_com.git
cd ~/ws_sensor_combined/src/source /opt/ros/foxy/setup.bash
colcon build

(一)Ubuntu20.04下PX4开发环境搭建(v1.14.0)_ubuntu20.04 px4 ros 编译环境-CSDN博客

四。使用px4_ros2官方镜像

参考链接:Https://blog.csdn.net/lxxwkan/article/details/132044422

还是不行,在windows下安装docker desktop后,通过windows下载px4_ros2镜像,再导出离线文件再导入ubuntu电脑内,再执行

1.解决Docker Engine stopped

Https://blog.csdn.net/cplvfx/article/details/138033592

下载docker desktop后安装,安装完运行软件提示:Docker Engine stoppedwin10系统 Docker 提示Docker Engine stopped

 

一、检查服务是否开启

 找到 【Docker Desktop Service】,启动;

你也可以直接设置为“自动”

找到服务,右键》属性》启动类型:自动》点击“确定”

 

二、检查 Hyper-V是否安装

    windows控制面板》程序和功能》启用或关闭Windows功能》找到Hyper-V》全部勾选后,点击“确定”,等待安装即可

三、检查 bcdedit的hypervisorlaunchtype是否为Auto

    【win菜单】右键》选择 Windows PowerShell(管理员),注意要使用管理员操作

输入

bcdedit

 查看hypervisorlaunchtype的状态

如果不是Auto

则需要输入下面命令,重启电脑即可。

bcdedit /set hypervisorlaunchtype auto

 

 四、检查CPU是否开启虚拟化:

    右键底部菜单》任务管理器》性能》CPU

如何设置:

    重启电脑》进入boss》高级设置》处理器设置》CPU》Intel虚拟机》设置为“开启”》保存后退出,重启

1、重启计算机,并在开机时按下特定的按键,如F2、F10、Delete等,进入BIOS设置界面。

2、在BIOS设置界面中,找到“Advanced”或“高级”选项,然后选择“CPU Configuration”或“CPU 配置”选项。

3、在“CPU Configuration”或“CPU 配置”选项中,找到“SVM Mode”或“SVM 模式”选项,然后将其设置为“Enabled”或“启用”状态。

4、保存并退出BIOS设置界面,重新启动计算机。

这样,就可以开启AMD的CPU虚拟化功能,然后可以使用虚拟化软件或模拟器来运行虚拟的操作系统或应用程序了。

五、检查wsl


5.1.是否开启

    windows控制面板》程序和功能》启用或关闭Windows功能》找到【适用于Linux的Windows子系统】》勾选后,点击“确定”,等待安装即可

 5.2检查更新

    打开Windows PowerShell

    windows命令分为2种,一种是命令提示符(CMD),另一种是PowerShell;怎么打开他们-CSDN博客

输入命令

wsl --update

 

2.下载镜像

经过docker desktop这样可以正常显示后,下载镜像

 

全部完成后,可以看到镜像 。存储路径在这里

 3.加载镜像

将文件放在ubuntu电脑里,执行docker load操作

sudo docker load -i px4-ros2-foxy.tar

4.开启容器

sudo docker run -itd --privileged -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY     -v /home/xg/dockfile:/root/chans_files -v /dev/dev -v /run/udev:/run/udev --device /dev/video0 --device /dev/video1 --device /dev/media0 -p 6788:22 --gpus=all 66165367cbba /bin/bash

sudo docker exec -it 0efc4a3bbe40 /bin/bash

5.下载并安装MicroXRCEAgent

 5.1 先升级cmake到3.21

wget https://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4-linux-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-3.21.4-linux-x86_64.sh --skip-license --prefix=/opt/cmake

 wget下载很慢,直接到该地址通过浏览器的方式进行下载,再放到环境中

然后更新环境变量:

echo 'export PATH=/opt/cmake/bin:$PATH' >>~/.bashrc
source ~/.bashrc

这样再查看cmake版本:

cmake --version

 

5.2 安装

git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/

 5.3  安装px4 的通信

    mkdir -p ~/ws_sensor_combined/src/cd ~/ws_sensor_combined/src/git clone https://github.com/PX4/px4_msgs.gitgit clone https://github.com/PX4/px4_ros_com.git
cd ~/ws_sensor_combined/src/source /opt/ros/foxy/setup.bash
colcon build

6.下载px4

git clone https://github.com/PX4/PX4-Autopilot.git
bash /home/xg/PX4-Autopilot/Tools/setup/ubuntu.sh

 安装过程中会存在失败的情况,反复多次。直到完整

pip3 install symforce -i https://mirrors.aliyun.com/pypi/simple

 
 

 开始执行make

make px4_sitl gazebo-classic

这回终于看到了mavlink的交互了

五。设置x11的界面可以看到UI

安装openssh
#下载openssh
apt-get update
apt-get install openssh-server
# 设置root密码,然后设置两遍相同的密码,之后登陆的时候要用到
passwd
# 修改配置文件
apt-get install vim
vim /etc/ssh/sshd_config
# 注释掉 PermitRootLogin prohibit-password 这一行 添加这一行 PermitRootLogin yes 
# 注释掉 X11UseLocalhost yes这行,添加这一行 X11UseLocalhost no
# 5. 重启ssh服务
service ssh restart
# 或使用
# /etc/init.d/ssh restart

 

在windows电脑下打开moba_xterm

# ssh -p 6788 root@192.168.2.83

 

 在docker容器中配置bashrc
vim ~/.bashrc

添加如下内容,注意这里的192.168.3.3是windows电脑的IP,即运行moba_xterm的电脑IP

export 192.168.3.3:0.0

将更改生效:

source ~/.bashrc

如果无法连接到容器,则在容器内尝试重新启动ssh服务:

service ssh restart

试下是否可用:

xclock

  

如果提示:xclock:command not found

那么在容器内安装x11-apps

apt-get install x11-apps

是可以显示图像了,但是SSH没有成功,不知道为什么

 

7.无人机5米处定点盘旋

好了,下一步准备利用这个环境测试下无人机在5m的高度上定点盘旋

参考:Https://blog.csdn.net/Zecet/article/details/130474620

7.1Build ROS 2 Workspace
 

默认的ROS2工作区建立在home目录下,当然这个可以根据需求更改

打开终端,建立一个新的工作区

mkdir -p /home/user/ws_sensor_combined/src/
cd /home/user/ws_sensor_combined/src/

下载例程和px4_msgs

git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git

    配置ros2 foxy的环境,并用colcon编译工作区

注意:colcon build需要在/home/user/ws_sensor_combined/下

cd ..
source /opt/ros/foxy/setup.bash
colcon build

Running the Example

可以利用以下例程测试是否搭建成功

   在终端输入(在~/ws_sensor_combined/目录下)

source install/local_setup.bash

    启动示例

ros2 launch px4_ros_com sensor_combined_listener.launch.py

只要PX4以及MicroXCREAgent的仿真是启动着的,就可以在终端接收到订阅的传感器信息:

7.2ROS 2 Offboard Control Example

(注意,此时,PX4以及MicroXCREAgent都是打开状态)打开一个新的终端,进入之前创建的ROS2工作区目录下

cd /home/user/ws_offboard_control/
source source /opt/ros/foxy/setup.bash
source install/local_setup.bash
ros2 run px4_ros_com offboard_control

可以看到无人机慢慢起飞了

于2024年9月2日,好了。这回可以跑其他的环境了 ,保存镜像名称为:

ros2_px4_xrce_ok:v1.2,离线文件名称为:ros2_px4_xrce_ok.tar

这篇关于[Doc][px4][ros2][gazebo][yolov8]PX4-ROS2-Gazebo-YOLOv8的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131261

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

YOLOv8改进实战 | 注意力篇 | 引入CVPR2024 PKINet 上下文锚点注意力CAAttention

YOLOv8专栏导航:点击此处跳转 前言 YOLOv8 是由 YOLOv5 的发布者 Ultralytics 发布的最新版本的 YOLO。它可用于对象检测、分割、分类任务以及大型数据集的学习,并且可以在包括 CPU 和 GPU 在内的各种硬件上执行。 YOLOv8 是一种尖端的、最先进的 (SOTA) 模型,它建立在以前成功的 YOLO 版本的基础上,并引入了新的功能和改进,以

gazebo 已加载模型但无法显示

目录 写在前面的话问题一:robot_state_publisher 发布机器人信息失败报错一 Error: Error document empty.报错二 .xcaro 文件中有多行注释成功启动 问题二:通过 ros2 启动 gazebo 失败成功启动 问题三:gazebo 崩溃和无法显示模型问题四: 缺少 robot_description 等话题正确的输出 写在前面的话

【YOLO 系列】基于YOLOV8的智能花卉分类检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 花朵作为自然界中的重要组成部分,不仅在生态学上具有重要意义,也在园艺、农业以及艺术领域中占有一席之地。随着图像识别技术的发展,自动化的花朵分类对于植物研究、生物多样性保护以及园艺爱好者来说变得越发重要。为了提高花朵分类的效率和准确性,我们启动了基于YOLO V8的花朵分类智能识别系统项目。该项目利用深度学习技术,通过分析花朵图像,自动识别并分类不同种类的花朵,为用户提供一个高效的花朵识别

YOLOv8改进 | Conv篇 | YOLOv8引入DWR

1. DWR介绍 1.1  摘要:当前的许多工作直接采用多速率深度扩张卷积从一个输入特征图中同时捕获多尺度上下文信息,从而提高实时语义分割的特征提取效率。 然而,这种设计可能会因为结构和超参数的不合理而导致多尺度上下文信息的访问困难。 为了降低多尺度上下文信息的绘制难度,我们提出了一种高效的多尺度特征提取方法,将原始的单步方法分解为区域残差-语义残差两个步骤。 在该方法中,多速率深度扩张卷积

yolov8 pt转onnx

第一步: 安装onnx pip install --upgrade onnx 第二步: 将以下代码创建、拷贝到yolov8根目录下。具体代码test.py: from ultralytics import YOLO# Load a modelmodel = YOLO('yolov8n.pt') # load an official model# Export the model

目标检测-YOLOv8

YOLOv8 YOLOv8 是 YOLO 系列的最新版本,它在 YOLOv7 的基础上进行了多项改进,主要侧重于进一步提升推理速度、检测精度以及模型的通用性。与之前版本相比,YOLOv8 引入了新的技术和优化策略,使其在多个方面更具优势。 相比 YOLOv7 的改进与优势 更加轻量化的网络架构 YOLOv8 进一步简化了网络结构,引入了新型的 EfficientRep 主干网络,在保证性能

【开发工具】开发过程中,怎么通过Easy JavaDoc快速生成注释。

文章目录 引言什么是Easy JavaDoc?Easy JavaDoc用来干什么?如何使用Easy JavaDoc?安装Easy JavaDoc配置Easy JavaDoc使用Easy JavaDoc生成注释 Easy JavaDoc与IDEA自带注释的区别IDEA自带注释Easy JavaDoc Easy JavaDoc的优缺点优点缺点 步骤 1:打开设置步骤 2:找到Easy JavaD