news 2026/5/5 11:02:35

保姆级教程:在Ubuntu 18.04上从零搭建PX4-Avoidance避障仿真环境(含ROS Melodic和Gazebo)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在Ubuntu 18.04上从零搭建PX4-Avoidance避障仿真环境(含ROS Melodic和Gazebo)

保姆级教程:在Ubuntu 18.04上从零搭建PX4-Avoidance避障仿真环境(含ROS Melodic和Gazebo)

当第一次接触无人机自主避障仿真时,很多人会被复杂的依赖关系和配置步骤劝退。我曾花了整整三天时间解决各种环境报错,从Planner abort: missing required data到Gazebo黑屏问题。这份教程将带你绕过所有坑点,用最可靠的方式在Ubuntu 18.04上搭建完整的PX4-Avoidance仿真环境。

1. 系统准备与环境检查

在开始之前,请确保你的Ubuntu 18.04系统满足以下基础条件:

  • 磁盘空间:至少预留50GB可用空间(Gazebo模型下载会占用大量空间)
  • 内存:推荐8GB以上,4GB内存运行Gazebo可能卡顿
  • 显卡驱动:必须安装专有驱动(NVIDIA用户需通过nvidia-smi验证驱动状态)

小技巧:在终端执行lsb_release -a确认系统版本,输出应包含Ubuntu 18.04。如果使用虚拟机,务必启用3D加速功能。

1.1 配置Ubuntu软件源

首先更新软件源并升级现有包:

sudo apt update && sudo apt upgrade -y sudo apt install -y curl gnupg2 lsb-release

添加ROS官方仓库密钥:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

2. ROS Melodic完整安装

PX4-Avoidance强烈依赖ROS Melodic的特定功能包,建议安装完整桌面版:

sudo apt install -y ros-melodic-desktop-full

初始化rosdep时,国内用户可能会遇到连接问题。这里有个稳定的解决方案:

sudo rosdep init rosdep update --include-eol-distros

将ROS环境变量永久添加到bashrc:

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

关键验证步骤:新建终端执行roscore,如果能看到started core service [/rosout]输出,说明ROS安装成功。

3. PX4开发环境配置

3.1 安装PX4工具链

官方推荐使用脚本自动安装依赖:

wget https://raw.githubusercontent.com/PX4/Firmware/master/Tools/setup/ubuntu.sh sudo bash ubuntu.sh --no-nuttx

常见问题:如果脚本执行失败,可能是网络问题导致。可以尝试分段安装:

sudo apt install -y python-argparse git-core wget zip \ python-empy qtcreator cmake build-essential genromfs

3.2 下载PX4固件

建议使用特定版本以保证兼容性:

cd ~ git clone https://github.com/PX4/Firmware.git --branch v1.12.3 cd Firmware make px4_sitl_default gazebo

首次编译会下载Gazebo模型,可能需要较长时间。可以通过export GZ_SIM_RESOURCE_PATH=~/.gazebo/models指定模型下载路径。

4. 避障功能包专项配置

4.1 创建工作空间

建议为避障功能单独创建工作空间:

mkdir -p ~/avoidance_ws/src cd ~/avoidance_ws/src catkin_init_workspace

克隆Avoidance仓库到工作空间:

git clone https://github.com/PX4/avoidance.git cd .. catkin_make -j$(nproc)

4.2 环境变量关键配置

编辑~/.bashrc文件,在末尾添加以下内容:

# PX4-Avoidance环境配置 source ~/avoidance_ws/devel/setup.bash source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware ~/Firmware/build/px4_sitl_default export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:~/avoidance_ws/src/avoidance/avoidance/sim/models

执行source ~/.bashrc使配置生效。验证环境变量是否正确:

echo $GAZEBO_MODEL_PATH | grep "avoidance"

5. 避障仿真实战测试

5.1 修改launch文件

编辑避障启动文件以避免常见错误:

gedit ~/avoidance_ws/src/avoidance/avoidance/launch/avoidance_sitl_mavros.launch

找到以下参数并修改:

<arg name="gui" default="true"/> <arg name="world" default="$(find avoidance)/sim/worlds/single_sphere.world"/>

5.2 启动避障仿真

推荐使用3相机配置启动,兼容性最好:

roslaunch local_planner local_planner_sitl_3cam.launch

如果遇到Planner abort: missing required data错误,尝试以下解决方案:

  1. 检查Gazebo是否正常加载了无人机模型
  2. 确认~/.bashrc中所有路径配置正确
  3. 重新编译工作空间:catkin_make -j$(nproc)

5.3 控制无人机飞行

在新终端中依次执行:

# 切换到OFFBOARD模式 rosrun mavros mavsys mode -c OFFBOARD # 解锁电机 rosrun mavros mavsafety arm

在RViz中使用2D Nav Goal指定目标点,无人机将自动规划路径并避开障碍物。通过rqt_reconfigure可以实时调整飞行参数:

rosrun rqt_reconfigure rqt_reconfigure

6. 高级调试与优化技巧

6.1 Gazebo性能优化

如果Gazebo运行卡顿,可以尝试以下方法:

# 降低渲染质量 gedit ~/.gazebo/gui.ini

找到[rendering]部分,修改为:

fps=30 texture=low

6.2 避障算法参数调整

局部规划器参数存放在~/avoidance_ws/src/avoidance/local_planner/cfg/params.cfg中,重要参数包括:

参数名默认值说明
max_speed3.0最大飞行速度(m/s)
safety_distance0.5最小障碍物距离(m)
goal_acceptance_radius0.3目标点容差半径(m)

6.3 常见问题解决方案

Gazebo黑屏问题

export LIBGL_ALWAYS_SOFTWARE=1 roslaunch local_planner local_planner_sitl_3cam.launch

MAVROS连接超时: 检查~/.bashrc中的PX4_HOME_LATPX4_HOME_LON是否设置为有效GPS坐标

点云显示异常: 在RViz中检查Fixed Frame是否设置为map,并确认local_pointcloud话题已订阅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 22:21:47

30元捡漏H3C TX1801 Plus,保姆级刷OpenWRT教程(附CH341接线图)

30元打造高性能OpenWRT路由器&#xff1a;H3C TX1801 Plus全流程改造指南 在二手市场淘换老旧硬件并赋予其新生命&#xff0c;是极客圈子里经久不衰的乐趣。一台被企业淘汰的H3C TX1801 Plus路由器&#xff0c;往往能以30元左右的白菜价入手&#xff0c;却藏着MT7621芯片256MB …

作者头像 李华
网站建设 2026/4/17 9:05:04

联邦学习中的分布式后门攻击(DBA):隐蔽性、持久性与防御挑战

1. 联邦学习与后门攻击的基本概念 联邦学习&#xff08;Federated Learning&#xff09;是一种新兴的机器学习范式&#xff0c;它允许多个参与方在不共享原始数据的情况下共同训练模型。想象一下&#xff0c;就像一群医生想要共同研究一种疾病&#xff0c;但又不愿意直接分享病…

作者头像 李华
网站建设 2026/4/15 22:21:23

CloudCompare实战:如何快速合并多个PCD文件(附Livox数据转换全流程)

CloudCompare实战&#xff1a;Livox激光雷达点云数据处理与PCD文件合并全流程指南 当你在处理Livox激光雷达采集的.lvx格式数据时&#xff0c;是否遇到过这样的困扰&#xff1a;转换后的PCD文件分散成数百个小文件&#xff0c;不仅占用存储空间&#xff0c;还给后续分析带来诸多…

作者头像 李华
网站建设 2026/4/15 22:19:23

医学影像处理新宠:INR技术如何用神经网络搞定CT/MRI重建?

医学影像处理新宠&#xff1a;INR技术如何用神经网络搞定CT/MRI重建&#xff1f; 在放射科医生的日常工作中&#xff0c;经常会遇到这样的困境&#xff1a;患者因身体状况限制无法长时间保持静止&#xff0c;导致采集的CT/MRI图像出现运动伪影&#xff1b;或者为了减少辐射剂量…

作者头像 李华
网站建设 2026/4/15 22:19:22

YOLOv11的Neck设计,如何让无人机巡检中的小目标检测精度提升30%?

YOLOv11的Neck设计如何让无人机巡检中的小目标检测精度提升30% 在无人机电力巡检和交通监控领域&#xff0c;电线、绝缘子、车牌等小目标的精准检测一直是技术难点。传统检测方法往往在这些场景下表现不佳&#xff0c;而YOLOv11通过其创新的Neck设计&#xff0c;特别是FPNPAN双…

作者头像 李华
网站建设 2026/4/15 22:16:44

状态空间模型离散化:从理论到实践的五大关键方法

1. 状态空间模型离散化的核心逻辑 第一次接触状态空间模型离散化时&#xff0c;我被满屏的数学符号劝退了三次。直到在机器人控制项目里踩了坑才发现&#xff0c;离散化本质上就是给连续时间系统"拍快照"的过程——就像用手机连拍记录舞蹈动作&#xff0c;既要捕捉关…

作者头像 李华