基于CAN 总线结构的服务机器人模块化双臂系统构建

2013-12-14 09:04李宪华郭永存郭帅朱涛
机床与液压 2013年17期
关键词:双臂手臂指令

李宪华,郭永存,郭帅,朱涛

(1. 安徽理工大学机械工程学院,安徽淮南232001;2. 上海大学机电工程与自动化学院,上海200444;3. 中国电子科技集团公司第八研究所,安徽淮南232001)

微软公司董事会主席比尔·盖茨曾预言:机器人即将重复个人计算机产业的崛起之路,成为人们日常生活中的一部分,实现“家家都有机器人”[1]。如果想让机器人能够在一定程度上代替人类来完成某些日常工作,在其结构和功能上应尽量以人作为参照对象进行设计[2-3],服务机器人进行作业的最直接手段就是通过手臂完成取、放、拧紧、开关等动作,手臂是服务机器人完成任务操作的最终实现工具,因此对机器人手臂进行合理的设计变得尤为重要。目前几乎大部分工业机械臂的控制系统采用专用计算机、专门机器人语言、专用操作系统与专用处理器,各子系统耦合比较大,仅以示教盒作为人机接口。此种封闭式控制系统存在开放性差、软件独立性差和扩展性差等问题,大大限制了系统的可扩展性和灵活性[4-6]。因此对于家用服务机器人应采用质量轻且系统代码开放的手臂系统,以便于机器人系统的深入研究开发、扩展和多传感器的集成。

1 手臂硬件系统构建

基于以上原因,课题组采用德国Amtec 公司生产的PowerCube 可重构机器人模块构成机器人的双臂。该模块不仅具备机械系统的可重构性,而且每个控制系统亦可单独工作,主要特点有: (1)质量较轻。模块集马达、减速器、控制电路、码盘、驱动器于一体,大大减小了本身质量。PRL120 型号的模块马达功率为250 W,输出额定转矩达216 N·m,而质量仅为3.6 kg。PRL60 为最小模块,输出功率为40 W,输出额定转矩达4.5 N·m,关节模块和手爪模块如图1 所示。(2)系统开放,便于开发。模块代码都为开放的,提供基本的通信协议和DLL 动态链接库,便于在不同操作系统编程平台下进行信息融合。该服务机器人手臂上位机操作系统为WindowsXP,开发环境为VC++。 (3)组装简单,便于组成各种构形。机器人模块的一个重要特点就是可重构性,将具有不同尺寸和功能特征、拥有一定装配关系的关节模块与连杆以积木的方式搭建起来就构了一个机械臂。根据需要不同,可以组成不同构型的机器人,以便适应任务的多样性。PowerCube 模块通信方式、驱动和控制都是相同的,仅需将它们用中间杆件连接起来便可。当需要构建不同的机器人手臂时,只需改变连接件即可。

图1 PowerCube 模块

每个模块都为中空轴结构,因此连线非常简捷。每个模块有7 根电缆线,包括2 根马达电源线、2 根控制电源线、3 根控制数据线。电源都为24 V,使用不同颜色的线材,电气接口如图2 所示。本文所构建机器人双臂一共使用了14 个模块,单个手臂7 个模块,其中6 个模块用于构成手臂,1 个模块为手爪。首先串联每个手臂的7 个模块,然后并联两个手臂的两组模块,如图3 所示。

图2 PowerCube 模块电气接口

PowerCube 模块可供使用的通讯协议有3 种,分别为CAN、RS232、ProfiBus,文中采用的通讯协议为CAN,波特率为1 000 kB/s。普通计算机没有CAN 通讯接口,但具有USB 接口,因此为了实现模块与计算机间的通信,必须完成CAN 通信协议与USB 通信协议之间的转换,采用一个CAN 转USB 转换器,可以实现这种功能,如图4 所示。

图3 机器人双臂模块连接方式

图4 CAN-USB 协议转换

为了连接14 个关节模块,必须设计模块间连杆,根据模块机械接口的物理尺寸,采用铝合金材料,两个手臂所需连杆为14 个。每个连杆模块内部留有孔,这样可以避免手臂在外部走线。由于手臂的机械部分与电气部分均采用串联方式连接,所以连接模块与连杆的同时,必须连接电气部分。模块端部均布有12个螺孔用以模块间的连接,模块本身具有物理零位,因此进行连接时,要使模块运动至机械零位,以便于手臂的物理校零。完成手臂装配后,将其安装于服务机器人本体上,如图5 所示。

图5 模块化双臂构建过程

2 手臂软件系统设计

每个模块都具有独立的控制器和驱动器,因此分布式控制系统[7-8]比较适合用来对手臂进行控制。分布式控制系统是指由多台计算机分别控制生产过程中多个控制回路,同时又可集中获取数据、集中管理和集中控制的自动控制系统。手臂的控制系统由三层组成,分别是路径规划层、轨迹规划层和关节控制层。第一层指定作业过程的路径;第二层规划每个关节的时基变量,用以产生运动指令,通过CAN 总线将指令分发给关节控制器;第三层接收上位计算机指令,完成关节的运动控制。各关节控制器独立进行关节的运动控制,并向上位计算机发送各关节的状态信息。在实际的程序编写中,采用VC + + 的多线程技术[9-10],将软件系统分为两个线程,主线程主要完成手臂路径、轨迹规划与指令帧生成,并向各个关节发送运动指令,同时接收关节的位置信息,决定下一动作指令帧的发送。辅线程接收关节运行的状态信息,包括关节电流信息和错误信息等。电流的大小能够反映手臂负载的大小,电流超出某一设定值时,便可认为手臂抓取重力已超过其额定负载,此时控制系统发出错误信号,并立刻停止手臂的动作;错误信息包含关节出现的错误情况,有代码与之相对应,通过查询错误出处便可做出相应处理。而辅线程则将各种信息进行处理,然后把处理的结果返回给轨迹规划层,用以决定是否向各关节控制器继续发送运动指令。文中采用的软件方案如图6 所示。

图6 手臂软件系统方案

3 实验

在完成了机器人双臂的软硬件系统构建后,对机器人的运动学进行了解算,完成了手臂正逆运动学计算及轨迹规划等问题[11-12]。为了验证双臂硬件系统构建的可靠性及软件系统的正确性及稳定性,设计了机器人开瓶倒水动作。位于机器人腰部位置的三目视觉传感器获得水瓶的位置,然后统一至机器人基础坐标系下,而后经过逆解计算得到右臂的各关节坐标,手臂按照规划好的路径到达水瓶上方,最后垂直向下运动至抓瓶点,关闭手爪完成抓取动作,而后双臂协调进行开瓶动作,将水瓶拧开后,右臂倒水,左臂放下瓶盖,最后右臂将水瓶置于桌上,双臂同时放下,回到初始位姿。实验结果如图7 所示,从而完成了对手臂软硬件系统的验证。

图7 双臂运动测试实验

4 结论

采用PowerCube 可重构机器人模块共14 个,基于CAN 总线构建了服务机器人的双臂硬件平台,依据手臂功能模块化的特点,采用分布式控制系统方案,设计了机器人双臂的控制系统,采用多线程技术设计了双臂软件系统,最后通过实验验证了CAN 总线结构下双臂软硬件系统构建的正确性及稳性定。

【1】GATES Bill.A Robot in Every Home[J].Scientific American,2007(1):58 -65.

【2】熊光明,赵涛. 服务机器人发展综述及若干问题探讨[J].机床与液压,2007,35(3):212 -215.

【3】金周英,白英.我国机器人发展的政策研究报告[J].机器人技术与应用,2009(2):1 -7.

【4】ALBU-SCHAFFER A,HADDADIN S,OTT Ch. The DLR Lightweight Robot:Design and Control Concepts for Robots in Human Environments[J]. Industial Robot,2007,34(5):376 -385.

【5】FAROOQ M,WANG Daobo. Implementation of a New PC Based Controller for a PUMA Robot[J]. Journal of Zhejiang University Science A,2007,8(12):1962 -1970.

【6】李一青.基于视觉的机器人双臂控制系统及其导航的研究[D].上海:上海大学,2009.

【7】杨斌,苏剑波.仿人机器人的分布式控制系统设计[J].控制工程,2010,17(1):102 -105.

【8】CAO Qixin,ZHANG Zhen,GU Jiajun. A Distributed Control and Simulation System for Dual-arm Mobile Robot[C]//IEEE International Symposium on Computational Intelligence in Robotics and Automation,Jacksonville,USA,2007:20 -23.

【9】王育坚.Visual C++面向对象编程教程[M].北京:清华大学出版社,2007.

【10】杨昀.基于视觉的家用服务机器人自主导航系统研究与设计[D].上海:上海大学,2010.

【11】LI Xianhua,TAN Shili,HUANG Wuxin. A Service Robot with Lightweight Arms and a Trinocular Vision Sensor[J].Key Engineering Materials,2010,439:396 -400.

【12】LI Xianhua,TAN Shili,HUANG Wuxin. LSPB Trajectory Planning:Design for the Modular Robot Arm Application[C]// International Conference on Information Engineering and Computer Science,Wuhan,China,2009:1652 -1655.

猜你喜欢
双臂手臂指令
手臂上的抓痕
我在街上走
ARINC661显控指令快速验证方法
杀毒软件中指令虚拟机的脆弱性分析
双臂掘进钻车
章鱼长长的手臂是用来做什么的
抱手臂的娃娃
完美的手臂
我在街上走
一种基于滑窗的余度指令判别算法