保姆级避坑指南:在Ubuntu 20.04上从零搭建XTDrone仿真环境(ROS Noetic + PX4 v1.13.2)

张开发
2026/4/24 17:16:38 15 分钟阅读

分享文章

保姆级避坑指南:在Ubuntu 20.04上从零搭建XTDrone仿真环境(ROS Noetic + PX4 v1.13.2)
保姆级避坑指南在Ubuntu 20.04上从零搭建XTDrone仿真环境ROS Noetic PX4 v1.13.2当第一次接触XTDrone仿真环境时许多开发者都会遇到各种意想不到的问题。从ROS安装失败到PX4编译报错再到Gazebo插件冲突每一步都可能成为阻碍。本文将带你避开这些坑手把手完成XTDrone仿真环境的搭建。1. 环境准备避开依赖陷阱在开始安装前系统环境的准备至关重要。Ubuntu 20.04虽然是最稳定的选择但默认的软件源可能包含过时的依赖包。必须安装的基础依赖包sudo apt update sudo apt upgrade -y sudo apt install -y ninja-build exiftool protobuf-compiler libeigen3-dev genromfs xmlstarlet gawkPython环境是另一个常见问题点。建议使用virtualenv创建隔离环境python3 -m pip install --user virtualenv python3 -m virtualenv ~/xtdrone_env source ~/xtdrone_env/bin/activate安装Python依赖时特别注意版本兼容性pip install packaging21.3 numpy empy toml pyyaml jinja2 kconfiglib jsonschema future提示如果遇到pip command not found错误先执行sudo apt install python3-pip安装pip工具。2. ROS Noetic安装解决网络问题ROS安装过程中最令人头疼的莫过于rosdep init和rosdep update的网络问题。传统方法在国内网络环境下失败率极高。推荐使用国内镜像源sudo sh -c . /etc/lsb-release echo deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main /etc/apt/sources.list.d/ros-latest.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update对于rosdep问题鱼香ROS提供了一键解决方案sudo pip3 install rosdepc sudo rosdepc init rosdepc update验证ROS安装是否成功source /opt/ros/noetic/setup.bash roscore 注意如果使用代理请确保环境变量配置正确。常见的网络问题通常是由于DNS解析失败导致的可以尝试修改/etc/resolv.conf使用8.8.8.8等公共DNS。3. Gazebo与PX4的兼容性配置Gazebo版本与PX4的兼容性是个大坑。官方推荐Gazebo11但Ubuntu 20.04默认仓库中的版本可能存在问题。彻底卸载旧版Gazebosudo apt-get remove gazebo* libgazebo* ros-noetic-gazebo* -y sudo apt autoremove -y安装Gazebo11的正确姿势sudo sh -c echo deb http://packages.osrfoundation.org/gazebo/ubuntu-stable lsb_release -cs main /etc/apt/sources.list.d/gazebo-stable.list wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - sudo apt update sudo apt install gazebo11 libgazebo11-dev -yPX4编译常见错误及解决方案错误类型解决方案submodule更新失败手动下载缺失的子模块protobuf版本冲突强制使用PX4要求的版本Eigen3路径问题设置EIGEN3_INCLUDE_DIR环境变量编译PX4时的推荐命令cd ~/PX4_Firmware git submodule update --init --recursive DONT_RUN1 make px4_sitl_default gazebo4. XTDrone环境集成与验证XTDrone与PX4的版本必须严格匹配。使用v1.13.2版本时XTDrone也需要对应版本。关键配置步骤复制配置文件到PX4目录更新Gazebo插件重新编译PX4环境变量设置示例echo source ~/catkin_ws/devel/setup.bash ~/.bashrc echo export ROS_PACKAGE_PATH\$ROS_PACKAGE_PATH:~/PX4_Firmware:~/PX4_Firmware/Tools/sitl_gazebo ~/.bashrc source ~/.bashrc验证环境是否正常工作roslaunch px4 indoor1.launch # 新终端 cd ~/XTDrone/communication/ python multirotor_communication.py iris 0遇到Gazebo黑屏问题时可以尝试export LIBGL_ALWAYS_SOFTWARE1 gazebo --verbose在完成所有安装后建议创建一个系统快照。这样在后续开发中遇到环境问题时可以快速恢复到已知正常的状态。

更多文章