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 , 输入
1
wsl --set-default-version 2
查看可用ubuntu版本
1
wsl --list --online
安装
1
wsl --install -d Ubuntu-20.04
安装结束后设置你的Ubuntu用户名和密码, 即可关闭这个界面.
安装Docker Desktop
-
官网下载, 然后双击运行安装即可.
-
设置里勾选 基于WSL 2的引擎
-
在PowerShell中输入
1
wsl -l -v
可以发现docker已经在运行
安装PX4仿真镜像
-
打开Docker Desktop, 并搜索
px4-gazebo-headless
, 点击Pull拉取镜像. -
拉取成功后, 即可打开Ubuntu20.04, 运行
1
docker run --rm -it jonasvautherin/px4-gazebo-headless:latest -v plane
该命令为在Broadcast模式下运行sitl仿真, 并使用固定翼模型. 在此配置中, 容器将 MAVLink 发送到端口 14550(对于 QGC)和 14540(例如 MAVSDK)上的主机.
看到如下画面, 即代表px4 SITL仿真已成功启动
打开QGC, 飞机即可自动连接
终端输入
1
shutdown
即可结束仿真
自行搭建(一般推荐)
优点: 性能较好, gazebo模拟器有图形化界面(无关紧要), 可以增加Linux基础, 不用docker可以享受自己配环境的乐趣
缺点: 费时费力, 有docker为什么还要自己配环境()
此教程基于ubuntu20.04 (我的环境), 如果你是ubuntu18.04也可以参考这里. 或者你想跟着PX4官方文档搭建环境
搭建环境时建议使用一个好用的梯子(既然你能看到这个文章说明这应该不是问题)
ROS安装
-
首先安装ROS, 推荐使用FishRos
1
wget http://fishros.com/install -O fishros && . fishros
分别选择1, 3, 4 (配置环境需要用到的)
PX4安装
-
安装依赖
1
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-pip
1
pip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml
1
pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse
-
创建工作空间
1
2
3
4sudo 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
1
2
3
4sudo 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
推荐官方脚本
1
cd ~/catkin_ws
1
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
1
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
然后重启电脑
-
环境配置
打开一个终端, 输入
1
sudo gedit ~/.bashrc
将下面代码粘贴到里面
1
2
3
4source ~/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保存退出后输入
1
source ~/.bashrc
-
启动仿真
新打开一个终端, 前往~/catkin_ws/PX4-Autopilot目录下
1
cd ~/catkin_ws/PX4-Autopilot
启动px4 sitl仿真, 机型为固定翼(plane)
1
make px4_sitl gazebo_plane
当gazebo模拟器成功启动, 画面中出现小飞机, 终端出现类似这样的信息时
说明仿真启动成功, 此时控制台输入
1
shutdown
即可退出仿真