Ubuntu22.04配置ROS2+PX4仿真环境

Ubuntu22.04配置ROS2+PX4仿真环境


主要参考源:

https://blog.****.net/weixin_44174421/article/details/135827130

https://blog.****.net/Zecet/article/details/130474620

一、准备工作

  1. 确保网络能够连接到github,出错主要源自于此;
  2. 确保EmPy库的版本是3.3.4,否则会在colcon build的时候出错。现在安装ubuntu22.04更新后的EmPy版本为4.0,因而需要退回到3.3.4版本。在Ubuntu下,多种开源软件联合工作,各种版本不匹配而导致问题是非常常见的。
    1. Empy库是一个强大、稳健且成熟的模板系统,用于在模板文本中插入Python代码;
    2. 版本回退命令如下(先卸载再安装)
    pip3 uninstall empy
    pip3 install empy==3.3.4
    
  3. 安装git工具
    sudo apt update
    sudo apt upgrade
    sudo apt install git
    #查看git版本
    git --version
    

二、安装ROS2

推荐使用鱼香ROS安装。

wget http://fishros.com/install -O fishros & . fishros

三、安装ROS2相关依赖

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
pip3 install --user empy==3.3.4 pyros-genmsg setuptools
#安装colcon最容易出错,可以多参考博客
sudo apt install python3-colcon-common-extensions
sudo apt install ros-humble-desktop python3-argcomplete
sudo apt install ros-dev-tools

四、安装PX4固件

#下载源码 --recursive会递归下载二级及以下文件
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

# 进入PX4-Autopilot文件夹,确认源码是否下载完毕,如果因网络等未下载完全,则需要进一步下载更新
cd PX4-Autopilot
git submodule update --init --recursive

# 源码下载完毕后,执行下面操作
bash ./Tools/setup/ubuntu.sh

#显示 relogin or reboot when you attempting to install Nuttx
#即说明上一步成功

make px4_sitl gz_x500
#成功后将会显示Gazebo界面,并且里面有一架飞机

五、安装XRCE-DDS代理

XRCE-DDS是ROS2与PX4之间通信的桥梁。

#下载源码
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
#进入文件夹
cd Micro-XRCE-DDS-Agent
#新建文件夹build
mkdir build
#进入build文件夹
cd build
#执行cmake
cmake ..
#执行make
make
#安装?
sudo make install
#????
sudo ldconfig /usr/local/lib/
#安装完成后,启动代理,端口号为8888
MicroXRCEAgent udp4 -p 8888

六、创建ROS2工作空间并生成代码样例

此后的工作主要在此空间内进行

#创建工作空间路径
mkdir -p ~/ws_ros2/src/
#进入src文件夹,将下面的源码下载至src
cd ~/ws_ros2/src/
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git

#返回至工作空间根目录下进行编译
cd ..
#执行colcon编译
colcon build
#成功后,以上步骤在此后的工作中不需要再重复

source install/local_setup.bash
#执行代码样例
ros2 run px4_ros_com offboard_control

七、安装Mavros2

到第六部分为止,ROS2与PX4已经可以通过MicroXRCE通信并进行仿真,但在无人机中更常用的还是Mavros,因此还要安装Mavros2

mkdir -p ~/mavros2_ws/src
cd ~/mavros2_ws
rosinstall_generator --format repos mavlink | tee /tmp/mavlink.repos
rosinstall_generator --format repos --upstream mavros | tee -a /tmp/mavros.repos
vcs import src < /tmp/mavlink.repos
vcs import src < /tmp/mavros.repos
rosdep install --from-paths src --ignore-src -y
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
#注意:下面一行的路径与catkin build得到的不同
echo "source ~/mavros2_ws/install/setup.bash" >> ~/.bashrc

八、问题汇总

  1. Gazebo-GL问题
    a. 错误信息: OpenGL 3.3 is not supported. Please update your graphics card drivers. 在这里插入图片描述

    b. 解决方法:

    export MESA_GL_VERSION_OVERRIDE=3.3
    
  2. Gazebo闪退
    a. 错误信息: 按上述步骤操作之后,将不再提示错误信息,但Gazebo还是会闪退
    b. 解决方法:

    #在PX4-Autopilot文件夹下搜索px4-rc.simulator文件,应该有两个。
    #在文件内添加一句,如下所示
    --render-engine ogre
    
    

在这里插入图片描述

上一篇:AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路


下一篇:深度学习500问——Chapter07:生成对抗网络(GAN)(2)