基于STM32F407的轮式机器人定位控制系统的设计
2015-05-30孙猛猛杨明辉张玉炳万林
孙猛猛 杨明辉 张玉炳 万林
【摘要】 传统的双码盘和陀螺仪定位系统由于受到地面环境因素的影响,导致其定位精度不高。本文提出了一种基于STM32F407ZGT6的轮式机器人定位控制位系统的设计方案,在传统的双码盘和陀螺仪的定位系统中加入了激光雷达和DT50激光测距仪作为辅助定位手段。采用STM32F407ZGT6作为本控制系统的核心处理器,并且给出了相关部分的硬件设计和系统总体的软件架构。从测试结果表明,该定位系统完成了轮式机器人的定位,完全达到了预期设计要求。
【关键词】 轮式机器人 STM32F407ZGT6 定位系統 激光雷达 激光测距仪
一、概述
轮式机器人在应用普及的过程中,由于地面环境的复杂性、运动路径不固定等问题使得轮式机器人的定位成为其应用普及的关键性问题。
针对该问题,本文提出了一种基于STM32F407的定位控制系统设计方案,该方案综合了嵌入式控制技术、传感器技术及通讯技术,检测与控制轮式机器人的运动状态,实现了轮式机器人的定位功能。
二、定位系统总体方案设计
在改定位系统中,主控器通过PWM脉宽调制技术控制电机驱动模块,通过定位板模块给出机器人确定的出发位置,通过辅助定位模块对机器人的位置进行必要的坐标纠正。在机器人运行的过程中通过无线通讯模块将机器人实时的位置坐标传到上位机,用户可通过上位机操作界面对机器人进行实时的操作与监测。
整个硬件框图由调试器下载口、电机驱动部分、电源部分、晶振部分、主控板、定位板模块、主控板、辅助定位板模块1和辅助定位板模块2组成。
三、关键部分硬件电路设计
3.1关键电子元器件选型
主控板芯片选型:要满足多路PWM输出口、I/O中断口、多种通讯功能包括CAN通信和串口通信,因此选用ST公司的STM32F407ZGT6。定位板模块芯片选型:要满足多路脉冲信号输入、I/O口、多种通讯功能包括CAN通信和SPI通信,因此选用ST公司的STM32F405RGT6。
辅助定位模块1、2控制器选型:辅助定位与主控是CAN总线组网通讯,控制器芯片选用STM32F103R8T6,既满足实用性又满足经济性。
四、定位系统软件设计
4.1主控板程序流程
主控板通过CAN通信协议与定位板、辅助定位板1、辅助定位板2进行通信,主控每隔5ms收到定位板的坐标值,然后根据需要启动激光雷达或者DT50。激光雷达或DT50根据当前定位板的坐标解算出纠正后的坐标,然后直接进行坐标替换。
4.2定位板程序流程
定位板通过定时器采集码盘的脉冲信号和Spi通信协议读取陀螺仪的数据,然后计算出当前位置坐标。定位板分别通过串口Usart和Can协议将当前坐标值发送给上位机和主控板。
4.3辅助定位板1(激光雷达)和辅助定位板2(DT50)的程序流程
主控板根据需要(由上位机决定)启动激光雷达或激光测距仪(DT50)进行辅助定位,激光雷达或DT50收到指令后根据车子当前坐标和测出障碍物的距离来计算正确位置坐标,然后将坐标发送给定位板进行数据替换。
五、实验测试
让机器人从测试场地任意位置出发,分别设定机器人应到位置坐标,然后实测机器人的实际坐标,然后比较两者的差异,实验数据见表1。
表1测试数据表明该定位系统已经达到很高的定位精度,完成了机器人的定位功能。
六、结语
该轮式机器人定位系统可以很好地满足机器人的定位精度,不再受限于地面环境因素的影响,对于机器人的普及应用起到很重要的作用。