spi读取的数据如何自行滤波校准

您好,请问使用spi发送0x5600读出来的openimu300的六轴数据是源码taskDataAcquisition.c中调用GetSensorsData()后的数据吗,该函数直接调用的API,在API中做了滤波及校准,可以看到API中的具体实现吗?使用spi读取到的数据如何进行滤波校准呢?(如scaling, temperature compensation, bias removal, and misalignment.) @Dong-xiaoguang @cek @Li-YiFan

0x56读取的是传感器的ID, 0x3E才会读取实时的6轴数据, 输出为已经做过滤波和校准的数据。默认的低通滤波是20hz.

感谢回复,目前确实使用的0x3E取得的6轴数据,如果想得到九轴数据还应该发送什么,在数据手册上没有找到获得磁力计和温度的发送指令?

@Wangguotong Hi Wangguotong,
0x3F 指令或者直接访问寄存器的方式,都可以得到滤波和校准后的数据,磁力计和温度数据。我们在线文档会更新。
User can implement reading blocks of data with arbitrary length and information. Specific dedicated register address will indicate request specific block of data. For example, register address 0x3f (63) indicates request for reading data block containing current data from unit sensors and EKF. 2 lists corresponding parameters.

发0x3F指令的方式为:
f2cdb925-db9f-495d-a049-2d52d964bfe1-image.png

直接访问寄存器方式,寄存器地址为:
X_Mag 0x10
Y_Mag 0x12
Z_Mag 0x14
BOARD_TEMP 0x18

may be current FW(1.0.30 potential) in your IMU is not supported 0x3F, if no right feedback, pls update to 1.1.0 in below link:
https://developers.aceinna.com/code/apps

we will update the online doc to add 0x3F in future: pls note.
https://openimu.readthedocs.io/en/latest/software/SPImessaging.html#openimu-spi-messaging-framework

感谢回复!我会持续关注你们的在线文档!

Log in to reply