随着
人工智能技术、
计算机技术等相关技术的发展,对
智能机器人的研究越来越多。在教育领域,许多院校已在学生中开设了
机器人学方面的有关课程。为了满足
机器人学方面的有关课程教学示范和实验教学的需求,我们研制开发了全方位的轮式
移动机器人,可以作为各种
智能控制方法(包括动态避障、群体协作策略)的良好载体,同时又可以方便的构成网络化的
分布式系统,开展
多智能体的调度、规划等研究。本文全面介绍了这种
移动机器人的
控制系统体系结构,包括传感器、通讯、伺服控制、
软件构成等,并给出了实验结果,证明了系统的可行性。
背景
随着人工智能技术、
计算机技术等相关技术的发展,对智能机器人的研究越来越多。在教育领域,许多院校已在学生中开设了
机器人学方面的有关课程。为了满足
机器人学方面的有关课程教学示范和实验教学的需求,我们研制开发了全方位的轮式
移动机器人,可以作为各种
智能控制方法(包括动态避障、群体协作策略)的良好载体,同时又可以方便的构成网络化的分布式系统,开展
多智能体的调度、规划等研究。本文全面介绍了这种
移动机器人的
控制系统体系结构,包括传感器、通讯、伺服控制、
软件构成等,并给出了实验结果,证明了系统的可行性。
优点与独特性
教学用机器人是一种适合大中专学生的具有开放式特征的实训实验平台,是多种高科技的融合,可以完成电工、电子、单片机、机械设计、传感器、人工智能、机电控制、数字信号处理等许多课程的几百个实训实验。模糊控制、行为控制、人工智能、机器人学、多生命体、
导盲机器人、智能家用电器等学科领域在实训实验中可以都得到更好理解和掌握,从而更好的使学生的综合能力得以提高。
教学机器人的作用主要以展示机械结构、运动特征和功能关系为主,相对于工业机器人,具有它的特殊性:首先,一台教学机器人相当于一个试验平台,要能显示多种运动性能,因此,应用环境广泛,功能多样。其次,其制造加上精度略低于工业机器人,且性价比高。另外,教学机器人体积小,重量轻。对此,专用性强的工业机器人的研制方法不能满足这样的要求。
硬件选择设计
本
机器人控制器采用“主控器+伺服控制器”的形势。伺服控制器负责完成单关节的位置闭环,在机器人控制中,要求运动平稳无超调,所以伺服控制器的运算任务很繁重。主控制器主要完成除伺服控制器所作的位置闭环以外的所有工作,包括
上位机命令接收,机器人状态监视、显示,根据一定的控制算法实现空间轨迹插补以及传感器信息综合处理等工作。所以主控制器的任务也很繁重。
主控制器选择
在移动教学
机器人系统中, 应用
工业计算机作为其
控制系统核心成本高,体积大,功耗大,而采用8位或者16位
单片机,又存在硬件资源有限、运算和处理速度有限的困扰,很难应用模糊控制等智能控制理论。 S3C44B0X是SAMSUNG公司推出的一个基于ARM7TDMI核的低功耗的高性价比的
32位处理器,它可以在60MHZ频率下运行,采用3级
流水线结构 [4] ,处理能力大大超过8/16位的
单片机,接近PC机,可以支持大屏幕的液晶显示,提供功能强大的
图形用户界面,另外基于ARM的控制器可以内嵌
实时操作系统,克服了传统基于单片机的
控制系统的
软件“前后台”形式造成的实时性差的缺点[1][5]。S3C44B0X有8个外部中断,两个带有
握手协议的UART接口,另外具有SPI和I2C接口、RTC和5个16位的PWM控制器、8路10位AD以及LCD控制器等[4]。它丰富的模块很大程度上可以减少控制器的体积,增加
系统的可靠性。
控制系统硬件结构如图1所示(系统中共有3个伺服驱动单元和电机,限于篇幅只画了一个)。包括由S3C44B0X构成的主控制器,由LM629构成的伺服控制部分,通过UART形成的通讯电路、由LMD18200构成的
功率放大电路、直流电机构成的执行机构、传感器电路等。
位置伺服模块
在机器人控制中,以
单片机为核心构成位置闭环或者
半闭环控制系统,不仅外围电路结构复杂,而且
软件中轨迹插补运算比较烦琐,难取得好的效果。而采用
美国国家半导体公司生产的可编程全数字
运动控制芯片LM629可以解决上述问题。它具有32位的位置、速度和加速度
寄存器,内置
PID算法,其参数可以修改;支持实时读取和设定速度、加速度以及位置等运动参数,内置的梯形图发生器能够自动生成
速度曲线,平稳地加速、减速,支持增量式光电码盘的四倍频输入,适用于由正交增量式
光电编码器提供位置反馈的交直流
伺服控制系统,能完成高性能数字运动控制中的实时计算工作(插补周期341微妙),可以方便的与桥式
功率放大电路构成位置或速度
闭环系统。LM629通过
数据总线和
控制总线与主控制器接口,其原理图如图2所示,主控制器将关节转动的角位移、角加速度等命令参数通过总线传递给LM629,LM629在接到S3C44B0X的指令后可以按照设定的控制方式(P、PI、PID)完成位置
闭环控制。它通过500线的增量式码盘的A、B、Z信号构成位置反馈环节。LM629每个伺服周期进行一次位置、速度的检查,如果未达到指定的位置或速度,则继续运动或者加速,将要达到指定位置时会自动的按照设定的加速度进行减速,完成关节空间的位置闭环控制。这样不仅克服了运动超调的现象,而且使得系统加减速时运行平稳。
功率放大模块
系统的功率放大部分以LMD18200为核心。LMD18200是
美国国家半导体公司推出的专用于
直流电动机驱动的H桥组件,同一芯片上集成了四个DMOS管,组成一个标准的H型驱动桥,外接很少的器件就可以完成
直流电机的驱动。它瞬间驱动电流可达6A,正常工作电流可达3A,无“shot-through”电流。LMD18200提供双极性
驱动方式和单极性驱动方式[4]。由于双极性电流波动大,功率损耗较大,所以系统中采用单极性驱动。
具体的接口电路如图2所示(本机器人采用3个全方位正交轮,通过3个轮子配合,机器人可以完成任意方向的运动,限于篇幅图中只画出一个轮子的相关电路),LM629根据
PID控制算法在PWM
引脚输出占空比变化但频率固定的PWM信号,通过
光电隔离加到LMD18200的5脚,这个PWM信号的占空比通过LMD18200可调节电机速度,LM629的DIR脚的高低电平可控制电机的正反转。为了减少功率电源部分对控制器部分的影响,这两个信号的连接都通过了
光电隔离器件TLP521,如图2所示。
引脚2、10接
直流电机电枢,正转时电流的方向从引脚2流到引脚10;反转时相反。此电路驱动功率大,稳定性好,实现方便,体积小,安全可靠。
通讯模块
通讯模块使用S3C44B0X的UART1连接一个无线通讯模块,主要从
上位机接收世界坐标系的位置、速度指令。由于S3C44B0X的UART可以在高达115200
波特率下正常工作,并且具有独特的多字节的FIFO结构,当采用
中断方式接受数据时只有满足触发深度时才会产生数据可用的中断,很大程度上可以减少处理器响应中断的次数,提高了处理器运行效率。UART硬件上具有监视“溢出错误、奇偶错误、帧错误”等错误的功能,并且提供相应的
中断向量。实时性好,
软件编写方便。
传感器模块
机器人上安装的4个超声传感器模块用来探测周围2米内的障碍物信息。有单独的处理器进行数据处理,通过
总线接口挂接在S3C44B0X的总线上。液晶模块主要用来显示系统的一些运行状态,也是通过
总线接口连接在主控制器上。在此限于篇幅不做赘述。
可靠性低功耗
为了增加
系统的可靠性,减少功率电路对
弱电的干扰,系统中使用2组不共地的电源。S3C44B0X
最小系统使用的3.3V电源和
光电编码器使用的5V电源为1组,24V的功率电源以及LMD18200用的5伏电源为一组。两个电源之间的信号传输通过
光电隔离器件TLP521隔离。编码器信号以及LM629的
时钟信号都经过
施密特触发器整形。另外使用了S3C44B0X本身的WDT模块。
为了减少系统的功耗,主要采取了以下措施(1):主控制器将未使用的外围模块如SPI、
定时器1、I2C等关闭;(2):主控制器控制机器人在到达指定位置而没有新的任务(通过串口接收)之前控制LMD18200进入刹车状态,这时LMD18200脚4置逻辑高电平、脚5置逻辑低电平,H桥中所有晶体管关断,每个输出端只有约1.5mA的偏流;(3):主控制执行完(2)中的步骤后进入空闲模式,其各个
寄存器的值可以保存,当有新的中断产生时将唤醒主控制器进入正常工作状态。
为了增加
系统的可靠性,利用LMD18200的保护功能设计了系统过流过热的保护。LMD18200内部具有过流保护的测量电路,在LMD18200的8脚输出电流取样信号,典型值为377 µA/A[4]。接一个对地电阻R2,通过电阻上的电压和给定的电压比较来监测输出过流情况。LMD18200提供温度报警信号,芯片结
温达145℃时,LMD18200的9脚变为低电平。这些保护信号通过
光电隔离以后传输给S3C44B0X,实现过热过流的监视。
软件组织
软件平台是基于移植到S3C44B0X的
实时多任务操作系统UC/OS II。它是基于优先级、
抢占式的实时内核,主要提供了
任务管理、
进程调度、任务间通信及
内存管理等功能,具有
源代码公开、可移植性好等特点,采用全占先多任务机制,可支持56 个用户任务,其中断管理功能提供了深达255层的
中断嵌套。通过uC/ OS II 进行多任务的管理,任务处于休眠、等待(挂起) 、就绪、运行、中断5种状态之一[5]。它避免了传统的前后台方式下实时性差、任务混乱及多任务调试困难等缺点[1,7]。此系统中有如下4个用户任务,Task1:接收
上位机命令;Task2:轨迹规划;Task3:系统状态监视,Task4系统状态发送和显示。任务的优先级是依次降低的。任务之间通过邮箱完成信息的交换与资源的共享。主控制器通过Task1接收
上位机的位置和速度指令。由于
上位机发送指令是随机的,而下位机除了接受上位机的指令外还要处理其它的事情,为了保证运动过程中命令的不丢失,采取了两种措施:首先将该任务设置为优先级最高的用户任务,另外主处理器允许UART1的接收中断,并根据指令的长度将接收缓冲区的触发深度设置为12
字节。(根据需要,此处
上位机发送给下位机的指令每帧长度为12
字节,S3C44B0X的UART接收触发深度可以
软件编程设置为4、8、12、16字节)。当
上位机不发送指令时,该任务处于
挂起状态,当上位机发送12
字节命令时,将激发UART中断。在该
中断服务程序中唤醒Task1进入就绪态。由于它具有最高的优先级,所以可以马上执行,
从接收缓冲区中接收
上位机的指令。这样避免了单个
字节就激发中断而导致主处理器频繁的响应中断的情况和没有实时
操作系统的前后台调度方式中命令丢失的情况。Task2根据传感器提供的机器人的当前位置信息和障碍物信息以及接收到的
上位机指令进行世界坐标系中的总体任务规划、
机器人运动学逆解,生成下一个节拍每个关节应该转动的角位移、转动的角速度,然后通过总线写到相应的LM629的寄存器中,这个任务的优先级仅低于Task1,运行周期100毫秒。Task3主要处理传感器的信息,运行周期100毫秒。包括通过LM629的
状态寄存器获得当前编码器的信息,再经过运动学计算得到机器人当前位置信息,通过超声传感器获得当前机器人周围障碍物的信息,通过LMD18200获得的
功率放大器的过热过流信息。另外下位机的一些运行状态,如当前位置、障碍物信息等也需要发送给
上位机同时送液晶模块显示,这个由Task4来完成,这个任务具有最低的优先级,运行周期300毫秒。
系统的
软件在
ADS1.2下调试通过。由于ARM7TDMI中没有MMU(
内存管理单元),所以其
操作系统和
用户程序要编译在一起,最后生成一个文件。在这一点上不同于在DOS或Windows下的概念,它的
操作系统和用户程序是分开的,而且可以由多个
应用程序同时存在于
主机中。另外在
ADS1.2下可以使用
c语言进行
软件开发,并且可以使用数学库,缩短了软件开发周期。
实验结果
采用上述的软硬件设计方法,我们设计了用于检验各类控制算法的教学机器人平台,并在上边做了系列的实验,图4是
上位机控制机器人从世界坐标系的(0,0)点运动到(3m ,2m),然后以该点为圆心,以1.5m为半径,开始圆周运动,圆周运动的起点和终点为(1.5m,2m)。图中虚线是理想轨迹,黑线是实际轨迹。
移动机器人的实际轨迹偏离理想轨迹的最大误差约10cm,但是达到了位置精度的要求。误差主要面是由于轮子对的地面的相对滑动以及机械精度引起。该实验证明了系统的可行性。
结束语
ARM处理器的丰富的硬件资源以及高速
流水线结构给各种智能控制算法提供了可能;另外采用μc/osⅡ
操作系统,增强了系统的实时性,避免了前后台方式下任务调度困难,实时性差的缺点。总之,采用32位的ARM处理器和
实时操作系统μc/osⅡ来构成机器人的控制器,具有体积小,功耗低,实时性好、处理速度远远超过
单片机等优点,可以取得很好的效果。
未来发展
教学机器人在现代实验教学中发挥的作用是显而易见的。在不断学习和摸索过程中,教学机器人可以在如下几个方面进行功能扩展。
( 1) 当今的教学机器人大多只有运动和控制系统而无感觉系统,因此传感器的加入无疑将大大提高教学机器人的智能化程度。
( 2) 教学机器人可以与
游戏手柄、
PLC以及诸多
输入输出设备相连接,但在这方面的一系列相关设备做得还并不完善 ,还应加强这方面软件和硬件的研发工作。
( 3) 教学机器人的手爪是单一的,且只有开和关及旋转几个动作,如果把手爪做成可调换的,将大大增加手爪的功能,扩大教学机器人实验教学领域。
教学机器人的扩展方向还有很多,包括软件、硬件、相关外设等等,都有待于我们做进一步的探索和研究。发展后的教学机器人不但可以进行实验教学,还可以进行更多的工业机器人工作模拟,从而为更好地培养机器人方面基础人才做更多的贡献。
总之,全面自动化无疑已成为未来大多数产业发展的总趋势,计算机和机器人也日趋成为社会发展的两大支柱。在大力发展计算机技术的同时,绝不应该忽视机器人技术的不断完善与提高。努力发展机器人技术,努力培养机器人创新、操作人才已成当务之急。 可以预见,机器人在我国的发展前景将十分广阔!