Ubuntu20.04搭建PX4+ROS2 Foxy环境遇错误,求适配方案
PX4 + ROS2 Foxy 在 Ubuntu 20.04 环境搭建问题排查与解决方案
一、操作步骤问题分析
- 错误参考旧版本配置:你在完整性检查阶段误用了仅适配Ubuntu 18.04/ROS Melodic的ROS/Gazebo路径配置,Ubuntu 20.04搭配ROS2 Foxy默认使用Gazebo 11,旧配置指向的Gazebo 9依赖库与当前环境不兼容,直接引发后续编译冲突。
- 标准安装未关联ROS2环境:直接执行「Gazebo、JMAVSim和NuttX」标准安装时,PX4编译脚本无法自动识别ROS2 Foxy的环境变量,导致RTPS模块编译缺失必要依赖,进而出现大量错误。
二、适配ROS2 Foxy的正确安装流程
1. 确认ROS2 Foxy环境正常
- 执行
source /opt/ros/foxy/setup.bash加载ROS2环境变量; - 可选:将该命令添加至
~/.bashrc,实现终端启动自动加载,避免每次手动执行。
2. 安装PX4专属ROS2依赖
不要使用标准安装脚本,改用PX4官方提供的ROS2适配依赖安装流程:
- 克隆PX4源码仓库(建议选择v1.13及以上稳定版本):
git clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot - 运行ROS2 Foxy专属依赖安装脚本:
该脚本会自动适配Ubuntu 20.04环境,安装兼容的Gazebo 11、Fast DDS(RTPS核心依赖)及其他PX4必需组件,同时自动配置正确的环境关联。./Tools/setup/ubuntu.sh --ros2 foxy
3. 编译与通信验证
依赖安装完成后,重启终端确保环境变量生效,执行编译命令:
make px4_sitl_rtps gazebo
编译成功后,可通过以下步骤验证ROS2与PX4的通信:
- 新开终端,执行
source install/setup.bash && ros2 topic list,若能看到/fmu/out/前缀的系列话题,说明环境搭建成功。
三、常见错误排查要点
- 检查ROS环境变量:执行
echo $ROS_DISTRO,确保输出为foxy,避免同时加载ROS Melodic的环境; - 验证Fast DDS版本:PX4 v1.13+要求Fast DDS 2.0及以上,可通过
fastddsversion命令查看版本; - 确认Gazebo版本:执行
gazebo --version,确保版本为11.x,清理系统中残留的Gazebo 9依赖。
内容的提问来源于stack exchange,提问作者tamasso-parec
相关产品推荐
相关产品推荐

