Technical Articles
基于ARM核处理器的机器人手臂控制系统
Date:2013-10-12
Source:九游会J9
引言
近年来,随着MEMS及相关技术的发展,微机器人领域已越来越来受人关注。但由于零件的尺寸很小,微机器人组件的装配需要很高的精确度,一般的装配方法无法满足要求。本文介绍了一个可进行微零件装配工作的机器人手臂控制系统的控制方法。
1 系统结构
考虑到多机器人手臂的使用,整个机器人控制系统由上位机与多个下位机组成。下位机即是手臂控制器,每个下位机控制一个机械手臂的伸缩运动。上位机即为控制终端,通过不同配件组装方式生成每个手臂的位置数据,并通过数据线传输给各个下位机,由下位机控制手臂到达目标位置并进行目标操作。整个系统的结构框图如图1所示。
1.1 机械结构 手臂控制器的机械结构由直流减速电机、手臂、螺杆、减速齿轮、角度传感器组成。机器人手臂与机械螺杆相连,螺杆与直流减速电机通过减速齿轮耦合,各个手臂控制器通过控制电机转动来达到控制手臂位置的目的。同时,手臂控制器具有手动调节旋柄与螺杆相连,需要时可通过手动调节,改变手臂位置。
1.2 电路结构 手臂控制器由使用ARM内核的PHLIPS LPC2138系列微处理器控制,电路结构主要分为主控制模块、测量反馈模块和通信模块。通过主控制模块控制电机状态,通过测量反馈模块得到螺杆移动距离和位置,在达到规定位置后停止电机。而通信模块则完成与上位机之间的数据交换。
2 电机控制
电机控制由主控制模块和测量反馈模块共同完成。
2.1 主控制模块 主控制器使用PHLIPS LPC2138微处理器,其具有64个引脚,31个双向I/O口,2个8路10们A/D转换器,能够进行电压测量的工作,符合设计要求。电机使用RA-20GM-SD3 型直流减速电机,其减速箱的减速比达到了1/1000,在减速后,电机转速为4.5+/-0.9 rpm,在与1/2减速齿轮组进一步耦合后,螺杆转速为2.25 rpm,在所用螺杆齿距为1mm时,手臂移动述牢为3.75×10-2mm/s。 由于本设计中电机需要正反转动,故选用了桥路驱动芯片TA8409,其具有两个输入口,两个输出口。微处理器通过控制输入电平组合即可控制电机的不同状态,包括正转、反转、刹车减速和停止状态。 它的输出电压与电机工作电压相符,即可直接驱动电机,不用增加放大电路。 2.2 测量反馈模块 角度传感器采用了Midori的CP-2FC,它的机械角度范围为360度无限,传感器把角度变化量转化为电压量并通过电压测量电路反馈回微处理器A/D转换口,通过电压的变化量可计算得到螺杆的移动距离,这样就可以得知手臂位置,并以这个为标准对电机驱动器发送命令。 电压测量电路包含由运算放人器构成的电压跟随电路,它既可隔离电路,又可以完成电压跟随。
3 通信模块
3.1 RS-422通信标准 RS-422标准的数据信号采用差分传输方式,也称作平衡传输,其全称是“平衡电压数字接口电路的电气特性”。 其接收器采用高输入阻抗,发送驱动器有比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从发备之间不能通信,所以RS-422支持点对多的双向通信。 RS-422的最大传输距离为4000英尺(约1219m),最大传输速率为10Mbit/s。 3.2 数据交换功能实现 本系统通信模块采用RS-422标准,线路长度约为200m,故通信的可靠性可得到保证。差分线路驱动器使用AM26LS31芯片,差分接受器使用AM26LS32芯片,微处理器的串行输出口和输入口分别与驱动器输入和接收器输出相连,并使用差分开路自动故障保险终端连接配置。 从而在发送器输出端为高阻状态时保证接受器输入有至少200mV的电压信号,使输出不会出现未知的状态,提高可靠性,完成与上位机间的数据交换工作。另外,考虑到多机器人手臂的应用情况,在手臂控制器中设有拨码开关来设定编号,与上位机的数据交换必须包含该编号,并由此来判断通信时目标控制器的具体位置。
4 软件设计
在控制器上电后,首先读入拨码开关的控制器编号,然后进入等待模式。程序设定了UART中断,当上位机有数据传送过来时,中断发生。此时核对数据包中的控制器编号,若传送编号与小控制器编号相符,则把数据读入,并计算得到电机运行方向和手臂移动距离。在电机运行时,不断读取传感器反馈电压,并进行计算,判断手臂是否接近目标位置和是否进行刹车停车操作。电机停止后,即手臂到达目标位置,此时控制器对上位机回复工作完成(通信时始终附带控制器编号),并再次进入等待状态。 本系统中,可使用两种算法来决定电机的减速停止命令的发送时机。 第一种是刚好是在测量得到手臂到达目标位置之时发送减速停止命令,此算法执行较为简单,但不可避免会存在电机停止时螺杆位置偏离了目标位置的情况。不过工作时手臂移动速度很低,已经可以保证控制精度。第二种算法,即在接近目标位置时进行预测算法,在手臂到达目标位置前发送刹车减速命令,使得螺杆停止位置与目标位置差距更小,此算法虽较为复杂,但精度较第一种更高,在本设计中,我们使用第二种算法从而保证更高的控制精度。 手臂控制器程序是通过不断读取传感器反馈值得到手臂位置的,虽然经过预测算法提高算法精度,但由于传感器本身也有一定的误差,手臂停止位置不免会有偏差,但由于高精度的硬件设计,此误差不会影响机械手臂大多数的工作。
5 结束语
本章设计了一个基于ARM核微处理器的机器人手臂控制系统,对控制器的硬件设计进行了详细的叙述,并给出了系统结构图;介绍了控制软件的设计。由于使用了高减速比的减速箱来调整电机速度并配合了改良的算法,本手臂控制器的定位精度是比较高的。若在此基础上加装可控夹钳,即可完成简单可靠的装配工作。
近年来,随着MEMS及相关技术的发展,微机器人领域已越来越来受人关注。但由于零件的尺寸很小,微机器人组件的装配需要很高的精确度,一般的装配方法无法满足要求。本文介绍了一个可进行微零件装配工作的机器人手臂控制系统的控制方法。
1 系统结构
考虑到多机器人手臂的使用,整个机器人控制系统由上位机与多个下位机组成。下位机即是手臂控制器,每个下位机控制一个机械手臂的伸缩运动。上位机即为控制终端,通过不同配件组装方式生成每个手臂的位置数据,并通过数据线传输给各个下位机,由下位机控制手臂到达目标位置并进行目标操作。整个系统的结构框图如图1所示。
1.2 电路结构 手臂控制器由使用ARM内核的PHLIPS LPC2138系列微处理器控制,电路结构主要分为主控制模块、测量反馈模块和通信模块。通过主控制模块控制电机状态,通过测量反馈模块得到螺杆移动距离和位置,在达到规定位置后停止电机。而通信模块则完成与上位机之间的数据交换。
2 电机控制
电机控制由主控制模块和测量反馈模块共同完成。
2.1 主控制模块 主控制器使用PHLIPS LPC2138微处理器,其具有64个引脚,31个双向I/O口,2个8路10们A/D转换器,能够进行电压测量的工作,符合设计要求。电机使用RA-20GM-SD3 型直流减速电机,其减速箱的减速比达到了1/1000,在减速后,电机转速为4.5+/-0.9 rpm,在与1/2减速齿轮组进一步耦合后,螺杆转速为2.25 rpm,在所用螺杆齿距为1mm时,手臂移动述牢为3.75×10-2mm/s。 由于本设计中电机需要正反转动,故选用了桥路驱动芯片TA8409,其具有两个输入口,两个输出口。微处理器通过控制输入电平组合即可控制电机的不同状态,包括正转、反转、刹车减速和停止状态。 它的输出电压与电机工作电压相符,即可直接驱动电机,不用增加放大电路。 2.2 测量反馈模块 角度传感器采用了Midori的CP-2FC,它的机械角度范围为360度无限,传感器把角度变化量转化为电压量并通过电压测量电路反馈回微处理器A/D转换口,通过电压的变化量可计算得到螺杆的移动距离,这样就可以得知手臂位置,并以这个为标准对电机驱动器发送命令。 电压测量电路包含由运算放人器构成的电压跟随电路,它既可隔离电路,又可以完成电压跟随。
3 通信模块
3.1 RS-422通信标准 RS-422标准的数据信号采用差分传输方式,也称作平衡传输,其全称是“平衡电压数字接口电路的电气特性”。 其接收器采用高输入阻抗,发送驱动器有比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从发备之间不能通信,所以RS-422支持点对多的双向通信。 RS-422的最大传输距离为4000英尺(约1219m),最大传输速率为10Mbit/s。 3.2 数据交换功能实现 本系统通信模块采用RS-422标准,线路长度约为200m,故通信的可靠性可得到保证。差分线路驱动器使用AM26LS31芯片,差分接受器使用AM26LS32芯片,微处理器的串行输出口和输入口分别与驱动器输入和接收器输出相连,并使用差分开路自动故障保险终端连接配置。 从而在发送器输出端为高阻状态时保证接受器输入有至少200mV的电压信号,使输出不会出现未知的状态,提高可靠性,完成与上位机间的数据交换工作。另外,考虑到多机器人手臂的应用情况,在手臂控制器中设有拨码开关来设定编号,与上位机的数据交换必须包含该编号,并由此来判断通信时目标控制器的具体位置。
4 软件设计
在控制器上电后,首先读入拨码开关的控制器编号,然后进入等待模式。程序设定了UART中断,当上位机有数据传送过来时,中断发生。此时核对数据包中的控制器编号,若传送编号与小控制器编号相符,则把数据读入,并计算得到电机运行方向和手臂移动距离。在电机运行时,不断读取传感器反馈电压,并进行计算,判断手臂是否接近目标位置和是否进行刹车停车操作。电机停止后,即手臂到达目标位置,此时控制器对上位机回复工作完成(通信时始终附带控制器编号),并再次进入等待状态。 本系统中,可使用两种算法来决定电机的减速停止命令的发送时机。 第一种是刚好是在测量得到手臂到达目标位置之时发送减速停止命令,此算法执行较为简单,但不可避免会存在电机停止时螺杆位置偏离了目标位置的情况。不过工作时手臂移动速度很低,已经可以保证控制精度。第二种算法,即在接近目标位置时进行预测算法,在手臂到达目标位置前发送刹车减速命令,使得螺杆停止位置与目标位置差距更小,此算法虽较为复杂,但精度较第一种更高,在本设计中,我们使用第二种算法从而保证更高的控制精度。 手臂控制器程序是通过不断读取传感器反馈值得到手臂位置的,虽然经过预测算法提高算法精度,但由于传感器本身也有一定的误差,手臂停止位置不免会有偏差,但由于高精度的硬件设计,此误差不会影响机械手臂大多数的工作。
5 结束语
本章设计了一个基于ARM核微处理器的机器人手臂控制系统,对控制器的硬件设计进行了详细的叙述,并给出了系统结构图;介绍了控制软件的设计。由于使用了高减速比的减速箱来调整电机速度并配合了改良的算法,本手臂控制器的定位精度是比较高的。若在此基础上加装可控夹钳,即可完成简单可靠的装配工作。