PX4仿真环境的搭建
通过 Docker 与原生 Linux 两种路径,梳理 PX4 仿真环境的搭建流程与注意事项。
通过Docker搭建(比较推荐)
优点: 搭建方便, 可以轻松地在windows系统上运行, 开发与调试可以同平台进行
缺点: 性能损耗大(需要较高性能), gazebo模拟器没有图形化界面(其实无关紧要)
该教程适用于win11 (我自己的环境), win10自行探索
安装Docker Desktop for Windows
准备工作
- 控制面板-程序和功能-启用或关闭Windows功能-勾选【适用于 Linux 的 Windows 子系统】和【虚拟机平台】这两项-立即重新启动;
安装WSL 2和Ubuntu20.04
-
点击这里前往微软官方文档Step 4, 下载WSL2 Linux kernel update package for x64 machines内核升级包并安装.
-
设置WSL版本为WSL 2. 打开 PowerShell , 输入
wsl --set-default-version 2查看可用ubuntu版本
wsl --list --online安装
wsl --install -d Ubuntu-20.04安装结束后设置你的Ubuntu用户名和密码, 即可关闭这个界面.
安装Docker Desktop
-
官网下载, 然后双击运行安装即可.
-
设置里勾选 基于WSL 2的引擎

-
在PowerShell中输入
wsl -l -v可以发现docker已经在运行

安装PX4仿真镜像
-
打开Docker Desktop, 并搜索
px4-gazebo-headless, 点击Pull拉取镜像.
-
拉取成功后, 即可打开Ubuntu20.04, 运行
docker run --rm -it jonasvautherin/px4-gazebo-headless:latest -v plane该命令为在Broadcast模式下运行sitl仿真, 并使用固定翼模型. 在此配置中, 容器将 MAVLink 发送到端口 14550(对于 QGC)和 14540(例如 MAVSDK)上的主机.
看到如下画面, 即代表px4 SITL仿真已成功启动


打开QGC, 飞机即可自动连接

终端输入
shutdown即可结束仿真

自行搭建(一般推荐)
优点: 性能较好, gazebo模拟器有图形化界面(无关紧要), 可以增加Linux基础, 不用docker可以享受自己配环境的乐趣
缺点: 费时费力, 有docker为什么还要自己配环境()
此教程基于ubuntu20.04 (我的环境), 如果你是ubuntu18.04也可以参考这里. 或者你想跟着PX4官方文档搭建环境
搭建环境时建议使用一个好用的梯子(既然你能看到这个文章说明这应该不是问题)
ROS安装
-
首先安装ROS, 推荐使用FishRos
wget http://fishros.com/install -O fishros && . fishros分别选择1, 3, 4 (配置环境需要用到的)

PX4安装
-
安装依赖
sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pippip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyamlpip3 install packaging numpy empy toml pyyaml jinja2 pyargparse -
创建工作空间
sudo apt-get install python-catkin-tools mkdir -p ~/catkin_ws/src mkdir -p ~/catkin_ws/scripts cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace -
安装MAVROS
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras 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 #这步需要装一段时间,请耐心等待PX4配置 -
安装PX4
推荐官方脚本
cd ~/catkin_wsgit clone https://github.com/PX4/PX4-Autopilot.git --recursivebash ./PX4-Autopilot/Tools/setup/ubuntu.sh然后重启电脑
-
环境配置
打开一个终端, 输入
sudo gedit ~/.bashrc将下面代码粘贴到里面
source ~/catkin_ws/devel/setup.bash source ~/catkin_ws/PX4-Autopilot/Tools/simulation/gazebo/setup_gazebo.bash ~/catkin_ws/PX4-Autopilot/ ~/catkin_ws/PX4-Autopilot/build/px4_sitl_default export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/PX4-Autopilot export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/PX4-Autopilot/Tools/simulation/gazebo/sitl_gazebo保存退出后输入
source ~/.bashrc -
启动仿真
新打开一个终端, 前往~/catkin_ws/PX4-Autopilot目录下
cd ~/catkin_ws/PX4-Autopilot启动px4 sitl仿真, 机型为固定翼(plane)
make px4_sitl gazebo_plane
当gazebo模拟器成功启动, 画面中出现小飞机, 终端出现类似这样的信息时


说明仿真启动成功, 此时控制台输入
shutdown即可退出仿真

Newer