- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
现在智能小车里用的卡尔曼滤波算法基本是这个
现在智能小车里用的卡尔曼滤波算法基本是这个:void Kalman_Filter(float angle_m,float gyro_m)? ? ? ? ? ? ? ? ? ? ? ? //gyro_m:gyro_measure{? ? ? ? angle+=(gyro_m-q_bias) * dt;? ? ? ? ? ? ? ? Pdot[0]=Q_angle - P[0][1] - P[1][0];? ? ? ? Pdot[1]=- P[1][1];? ? ? ? Pdot[2]=- P[1][1];? ? ? ? Pdot[3]=Q_gyro;? ? ? ? ? ? ? ? P[0][0] += Pdot[0] * dt;? ? ? ? P[0][1] += Pdot[1] * dt;? ? ? ? P[1][0] += Pdot[2] * dt;? ? ? ? P[1][1] += Pdot[3] * dt;? ? ? ? ? ? ? ? ? ? ? ? angle_err = angle_m - angle;? ? ? ? ? ? ? ? ? ? ? ? PCt_0 = C_0 * P[0][0];? ? ? ? PCt_1 = C_0 * P[1][0];? ? ? ? ? ? ? ? E = R_angle + C_0 * PCt_0;? ? ? ? ? ? ? ? K_0 = PCt_0 / E;? ? ? ? K_1 = PCt_1 / E;? ? ? ? ? ? ? ? t_0 = PCt_0;? ? ? ? t_1 = C_0 * P[0][1];? ? ? ? P[0][0] -= K_0 * t_0;? ? ? ? P[0][1] -= K_0 * t_1;? ? ? ? P[1][0] -= K_1 * t_0;? ? ? ? P[1][1] -= K_1 * t_1;? ? ? ? ? ? ? ? ? ? ? ? angle? ? ? ? += K_0 * angle_err;? ? ? ? q_bias? ? ? ? += K_1 * angle_err;? ? ? ? angle_dot = gyro_m-q_bias;}这个也不错,但我看不懂,因为我不知道怎么调参数,所以我不相信其输出精度。独轮车做的不太好,原来一直在用别人的驱动,后来感觉还是自己做一下比较好,所以还在做驱动。
现在智能小车里用的卡尔曼滤波算法基本是这个:void Kalman_Filter(float angle_m,float gyro_m)? ? ? ? ? ? ? ? ? ? ? ? //gy ...
这个参数不好调节,就目前的参数而言,滞后严重。但是加大参数了,输出的角速度值收敛太慢,影响控制。还是楼主的公式也不是最直观的,建议直接用公式,那5个公式一步步的写,输出很精准,参数的调节也一目了然。就是现在的几个程序。把卡尔曼的算法弄复杂了再发一些我认为不错的文档吧!首先是一阶互补滤波算法:1、一阶互补滤波这种滤波的原理是对AngleGyro进行高通滤波,而对AngleAccel进行低通滤波,最后再将两者加合,输出姿态角估计值。其公式如下:angle = a * (angle + AngleRateGyro * dt) + (1 - a) * AngleAccel;高通滤波的目的是过滤掉长期的变量,而让短期的变量通过,这可以用来去掉陀螺仪的漂移;低通滤波的目的是过滤掉短期的变量,而让长期的变量通过,这可以用来去掉加速度计的噪声。为了确定滤波系数a,得确定一个时间常数tau,tau = a * dt / (1 - a);a = tau / (tau + dt);dt为滤波取样时间。tau代表的是你对陀螺仪的信任度和对加速度计的信任度的界限。当时间小于tau,AngleGyro处于优先地位,AngleAccel的噪声将被过滤。当时间大于tau时,AngleAccel的平均值将被优先考虑,这时的AngleGyro将产生漂移。tau的选择将取决于AngleGyro何时产生漂移,观察数据拟合曲线即可确定。我们选取tau = 1s,带入以下程序中:void ComplementaryFilter(float AngleRateGyro,float AngleAccel){//tau is a time constant//a = tau / (tau + dt);//angle = a * (angle + AngleRateGyro * dt) + (1 - a) * AngleAccelfloat tau =
您可能关注的文档
- 爱康国宾体检服务方案书.ppt
- 爱德利MS系列变频器使用说明书.doc
- 片梭织机的工艺特性及产品开发.docx
- 牙周病学 第二章 牙龈疾病练习题.doc
- 牙髓再生的研究进展.doc
- 牙齿与美观.ppt
- 牛剖腹产术.ppt
- 牛奶蛋白纤维的性能及其染整加工.docx
- 牡蛎糖原的提取_纯化及补体活性研究.docx
- 牧民歌唱毛主席.ppt
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
文档评论(0)