使用 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 问题列表 我们会尽快解决。