环境搭建
前置环境
- ROS2 humble
- Gazebo Classic (11)
1. 下载 PX4 源码
在你的 Home 目录下,用 Git 克隆 PX4 的代码仓库,并更新所有子模块。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
**注意:**由于这个源码中包含许多子模块,因此不建议到 GitHub 主页下载 zip 再解压,这样做会缺失许多子模块。使用大陆的网络克隆起来会十分慢,因此建议开启网络加速。
2. 运行自动安装脚本
PX4 提供了自动化脚本,可以帮你安装编译仿真环境所需的所有依赖。
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh
如果只用到仿真,并没有与硬件交互,可以在运行自动安装脚本的时候选择不安装固件/编译环境,以节省时间。
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh --no-nuttx
3. 编译并运行示例
在 PX4-Autopilot 目录下执行:
make px4_sitl gazebo-classic_iris
注意:第一次编译会有点慢,这是正常情况,请耐心等待。成功启动后,Gazebo 将显示无人机模型。
4. 安装并配置 QGC(地面站)
QGroundControl (QGC) 是用于地面监控和操控飞机的软件。安装前,需要先给 Ubuntu 系统做一点小配置,确保它能正常和'飞机'通信。
# 将你的用户添加到 dialout 组,以便访问 USB 设备
sudo usermod -aG dialout "$(id -un)"
# 移除 ModemManager,它会干扰串口通信
sudo apt-get remove modemmanager -y
# 安装 GStreamer 相关库,用于支持视频流
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libfuse2 -y
sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y
在官网找到 Linux 版本下载并将文件移到主目录下。
# 赋予 AppImage 文件执行权限
chmod +x ./QGroundControl-x86_64.AppImage
5. 安装 Micro-XRCE-DDS-Agent(ROS2 与 PX4 通信桥梁)
# 安装依赖
sudo apt install -y ros-humble-ros-base ros-humble-geometry-msgs ros-humble-sensor-msgs
~
git https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
Micro-XRCE-DDS-Agent
build && build
cmake ..
make
make install
ldconfig /usr/local/lib/

