从零到一:基于T265与PX4的无人机室内VIO自主飞行系统搭建全攻略 📅 2026/7/15 1:36:21 1. 硬件选型与系统架构设计想要在室内实现无人机的自主飞行首先得搞定硬件配置。我当初搭建这套系统时花了整整两周时间对比各种硬件组合最终确定了这套性价比最高的方案。核心硬件清单飞控系统雷迅V5刷写PX4固件支持MAVLink协议稳定性经过市场验证视觉传感器Intel T265双目相机6DoF追踪内置IMUUSB3.0接口机载计算机Jetson Xavier NX6核CPU384核Volta GPU15W功耗模式下性能足够动力系统T-motor Air 2216电机1045桨叶组合静推力达到1.2kg这套配置最妙的地方在于平衡了性能和成本。T265相机自带视觉惯性里程计(VIO)算法省去了自己写SLAM的麻烦。NX的算力足够处理图像数据而PX4飞控的成熟生态让飞行控制变得简单。系统架构设计有三个关键点需要注意数据流设计T265→NX处理→MAVROS→PX4飞控这条链路要确保低延迟供电设计建议给NX单独供电避免电机干扰导致系统重启安装布局T265要避开螺旋桨气流干扰我的方案是装在机架正前方2. 开发环境搭建实战开发环境搭建是最容易踩坑的环节。我重装了三次系统才摸清门道下面分享避坑指南。2.1 系统安装与基础配置Ubuntu 18.04是必须的因为ROS Melodic和JetPack 4.6的兼容性最好。推荐使用SD卡镜像法安装比SDK管理器快得多。安装完成后第一件事sudo apt-get update sudo apt upgrade -y必装工具jtop实时监控NX运行状态sudo apt install python3-pip sudo pip3 install jetson-statsSSH远程连接方便调试sudo apt install openssh-server sudo systemctl enable ssh2.2 ROS安装的坑与解决方案ROS安装最容易卡在rosdep update这一步。经过多次尝试我发现最稳的方法是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-get update sudo apt-get install ros-melodic-desktop-full遇到更新失败时可以尝试这个脚本wget https://gitee.com/ncnynl/rosdep/raw/master/rosdep_update.sh sudo chmod x ./rosdep_update.sh sudo ./rosdep_update.sh2.3 MAVROS安装技巧二进制安装比源码编译省心很多sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh sudo bash ./install_geographiclib_datasets.sh关键检查点安装完成后运行roscore再开新终端运行rosrun turtlesim turtlesim_node能看到小乌龟说明ROS环境正常。3. 视觉里程计系统集成T265的集成是整个系统的核心这里分享几个实战技巧。3.1 Realsense SDK编译指南重要提示编译前千万别插T265先装依赖sudo apt-get install libudev-dev pkg-config libgtk-3-dev libusb-1.0-0-dev libglfw3-dev libssl-dev然后按步骤编译git clone https://github.com/IntelRealSense/librealsense cd librealsense sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ mkdir build cd build cmake ../ -DCMAKE_BUILD_TYPERelease -DBUILD_EXAMPLEStrue -DFORCE_RSUSB_BACKENDON make -j6 sudo make install测试命令realsense-viewer能看到T265数据流说明安装成功。3.2 坐标转换配置这是最容易被忽视的关键环节。我们需要配置vision_to_mavros包mkdir -p ~/vision_ws/src cd ~/vision_ws/src git clone https://github.com/thien94/vision_to_mavros.git catkin_make关键修改编辑t265_all_nodes.launch文件将apm.launch改为px4.launch。这个细节决定数据能否正确传递到PX4。4. 飞控参数配置与联调参数配置不当会导致无人机乱飞这是我用炸机换来的经验。4.1 必须修改的PX4参数通过QGroundControl修改以下参数MAV_1_CONFIG TELEM 2 MAV_1_MODE Onboard SER_TEL2_BAUD 921 EKF2_AID_MASK 24 EKF2_HGT_MODE Vision MAV_ODOM_LP 1特别注意EKF2_AID_MASK24表示启用视觉位置和姿态估计但禁用视觉速度估计。如果环境纹理丰富可以设为280启用全部视觉信息。4.2 系统联调步骤按顺序启动三个终端启动T265节点roslaunch realsense2_camera rs_t265.launch启动MAVROSroslaunch mavros px4.launch启动坐标转换roslaunch vision_to_mavros t265_tf_to_mavros.launch调试技巧用rostopic echo mavros/vision_pose/pose查看数据移动T265时应该能看到坐标变化。如果数据异常检查TF树是否正确。5. 飞行测试与性能优化真正的挑战从这里开始室内飞行要考虑更多现实因素。5.1 首次飞行 checklist先测试定高模式确保基础飞行正常启动所有ROS节点后观察QGC的MAVLink Inspector切换至定点模式时保持手放在遥控器上随时准备接管首次飞行建议在离地30cm悬停观察稳定性5.2 常见问题解决方案问题1无人机漂移严重检查T265安装是否稳固降低EKF2_POSNE_M_NSE参数值确保飞行环境纹理丰富问题2高度保持不稳检查EKF2_HGT_MODE是否为Vision尝试增加T265的相机曝光时间问题3数据延迟明显检查USB连接是否松动降低图像分辨率T265支持多种分辨率配置经过这些优化我的无人机最终能在3m×3m的空间内实现±5cm的定位精度完全满足室内巡检等应用需求。这套系统现在已稳定运行超过200小时最关键的是理解每个环节的关联性出现问题时要系统性地排查。