3216|7

83

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32获取姿态——给自己一点做下去的动力,先记录个开端 [复制链接]

 
 
           写这篇帖子主要是想记录下自己做这个项目的过程,想把思考的过程,实践的过程记录下来。
我想做的是一个可以准确的测量物体姿态的板子,和四轴要获取姿态是一样的,四轴最核心的技术也就是姿态计算。大学的时候接触过这个。现在VR挺火的,越来越觉得有必要做一个这样的姿态获取板,至少和技术大牛谈起来不会没有谈资。
           做姿态测量,如果不只是移植代码,实际上背后的知识还是挺复杂的。买了一本书——《机器人学、机器视觉与控制——MATLAB算法基础》,这本书非常详细的介绍了基础知识,也就是位姿的描述,位姿变化的过程——旋转矩阵,四元数等等。而且都附上了MATLAB的代码,这样你知道具体用代码是怎样实现的。基础知识掌握非常重要,因为现在很多代码是四元数表示位姿,但是我觉得没有旋转矩阵标识位姿的基础,理解四元数也是比较困难的。
           基础知识要掌握,当然一定要有一个实验平台,为此我花了大概一个多月做了一个十轴电路板:

这个就是我实验的基础,它包含了三轴加速度计,三轴陀螺仪,三轴电磁罗盘,气压计。并且有两个加速度计,一个量程范围大噪声也大±200g ,另一个量程可以到±16g 噪声比较低。
主控是STM32L011K4,是一款低功耗单片机,CM0+的内核。 不过完全满足我的要求,我只希望它是一块传感器数据获取板,不做任何算法,算法我有多种选择,STM32L432,CM4内核,主频可以到80M,另外一块板子是STM32F767,号称性能怪兽,主频216Mhz CM7内核。这两个选择一个是考虑低功耗,因为姿态板多数是绑定在设备上,电池供电的,功耗是肯定要考虑的事情。而STM32F767可以进行前期验证算法,达到理想的效果。另外我还搭建了一个被控板,这是从我买的遥控车上扒拉下来的,赛车太大了不方便调试:

赛车上的无刷电机不方便扒拉下来,用了个四旋翼上的无刷电机,KV1400。
后面会补充速度反馈和角度反馈。重点还是在姿态的实验平台上,考虑是加上一个实际的度数盘,平台旋转多少度直接可以读出来,旋转的座子最好是一个旋转编码器or增量编码器,反馈实际的旋转角度。
           目前获取传感器原始数据已经做好了:ODR可以到数据手册的一半,已经完全满足我的需求了。UART可以达到2Mbps。
           做获取原始数据的时候,遇到很多问题,为了获得最大的ODR,我必须使用传感器内部的FIFO,一般来说都是直接读三轴的寄存器值,但是发现这样根本没办法达到高的ODR,而读取FIFO,过程中遇到了各种问题,没有参考代码,实在别扭。STM32的帧间隔在轮询和DMA方式是不同的,就这个小小的问题搞了一周。最终得到了比较好的ODR,摆平这个,为后面做好了很好的铺垫;虽然实际我并不需要这么高的ODR。ACC是3.2K,GYRO是6.4K。 如果你了解过其他算法中传感器ODR,你就知道这已经是飞速了,因为一般只有几十,几百hz。不过大多数是直接读取寄存器值,ODR是根据算法的快慢决定的。
           原始数据的部分不想在帖子上贴出来,后面等完善了在贴出代码。
           通过看书,现在基本上理解了位姿描述的基本知识,下一个帖子谈谈这个。如果你真的深入进去了,就发现不了解这个最基本的知识,除了复制粘贴代码,最后调试的时候凭感觉,你没有其他办法。
           了解基本知识的下一步是考虑如何实现姿态测量在单片机上编程。分为两个部分,1、传感器校准、数字滤波;2、用四元数法描述姿态。我认为会遇到的困难就是滤波算法的选择,然后调试过程能不能达到预期的效果。
            能够用姿态测量板描述姿态,下一步就是位姿坐标系变化——轨迹描述。这个东西就已经是机器人的基础了,不过我觉得姿态的准确测量会是一个坎,温飘,积分飘移应该会把我逼疯。
            轨迹部分牵涉的概念更多,我看了那本书一会就受不了了,什么5次多项式方程,求齐次解。心想大学的课都上哪去了,该用的时候一点也想不起来。
            先记录到这,下一步位姿描述搞起来!~


最新回复

好厉害,加油  详情 回复 发表于 2016-9-5 19:48

赞赏

2

查看全部赞赏

点赞 关注(3)
 
 

回复
举报

83

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
沙发自己占吧
 
 
 

回复

821

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
谢谢分享,收藏了。
 
 
 

回复

1944

帖子

32

TA的资源

纯净的硅(高级)

4
 
谢谢分享!!
 
 
 

回复

655

帖子

29

TA的资源

版主

5
 
期待继续分享
个人签名QQ:252669569
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

6
 
加油
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

7
 
加油
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

8
 
好厉害,加油
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表