环境
树莓派4B
ArduCopter 4.0.7
Ubuntu mate 22.04
ROS2 Humble
(本人搭建所使用的软件硬件版本,仅供参考)
上篇文章我们实现了在终端中打印mavros中的imu数据。但是光打印是不够的,本节的任务是创建一个订阅Mavros话题的ROS2节点。
然而事情并不简单。刚开始尝试写了一个基础的订阅者程序imu_node,订阅“/mavros/imu/data”话题并打印加速度数据
结果出现以下警告,没有任何输出。警告提示QoS策略不兼容
[WARN] [1723023136.939607569] [imu_node]: New publisher discovered on topic '/mavros/imu/data', offering incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY
运行下面指令查看详细信息
ros2 topic info /mavros/imu/data --verbose
输出结果
Type: sensor_msgs/msg/Imu
Publisher count: 1
Node name: imu
Node namespace: /mavros
Topic type: sensor_msgs/msg/Imu
Endpoint type: PUBLISHER
GID: 01.0f.80.84.b1.11.a3.7d.00.00.00.00.00.01.b0.03.00.00.00.00.00.00.00.00
QoS profile:
Reliability: BEST_EFFORT
History (Depth): UNKNOWN
Durability: VOLATILE
Lifespan: Infinite
Deadline: Infinite
Liveliness: AUTOMATIC
Liveliness lease duration: Infinite
Subscription count: 1
Node name: imu_node
Node namespace: /
Topic type: sensor_msgs/msg/Imu
Endpoint type: SUBSCRIPTION
GID: 01.0f.80.84.5b.13.91.16.00.00.00.00.00.00.12.04.00.00.00.00.00.00.00.00
QoS profile:
Reliability: RELIABLE
History (Depth): UNKNOWN
Durability: VOLATILE
Lifespan: Infinite
Deadline: Infinite
Liveliness: AUTOMATIC
Liveliness lease duration: Infinite
结果显示发布者发布的话题/mavros/imu/data的QoS策略是Best effort,imu_node(订阅者)的策略是Reli