对于需要自主定位导航的服务型机器人而言,电机里程计的精准度影响着整个机器人的定位精度,电机部分的控制是实现机器人底盘中最为主要的部分。为了便于操作,本文将为大家介绍常见机器人底盘的电机及其编码器并结合Breakout 3.0中STM32的参考代码,对SLAMWARE系统中用到的里程计进行详细说明。
代码链接:http://www.slamtec.com/download/slamware/code/slamwarekit_reference_code.20161025.zip
电机编码器类型选择
常用的机器人底盘电机编码器按实现原理来分类,包括光电编码器及霍尔编码器,按照其编码方式分类,主要包括增量型和绝对型。对于基于slamware的机器人底盘来说,里程计的分辨率需要在1mm以下,且总误差最多不能超过5%,如果超过此数值,机器人将无法正常实现定位导航的功能。因此,无论选择哪种编码器,必须要达到其精度的要求。可以参考以下判断公式:
(2π/每转编码器脉冲数)×轮子半径≤0.001米
注:轮子半径单位为米
系统电机应答流程(仅以两轮差动电机为例)