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

张开发
2026/4/15 22:26:13 15 分钟阅读

分享文章

保姆级教程:在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 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C6542. ROS Melodic完整安装PX4-Avoidance强烈依赖ROS Melodic的特定功能包建议安装完整桌面版sudo apt install -y ros-melodic-desktop-full初始化rosdep时国内用户可能会遇到连接问题。这里有个稳定的解决方案sudo rosdep init rosdep update --include-eol-distros将ROS环境变量永久添加到bashrcecho 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 genromfs3.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 avoidance5. 避障仿真实战测试5.1 修改launch文件编辑避障启动文件以避免常见错误gedit ~/avoidance_ws/src/avoidance/avoidance/launch/avoidance_sitl_mavros.launch找到以下参数并修改arg namegui defaulttrue/ arg nameworld default$(find avoidance)/sim/worlds/single_sphere.world/5.2 启动避障仿真推荐使用3相机配置启动兼容性最好roslaunch local_planner local_planner_sitl_3cam.launch如果遇到Planner abort: missing required data错误尝试以下解决方案检查Gazebo是否正常加载了无人机模型确认~/.bashrc中所有路径配置正确重新编译工作空间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_reconfigure6. 高级调试与优化技巧6.1 Gazebo性能优化如果Gazebo运行卡顿可以尝试以下方法# 降低渲染质量 gedit ~/.gazebo/gui.ini找到[rendering]部分修改为fps30 texturelow6.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_SOFTWARE1 roslaunch local_planner local_planner_sitl_3cam.launchMAVROS连接超时 检查~/.bashrc中的PX4_HOME_LAT和PX4_HOME_LON是否设置为有效GPS坐标点云显示异常 在RViz中检查Fixed Frame是否设置为map并确认local_pointcloud话题已订阅

更多文章