5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 关于APM数据解码,求助! [打印本页]

作者: liangdyc    时间: 2013-9-7 19:02
标题: 关于APM数据解码,求助!
本帖最后由 liangdyc 于 2013-9-7 19:04 编辑

本人通过串口与APM通信,利用自己写的命令FE 06 01 FF 00 42 02 00 01 00 0A 01 A5 07。要求APM返回姿态数据。APM返回成功。
接收到的数据为:


FE 1C 26 01 01 1E 87 D3 05 00  50 8F 68 BB   64 5A F1 BD   B0 93 86 3F   B8 30 44 BA   D0 DE 8E BA   40 EB 25 3A   E5 D5
FE 1C 27 01 01 1E 8E D5 05 00  6A 44 73 BB   47 EF F0 BD   66 91 86 3F   C0 CD 62 B9   60 40 12 BA   80 6F D3 38   29 A7

通过观察发现,接收到的的确是我要求其返回的。即姿态数据。根据地面站源代码
public const byte MAVLINK_MSG_ID_ATTITUDE = 30;     
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 28)]      
  public struct mavlink_attitude_t        {        
    /// <summary> Timestamp (milliseconds since system boot) </summary>         
  public UInt32 time_boot_ms;        
    /// <summary> Roll angle (rad, -pi..+pi) </summary>      
     public Single roll;           
/// <summary> Pitch angle (rad, -pi..+pi) </summary>     
       public Single pitch;        
    /// <summary> Yaw angle (rad, -pi..+pi) </summary>      
     public Single yaw;         
  /// <summary> Roll angular speed (rad/s) </summary>   
        public Single rollspeed;         
   /// <summary> Pitch angular speed (rad/s) </summary>        
    public Single pitchspeed;           
/// <summary> Yaw angular speed (rad/s) </summary>   
        public Single yawspeed;
        };

我可以知道哪几位是哪些数据。查了一下MAVLINK协议文档。是利用的IEE745表示浮点数。所以想转换到浮点数来看,可是发现转换后的数据不对。
例如roll为: 6A 44 73 BB。转换后为:59373995582784778000000000.000000

所以我想这里肯定是出现了什么问题。难道又是mavlink或地面站说是用IEE745其实又是使用了自己的一套格式?







欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://5imx.com./) Powered by Discuz! X3.3