Dronekit 使用msg_请求_数据流和MavlinkObserver更新偏航
我在做一个项目,我用安卓手机控制一架四轮直升机。我注意到,使用Dronekit 使用msg_请求_数据流和MavlinkObserver更新偏航,dronekit,dronekit-android,Dronekit,Dronekit Android,我在做一个项目,我用安卓手机控制一架四轮直升机。我注意到,使用无人机监听器收听姿态更新消息并没有像我需要的那样快速更新偏航。我想让四架直升机的偏航经常(或多或少)实时更新,比如当你通过usb插入四架直升机时,Mission Planner应用程序是如何工作的 我曾尝试使用msg_request_data_stream(这基本上是任务规划器使用的,但在C#中)从无人机请求各种数据流,但没有起作用。我的假设是,任何注册的MavlinkObserver都会收到对该请求(即流)的响应,但是我添加到我的无
无人机监听器
收听姿态更新
消息并没有像我需要的那样快速更新偏航。我想让四架直升机的偏航经常(或多或少)实时更新,比如当你通过usb插入四架直升机时,Mission Planner应用程序是如何工作的
我曾尝试使用msg_request_data_stream
(这基本上是任务规划器使用的,但在C#中)从无人机请求各种数据流,但没有起作用。我的假设是,任何注册的MavlinkObserver都会收到对该请求(即流)的响应,但是我添加到我的无人机中的自定义MavlinkObserver
没有一次调用其onMavlinkMessageReceived(…)
方法。它甚至没有收到心跳信息,而心跳信息(根据我的理解)应该经常出现
你能提供什么帮助吗?有没有比等待无人机侦听器收到事件通知更好的方法来获得四架直升机的偏航?我知道使用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));