基于力/力矩传感器的机器人力控制实验作业系统
0 引言
随着机器人技术的发展,机器人位置控制技术和计算机技术的日趋完善,人们已经不再满足于只让机器人从事象点焊,弧焊,喷漆和搬运等不与环境物体接触的工作任务,而是试图用机器人来完成象装配,浮游物体抓取,边缘跟踪和去毛刺等与环境存在接触的任务。然而由于外部环境和机器人本体的非理想化,无法消除误差的存在,因而纯位置控制方式下的机器人在从事这类工作的时候将不可避免地产生一些不希望的环境接触力,而且这种不希望的接触力往往又是很大的,以至于损坏工件或机械手本身,致使任务无法正常进行。为此,可以将六自由度腕力传感器与机器人结合,组成力控制系统来完成预定作业任务。
1 系统组成
基于力/力矩传感器的力控制系统由六维力/力矩传感器、PC微型计算机、PUMA562机器人等部分组成。其中:机器人采用美国Unimation公司生产的PUMA562型通用可编程工业机器人;主控计算机为一台(Pentium166)PC机,主控计算机是实验系统的核心控制单元,腕力传感器获得的数据通过计算机的并行打印口传给计算机,并由其完成计算机力/力矩的任务,然后根据传感器的力/力矩信息或者按预定的策略,计算产生机器人的运动轨迹,最后,通过与机器人连接的智能串行通讯卡,对机器人进行实时的路径修正。
2 智能串行通讯接口的设计
本系统通过计算机的并行通讯口与腕力传感器进行数据交换,计算出力/力矩等信息后,控制机器人进行作业,由于计算机还要承担与机器人的数据交换等通讯任务,要在极短的时间段里根据复杂的协议完成通讯,给主控计算机带来了巨大的负担。因此,专门设计了智能串行通讯接口卡把机器人与主控计算机通讯的任务分离出来,使得主控计算机只需向串行通讯电路提供修正数据,抛开了复杂的通讯协议,并且在不需要修正时不必传送修正数据,从而提高整个系统的性能。
智能串行通讯接口卡插在主控计算机的I/O扩展槽内,与主控计算机为并行数据传输,并把数据自动传送给机器人。具体如下:
1、接收PUMA机器人的ALTER过程初始化信息块,发送给PUMA机器人初始化应答信息块;
2、接收PUMA机器人的正常修正信息块,检测后传送主控计算机;
3、接收主控计算机路径修正值,进行超限检测,将正确值送给机器人;
4、若在一个修正周期中,主控计算机没有送来修正值,串行通讯电路会正常应答机器人,不作修正;
5、与PUMA机器人通讯时,自动添加协议的内容,自动按照通讯协议接收数据。
利用单片机片内UART电路,经电平转换后与PUMA机器人控制器的ACCESSORY接口,构成标准的RS-232C串行通讯通道。单片机与PC机之间采用74LS373和74LS374组成的双向缓冲八位并行接口,并采用中断和查询相结合的方式控制数据流。这是由于在两者交换数据时,PC机是主动的一方,在PC机需要输入或输出PUMA机器人关节角度数据时,通过对双向缓冲器读或写,将分别向单片机发出INT0或INT1中断请求。另一方面由于所交换的数据是{DATAS}中的16个有效数据字节,故在单片机响应中断后便与PC机之间进行整块数据的发送或接收,在字节间则采用查询方式。
PUMA机器人、通讯电路和PC机三者之间存在数据流速度的协调性问题,这一问题主要是由PC机的运算时间不一定正好为28ms导致的。如果PC机在28ms内没有新的运算结果输出给通讯电路,通讯电路则应按上次结果发送;但如果PC机在28ms内进行了多次运算,而且当某些运算结果具有累加性质时,将导致机器人失控。为了避免后一种情况,通讯电路与PC机之间建立了同步握手关系,即单片机在收到PUMA机器人一组数据后将P1.7置1,而在收到一级PC机数据后将其清0,当PC机查询到该信号为1时便与通讯电路进行一次数据交换。
3 串行通讯软件设计
主控计算机与机器人进行串行通讯的关键在于单片机通讯程序,主要功能包括:
1、接受PUMA机器人的串行通讯数据,并完成"拆包"工作;
2、在接受的同时,向PUMA机器人发送完整的通讯数据,在此期间对欲发送的进行"打包";
3、与计算机之间进行数据块的并行交换;
4、对通讯过程中的错误进行检验和处理,特别是检验法送给PUMA机器人的位置修正量,防止其超限,以保证安全性;
5、过程控制,包括数据协调、通讯结束控制等。
通过以上功能的实现,着重解决了以下问题:
计算机将位置修正量输出到单片机内RAM中缓冲后,再转送给PUMA机器人,故如果在单片机正与PUMA机器人通讯时,计算机用中断方式请求与单片机传输数据,为了保证这两组数据间的完全隔离,特别是防止某组修正量低字节已发给PUMA机器人时计算机传来新数据,导致两次数据间的"混迭",通讯程序中采用了两级缓冲方式,即从计算机传来的数据先进入第一级缓冲区,在向PUMA机器人发送数据前再将整体移入第二级缓冲区,以后便发送第二级缓冲区中的数据,同理,在接收PUMA机器人数据时也采用了两级缓冲方式。
一旦PUMA机器人因故停止通讯,由定时器T0构成的时间监视器将向P1.6发出低电平,迫使单片机复位,该时间长度为65ms。为此每次收到PUMA机器人数据后将定时器T0清零。
由于填充的字节个数不等的原因,串行接收和发送的数据字节数不完全相等,因而串行接收和发送分别由独立的子程序处理,只有两者都完成才结束本周期的通讯。
与计算机进行交换有效数据的INT0和INT1中断服务子程序,两者连起来的执行时间约为380ms,串行接收或发送一个字节(共十位)的时间为502ms,因而不可能漏收每一个PUMA机器人发来的串行字节。
4 结束语
通过本文建立了基于力/力矩腕力传感器的机器人力控制作业实验系统。分析了在实时路径修正基础上设计的通讯接口卡的硬件设计、工作原理,并设计了通讯软件,使主控计算机与PUMA机器人能够顺利地进行数据交换。通过本实验系统可以顺利完成基于力控制的零件装配作业。
随着机器人技术的发展,机器人位置控制技术和计算机技术的日趋完善,人们已经不再满足于只让机器人从事象点焊,弧焊,喷漆和搬运等不与环境物体接触的工作任务,而是试图用机器人来完成象装配,浮游物体抓取,边缘跟踪和去毛刺等与环境存在接触的任务。然而由于外部环境和机器人本体的非理想化,无法消除误差的存在,因而纯位置控制方式下的机器人在从事这类工作的时候将不可避免地产生一些不希望的环境接触力,而且这种不希望的接触力往往又是很大的,以至于损坏工件或机械手本身,致使任务无法正常进行。为此,可以将六自由度腕力传感器与机器人结合,组成力控制系统来完成预定作业任务。
1 系统组成
基于力/力矩传感器的力控制系统由六维力/力矩传感器、PC微型计算机、PUMA562机器人等部分组成。其中:机器人采用美国Unimation公司生产的PUMA562型通用可编程工业机器人;主控计算机为一台(Pentium166)PC机,主控计算机是实验系统的核心控制单元,腕力传感器获得的数据通过计算机的并行打印口传给计算机,并由其完成计算机力/力矩的任务,然后根据传感器的力/力矩信息或者按预定的策略,计算产生机器人的运动轨迹,最后,通过与机器人连接的智能串行通讯卡,对机器人进行实时的路径修正。
2 智能串行通讯接口的设计
本系统通过计算机的并行通讯口与腕力传感器进行数据交换,计算出力/力矩等信息后,控制机器人进行作业,由于计算机还要承担与机器人的数据交换等通讯任务,要在极短的时间段里根据复杂的协议完成通讯,给主控计算机带来了巨大的负担。因此,专门设计了智能串行通讯接口卡把机器人与主控计算机通讯的任务分离出来,使得主控计算机只需向串行通讯电路提供修正数据,抛开了复杂的通讯协议,并且在不需要修正时不必传送修正数据,从而提高整个系统的性能。
智能串行通讯接口卡插在主控计算机的I/O扩展槽内,与主控计算机为并行数据传输,并把数据自动传送给机器人。具体如下:
1、接收PUMA机器人的ALTER过程初始化信息块,发送给PUMA机器人初始化应答信息块;
2、接收PUMA机器人的正常修正信息块,检测后传送主控计算机;
3、接收主控计算机路径修正值,进行超限检测,将正确值送给机器人;
4、若在一个修正周期中,主控计算机没有送来修正值,串行通讯电路会正常应答机器人,不作修正;
5、与PUMA机器人通讯时,自动添加协议的内容,自动按照通讯协议接收数据。
利用单片机片内UART电路,经电平转换后与PUMA机器人控制器的ACCESSORY接口,构成标准的RS-232C串行通讯通道。单片机与PC机之间采用74LS373和74LS374组成的双向缓冲八位并行接口,并采用中断和查询相结合的方式控制数据流。这是由于在两者交换数据时,PC机是主动的一方,在PC机需要输入或输出PUMA机器人关节角度数据时,通过对双向缓冲器读或写,将分别向单片机发出INT0或INT1中断请求。另一方面由于所交换的数据是{DATAS}中的16个有效数据字节,故在单片机响应中断后便与PC机之间进行整块数据的发送或接收,在字节间则采用查询方式。
PUMA机器人、通讯电路和PC机三者之间存在数据流速度的协调性问题,这一问题主要是由PC机的运算时间不一定正好为28ms导致的。如果PC机在28ms内没有新的运算结果输出给通讯电路,通讯电路则应按上次结果发送;但如果PC机在28ms内进行了多次运算,而且当某些运算结果具有累加性质时,将导致机器人失控。为了避免后一种情况,通讯电路与PC机之间建立了同步握手关系,即单片机在收到PUMA机器人一组数据后将P1.7置1,而在收到一级PC机数据后将其清0,当PC机查询到该信号为1时便与通讯电路进行一次数据交换。
3 串行通讯软件设计
主控计算机与机器人进行串行通讯的关键在于单片机通讯程序,主要功能包括:
1、接受PUMA机器人的串行通讯数据,并完成"拆包"工作;
2、在接受的同时,向PUMA机器人发送完整的通讯数据,在此期间对欲发送的进行"打包";
3、与计算机之间进行数据块的并行交换;
4、对通讯过程中的错误进行检验和处理,特别是检验法送给PUMA机器人的位置修正量,防止其超限,以保证安全性;
5、过程控制,包括数据协调、通讯结束控制等。
通过以上功能的实现,着重解决了以下问题:
计算机将位置修正量输出到单片机内RAM中缓冲后,再转送给PUMA机器人,故如果在单片机正与PUMA机器人通讯时,计算机用中断方式请求与单片机传输数据,为了保证这两组数据间的完全隔离,特别是防止某组修正量低字节已发给PUMA机器人时计算机传来新数据,导致两次数据间的"混迭",通讯程序中采用了两级缓冲方式,即从计算机传来的数据先进入第一级缓冲区,在向PUMA机器人发送数据前再将整体移入第二级缓冲区,以后便发送第二级缓冲区中的数据,同理,在接收PUMA机器人数据时也采用了两级缓冲方式。
一旦PUMA机器人因故停止通讯,由定时器T0构成的时间监视器将向P1.6发出低电平,迫使单片机复位,该时间长度为65ms。为此每次收到PUMA机器人数据后将定时器T0清零。
由于填充的字节个数不等的原因,串行接收和发送的数据字节数不完全相等,因而串行接收和发送分别由独立的子程序处理,只有两者都完成才结束本周期的通讯。
与计算机进行交换有效数据的INT0和INT1中断服务子程序,两者连起来的执行时间约为380ms,串行接收或发送一个字节(共十位)的时间为502ms,因而不可能漏收每一个PUMA机器人发来的串行字节。
4 结束语
通过本文建立了基于力/力矩腕力传感器的机器人力控制作业实验系统。分析了在实时路径修正基础上设计的通讯接口卡的硬件设计、工作原理,并设计了通讯软件,使主控计算机与PUMA机器人能够顺利地进行数据交换。通过本实验系统可以顺利完成基于力控制的零件装配作业。
文章版权归西部工控xbgk所有,未经许可不得转载。
上一篇:双目视觉传感器的现场标定技术
下一篇:简化频率比测量的方便电路