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

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


主要参考源:

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

https://blog.csdn.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. 版本回退命令如下(先卸载再安装)
    python 复制代码
    pip3 uninstall empy
    pip3 install empy==3.3.4
  3. 安装git工具

    python 复制代码
    sudo apt update
    sudo apt upgrade
    sudo apt install git
    #查看git版本
    git --version

二、安装ROS2

推荐使用鱼香ROS安装。

python 复制代码
wget http://fishros.com/install -O fishros & . fishros

三、安装ROS2相关依赖

python 复制代码
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固件

python 复制代码
#下载源码 --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之间通信的桥梁。

python 复制代码
#下载源码
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工作空间并生成代码样例

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

python 复制代码
#创建工作空间路径
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

python 复制代码
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. 解决方法:

    python 复制代码
    export MESA_GL_VERSION_OVERRIDE=3.3
  2. Gazebo闪退

    a. 错误信息: 按上述步骤操作之后,将不再提示错误信息,但Gazebo还是会闪退

    b. 解决方法:

    python 复制代码
    #在PX4-Autopilot文件夹下搜索px4-rc.simulator文件,应该有两个。
    #在文件内添加一句,如下所示
    --render-engine ogre
相关推荐
拾贰_C9 小时前
【OpenClaw | openai | QQ】 配置QQ qot机器人
运维·人工智能·ubuntu·面试·prompt
郝亚军10 小时前
ubuntu 22.04如何安装libmodbus
运维·服务器·ubuntu
绍磊leo11 小时前
ROS2 交互式调试工具:告别繁琐的命令行操作
ros
乌恩大侠11 小时前
【AI-RAN】在空ubuntu服务器安装环境和生成TV,高达430G文件
服务器·人工智能·ubuntu·fpga开发·o-ru
Hello.Reader11 小时前
Ubuntu 上正确安装 Kali 虚拟机、Docker 与 kail 工具指南
linux·ubuntu·docker
一袋米扛几楼9812 小时前
【报错问题】解决 Vercel 部署报错:Express 类型失效与 TypeScript 2349/2339/2769 错误排查
ubuntu·typescript·express
kobesdu12 小时前
连接大模型与物理机器人-RoboNeuron让机器人真正“听懂人话”
机器人·开源·ros·人形机器人
MIXLLRED13 小时前
Ubuntu22.04 + ROS2 Humble + RealSense D435i 部署VINS-Fusion视觉惯性SLAM
ubuntu·slam·d435i·ros2·humble·vins
Gary Studio14 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu
拾贰_C15 小时前
【node.js | Ubuntu | update】如何升级旧的nodejs本版至最新;如何升级npm
ubuntu·npm·node.js