logo资料库

mti学习笔记.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
MTi 学习笔记 2014-01-09 1. 介绍 MTi 是集成了 3D 磁力仪(3D 指南针)的完整的微型惯性测量 单元,带有一个能够实时计算滚动,俯仰和偏航的嵌入式处理器,能 够输出校准的 3D 线性加速,旋转速度(陀螺仪),和(地球)的磁场 数据,支持各种先进的 IO,如 RS-232/422 和模拟输出(DAC)等。 2.同 MTi 的直接的底层通信 MTi 可直接连接 RS-232/422(注意它不是 TTL 电平,因此需要转 换一下才能和单片机等通讯),只需根据 MTi 的二进制通信协议以流 (自由运行)模式或轮询(请求)模式通过串口索要数据即可。(C++ 类库‘CMTComm’软件包中包含了 MT 通信的源代码(C++)) 3.坐标系统 ● X 轴的正向指向地球磁场北极 ● Y 轴符合右手坐标系(西) ● Z 轴正向朝上 4.输出模式 ● 四元数单位(又称为欧拉参数) ● 欧拉角 7、旋转、俯仰、偏航(航天序列)
● 旋转矩阵(方向余弦) 正向的旋转总是“右撇子”也就是基于右手法则(螺旋法则)定义的, 这意味着正的旋转方向被定义为旋转轴方向上为顺时针。 重要:数据格式为:FA FF 起始,LEN 为数据包长度,checksum 时用的是各个字节相加,然后末字节为零的方式,因此解析数据包时 可根据这几个字节来确定。 注意:串口发送用的是 big-endian 的构架(MTi and MTx User Manual.pdf 的 34p),即高字节在低地址,因此串口发送 16bit 或 32bit 的数据时,先发或先收的 byte 为高字节;
四元数组输出模式下的输出定义是: 数据字段内的所有数据元素都是浮点型(4 字节)TS=时间戳(可选) 欧拉角输出模式下输出的定义: 数据字段内的所有数据元素都是浮点型(4 字节) 旋转矩阵(DCM 方向余弦)的输出模式的输出定义如下: 数据字段内的所有数据元素都是浮点型(4 字节) 校准数据输出模式下的输出定义如下: 数据字段所有数据元素都是浮点型(4 字节) 非校准的原始输出模式的输出定义是: 数据字段的每一个数据元素是 2 字节(16bit)无符号整型 5.数据类型要求 为满足导航要求,需要得到 calibrated data 和 orientation date(Euler). 见 MTi and MTx low-level communication.pdf 的 25p. 一共 48bytes,都是单精度型。
6.IEEE(Hex 小数和 float 转换过程): 下面是转换的程序: float ByteToFloat(unsigned char* byteArry)//使用取地址的方法进行处理 { } return *((float*)byteArry); void main() { unsigned char data[4]={0xc3,0xf5,0x1c,0x41}; float f_data=0;
f_data=ByteToFloat(data); printf("%f\n",f_data); } 7.使用步骤 1.上电 2.发送指令 gotoconfig 模式 3.进行设置,如 buadrate、setoutputmodle、 outputsetting、 setoutputskip。(一般只修改输出数据格式) 4.发送指令 gotomeasurement 模式 5.然后每次 reqdata 就可以获得一次采集到的数据。 (设置好以后以后不用在编程设置了,直接读就可以了) 附:指令信息 1.go to config TX: FA FF 30 00 D1 RX: FA FF 31 00 D0 2.calibration + orientation data TX: FA FF D0 02 00 06 29 RX: FA FF D1 00 30 3.matrix orientation output + sample counter TX: FA FF D2 04 00 00 00 09 22 RX: FA FF D3 00 2E 4.Goto measurement TX: FA FF 10 00 F1 RX: FA FF 11 00 F0
分享到:
收藏