摘要:移动机器人的运动控制主要是完成移动机器人的运动平台,提供一种移动机器人的控制方式。本文通过对移动机器人的研究,实现了基于渡越时间法的超声波测距模块设计,为机器人提供简单方便的障碍物距离检测。本文主要完成对主控板控制器软件设计、电机驱动控制器软件设计和超声波测距软件的设计,使开发系统能够服务于移动机器人研究的通用开发平台。
关键词:机器人;运动控制;软件设计;超声波测距
中途分类号:TP 9 文献标识码:B
0 引言
随着计算机、网络、机械电子、信息、自动化以及人工智能等技术的飞速发展,移动机器人的研究进入了一个崭新的阶段。同时,太空资源、海洋资源的开发与利用为移动机器人的发展提供了广阔的空间。目前,智能移动机器人,无人自主车等领域的研究进入了应用的阶段,随着研究的深入,对移动机器人的自主导航能力,动态避障策略,避障时间等方面提出了更高的要求。地面智能机器人路径规划,是行驶在复杂,动态自然环境中的全自主机器人系统的重要环节,而地面智能机器人全地域全自主技术的研究,是当今国内外学术界面临的挑战性问题。
智能移动机器人是一类能够通过传感器感知环境和自身状态,实现在有障碍物的环境中面向目标自主运动,从而完成一定功能的机器人系统。移动机器人技术研究综合了路径规划、导航定位、路径跟踪与运动控制等技术。涉及到包括距离探测、视频采集、温湿度以及声光等多种外部传感器,作为移动机器人的输入信息。移动机器人的运动控制主要是完成移动机器人的运动平台,提供一种移动机器人的控制方式。性能良好的移动机器人运动控制系统是移动机器人运行的基础,能够服务于移动机器人研究的通用开发平台。
移动机器人技术研究综合了多学科领域的知识,关键技术可分为:路径规划、导航定位、路径跟踪与运动控制技术。路径规划又可分为全局和局部路径规划。全局路径规划是根据移动机器人总体任务进行路径规划,将总体路径任务分解,并建立全局地形数据库;局部路径规划是根据全局规划分解的子任务,结合移动机器人当前状态信息,实时规划可行路径;导航定位技术确定移动机器人在全局地图中的位置,并实时得到机器人与路径跟踪的相对位置关系,其关键技术是多传感器信息处理与数据融合技术。路径跟踪与运动控制技术的任务是控制移动机器人跟踪局部规划给出的路径,结合导航定位系统得到机器人本身状态信息与道路信息,完成航向和速度控制。移动机器人的路径规划、导航控制以及路径跟踪与运动控制技术是相互关联的,任何一个系统的不完善都会导致整体性能的下降。
1主控板软件设计
主控板硬件完成模块管理、设备通讯及机器人定位脉冲检测等内容。在实际应用中,主控板硬件还负责超声波测距的软件管理。
主控板硬件中只有主控板控制器需要进行软件设计。主控板控制器TMS320LF2407A的主要任务是超声波测距的软件设计管理和其他一些基本设置内容,包括电机码盘的正交编码脉冲检测。初始选定TMS320LF2407A作为主控板控制器是考虑到此控制系统可以作为以后机器人应用的平台,可以在TMS320LF2407A里嵌入实时系统,提升系统性能,方便接口开发。
主控板控制器的软件设计内容包括模块初始化、串口通讯、正交编码脉冲检测和超声波测距软件。这里介绍模块初始化串口通讯和正交编码脉冲检测等内容。图1主控板控制器程序流程图。
图1主控板控制器程序流程图
复位向量地址为程序入口,然后程序进行初始化。初始化内容包括扩展方式、溢出方式、DARAM、倍频、JTAG等基本配置。另外还有使用的相关I/O的设置、程序使用相关定时器的设置、程序使用相关中断的设置和串口通讯的相关设置。这些配置都是控制器使用的基本配置流程。初始化之后会开启相关的中断程序,随后进入超声波测距程序,并一直循环。中断服务程序处于就绪状态,一旦有中断发生,中断服务程序立即执行。
在TMS320LF2407A的所有程序中,需要对其串口的数据发送和接收程序做说明。异步通信使用三条线(地线、发送线、接收线)连接采用RS 232格式的终端。发送各位依次为一个起始位、l~8个数据位、可选的一个奇偶校验位、1~2个停止位。因此串口通讯能够传输的最大的数据单位为8位,即一个字节。在设计中控制器和各终端会有各种类型的数据交流,如整形数据和浮点数据,因此需要对串口发送和接收的数据进行数据转换。
四个字节的单精度浮点数的数据传输,因为串口每次最多只能传输一个字节,所以只需要把每个四字节浮点数的存储数据转换成字节形式发送即可,设计中采用强制转换的方式完成。数据接收的时候也可以采取同样的处理方式,反向转换即可。另外在数据转换上也可选择共用体来实现,共用体的实质和上面讲述的类型转换是一样的,只是共用体的各个数据类型占用的存储空间是共同的,对于这个存储空间,共用体定义的任何结构类型变量都可以调用。上位机里的串口数据处理采用的是这种方法,十分方便。
对于正交编码脉冲的检测,TMS320LF2407A具有独立的正交编码脉冲单元,只要对单元寄存器进行简单设置即可得到机器人驱动轮的运行方向和距离参数。TMS320LF2407A将这些数据通过串口发送到上位机,由上位机建模,对数据加以处理后得到机器人的位姿信息。
2 电机驱动软件设计
电机驱动软件完成电机的驱动控制和闭环调速。驱动控制使用的是电机驱动主控芯片STCl2C4052AD的片内PWM外设单元,生成的PWM信号经过电机驱动芯片驱动电机,可以通过调节PWM占空比来调节加载在电机上24VDC电压的占空比,从而调节电机转速。PWM占空比由片内8位的PWM控制寄存器进行控制,该寄存器取值范围为0-255,分别代表PWM信号占空比从l到0的连续变化。同时STCl2C4052AD接收电机光电码盘的脉冲信号,利用片内时钟计算出电机运行速度,通过速度控制算法完成电机的闭环调速。
电机驱动及闭环调速软件算法流程图如图2所示。
图2电机驱动控制器程序流程图
如上图所示,程序开始后进行初始化,初始化包括程序使用相关变量定义、10ms定时器0、定时器l及串口、脉冲计数用外中断0、看门狗等寄存器的设置和电机状态参数(刹车、速度)等的初始化。然后进入循环状态,循环过程中更新看门狗寄存器的相关标志位。速度检测和闭环调速程序分别在外中断0和定时器0中完成。中断服务程序也就包含了外中断0、定时器0以及串口中断服务程序。
外中断0是电机光电码盘的脉冲检测外设,所有电机光电码盘的脉冲都会引起外中断0的中断。码盘脉冲测速的原理是计算STCl2C4052AD单位定时时间内的脉冲数目,因此外中断0的中断服务程序的内容就是对脉冲计数。而上位机设定的目标电机转速也会被转换为此单位定时时间内的脉冲数目。可以定义一个全局变量,每次进入外中断0的中断将该变量加1即可。另外为防止程序干扰,应该对计数值加以修正,如小于0的时候等于0,大于某一设定值的时候等于某一设定值等。
3 超声波测距软件设计
设计中的超声波测距软件利用了常用超声波测距的渡越时间法。渡越时间法的工作原理为发射超声波的同时开始计时,接收到超声波后停止计时,记录超声波的传输时间为t,那么超声波测距模块和障碍物的距离为s由下式表示。
S=v*t/2
其中v为超声波在空气中的传播速度。由下式表示。
其中,T为空气的华氏温度。
在常温下,超声波的传输速度随温度变化并不太大,而且超声波的传输时间都为毫秒级,因此影响不是很大。不过也可以为超声波测距模块添加一个温度校正模块,检测环境温度,再在主控板控制器计算超声波速度时进行修正。现在市场已有集成温度检测器件,也很方便。
超声波测距的主要流程为发射超声波以后,如果有反射超声波信号返回,则由外中断0接收计算距离。在超声波信号发射的同时打开定时器3,定时时间为最大超声波测量距离所需的传输时间,如果在定时器3中断的时候还没有外中断0中断事件发生,即没有反射超声波信号返回,那么在进入定时器3中断的时候关闭超声波返回中断和超声波传输时间定时器l,进行下一次的超声波测距循环。程序流程图如图3所示。
图3 超声波测距程序流程图
外中断0接收到超声波测距信号返回,则进入外中断0服务程序进行测距程序处理。若没有超声波信号返回则将发生定时器3的定时中断,说明等待超时,设定测距范围内无障碍物。两种情况都将引发等待标志位的改变,程序跳出等待状态,更改工作超声波测距模块,进行下一个超声波模块的测距处理。
外中断0和定时器0的程序流程图如图4所示。
图4 外中断0和定时器3程序流程图
图中A为外中断0程序流程图。进入中断服务程序表示有超声波信号返回。程序开始关闭所有系统的可屏蔽中断和测距使用外设,读取定时器l计数值,计算障碍物距离。更改程序循环标志,然后中断服务程序返回。B为定时器3的程序流程图。进入中断服务程序表示测距范围内无障碍物,因此只用关闭系统的可屏蔽中断和测距使用外设,直接更改程序循环标志,退出中断服务程序即可。设置定时器1不产生中断,而设置定时器1为定时最大值也不会发生定时器l中断。因此不必写定时器1的中断服务程序。
4 结论
本主控板控制器协调上位机和各模块的工作,软件设计中详细讲述串口传输中的数据类型处理问题。利用单片机PWM外设生成脉冲宽度调制信号驱动电机,并通过光电码盘实现电机的闭环调速。超声波测距模块已经有广泛的应用,超声波测距模块软件程序采用通用的渡越时间法完成距离的测量,并通过模拟开关实现多超声波测距模块的分时工作。