机器人原理分析:
该机器人根据陀螺仪的位姿数据,通过三个全向轮驱动底部球体调整自己在球上的位置,保持动态平衡的同时实现全向移动。
保持动态平衡过程需要对机器人进行运动学分析,这里参考了平衡小车之家的运动学方程:
自平衡控制问题转化为三步:输入X、Y角度—控制器计算—输出A、B、C电机转速的控制模型。
控制器设计:
首先考虑参考平衡车控制,球上自平衡机器人本质上依然是一个一阶倒立摆问题。这里参考了飞思卡尔直立车的控制方法,采用串级PID控制器,外环PD角度环,内环速度PI环。
由于我的驱动方案选择的是42步进电机,在速度闭环的时候有些问题。正常的直流电机+编码器的控制方案可以通过编码器将轮子的真实速度计算出来,从而和控制器的理想转速作差,实现速度控制。
而我这里的速度闭环是通过计算上一个时钟周期时给步进电机的控制量,通过运动学方程分解,得到机器人的虚拟速度,与理想转速作差控制。我认为这种速度闭环方式还是存在一定缺陷的,但是在网上查看论文的时候我发现有很多自平衡机器人都是用42步进电机来实现速度闭环的,不知道是什么方法。
硬件清单:
- 56mm全向轮 45元/个
- 42步进电机 25/个
- 42步进闭环模块 59.8元/个
- LM2596S降压模块 20元
- STM32F103C8T6-4飞控板 59.8元
- GY-521六轴陀螺仪 25元