PX4+Garebo+mavros 线路连接测试
本文主要对PX4Garebomavros线路连接测试检测环境配置是否成功。1.启动PX4仿真无人机在终端1内启动PX4的gz_x500cd ~/PX4_Firmware# 虚拟机必加软渲染环境变量规避OpenGL报错export LIBGL_ALWAYS_SOFTWARE1export QT_QPA_PLATFORMxcb# 启动X500无人机仿真make px4_sitl gz_x500✅ 成功标准弹出 Gazebo 窗口场景内出现 X500 四轴无人机终端持续打印 PX4 日志无致命崩溃报错不会闪退、不会报 OpenGL 3.3 错误成功后会在garebo内生成x500无人机2.启动mavros在终端2内启动mavros# 提前加载ROS环境source /opt/ros/humble/setup.bash# 启动mavros对接PX4 UDP仿真端口ros2 launch mavros px4.launch fcu_url:udp://127.0.0.1:145803.检测mavros是否连接成功无人机在终端3内测试是否连接成功source /opt/ros/humble/setup.bashros2 topic echo /mavros/state✅ 成功标准持续打印消息字段 connected: True代表整套链路打通PX4仿真 ↔ Gazebo ↔ MAVROS ↔ ROS24.通过ros让无人机空中画圆检测线路是否通畅步骤 1先切 OFFBOARD 模式 解锁新开终端加载 ROS 环境source /opt/ros/humble/setup.bash# 1. 持续发送初始位置必须先发至少2秒才能切offboardros2 topic pub -r 20 /mavros/setpoint_position/local geometry_msgs/msg/PoseStamped {pose: {position: {x: 0.0, y: 0.0, z: 2.0}}} sleep 2# 2. 切换OFFBOARD模式ros2 service call /mavros/set_mode mavros_msgs/srv/SetMode {base_mode: 0, custom_mode: OFFBOARD}# 3. 解锁飞机ros2 service call /mavros/cmd/arming mavros_msgs/srv/CommandBool {value: true}此时飞机会自动上升到 2 米高度悬停。5.通过python文件实现无人机空中画圈1. 创建工作空间mkdir -p ~/drone_ws/srccd ~/drone_ws/src ros2pkg create --build-type ament_python circle_dronecd circle_drone/circle_drone2. 新建circle.pycd ~/drone_ws/src/circle_drone/circle_dronenano circle.py保存退出先按Ctrl O字母 O保存直接回车确认文件名circle.py按Ctrl X退出编辑器给文件执行权限chmod x circle.py修改 setup.py 配置注册可执行程序nano ../setup.py找到entry_points这一段修改成entry_points{ console_scripts: [ circle circle_drone.circle:main, ], },3.编译工作空间cd ~/drone_wscolcon build --packages-select circle_dronesource install/setup.bash6.运行circle.py优先推荐放弃 ros2 run直接运行 python 脚本cd ~/drone_ws/src/circle_drone/circle_dronepython3 circle.py成功的话无人机会进行空中画圈