保姆级教程:用鱼香肉丝ROS和国内镜像源,在Ubuntu 20.04上丝滑配置XTDrone仿真环境
国内开发者福音Ubuntu 20.04下XTDrone仿真环境极速配置指南当国内开发者第一次接触无人机仿真开发时往往会被复杂的ROS环境配置、缓慢的国外源下载速度以及各种依赖冲突劝退。本文将分享一套经过实战验证的配置方案利用国内镜像源和优化工具让你在3小时内完成XTDrone仿真环境的搭建。1. 环境准备从零开始的极速配置在开始之前请确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端执行以下命令sudo apt update sudo apt upgrade -y1.1 ROS Noetic的一键安装方案传统ROS安装需要从国外源下载大量数据耗时且不稳定。我们推荐使用鱼香ROS的一键安装脚本它自动配置国内镜像源wget http://fishros.com/install -O fishros . fishros提示该脚本会自动检测系统版本并安装对应ROS发行版对Ubuntu 20.04会自动选择Noetic版本安装完成后验证ROS环境source /opt/ros/noetic/setup.bash roscore如果看到ROS master启动日志说明基础环境已就绪。2. 核心组件安装与优化2.1 Gazebo仿真环境配置Gazebo是XTDrone的核心仿真平台官方源下载速度极慢。我们可以使用中科大镜像加速sudo sh -c echo deb http://mirrors.ustc.edu.cn/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 gazebo11 libgazebo11-dev -y验证安装gazebo --version2.2 MAVROS与地理数据集解决方案MAVROS是PX4与ROS通信的桥梁但其依赖的地理数据集(GeographicLib)下载极其缓慢。我们采用手动下载方案创建目标目录sudo mkdir -p /usr/share/GeographicLib从国内镜像下载必要数据包egm96-5.tar.bz2egm96.zipemm2015.zip解压到目标目录sudo tar -xjf egm96-5.tar.bz2 -C /usr/share/GeographicLib/ sudo unzip egm96.zip -d /usr/share/GeographicLib/ sudo unzip emm2015.zip -d /usr/share/GeographicLib/然后安装MAVROS本体sudo apt install ros-noetic-mavros ros-noetic-mavros-extras -y3. PX4飞控环境配置3.1 源码获取与编译建议从Gitee镜像获取PX4源码速度更快git clone https://gitee.com/mirrors/PX4-Autopilot.git ~/PX4_Firmware cd ~/PX4_Firmware git checkout v1.13.0安装依赖bash ./Tools/setup/ubuntu.sh --no-nuttx编译固件make px4_sitl_default gazebo3.2 环境变量配置将以下内容添加到~/.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 ~/.bashrc4. XTDrone集成与测试4.1 获取XTDrone源码从官方Gitee仓库克隆git clone https://gitee.com/robin_shaun/XTDrone.git ~/catkin_ws/src/XTDrone安装Python依赖pip3 install pandas jinja2 pysserial cerberus pyulog numpy toml pyquaternion empy pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple4.2 模型文件配置Gazebo模型文件通常下载缓慢可以直接从国内镜像获取创建模型目录mkdir -p ~/.gazebo/models下载预编译模型包wget https://gitee.com/robin_shaun/XTDrone/releases/download/v1.0/models.tar.gz -O ~/models.tar.gz tar -xzf ~/models.tar.gz -C ~/.gazebo/models/4.3 启动仿真测试启动PX4仿真节点roslaunch px4 mavros_posix_sitl.launch新建终端启动XTDrone示例roslaunch xtdrone_launch xtdrone_iris.launch如果一切正常你应该能看到Gazebo界面中出现一架Iris无人机模型。5. ORB-SLAM2环境配置技巧虽然ORB-SLAM2不是XTDrone的核心组件但很多开发者会同时需要视觉SLAM功能。以下是几个关键配置技巧5.1 Pangolin安装避坑指南推荐使用Gitee镜像安装0.5版本git clone https://gitee.com/mirrors/Pangolin.git -b v0.5 ~/Pangolin cd ~/Pangolin mkdir build cd build cmake .. make -j$(nproc) sudo make install5.2 OpenCV版本兼容方案Ubuntu 20.04默认OpenCV版本为4.2需要修改ORB-SLAM2的CMakeLists.txtfind_package(OpenCV 4.2 QUIET) if(NOT OpenCV_FOUND) message(FATAL_ERROR OpenCV 4.2 not found.) endif()5.3 常见编译错误解决遇到FFmpeg兼容性问题时可以安装3.4.8版本wget https://mirror.iscas.ac.cn/blfs/conglomeration/ffmpeg/ffmpeg-3.4.8.tar.xz tar -xf ffmpeg-3.4.8.tar.xz cd ffmpeg-3.4.8 ./configure --prefix/usr/local/ffmpeg-3.4.8 --enable-shared make -j$(nproc) sudo make install最后将ORB-SLAM2源码放入catkin_ws/src目录后执行cd ~/catkin_ws/src/ORB_SLAM2 chmod x build.sh ./build.sh在实际项目中我发现Gazebo模型加载速度对开发效率影响很大。一个实用的技巧是将常用模型预先下载到本地并通过环境变量指定模型搜索路径这可以显著减少启动时间。