2 姿态信息获取
机器人的姿态信息包括倾倒的角度和角速度。如图3所示,机器人左右两侧水平位置各安装有1个红外测距传感器,可以测量与地面之间的距离d1和d2。当机器人在竖直状态时,左右传感器距离差为零。当机器人倾倒时,距离差与倾倒角度θ成函数关系如下:
sin θ=(d2-d1)/D
其中,D为传感器之间的距离。机器人在竖直动态控制时倾倒角度范围较小,此时sinθ≈θ,即可由传感器的距离信息得到机器人的倾倒角度。角速度可以通过θ对时间求导获得。
选用的红外测距传感器为Sharp公司的GP2D12,输出为0.4~2.4 V的模拟信号,对应的测量距离为10~80 cm。在同一温度下,传感器的输出与测量结果呈良好的线性关系,可以满足自平衡机器人的要求。
3 控制系统设计
3.1 机器人平衡控制原理
当车体偏离平衡位置(竖直位置)向前倾斜时,传感器采集信息并传送到单片机进行计算和判断,车轮随之作出响应向前运动,将车体向平衡位置调整;同样当车体向后倾斜时,车轮将向后运动。这样机器人一直处在倾斜判断、运动调整的动态过程中,使车体始终保持在平衡位置附近,达到一种动态平衡。
3.2 控制系统硬件设计
控制系统主芯片选用Atmel公司基于RISC结构的8位单片机ATmega128。它采用低功耗CMOS工艺;具有丰富的片上资源,包括4个定时器、4 KB的数据SRAM、128 KB的程序Flash、可外扩至64 KB的E2PROM和8个10位ADC通道;拥有UART、SPI、I2C、JTAG接口,方便外部扩展和传感器的接入。
3.2.1 传感信息输入电路
传感器信号通过放大器引入,通过设置反馈电阻(R1和R2)和输出端电阻(R3和R4)的阻值可以使输入的电压值在要求的范围内。具体硬件电路如图4所示。