当前位置:首页 > 系统教程 > 正文

Ubuntu 22.04搭建PX4无人机仿真环境(基于ROS2 Humble和MicroXRCE-DDS Agent的详细教程)

Ubuntu 22.04搭建PX4无人机仿真环境(基于ROS2 Humble和MicroXRCE-DDS Agent的详细教程)

欢迎来到PX4仿真环境搭建系列第5篇!本文将手把手教你如何在Ubuntu 22.04 ROS2 Humble系统上搭建完整的无人机仿真平台,并使用MicroXRCE-DDS Agent实现ROS2与PX4的通信。无论你是初学者还是有一定经验的开发者,都能通过本教程快速拥有自己的无人机仿真搭建环境。

Ubuntu 22.04搭建PX4无人机仿真环境(基于ROS2 Humble和MicroXRCE-DDS Agent的详细教程) PX4仿真环境 22.04 ROS2 Humble MicroXRCE-DDS Agent 无人机仿真搭建 第1张

1. 准备工作:系统与依赖

首先确保你的系统是Ubuntu 22.04,并已更新软件包:

sudo apt update && sudo apt upgrade -y

安装必要的编译工具和依赖:

sudo apt install -y git zip cmake build-essential genromfs ninja-build exiftoolsudo apt install -y python3-pip python3-venv python3-jinja2pip3 install --user kconfiglib

2. 安装ROS2 Humble

如果你的系统中还没有ROS2 Humble,请按照以下步骤安装(已安装可跳过):

sudo apt install software-properties-commonsudo add-apt-repository universesudo apt update && sudo apt install curl -ysudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/nullsudo apt updatesudo apt install ros-humble-desktop python3-argcompletesudo apt install ros-dev-tools

设置环境变量:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrcsource ~/.bashrc

3. 安装MicroXRCE-DDS Agent

MicroXRCE-DDS Agent是ROS2与PX4之间通信的桥梁。我们从源码编译安装:

cd ~git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.gitcd Micro-XRCE-DDS-Agentmkdir build && cd buildcmake ..make -j$(nproc)sudo make installsudo ldconfig /usr/local/lib/

安装完成后,你可以通过以下命令启动Agent(默认端口为8888):

MicroXRCEAgent udp4 -p 8888

稍后在仿真中需要保持Agent运行。

4. 下载并编译PX4源码

创建PX4工作空间并克隆代码:

cd ~mkdir -p ~/PX4_Autopilotcd PX4_Autopilotgit clone https://github.com/PX4/PX4-Autopilot.git --recursive

运行自动化安装脚本(会安装额外依赖,如QGroundControl、Java等):

cd PX4-Autopilotbash ./Tools/setup/ubuntu.sh

脚本执行完毕后,编译PX4固件:

make px4_sitl

首次编译可能需要较长时间,请耐心等待。编译成功后会启动一个终端窗口运行仿真,但此时还未与ROS2连接。

5. 配置ROS2与PX4的桥接

为了让PX4仿真环境与ROS2通信,我们需要使用MicroXRCE-DDS Agent,并在PX4中启用相应的客户端。首先打开一个新的终端,启动Agent:

MicroXRCEAgent udp4 -p 8888

在另一个终端启动PX4仿真(SITL):

cd ~/PX4_Autopilot/PX4-Autopilotmake px4_sitl jmavsim

此时仿真界面打开,但还需要在PX4控制台(运行make的终端)中启动MicroXRCE客户端。输入以下命令:

microdds_client start -t udp -h 127.0.0.1 -p 8888

如果看到“Client connected”信息,说明桥接成功!

6. 验证ROS2与PX4的通信

打开一个新终端,source ROS2环境:

source /opt/ros/humble/setup.bash

查看当前ROS2话题列表:

ros2 topic list

你应该能看到类似 /fmu/in//fmu/out/ 的话题,证明数据正在通过MicroXRCE-DDS Agent传输。至此,你的无人机仿真搭建已完成!

7. 常见问题与排错

  • Agent启动失败:检查端口是否被占用,可使用 sudo lsof -i:8888 查看。
  • PX4编译错误:确保所有依赖安装完整,可尝试 make distclean 后重新编译。
  • 看不到ROS2话题:确认Agent和客户端都已启动,且PX4控制台中显示连接成功。

恭喜!你已经成功在Ubuntu 22.04 ROS2 Humble上搭建了完整的PX4仿真环境,并通过MicroXRCE-DDS Agent实现了与ROS2的通信。现在可以开始编写你的无人机应用了!