保姆级教程在Ubuntu 20.04上从零搭建XTDrone无人机仿真环境含ROS Noetic、PX4 v1.13.2无人机仿真技术正在成为开发者快速验证算法的必备工具。XTDrone作为基于PX4和ROS的开源仿真平台为研究者提供了从传感器模拟到控制算法测试的完整解决方案。本教程将带您完成从零开始的完整配置过程针对国内网络环境优化每一个步骤确保即使是没有Linux基础的用户也能顺利完成。1. 系统准备与环境配置1.1 硬件与系统要求推荐配置至少满足以下规格CPUIntel i5及以上建议i7内存16GB最低8GB显卡NVIDIA独立显卡GTX1060及以上存储50GB可用空间操作系统Ubuntu 20.04 LTS纯净安装关键检查点# 检查系统版本 lsb_release -a # 检查显卡驱动 nvidia-smi1.2 基础依赖安装执行以下命令安装编译工具和基础库sudo apt update sudo apt upgrade -y sudo apt install -y \ git cmake ninja-build protobuf-compiler \ libeigen3-dev genromfs xmlstarlet \ python3-pip python3-dev python3-venv注意如果遇到Unable to locate package错误请先运行sudo apt updatePython依赖建议使用虚拟环境python3 -m venv ~/xtdrone_venv source ~/xtdrone_venv/bin/activate pip install --upgrade pip pip install packaging numpy empy toml pyyaml jinja22. ROS 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 -y ros-noetic-desktop-full2.2 解决rosdep初始化问题国内用户推荐使用替代方案sudo pip3 install rosdepc sudo rosdepc init rosdepc update常见问题处理若提示pip3未安装sudo apt install python3-pip证书错误sudo apt install ca-certificates2.3 环境配置将以下内容添加到~/.bashrc文件末尾source /opt/ros/noetic/setup.bash source ~/catkin_ws/devel/setup.bash export ROS_PACKAGE_PATH${ROS_PACKAGE_PATH}:~/PX4_Firmware export ROS_PACKAGE_PATH${ROS_PACKAGE_PATH}:~/PX4_Firmware/Tools/sitl_gazebo生效配置source ~/.bashrc3. Gazebo与PX4环境搭建3.1 Gazebo11定制安装先清理旧版本sudo apt remove --purge gazebo* libgazebo* ros-noetic-gazebo*安装官方稳定版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 -y gazebo11 libgazebo11-dev验证安装gazebo --version3.2 MAVROS扩展安装安装核心组件sudo apt install -y ros-noetic-mavros ros-noetic-mavros-extras地理数据集安装需耐心等待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.sh4. PX4 v1.13.2源码编译4.1 获取指定版本代码git clone https://github.com/PX4/PX4-Autopilot.git --recursive mv PX4-Autopilot ~/PX4_Firmware cd ~/PX4_Firmware git checkout v1.13.2 git submodule update --init --recursive提示submodule更新可能较慢可尝试修改.gitmodules中的URL为国内镜像源4.2 首次编译测试make px4_sitl_default gazebo编译成功标志[100%] Built target px4_sitl_default4.3 环境变量配置在~/.bashrc中添加source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware ~/PX4_Firmware/build/px4_sitl_default5. XTDrone集成配置5.1 获取XTDrone源码git clone https://gitee.com/robin_shaun/XTDrone.git cd XTDrone git checkout 1_13_2 git submodule update --init --recursive5.2 配置文件部署执行以下命令同步配置文件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/模型文件复制cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/5.3 重新编译PX4cd ~/PX4_Firmware rm -rf build/ make px4_sitl_default gazebo6. 完整系统验证6.1 启动仿真环境终端1启动Gazeboroslaunch 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 vel6.2 键盘控制说明控制键位对应关系按键功能说明W/S前后移动控制无人机前后飞行A/D左右移动控制无人机左右平移Q/E偏航旋转控制无人机转向R/F高度调整控制升降T起飞自动起飞指令L降落自动降落指令6.3 常见问题排查Gazebo黑屏问题检查显卡驱动nvidia-smi尝试软件渲染export LIBGL_ALWAYS_SOFTWARE1ROS节点通信失败rostopic list # 检查话题列表 rosnode list # 检查节点状态PX4编译错误确保所有submodule更新完成清理后重新编译make clean make px4_sitl_default gazebo7. 进阶配置与优化7.1 多机仿真配置修改~/PX4_Firmware/launch/multi_uav_mavros_sitl.launchgroup nsuav1 include file$(find px4)/launch/single_vehicle_spawn.launch arg namex value0/ arg namey value0/ arg namez value0/ arg nameR value0/ arg nameP value0/ arg nameY value0/ /include /group7.2 自定义仿真场景添加新世界文件到~/PX4_Firmware/Tools/sitl_gazebo/worlds/示例世界文件结构?xml version1.0 ? sdf version1.6 world namecustom include urimodel://ground_plane/uri /include include urimodel://sun/uri /include /world /sdf7.3 性能优化建议关闭Gazebo视觉效果export GAZEBO_GPU_OPTIONS--disable_glsl --disable_fog使用轻量级模型export PX4_SIM_MODELiris_opt_flow调整仿真速度make px4_sitl_default gazebo HEADLESS1 PX4_SIM_SPEED_FACTOR2
保姆级教程:在Ubuntu 20.04上从零搭建XTDrone无人机仿真环境(含ROS Noetic、PX4 v1.13.2)
发布时间:2026/5/31 10:29:36
保姆级教程在Ubuntu 20.04上从零搭建XTDrone无人机仿真环境含ROS Noetic、PX4 v1.13.2无人机仿真技术正在成为开发者快速验证算法的必备工具。XTDrone作为基于PX4和ROS的开源仿真平台为研究者提供了从传感器模拟到控制算法测试的完整解决方案。本教程将带您完成从零开始的完整配置过程针对国内网络环境优化每一个步骤确保即使是没有Linux基础的用户也能顺利完成。1. 系统准备与环境配置1.1 硬件与系统要求推荐配置至少满足以下规格CPUIntel i5及以上建议i7内存16GB最低8GB显卡NVIDIA独立显卡GTX1060及以上存储50GB可用空间操作系统Ubuntu 20.04 LTS纯净安装关键检查点# 检查系统版本 lsb_release -a # 检查显卡驱动 nvidia-smi1.2 基础依赖安装执行以下命令安装编译工具和基础库sudo apt update sudo apt upgrade -y sudo apt install -y \ git cmake ninja-build protobuf-compiler \ libeigen3-dev genromfs xmlstarlet \ python3-pip python3-dev python3-venv注意如果遇到Unable to locate package错误请先运行sudo apt updatePython依赖建议使用虚拟环境python3 -m venv ~/xtdrone_venv source ~/xtdrone_venv/bin/activate pip install --upgrade pip pip install packaging numpy empy toml pyyaml jinja22. ROS 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 -y ros-noetic-desktop-full2.2 解决rosdep初始化问题国内用户推荐使用替代方案sudo pip3 install rosdepc sudo rosdepc init rosdepc update常见问题处理若提示pip3未安装sudo apt install python3-pip证书错误sudo apt install ca-certificates2.3 环境配置将以下内容添加到~/.bashrc文件末尾source /opt/ros/noetic/setup.bash source ~/catkin_ws/devel/setup.bash export ROS_PACKAGE_PATH${ROS_PACKAGE_PATH}:~/PX4_Firmware export ROS_PACKAGE_PATH${ROS_PACKAGE_PATH}:~/PX4_Firmware/Tools/sitl_gazebo生效配置source ~/.bashrc3. Gazebo与PX4环境搭建3.1 Gazebo11定制安装先清理旧版本sudo apt remove --purge gazebo* libgazebo* ros-noetic-gazebo*安装官方稳定版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 -y gazebo11 libgazebo11-dev验证安装gazebo --version3.2 MAVROS扩展安装安装核心组件sudo apt install -y ros-noetic-mavros ros-noetic-mavros-extras地理数据集安装需耐心等待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.sh4. PX4 v1.13.2源码编译4.1 获取指定版本代码git clone https://github.com/PX4/PX4-Autopilot.git --recursive mv PX4-Autopilot ~/PX4_Firmware cd ~/PX4_Firmware git checkout v1.13.2 git submodule update --init --recursive提示submodule更新可能较慢可尝试修改.gitmodules中的URL为国内镜像源4.2 首次编译测试make px4_sitl_default gazebo编译成功标志[100%] Built target px4_sitl_default4.3 环境变量配置在~/.bashrc中添加source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware ~/PX4_Firmware/build/px4_sitl_default5. XTDrone集成配置5.1 获取XTDrone源码git clone https://gitee.com/robin_shaun/XTDrone.git cd XTDrone git checkout 1_13_2 git submodule update --init --recursive5.2 配置文件部署执行以下命令同步配置文件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/模型文件复制cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/5.3 重新编译PX4cd ~/PX4_Firmware rm -rf build/ make px4_sitl_default gazebo6. 完整系统验证6.1 启动仿真环境终端1启动Gazeboroslaunch 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 vel6.2 键盘控制说明控制键位对应关系按键功能说明W/S前后移动控制无人机前后飞行A/D左右移动控制无人机左右平移Q/E偏航旋转控制无人机转向R/F高度调整控制升降T起飞自动起飞指令L降落自动降落指令6.3 常见问题排查Gazebo黑屏问题检查显卡驱动nvidia-smi尝试软件渲染export LIBGL_ALWAYS_SOFTWARE1ROS节点通信失败rostopic list # 检查话题列表 rosnode list # 检查节点状态PX4编译错误确保所有submodule更新完成清理后重新编译make clean make px4_sitl_default gazebo7. 进阶配置与优化7.1 多机仿真配置修改~/PX4_Firmware/launch/multi_uav_mavros_sitl.launchgroup nsuav1 include file$(find px4)/launch/single_vehicle_spawn.launch arg namex value0/ arg namey value0/ arg namez value0/ arg nameR value0/ arg nameP value0/ arg nameY value0/ /include /group7.2 自定义仿真场景添加新世界文件到~/PX4_Firmware/Tools/sitl_gazebo/worlds/示例世界文件结构?xml version1.0 ? sdf version1.6 world namecustom include urimodel://ground_plane/uri /include include urimodel://sun/uri /include /world /sdf7.3 性能优化建议关闭Gazebo视觉效果export GAZEBO_GPU_OPTIONS--disable_glsl --disable_fog使用轻量级模型export PX4_SIM_MODELiris_opt_flow调整仿真速度make px4_sitl_default gazebo HEADLESS1 PX4_SIM_SPEED_FACTOR2