基于惯性轮倒立摆原理的自行车

背景

自平衡车有很多种,其中一种是利用惯性轮倒立摆原理,早在2003年,日本的村田顽童就已经问世,它采用的就是惯性轮倒立摆原理。后来其他研究组织和个人纷纷效仿,制作出了五花八门的基于惯性轮倒立摆原理的直立机器人。

在2015年8月的飞思卡尔(现在是恩智浦)全国大学生智能车竞赛的创意组比赛中,规则就是要用任何直立车完成一圈比赛。其中有学校使用的方案就是惯性轮倒立摆。

平衡自行车示意图

实物图:

平衡自行车实物图

尺寸及重量:

自行车高(从地面到飞轮中心)320mm,长450mm,自行车重1.8kg。飞轮半径75mm,质量0.3kg。电池绑在自行车侧面,重0.2kg。

硬件选型

1.电机rs540 70t电机
https://item.taobao.com/item.htmpm=a230r.1.14.257.ebb2eb2jEGU9c&id=15498785922&ns=1&abbucket=6#detail,选择的是70T,用来驱动飞轮。(不是打广告,从视频里可以看出,我确实用的就是这款电机)

2.180线AB相编码器,用来测量飞轮转速。

3.mpu6050,检测自行车的倾斜角度和角速度,没有用DMP功能,直接读取原始值用程序滤波。

控制程序

两个关键的函数:

1.飞轮转速补偿:(如果没有,飞轮转速在平衡过程中会一直上升,不能长时间稳定平衡)

2.电机转速计算:

最终控制是定时中断程序,定时中断间隔5ms,首先进行飞轮转速,车身横滚角速度和角度的采集,然后计算飞轮转速的补偿量,最后计算平衡需要的电机转速,通过pwm信号输出来控制电机。具体代码如下:

关于控制程序中参数的调试问题

重要的参数有5个:

两个互补滤波参数,直立的pd,速控的p。

第一步:先调直立p,可以在平衡位置摆动,即偏离平衡位置可以轻微的越过平衡位置到另一边。

第二步:把第一步调好的p给0,再调直立d,感觉在平衡位置摆动有轻微阻力。加上第一步调好的p,可以直立2到3s甚至更长就算调好了d,这时飞轮转动不会收敛,最后会因转动速度过快倒下。

第三步:调试飞轮转速的p,调到可以直立1min甚至更长时间。

曾经推倒过数学模型,但是能力有限,还不能把数学模型直接转换为算法,参考了一些资料,按照自己的想法写了简单的控制算法,不足之处肯定会有,但还是实现了直立的功能。

欢迎有兴趣或者做过这方面东西的同道找我交流,QQ:1006325356。

来源:仟人斩

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年8月20日
下一篇 2017年8月20日

相关推荐