)
保姆级教程在Ubuntu 20.04上从零搭建XTDrone无人机仿真环境含PX4 v1.13.2避坑指南第一次接触无人机仿真开发时面对ROS、Gazebo、PX4这一大堆陌生名词相信很多人和我当初一样感到无从下手。经过多次失败尝试和反复调试我终于总结出一套适合零基础开发者的完整配置方案。本文将带你一步步完成XTDrone仿真环境的搭建特别针对PX4 v1.13.2版本中可能遇到的坑点提供解决方案。1. 环境准备与依赖安装在开始安装前请确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端执行以下命令sudo apt update sudo apt upgrade -y1.1 基础依赖安装XTDrone仿真环境需要以下关键组件支持ROS NoeticUbuntu 20.04对应的ROS版本Gazebo11物理仿真引擎MAVROSROS与PX4通信的桥梁PX4 v1.13.2无人机飞控软件XTDrone仿真平台本体首先安装基础编译工具和依赖库sudo apt install -y ninja-build exiftool protobuf-compiler \ libeigen3-dev genromfs xmlstarlet \ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ python3-pip gawkPython依赖包安装注意版本兼容性pip3 install packaging numpy empy toml pyyaml jinja2 \ pyargparse kconfiglib jsonschema future提示如果遇到pip3命令不存在先执行sudo apt install python3-pip安装pip31.2 常见问题排查在依赖安装阶段最容易遇到以下问题网络连接超时可以尝试更换apt源或使用代理依赖冲突建议在全新系统上安装避免已有环境干扰权限问题记得在关键命令前加sudo2. ROS Noetic安装与配置ROS是无人机仿真的核心框架Ubuntu 20.04对应的是Noetic版本。2.1 标准安装步骤按照官方推荐方式安装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 sudo apt update sudo apt install ros-noetic-desktop-full初始化rosdep时国内用户常遇到网络问题sudo pip install rosdepc sudo rosdepc init rosdepc update2.2 环境变量设置将以下内容添加到~/.bashrc文件末尾source /opt/ros/noetic/setup.bash echo source /opt/ros/noetic/setup.bash ~/.bashrc source ~/.bashrc验证安装roscore如果看到ROS master启动日志说明安装成功。3. Gazebo11与仿真环境搭建3.1 彻底卸载旧版本为避免冲突先清理可能存在的旧版Gazebosudo apt-get remove gazebo* libgazebo* ros-noetic-gazebo* -y3.2 安装Gazebo11sudo 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 -y验证安装gazebo应该能看到Gazebo的空白仿真界面。4. MAVROS安装与地理数据配置MAVROS是连接ROS和PX4的关键组件安装命令sudo apt install ros-noetic-mavros ros-noetic-mavros-extras -y地理数据安装耗时较长wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh chmod x install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh注意此步骤需要下载约300MB数据请确保网络畅通5. PX4 v1.13.2特定版本配置5.1 源码下载与版本切换git clone https://github.com/PX4/PX4-Autopilot.git mv PX4-Autopilot PX4_Firmware cd PX4_Firmware git checkout -b xtdrone/dev v1.13.2 git submodule update --init --recursive5.2 首次编译与测试make px4_sitl_default gazebo编译完成后应该能看到PX4 SITL与Gazebo的联合仿真界面。5.3 环境变量配置在~/.bashrc中添加source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:~/PX4_Firmware export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo刷新环境source ~/.bashrc6. XTDrone源码集成6.1 下载与版本匹配git clone https://gitee.com/robin_shaun/XTDrone.git cd XTDrone git checkout 1_13_2 git submodule update --init --recursive6.2 配置文件部署将XTDrone的配置文件复制到PX4对应目录cp sitl_config/init.d-posix/* ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/ cp -r sitl_config/launch/* ~/PX4_Firmware/launch/ cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/6.3 插件更新与重新编译cd ~/PX4_Firmware rm -rf build/ make px4_sitl_default gazebo重要修改插件后必须删除build目录重新编译否则会报错7. 完整系统验证7.1 启动仿真环境终端1启动Gazebo仿真roslaunch px4 indoor1.launch终端2建立通信cd ~/XTDrone/communication/ python multirotor_communication.py iris 0终端3键盘控制cd ~/XTDrone/control/keyboard python multirotor_keyboard_control.py iris 1 vel7.2 常见问题解决方案Gazebo黑屏检查显卡驱动尝试使用LIBGL_ALWAYS_SOFTWARE1 gazebo启动PX4无法连接确认MAVROS是否正常运行检查端口设置键盘控制无响应检查python脚本参数是否正确在实际项目中我发现最耗时的往往是环境配置阶段。建议按照本文步骤严格执行遇到问题时先检查版本是否匹配。配置成功后可以尝试修改XTDrone中的示例场景逐步深入无人机仿真开发。