参考链接:
https://blog.csdn.net/HuangChen666/article/details/128754106
https://www.yuque.com/xtdrone/manual_cn/basic_config_13

安装mavros
MAVROS是ROS(机器人操作系统)下的开源功能包,核心作用是搭建ROS与MAVLink协议设备(如PX4飞控)之间的通信桥梁,适配ROS1与ROS2版本(含MAVROS2)。
它可实现ROS话题、服务与飞控指令、状态数据的双向互通,既能向PX4飞控下发起飞、悬停、返航等控制指令,也能实时订阅GPS位置、飞行姿态、电池状态等遥测数据。
作为无人机智能化开发的核心工具,MAVROS广泛应用于避障算法、目标追踪、路径规划等场景,也是Offboard模式调试的关键支撑,常与PX4飞控配合使用,构成无人机开发的标准架构。
bash
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras # for ros-noetic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间
安装PX4
编译安装
Github下载
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 --recursive
make px4_sitl_default gazebo
可下载上述安装包
cd PX4_Firmware
make px4_sitl_default gazebo
编译完成后,会弹出Gazebo界面,将其关闭即可。
修改 ~/.bashrc,加入以下代码,注意路径匹配,前两个source顺序不能颠倒。
我用的是zsh
所以添加这些到~/.zshrc
bash
# PX4 Gazebo simulation environment
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
改变飞机模型
搭载不同传感器
bash
Tools/sitl_gazebo/models/

修改launch文件的sdf属性
``
bash
echo "commander takeoff" | python3 Tools/mavlink_shell.py 127.0.0.1:14550
echo "commander land" | python3 Tools/mavlink_shell.py 127.0.0.1:14550
bash
cd ~/PX4_Firmware
roslaunch px4 indoor1.launch

roslaunch px4 outdoor1.launch

需要下再好gazebo的模型不然运行时会加载不出来,保存到~/.gazebo/models目录下
安装XTDrone
XTDrone是一款基于ROS、Gazebo与PX4开发的开源通用无人机仿真平台,可看作无人机开发的"虚拟沙盒",核心用于无人机算法调试、功能验证与开发练习,无需真机即可完成各类测试,安全且高效。
它支持多旋翼、固定翼、VTOL等多种机型,还可适配无人车、无人船、机械臂等多种无人系统,能实现多机编队、自主导航、SLAM、目标追踪等多种场景的仿真。其核心优势是模块化设计,可灵活修改仿真模型与参数,且在平台上验证通过的算法,能方便地部署到真实无人机上。
XTDrone与PX4飞控配合紧密,可通过相关通信工具实现ROS与PX4飞控的通信,构建起"仿真环境-飞控"的完整开发架构,是无人机智能化开发与调试的重要工具。
安装QGC
QGroundControl (QGC) 是一款开源、跨平台、专业级 的无人机 / 无人系统地面控制站(GCS),基于 MAVLink 协议,为 PX4、ArduPilot 等主流飞控提供全链路控制、任务规划与数据分析能力。
完全适配 PX4 仿真。
官网: https://qgroundcontrol.com/

-
On the command prompt enter:
sudo usermod -a -G dialout $USER sudo apt-get remove modemmanager -y sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y sudo apt install libfuse2 -y sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y -
Logout and login again to enable the change to user permissions.
To install QGroundControl:
-
Download QGroundControl-x86_64.AppImage.
-
Install (and run) using the terminal commands:
chmod +x ./QGroundControl-x86_64.AppImage ./QGroundControl-x86_64.AppImage (or double click)
安装版本为v3.5.5版本,参考github链接 : https://github.com/mavlink/qgroundcontrol/releases
安装过程用Claude code解决
在设置中可打开虚拟按钮操控

左摇杆为升降高度,右摇杆为前后左右
安装Lightning-LM
Lightning-Speed Lidar Localization and Mapping
Lightning-LM 是一个完整的激光建图+定位模块。
Lightning-LM特性:
-
done\] 完整的3D Lidar SLAM,快速的LIO前端(AA-FasterLIO),标配
-
done\] 实时回环检测,标配,选上的话会进行后端回环检测并闭环
-
done\] 地图分区动态加载方案,适用大场景
-
done\] 高频率IMU平滑输出,标配,100Hz
- 车辆里程计输入,选配 (TODO)
-
done\] 轻量优化库miao以及增量式优化(来自g2o,但更轻更快,支持增量优化,不需要重新构建优化模型),标配,在回环、定位中均有用到
-
done\] 基于外推器和平滑器的高频率输出,平滑因子可调
bash
git clone https://github.com/gaoxiang12/lightning-lm.git
因为此算法适配的是ROS2,需要改为ROS1 noteic
此步骤采用CC来辅助实现
采用NCLT数据集测试
离线建图指令为
bash
rosrun lightning run_slam_offline --config /home/ychooo/ROS_WS/Lightning_ws/src/lightning-lm/config/default_nclt.yaml --input_bag /media/ychooo/KINGIDISK/Datasets/nclt/20130110.bag
已成功运行

结束后会自动保存至data/new_map目录下
原作者提供了三种msg类型: PointCloud, PointCloud2 和 CustomMsg,因此可以兼容A-LOAM,Fast-LIO和R3live等slam算法。