okARM 发表于 2011-11-26 11:19:28

三维电子罗盘

在用三轴磁阻传感器和加速度做三维电子罗盘时
用这个公式
//先计算好COS 与SIN
   ctpx=cos((float)moutx*pi/180);
   stpx=sin((float)moutx*pi/180);
   ctpy=cos((float)mouty*pi/180);
   stpy=sin((float)mouty*pi/180);
   
   计算xh,yh
   outx=(int)((float)outx_s*ctpx+(float)outy_s*stpy*stpx-(float)outz_s*ctpy*stpx);
   outy=(int)((float)outy_s*ctpy+(float)outz_s*stpy);
修正时为什么在东西时对产生俯仰翻滚有比较好的修正
而在南北时为什么效果不好?
这和加速度和磁阻传感器的焊接方向有关吗?

xingdong2hao 发表于 2013-9-5 16:24:17

楼主,你好。我最近在弄LSM303,刚弄,很多东西都不懂,现在驱动写好了,也能正常的读取磁场数据,但我把磁场数据取出后,用atan2(M_Y,M_X)*180.0/3.1415926后,在水平方向旋转传感器,测出的角度都不正确,没有0~360度的变化,只是在几个角度如225、45下波动,不知你当初有没有遇到过这样的问题,希望你能回复并给些建议,十分感谢!

陶新成 发表于 2015-12-17 13:06:33

楼主问题解决了吗我也遇到了同样的问题,在计算罗盘方位角的时候用俯仰和横滚角进行补偿但是补偿之后的数据乱飘,Xr=Xcosα+Ysinαsinβ+ Zcosβsin,Yr=Ycosβ- Zsin,就是当罗盘水平时即俯仰和横滚都为零时方位角才准确,不知道什么原因请您帮我看一下谢谢了!
http://www.amobbs.com/thread-5639795-1-1.html
页: [1]
查看完整版本: 三维电子罗盘