首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改Mavlink消息速率ArduPilotMega

更改Mavlink消息速率ArduPilotMega
EN

Stack Overflow用户
提问于 2016-05-23 06:26:20
回答 2查看 1.1K关注 0票数 1

我正在从事一个使用Mavlink协议(在c++中)与ArduPilotMega (2.6)通信的项目。

例如,我能够读取诸如态度之类的消息。当前的消息速率(对于所有消息)是2Hz,我想提高这个速率。

我发现我可能应该使用间隔期设置MAV_CMD_SET_MESSAGE_INTERVAL来改变它。

所以我的问题是:

如何使用c++中的mavlink发送此命令消息?

我试着用下面的代码来做它,但是它没有工作。我想我必须使用上面提到的命令,但我不知道如何使用。

代码语言:javascript
复制
mavlink_message_t command;
mavlink_message_interval_t interval;

interval.interval_us = 100000;
interval.message_id = 30;

mavlink_msg_message_interval_encode(255, 200, &command, &interval);
p_sensorsPort->write_message(command);

更新:我也尝试了下面的代码,也许我没有给它正确的系统id或组件id。

代码语言:javascript
复制
mavlink_message_t command;
mavlink_command_long_t interval;

interval.param1 = MAVLINK_MSG_ID_ATTITUDE;
interval.param2 = 100000;
interval.command = MAV_CMD_SET_MESSAGE_INTERVAL;
interval.target_system = 0;
interval.target_component = 0;

mavlink_msg_command_long_encode(255, 0, &command, &interval);
p_sensorsPort->write_message(command);

也许我忽略了target_systemtarget_componentsysidcompid之间的区别。我几乎没有尝试过每一种价值观,但都没有效果。

是否有任何ACK能够告诉我它是否得到了命令?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-25 13:38:28

根据机器人堆栈交换的答案,

为了更改消息速率,最简单的方法是使用SR_*参数值更改任务规划师。最大频率为10 The。

例如,为了将态度消息速率更改为10 10,我只需将SR_EXTRA1参数更改为10。

有关哪些参数更改的更多信息,请参见Mavlink.cpp固件中的ArduCopter文件。

票数 0
EN

Stack Overflow用户

发布于 2017-01-17 17:24:52

我猜你错过了start_stop场。下面的样本是有效的。

代码语言:javascript
复制
        final msg_request_data_stream msg = new msg_request_data_stream ();
        msg.req_message_rate = rate;
        msg.req_stream_id = (short) streamId;
        msg.target_component = (short)compID;
        msg.target_system = (short)sysID;

        /*
                            GCS_COMMON.cpp contains code that sends when value =1
                            and stop when value = 0
                             that is  it.
        */

        if (rate > 0) {
            msg.start_stop = 1;
        } else {
            msg.start_stop = 0;
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37383904

复制
相关文章

相似问题

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