首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dronekit上实现MAV_CMD_SET_MESSAGE_INTERVAL

在dronekit上实现MAV_CMD_SET_MESSAGE_INTERVAL
EN

Stack Overflow用户
提问于 2018-05-02 04:53:10
回答 1查看 907关注 0票数 0

我一直在尝试使用文档中的示例在我的脚本中实现set_message_interval。我正在尝试提高接收Mavlink消息的速率。我每秒收到的IMU消息数量很少,我想要增加它,所以我想使用此命令来增加Mavlink消息的频率。下面是我的代码:

代码语言:javascript
复制
def set_message_interval(attribute, time):
      msg = vehicle.message_factory.command_long_encode(
      0, 0, #target system, target component
      mavutil.mavlink.MAV_CMD_SET_MESSAGE_INTERVAL, #command
      0, #confirmation
      attribute, #param 1
      time, #param 2
      0, 0, 0, 0, 0) #param 3-7 not used
      vehicle.send_mavlink(msg)

我调用了该函数,但是每当我在main中声明一个消息侦听器时,我仍然以相同的速率接收消息。我期望监听器在1秒内获得更多IMU数据,但它保持不变。任何人都知道哪里出了问题。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2019-02-14 21:15:58

尽管Mavlink的文档鼓励使用MAV_CMD_SET_MESSAGE_INTERVAL,但Ardupilot's documentation不支持它。

相反,请尝试使用受支持的命令REQUEST_DATA_STREAM并设置MAV_DATA_STREAM的响应值。Dronekit的消息工厂支持该命令,如下所示:

代码语言:javascript
复制
msg = vehicle.message_factory.request_data_stream_encode(
    0, 0,
    mavutil.mavlink.MAV_DATA_STREAM_RAW_SENSORS, # Including IMU
    10, # Rate (Hz)
    1) # Turn on
    vehicle.send_mavlink(msg)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50123680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档