make px4_sitl gazebo_irisroslaunch px4 mavros_posix_sitl.launch 是两种不同的PX4仿真启动方式,主要区别如下:


1. make px4_sitl gazebo_iris

功能特点:
  • 纯PX4仿真:仅启动PX4飞控软件在环仿真(SITL)和Gazebo环境
  • 无ROS集成:不自动启动MAVROS或任何ROS节点
  • 直接通信:通过UDP端口(14550/14580)直接与QGC通信
  • 轻量级:占用资源较少,适合飞控算法测试
典型输出:
[init] shell id: 140735313312544
[init] task name: px4

______  __   __    ___
| ___ \ \ \ / /   /   |
| |_/ /  \ V /   / /| |
|  __/   /   \  / /_| |
| |     / /^\ \ \___  |
\_|     \/   \/     |_/

px4 starting.
适用场景:
  • 需要快速验证飞控行为
  • 不涉及ROS的纯PX4开发
  • 与QGroundControl直接交互调试

2. roslaunch px4 mavros_posix_sitl.launch

功能特点:
  • 全栈仿真:同时启动:
    1. PX4 SITL
    2. Gazebo环境
    3. MAVROS节点(ROS与PX4的桥梁)
    4. 默认加载iris无人机模型
  • ROS集成:自动建立ROS话题和服务:
    /mavros/state
    /mavros/setpoint_position/local
    /mavros/vision_pose/pose 等
    
  • 开发友好:直接支持ROS控制接口
典型输出:
[ INFO] [1620000000.000000000]: MAVROS started. MY ID 1.240, TARGET ID 1.1
[ INFO] [1620000000.100000000]: FCU: Connected!
[ INFO] [1620000000.200000000]: FCU: GPS: 1, MAG: 1
适用场景:
  • 需要ROS节点控制无人机的场景
  • 视觉导航、SLAM等ROS生态开发
  • 多机协同仿真

核心区别对比

特性 make px4_sitl gazebo_iris roslaunch px4 mavros_posix_sitl.launch
启动组件 仅PX4 + Gazebo PX4 + Gazebo + MAVROS + ROS接口
通信方式 直接UDP (14550) 通过ROS话题中转
QGC连接 直接可连 需额外配置端口转发
ROS集成 完整MAVROS接口
资源占用 较低 较高
典型用途 飞控算法验证 ROS生态开发

如何选择?

  1. 只需测试PX4基础功能 → 用make命令
  2. 需要ROS开发/MAVROS控制 → 用roslaunch命令
  3. 需要两者结合
    # 终端1:启动基础仿真
    make px4_sitl gazebo_iris
    
    # 终端2:手动启动MAVROS
    roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
    

连接QGC的注意事项

  • 使用make命令时:QGC直接连接14550端口
  • 使用roslaunch:需要检查launch文件中fcu_url参数配置:
    <!-- 在mavros_posix_sitl.launch中确保有 -->
    <arg name="fcu_url" default="udp://:14540@127.0.0.1:14557"/>
    
    此时QGC应连接14557端口

建议通过netstat -tulnp命令查看实际开放的端口号。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐