ATmega16与PC机的移动机器人定位系统研究
图4 超声波传感器定位
根据余弦定理
所以有
其中θ′表示机器人位置相当地标1的角度变化。地标的位置在机器人运行轨迹的两侧。在机器人轨迹有2处定位误差校正点。这些地标位置确定,当机器人靠近地标时,可以用公式(10)求机器人精确坐标。
3 算法实现步骤
Step1: ATmega16采集光纤陀螺仪数据,总线传输数据。
Step2: 采集被动码盘数据,数据发送至CAN总线。
Step3: PC机接收陀螺及码盘数据,根据2.1节算法进行机器人定位运算;是否接受超声波传感器数据,接受超声波数据程序转Step4,不接受超声波校正数据程序转至Step1。
Step4: 接受超声波传感器数据,进行定位误差校正;根据第2节算法,修正移动机器人定位误差,程序转Step1。
4 实验结果及分析4.1 数据来源 机器人实验场地为地板砖地面。实验场地坐标及场地中地标位置如图5所示。在“*”位置进行定位误差校正。
图5 实验场地坐标
4.2 结果分析
在上述工作场地用两种不同的定位系统分别作了20次定位实验:定位系统1为单片机与PC间通信采用串口通信方式;定位系统2为本文所设计定位系统结果如表1所列。
表1 两种定位系统定位结果对比
两种定位方法因为实验相同的定位算法,所以定位精度没有太大区别。机器人在使用定位系统2的软、硬件进行定位时20次实验成功率100%;而定位系统1成功率只有90%,有两次机器人飞车。
结语
本文详细阐述了基于ATmega16和PC机的移动机器人定位系统的电路与定位算法。基于CAN总线的定位系统工作的机器人能较可靠运行;根据需要可以方便增添传感器节点,而不改动其他节点程序。
评论