1

我正在做一个项目,我用安卓手机控制四轴飞行器。我注意到使用DroneListener来收听ATTITUDE_UPDATED消息并没有像我需要的那样快地更新偏航。我想经常(或多或少)实时更新四轴飞行器的偏航,例如当您通过 USB 插入四轴飞行器时 Mission Planner 应用程序的工作方式。

我曾尝试使用msg_request_data_stream(本质上是 Mission Planner 使用的,但在 C# 中)从无人机请求各种数据流,但没有奏效。我的假设是,任何注册的 MavlinkObservers 都会收到对这个请求的响应(即流),但是MavlinkObserver我添加到我的无人机的自定义没有onMavlinkMessageReceived(…)一次调用它的方法。它甚至没有收到心跳消息,这应该(根据我的理解)经常和频繁地出现。

你有什么可以提供的帮助吗?有没有比等待 DroneListener 收到事件通知更好的方法来获得四轴飞行器的偏航?我知道 Mavlink 应该是可能的(MissionPlanner做到了),但我在 Mavlink 消息或MavlinkObserver.

这是我请求数据流的代码:

msg_request_data_stream message = new msg_request_data_stream();

//not sure how doubles cast to byte, so I cast it to an int first (the value is
//always going to be an int anyway, getValue just returns doubles for parameters by default)
message.target_system = (byte)((int)params.getParameter("SYSID_THISMAV").getValue());

message.req_message_rate = (short)1;
message.req_stream_id = (byte)0;
message.start_stop = (byte)1;

//wrap the message and send it!
ExperimentalApi.sendMavlinkMessage(this, new MavlinkMessageWrapper(message));
4

0 回答 0