使用 ROS 测距传感器

距离传感器信息

ArduPilot 支持 距离传感器信息 输入和输出。以下各章将向您介绍如何将距离传感器与 ROS 结合使用,用于 .NET 和 .NET 应用程序:

  • 测距仪:如何从 FCU(如 pixhawk)中的测距仪插件接收数据,以及如何从 ROS 向 FCU 发送数据

  • 近程:如何从 FCU 接收近程图书馆的数据,以及如何向 FCU 发送 360 度激光雷达数据

测距仪

从 FCU 接收

警告

距离传感器信息目前支持 :

  • ArduPilot 主控器

  • Copter >=3.5.1(计划中)

  • UGV无人车 >= 3.2.0(计划中)

  • 平面 >=3.8.0(计划中)

默认情况下,ArduPilot 将为UGV无人车 FCU 上连接的每个测距仪发送距离传感器信息,而在 Copter 和 Plane 上仅向下定向 (PITCH_270) 发送。示例:启动 SITL 并添加一个模拟测距仪,请参见 这里是 SITL 指令.使用默认配置启动 MAVROS。测距仪数据应位于 /mavros/distance_sensor/rangefinder_pub。

apm_config.yaml 中的配置: distance_sensor: <== 插件名称 rangefinder_pub: <== ROS 发布者名称 id: 0 <== 从 0 开始的传感器实例编号 frame_id: "lidar" <== TF 的帧名称 #orientation:PITCH_270 # 由 FCU 发送 field_of_view:0.0 <==传感器 FOV 参见此处的 "ROS 说明" <http://docs.ros.org/api/sensor_msgs/html/msg/Range.html>`__

发送至 FCU

例如,ArduPilot 支持接收来自伴侣计算机的测距仪数据。要做到这一点,只需在 ArduPilot 端设置一个 MAVLink 测距仪,并在 MAVROS 插件中设置一个用户即可:

apm_config.yaml 中的配置: distance_sensor: <== 插件名称 rangefinder_sub: <== ROS subscriber 名称 subscriber: true <== 设置 subscriber 类型 id: 1 <== 传感器实例编号必须与 ArduPilot 端设置的方向一致:PITCH_270 <== Copter 3.4+ 仅支持该方向

现在,在 /mavros/distance_sensor/rangefinder_sub 上发布 sensor_msgs/Range 消息。使用 GCS 可以查看测距仪测量数据。

邻近性

警告

工作进行中

我们致力于改进 ArduPilot 对 ROS 的支持,因此如果您发现问题(例如似乎不支持的命令),请在 ArduPilot 问题列表 我们会尽快解决。