姿态传感器学习笔记

MTi 学习笔记
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 为数据包长度,ch
ecksum
时用的是各个字节相加,然后末字节为零的方式,因此解析数据包时
可根据这几个字节来确定。
注意:串口发送用的是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

猜你喜欢

转载自blog.csdn.net/lsg_down/article/details/80593570