完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
if (!isCalibrated) /*У׼*/
{ baseZacc = tempacc.x* vecxZ + tempacc.y * vecyZ + tempacc.z * veczZ; isCalibrated = true; } state->acc.z= tempacc.x* vecxZ + tempacc.y * vecyZ + tempacc.z * veczZ - baseZacc; 这段代码怎么理解? 为什么是 测量的值与调整后的值相乘? |
|
相关推荐
12个回答
|
|
vecxZ ,vecyZ,veczZ是Z轴(指向地心)的单位分量,相当于cos(x),
然后tempacc.x* vecxZ + tempacc.y * vecyZ + tempacc.z * veczZ就是Z轴方向的合力, 这个值减去四轴静止状态下测量的重力加速度值baseZacc,结果就是自身的Z轴加速度值,单位g |
|
|
|
|
|
这个是你们的那个开源的程序里面的 一段代码,不知道代码的含义
|
|
|
|
由于地球引力的作用,四轴Z方向会受到合力为1G的重力加速度,但我们时常要用到相对自身的加速度,所以要把这个重力加速度减掉
|
|
|
|
哦哦 大概明白了,相当于是 vecxZ比上1个g的加速度 就是 cos了,对吧?
还有个问题,为什么 你们的 四元数的函数 最后有一个时间参数?在用加速度的误差对角速度来校准的时候为什么需要乘以时间啊? 在用四元数计算角度的时候也 用0.5除以了采样的时间。我在网上看到的程序 都没有这个参数啊。不知道这个参数的作用 |
|
|
|
嗯,是的。因为是积分,所以要乘以dt,你可以试试把dt去掉看看效果
|
|
|
|
|
|
|
|
楼主你这个代码源程序是哪个,可以分享一下吗
|
|
|
|
这个开源程序在哪里有下载,能分享下吗
|
|
|
|
|
|
|
|
http://www.openedv.com/forum.php ... p;highlight=minifly
|
|
|
|
我的理解应该是加上重力加速度值才是真实的加速度值啊。例如自由落体的时候,加速度计的测量值应该是0吧,而此时真实的加速度确是1g。
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4443 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
314浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
301浏览 2评论
314浏览 2评论
319浏览 2评论
355浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:26 , Processed in 1.228753 second(s), Total 102, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号