姿态传感器学习笔记
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 為數據包長度,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
總結
- 上一篇: 十六进制的几种输出方式
- 下一篇: 有关提高visual studio开发效