跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

Ubuntu20.04 下 PX4+Gazebo+Mid360+Tare Planner 环境搭建

Ubuntu20.04 系统环境下 PX4 源码编译与 SITL 仿真配置,集成 Livox Mid360 激光雷达及 IMU 模型至 Gazebo。完成 Fast-LIO 建图包编译与 ROS Noetic 环境部署,实现 Tare Planner 功能。包含 QGroundControl 地面站安装连接及常见问题排查指南,解决 empy 版本冲突、传感器挂载及进程清理等关键步骤。

开源信徒发布于 2026/3/16更新于 2026/10/17102 浏览
Ubuntu20.04 下 PX4+Gazebo+Mid360+Tare Planner 环境搭建

一、基础环境:PX4 源码编译与环境配置

1.1 源码下载与分支切换

首先搞定 PX4 核心源码,建议选择 V1.13 版本(稳定性高,适配性好):

# 创建 PX4 专属目录,克隆源码(--recursive 拉取子模块)
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
cd PX4-Autopilot
# 切换到 V1.13 分支并更新子模块
git checkout -b V1.13
git submodule update --init --recursive
1.2 依赖安装与系统配置

运行 PX4 官方脚本完成环境初始化,过程中所有弹窗提示直接确认即可:

bash ./Tools/setup/ubuntu.sh
# 可选:跳过 nuttx/仿真工具(按需选择)
# bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

安装完成后必须重启系统,让依赖生效。

1.3 编译避坑:Python 版本冲突

重启后编译 PX4 SITL+Gazebo,大概率会遇到 empy 包版本问题,按以下步骤解决:

# 卸载冲突包
pip3 uninstall -y empy em cheetah3 Cheetah
# 安装兼容版本(3.3.4 亲测可用)
pip3 install empy==3.3.4
# 验证安装结果
pip3 show empy
# 清理旧构建缓存(关键!避免编译残留)
cd ~/PX4-Autopilot
make clean
rm -rf build/px4_sitl_default
# 重新编译核心指令
make px4_sitl_default gazebo

二、硬件集成:Mid360 激光雷达 + IMU 配置

2.1 模型文件放置

将 Mid360 和 IMU 的仿真模型文件,放到 PX4 的 Gazebo 模型目录:

PX4-Autopilot/Tools/sitl_gazebo/models/

目录结构参考:

  • models/imu:IMU 仿真模型
  • models/mid360:Livox Mid360 激光雷达仿真模型
2.2 SDF 文件修改:挂载传感器到 r1_rover

编辑 PX4-Autopilot/Tools/sitl_gazebo/models/r1_rover/r1_rover.sdf,在 base_link 下添加 IMU 和 Mid360 的挂载配置:

<!-- IMU 挂载(200Hz 频率) -->
<INCLUDE>
  model://imu
  0 0.06 0 0 0 0


  imu::link
  r1_rover::base_link
  
    0 0 1
    
      0
      0
    
  



  model://mid360
  0 0 0 0 30 0


  mid360::link
  r1_rover::base_link
  
    0 0 1
    
      0
      0
    
  



  
  rover/imu_link

<URI>
</URI>
<POSE>
</POSE>
</INCLUDE>
<JOINT name="imu_joint" type="fixed">
<CHILD>
</CHILD>
<PARENT>
</PARENT>
<AXIS>
<XYZ>
</XYZ>
<LIMIT>
<UPPER>
</UPPER>
<LOWER>
</LOWER>
</LIMIT>
</AXIS>
</JOINT>
<!-- Mid360 激光雷达挂载(10Hz 频率) -->
<INCLUDE>
<URI>
</URI>
<POSE>
</POSE>
</INCLUDE>
<JOINT name="mid360_joint" type="fixed">
<CHILD>
</CHILD>
<PARENT>
</PARENT>
<AXIS>
<XYZ>
</XYZ>
<LIMIT>
<UPPER>
</UPPER>
<LOWER>
</LOWER>
</LIMIT>
</AXIS>
</JOINT>
<!-- 加载 IMU 仿真插件 -->
<PLUGIN name="gazebo_imu_plugin" filename="libgazebo_imu_plugin.so">
<robotNamespace>
</robotNamespace>
<linkName>
</linkName>
</PLUGIN>
2.3 Launch 文件适配:指定仿真环境

修改 PX4-Autopilot/launch/mavros_posix_sitl.launch,配置室内仿真世界和车辆模型:

<!-- 核心参数修改 -->
<arg name="vehicle" default="r1_rover"/>
<arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/indoor.world"/>
<arg name="sdf" default="$(find mavlink_sitl_gazebo)/models/$(arg vehicle)/$(arg vehicle).sdf"/>
<!-- MAVROS 通信配置 -->
<arg name="fcu_url" default="udp://:14540@localhost:14557"/>

三、依赖编译:Livox 仿真与 Fast-LIO

完成传感器配置后,编译激光雷达仿真和 SLAM 相关包(基于 px4_ws 工作空间):

cd ~/px4_ws
# 编译 Livox 激光雷达仿真包
catkin build livox_laser_simulation
# 编译 Fast-LIO(激光 SLAM 核心)
catkin build fast_lio

四、一键运行:PX4+Gazebo+Fast-LIO

4.1 启动 PX4 Gazebo 仿真
cd ~/px4_ws
source devel/setup.bash
cd src/PX4/PX4-Autopilot
# 配置 Gazebo 环境变量
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo
# 启动核心仿真
roslaunch px4 mavros_posix_sitl.launch

此时会弹出 Gazebo 界面,能看到 R1_ROVER 搭载 IMU 和 Mid360 的模型,传感器链路正常。

4.2 启动 Fast-LIO 建图

新开终端,执行:

cd ~/px4_ws
source devel/setup.bash
roslaunch fast_lio mapping_mid360.launch

打开 RVIZ,订阅 /cloud_registered 话题,就能看到 Mid360 实时建图结果。

4.3 快速终止仿真(避坑小技巧)

如果 Gazebo 卡死 / 退出不彻底,用以下指令强制清理进程:

killall gzclient
killall gzserver

五、地面站配置:QGroundControl 安装

5.1 依赖预处理

Ubuntu 下安装 QGC 前,先解决串口和视频流依赖:

# 添加串口权限
sudo usermod -a -G dialout $USER
# 卸载冲突的 modemmanager
sudo apt-get remove modemmanager -y
# 安装视频流依赖
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libqt5gui5 libfuse2 -y

执行完后注销并重新登录,让权限生效。

5.2 安装与运行
# 下载最新版 QGC AppImage
wget https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage
# 添加执行权限
chmod +x ./QGroundControl.AppImage
# 运行 QGC
./QGroundControl.AppImage

首次运行会引导配置单位(建议选公制)、飞行器类型(PX4 Pro),完成后即可连接 PX4 SITL,实时监控车辆状态。

六、Tare Planner 部署:ROS Noetic 环境搭建

Tare Planner 依赖 ROS Noetic,Ubuntu20.04 下一键安装:

# 1. 添加 ROS 软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 2. 添加验证密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# 3. 更新软件源
sudo apt update
# 4. 安装 Noetic 完整版(包含所有核心包)
sudo apt install ros-noetic-desktop-full
# 5. 初始化 rosdep(解决依赖必备)
sudo rosdep init
rosdep update
# 若 rosdep init 报错(网络问题),替换为:
# sudo apt install python3-rosdep2
# sudo rosdep2 init
# rosdep2 update
# 6. 永久激活 ROS 环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

安装完成后,即可基于 Noetic 环境编译和运行 Tare Planner 相关功能包。

七、常见问题排查

  1. 编译报错'empy not found':确认 pip3 安装的 empy 版本为 3.3.4,且清理了 PX4 旧构建缓存;
  2. Gazebo 无 Mid360 模型:检查模型文件路径是否正确,SDF 文件中 URI 是否为 model://mid360;
  3. QGC 无法连接 PX4:确认 MAVROS 的 fcu_url 端口配置正确,PX4 SITL 是否正常启动;
  4. Fast-LIO 无点云:检查 Mid360 仿真插件是否加载,ROS 话题 /livox/lidar 是否有数据。

总结

这套流程覆盖了 PX4 仿真环境搭建、Mid360/IMU 硬件集成、Fast-LIO 建图和 QGroundControl 地面站配置,核心是解决编译依赖、模型挂载和环境变量这三个关键点。

参考文档:

  • PX4 官方文档:https://docs.px4.io/v1.13/zh/dev_setup/dev_env_linux_ubuntu.html
  • PX4 ROS 接口:https://docs.px4.io/v1.13/en/simulation/ros_interface.html
  • QGroundControl 安装:https://docs.qgroundcontrol.com/Stable_V4.3/zh/qgc-user-guide/getting_started/download_and_install.html

目录

  1. 一、基础环境:PX4 源码编译与环境配置
  2. 1.1 源码下载与分支切换
  3. 创建 PX4 专属目录,克隆源码(--recursive 拉取子模块)
  4. 切换到 V1.13 分支并更新子模块
  5. 1.2 依赖安装与系统配置
  6. 可选:跳过 nuttx/仿真工具(按需选择)
  7. bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools
  8. 1.3 编译避坑:Python 版本冲突
  9. 卸载冲突包
  10. 安装兼容版本(3.3.4 亲测可用)
  11. 验证安装结果
  12. 清理旧构建缓存(关键!避免编译残留)
  13. 重新编译核心指令
  14. 二、硬件集成:Mid360 激光雷达 + IMU 配置
  15. 2.1 模型文件放置
  16. 2.2 SDF 文件修改:挂载传感器到 r1_rover
  17. 2.3 Launch 文件适配:指定仿真环境
  18. 三、依赖编译:Livox 仿真与 Fast-LIO
  19. 编译 Livox 激光雷达仿真包
  20. 编译 Fast-LIO(激光 SLAM 核心)
  21. 四、一键运行:PX4+Gazebo+Fast-LIO
  22. 4.1 启动 PX4 Gazebo 仿真
  23. 配置 Gazebo 环境变量
  24. 启动核心仿真
  25. 4.2 启动 Fast-LIO 建图
  26. 4.3 快速终止仿真(避坑小技巧)
  27. 五、地面站配置:QGroundControl 安装
  28. 5.1 依赖预处理
  29. 添加串口权限
  30. 卸载冲突的 modemmanager
  31. 安装视频流依赖
  32. 5.2 安装与运行
  33. 下载最新版 QGC AppImage
  34. 添加执行权限
  35. 运行 QGC
  36. 六、Tare Planner 部署:ROS Noetic 环境搭建
  37. 1. 添加 ROS 软件源
  38. 2. 添加验证密钥
  39. 3. 更新软件源
  40. 4. 安装 Noetic 完整版(包含所有核心包)
  41. 5. 初始化 rosdep(解决依赖必备)
  42. 若 rosdep init 报错(网络问题),替换为:
  43. sudo apt install python3-rosdep2
  44. sudo rosdep2 init
  45. rosdep2 update
  46. 6. 永久激活 ROS 环境
  47. 七、常见问题排查
  48. 总结

更多推荐文章

查看全部
  • FPGA PCIe XDMA Link Up 失败排查:基于 LTSSM 状态机定位问题
  • 基于 FPGA 的以太网 UDP 通信实现与实战
  • Python 编程语言现状与核心应用领域解析
  • LLM 项目实战:使用 LLaMA-Factory 进行 DPO 训练
  • C++ 异常详解:抛出、捕获与异常安全
  • FPGA AD7606 串行与并行驱动实现
  • VS Code Python 调试配置与技巧
  • FPGA AD7606 串行与并行驱动实现
  • Xilinx Vivado 2020 版本安装流程及常见问题解析
  • Azure Bot Service 调用 LLM 实现问答功能
  • Ubuntu 24.04 更换阿里云镜像源指南
  • Xilinx Vivado 2020.1 安装流程与常见问题解析
  • AI 安全攻防:从深度伪造到深度信任的技术演进
  • Linux 进程池原理与 C++ 实现详解
  • Linux 基础 IO:深入理解文件描述符机制
  • Formality 原语(primitive)概念解析
  • AI 原生应用开发:Llama 模型的高级用法
  • Formality 原语(primitive)概念详解
  • 基于 Python 大数据的协同过滤音乐推荐系统
  • Trae IDE 安装与使用指南:字节跳动 AI 原生开发工具

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online