将数据从AP发送到ROS/mavros

从接入点到 ROS 的数据

Mavros 使用来自 ArduPilot 的 MAVLink 传感器数据消息,并将数据放在 /mavros/ 主题中

内存单元数据

ArduPilot使用MAVLink的RAW_IMU消息将加速度计,陀螺仪和指南针(又名“mag”)数据发送到ROS / mavros。

Mavros 使用此数据并将其置于以下主题中:

  • /mavros/imu/data 和 /mavros/imu/data_raw 保存加速度计(称为“linear_acceleration”)和陀螺仪(称为“angular_velocity”)数据

  • /mavros/imu/mag 保存指南针数据。如果 AP 的COMPASS_USE参数已设置为零,则可能全部为零

检查和设置数据速率

../_images/ros-data-from-ap1.png

执行以下命令,查看运行ROS的配套电脑上的加速度计、陀螺仪数据及更新速率

rostopic echo /mavros/imu/data    <-- to see the data itself
rostopic hz /mavros/imu/data      <-- to view the update rate

mavros 可用于向 ArduPilot 发送命令以更改数据速率,如下所示

rosrun mavros mavsys rate --all 10     <-- to set the data rate for all data to 10hz
rosrun mavros mavsys rate --extra1 10  <-- to set the data rate for IMU_RAW to 10hz
rosrun mavros mavsys rate --help       <-- to see help on this command

在ArduPilot中,发送到ROS / mavros的IMU数据的默认更新速率可以通过更改SRx_EXTRA1参数来设置(其中“x”通常是飞行控制器上的串行端口号)

警告

APSync 的用户可能会注意到 APWeb 每 4 秒将数据流速率重置为 10hz。这是一个已知问题,可以通过编辑 /etc/rc.local 文件并注释掉启动 APWeb 的行来解决。

注意

如果您注意到 AP 以高于请求的速率发送数据,则可能是由于此问题

Last updated