前言
工业机器人的运动学控制对系统的实时性具有很高的要求,目前主流的工业机器人都是采用专门定制的运动控制卡,加上实时操作系统,这样既保证了数据的实时传输又能保证运动控制的精确执行,大大提升了整个系统的稳定性,从而提升机器人的性能。另外的一些机器人产品是采用工业PC搭载高速总线的伺服控制系统,其控制PC采用的是实时操作系统,如vxworks或者windows+RTX实时扩展平台保证软件运行环境的实时性,通过运动规划和运动控制单元可以实现对总线式伺服驱动器的控制,从而达到对机器人的精确控制。采用实时操作系统来搭建机器人控制系统是一个很好的解决方案,然而,其代价也是昂贵的,由于实时操作系统的成本高,这很大程度上限制了国内工业机器人产业化发展。采用通用的操作系统消息处理机制的缺陷是不能满足工业机器人在运行过程中高稳定性和响应快速性的要求,控制系统的上下位机之间进行频繁地通信,实时性必然会跟不上运动控制的要求,从而大大地降低了工业机器人产业化的可能。此外,模块化、可重构的工业机器人新型机构设计、基于实时系统和高速通信总线的高性能开放式控制系统、在高速、负载工作环境下的工业机器人优化设计、高精度工业机器人的运动规划和伺服控制、基于三维虚拟仿真和工业机器人生产线集成技术、复杂环境下机器人动力学控制和工业机器人故障远程诊断与修复技术等也是机器人关键功能部件中重点解决的核心问题。
多信息融合的机器人智能感知与人机交互智能感知与人机交互是机器人与环境、机器人与人进行融合、交互的基础。机器人感知识别技术在高效计算与精确识别方面有着巨大的发展空间,未来智能感知与认知主要是在传感器技术发展的基础上,进行大量数据有效分类、归纳,并提取可靠有效信息,凝聚成反映人—机—环境交互关系的特征数据网,并结合人工智能的发展及高效能计算能力的实现,为机器人的智能化发展提供基础保障。
运动控制器是智能机器人的执行机构,对机器人的平稳运行起着重要作用。随着新的智能控制算法的不断涌现,智能机器人正向着智能化方向发展,MATLAB提供了一个高性能的数值计算和图形显示的数学和工程计算软件环境。这种易于使用的MATLAB环境,是由数值分析、矩阵计算、信号处理和图形绘制等组成。在这种环境下,问题的解答表达方式几乎和他们的数学表达方式完全一样,不像传统的编程那么复杂。
1、控制系统结构概述
智能机器人运动控制系统是整个智能机器人的基础,可靠的运动控制系统是智能机器人实验设计的前提。设计智能智能机器人控制系统构成图如图1所示。
图1 智能机器人控制系统构成图
移动机器人控制系统的主要内容是生成机器人的运动控制信息,控制机器人的运动。轨迹跟踪是移动机器人需要完成的任务之一,其典型工作过程为机器人运动控制器根据规划好的路径生成机器人的运动控制信息,控制机器人完成相应的移动,完成规划路径的跟踪。运动控制过程中用到的输入信息包括底层超声波测距模块提供的障碍物距离信息,电机码盘提供的机器人的位置、速度信息,以及全景摄像机、单目视觉摄像机采集并经过处理后的视频信息等。
智能机器人的车载处理器和上位机作为处理中枢,接收激光、超声波等测距模块提供的障碍物距离信息,全景、双目视觉提供的视觉信息。结合上位机中的预设功能,通过控制驱动电机控制机器人完成相应动作。
2、主控板软件设计
主控板硬件完成模块管理、设备通讯及机器人定位脉冲检测等内容。在实际应用中,主控板硬件还负责超声波测距的软件管理,因为功能为超声波测距软件设计。
主控板硬件中只有主控板控制器需要进行软件设计。主控板控制器TMS320LF2407A的主要任务是超声波测距的软件设计管理,余下基本都是一些基本设置内容,包括电机码盘的正交编码脉冲检测。初始选定TMS320LF2407A作为主控板控制器是考虑到此控制系统可以作为以后机器人应用的平台,可以在TMS320LF2407A里嵌入实时系统,提升系统性能,方便接口开发。
主控板控制器的软件设计内容包括模块初始化、串口通讯、正交编码脉冲检测和超声波测距软件。这里介绍模块初始化串口通讯和正交编码脉冲检测等内容。
图2 主板控制器程序流程图
程序流程图如图2所示,复位向量地址为程序入口。然后程序进行初始化。初始化内容包括扩展方式、溢出方式、DARAM、倍频、JTAG等基本配置。另外还有使用的相关I/0121的设置、程序使用相关定时器的设置、程序使用相关中断的设置和串口通讯的相关设置。这些配置都是控制器使用的基本配置流程。初始化之后会开启相关的中断程序,随后进入超声波测距程序,并一直循环。中断服务程序处于就绪状态,一旦有中断发生,中断服务程序立即执行。
在TMS320LF2407A的所有程序中,需要对其串口的数据发送和接收程序做说明。异步通信使用三条线(地线、发送线、接收线)连接采用RS232格式的终端。发送各位依次为一个起始位、1~8个数据位、可选的一个奇偶校验位、1~2个停止位。因此串口通讯能够传输的最大的数据单位为8位,即一个字节。在设计中控制器和各终端会有各种类型的数据交流,如整形数据和浮点数据,因此需要对串口发送和接收的数据进行数据转换。
考虑四个字节的单精度浮点数的数据传输,因为串口每次最多只能传输一个字节,所以只需要把每个四字节浮点数的存储数据转换成字节形式发送即可,设计中采用强制转换的方式完成。需要注意的地方在于TMS320LF2407A是16位芯片,因此,在TMS320LF2407A中,数据存储均是以16位整形的数据形式存储的,用户对于数据的处理应该都是以16位整形数据为基础的,所以不能将浮点数强制转换成字节数组进行处理。例如对4字节浮点数的发送来说,首先应该将浮点数强制转换为2个整形数。2个整形数的处理方式完全一样,只不过在存储地址上是字节数组的高低位不同。
对于正交编码脉冲的检测,TMS320LF2407A具有独立的正交编码脉冲单元,只要对单元寄存器进行简单设置即可得到机器人驱动轮的运行方向和距离参数。TMS320LF2407A将这些数据通过串口发送到上位机,由上位机建模,对数据加以处理后得到机器人的位姿信息。
3、电机驱动软件设计
电机驱动软件完成电机的驱动控制和闭环调速。驱动控制使用的是电机驱动主控芯片STCl2C4052AD的片内PWM外设单元,生成的PWM信号经过电机驱动芯片驱动电机,可以通过调节PWM占空比来调节加载在电机上24VDC电压的占空比,从而调节电机转速。PWM占空比由片内8位的PWM控制寄存器进行控制,该寄存器取值范围为0,--255,分别代表PWM信号占空比从l到0的连续变化。同时STCl2C4052AD接收电机光电码盘的脉冲信号,利用片内时钟计算出电机运行速度,通过速度控制算法完成电机的闭环调速。
电机驱动及闭环调速软件算法流程图如图3所示。
图3 电机驱动控制器程序流程图
4、结论
智能机器人运动控制系统设计,重点在于运动控制模块的设计,包括软件设计和电机驱动程序的编写。运动控制系统的软件设计主要是对机器人速度和位置的控制,核心是对电机的控制,本论文中选取改进的PID控制算法为了让双电机同步,加入了同步的PID算法,并做了相应的改进,为验证改进效果,又做了改进PID控制算法的仿真与简单PID算法的比较。实验结果表明改进的PID算法能够满足运动控制需求。
更多资讯请关注运动控制频道