APP下载

基于Arm-Linux的模块化控制系统开发

2018-01-18杨文祥陈富林

自动化与仪表 2017年1期
关键词:位姿串口轨迹

杨文祥,陈富林

(南京航空航天大学 机电学院,南京 210000)

机器人的控制系统作为机器人的大脑,是决定机器人性能的主要因素,主要包括硬件系统和软件系统[1]。近几年,欧美国家都在开发开放式机器人控制器[2]。这类控制系统是基于模块化的,采用的是标准的总线结构,利用网络进行通讯。针对机器人控制器的研究已经由硬件过渡到软件、由具体控制器过渡到通用开放式体系结构、由单独控制过渡到多机协调控制。在开放式控制器体系结构研究方面,有2种基本结构:一种是基于硬件层次划分的结构;另一种是基于功能划分的结构。后者是控制器体系结构的研究和发展方向[3-4]。

随着计算机技术的变革,嵌入式系统及其应用作为当前工业机器人运动控制研究的一个重要方向已越来越为人熟知。在工业机器的控制发展中,随着嵌入式控制器越来越多地被用于工业控制中,越来越多的厂家也开始采用嵌入式处理器作为工业机器人控制器的主控制器。国内机器人控制器的研究与国外相比,还存在较大的差距。国内的嵌入式系统控制起步较晚,目前还没有成熟应用。传统的工业机器人系统,控制器多采用工业控制计算机(IPC),由于体积庞大、运行中不宜受振动、功耗高等原因,已开始被最近几年急速发展的嵌入式系统(embedded system)所取代[5]。本文则继承模块化思想开发嵌入式控制系统,为现场投用奠定基础。

1 机器人控制系统总体架构设计

控制系统总体架构决定了一个系统的实用性和可靠性,决定了系统的稳定性和拓展性。本文设计的机器人控制系统有人机交互模块、文档数据库模块、动画演示模块、轨迹规划模块和串口通讯模块等,各模块分别实现诸多功能,有效提高了控制系统的实用性,如图1所示。

人机交互模块以友好的图形化界面呈现给操作用户,是用户和控制系统交互的直接唯一手段,也是控制系统中的核心模块,提供诸多机器人的基本操作功能。文档管理模块提供文件操作和数据库管理。动画演示模块则是将机器人模型以三维虚拟实体以屏幕为媒介展现给操作用户,具有直观性、便捷性等特点。轨迹规划模块则是内部集成模块,是用户无法看到的底层模块之一。串口通信模块支持RS485通信格式,是另一个底层模块。

图1 控制系统功能模块Fig.1 Control system function module

2 码垛机器人运动模型

四自由度码垛机器人具有腰部回转、水平横移、垂直升降和腕部旋转这4个自由度,各自由度之间两两独立。为了分析控制系统的可靠性和稳定性,需要对机器人建立运动学模型,也为之后的动画演示中的虚拟模型奠定演示基础。

通常用D-H模型[6]建立坐标系对机器人进行运动学分析。考虑到装配误差和加工误差,垂直中心和水平中心之间会有偏移。综合以上因素,机器人的D-H参数如表1所示。

表1 机器人连杆D-H参数Tab.1 D-H parameters of robot connecting rod

机器人末端执行器在基坐标系中的位姿相对应的齐次变换矩阵为

根据给定的 θR、θS、Dv、DL、m 和 n 等参数可以确定末端执行器具体位姿。

3 机器人控制系统图形界面开发

图形界面(GUI)为用户提供了良好的交互界面,直观而方便。目前,市场上使用较多的界面设计软件有 MiniGUI、OpenGUI、MicroWindows 和 Qt。而Qt凭借其跨平台、集成C++类、支持2D/3D渲染和高度的模块化成为本课题的首选。

五大模块为固定模块,其余模块添加需要借助工具栏中的“功能模块”和“IO功能”协调控制。“功能模块”实际上就是打开用户编写与调试完成后的应用模块,如果是界面应用则会将之插入人机交互模块的末端。“IO功能”则在系统内部提供8路输出和8路输入,每一路提供了输入、输出、控制等基本选项。1个功能模块可以对应多个IO功能。

3.1 串口通信模块

串口通信模块是控制系统底层传输的实现模块,本文采用RS485通讯接口,能支持主从式线路控制,即1台主机对应多个机器人从机。RS485通讯作为通讯协议的一种,沿承了Modbus协议。Modbus通讯协议有ASCII和RTU 2种模式。RTU模式将发送数据的每一个字节视作2个十六进制进行发送,具有高效的传输速率和稳定性。

本文采用Linux系统的串口资源实现所需的串口功能。程序使用open函数以访问文件的方式打开串口。

串口打开之后,进行相应初始化,就可以调用按照通讯帧格式进行封装的串口通讯模块发送和接收数据。

3.2 人机交互模块

人机交互模块是整个控制系统的核心组成部分,具有手动示教功能、自动轨迹功能、参数设置功能和I/O控制功能。每一个功能都对应一个图形界面,方便用户操作和控制机器人。

3.2.1 手动控制界面

手动控制界面分为示教核心部分、基本功能部分和拓展部分三大板块。示教核心部分主要实现了关节坐标和直角坐标的切换功能,“参考点”和“记录”用于动态设置参考点,“目标位置”用于输入坐标绝对增量值;基本功能部分实现了上电、复位、回零和停止等基本机器人控制功能;拓展功能部分真正意义上实现了逐点调试和记录示教的类似示教盒的功能。手动控制界面如图2所示。

图2 手动控制界面Fig.2 Manual control interface

用户可以通过示教核心部分对机器人的一个位姿进行调试,如果满意则可以通过“+示教点”按钮提交该位姿,待所有位姿提交结束,可以借由“示教再现”和“示教归位”观看机器人位姿的连续变化。示教再现实现了机器人位姿按提交顺序先后的运动变化,示教归位则相反。

3.2.2 自动轨迹界面

自动轨迹界面同手动控制界面一样也是控制系统的核心组成部分,该模块和手动控制模块类似,有所区别就是该模块嵌入了三维动画模块。自动控制界面如图3所示。

图3 自动轨迹界面Fig.3 Automatically track interface

自动控制模块添加了当前坐标显示,用于显示当前末端抓手相对于基坐标系的位置,其余功能和手动控制模块类似。该模块和手动控制模块中的位姿数据都将保存在数据库中,并与之同步。

3.3 文档数据模块

控制系统应当提供文件操作以支持系统外的编程数据和数据库操作以支持系统在线编程,方便示教点和轨迹点的保存和管理。Qt为数据库访问提供的QtSql模块实现了数据库和Qt应用程序的无缝集成,同时为开发人员提供了一套与平台具体所用数据库均无关的调用接口。使用SQL语言对自动轨迹界面进行数据库补充开发,如图4所示。

图4 自动轨迹数据库Fig.4 Automatically track database

自动控制数据库界面抬头部分分别对应机器人的各个关节,左侧数字则代表录入的关节位姿顺序,中间的数值则代表各关节运动的绝对增量值。下面部分则提供了数据库的添加、删除和提交功能,这些功能等同于之前介绍的相应功能。至于手动控制数据库则雷同,在此不作赘述。

3.4 动画演示模块

动画演示模块是整个控制系统的核心组成模块,主要实现同步播放机器人运动轨迹的功能。通过位置交互接口模块,读取伺服驱动器中描述编码器数值的寄存器以获得机器人每时刻的位置。然后,控制系统会将机器人位姿以图像动画的形式播放出来。本文借助OpenGL实现动画这一功能。OpenGL[7]应用程序编程接口(API),很接近底层硬件,使得使用者无需考虑硬件细节便可直接编写属于用户个人的图形程序。

图3中柱图表示被控对象的工作范围,当运动超出此工作范围时,会警示操作者。本文将实现好的动画演示模块和自动轨迹模块集成在一起,为了更加方便用户观察,还设置了只要机器人位姿发生变化控制系统就将交互界面切换到动画演示界面的机制。

3.5 轨迹规划模块

轨迹规划模块负责对给定的示教点和轨迹点所形成的空间轨迹进行轨迹规划和插补,以使得机器人能够更为快速准确地达到期望位姿,提高控制系统的可靠性和精确性。轨迹规划分为笛卡尔空间轨迹规划和关节空间轨迹规划。对一般机器人而言,更加关注的是末端执行器在空间的运动轨迹,即采用笛卡尔空间轨迹描述的末端执行器的路径。为了保证机械末端抓手运动平滑,本文采用速度对时间的三次多项式轨迹规划。图5给出了末端执行器期望位移 s(t)-速度 v(t)-加速度 a(t)曲线。

图5 末端期望路径曲线Fig.5 End expected path curve

由图5可以看出,机器人末端空间直线段运动有加速、匀速、和减速3个阶段,给出如下速度表达式:

经过计算,可以获得末端执行器的坐标表达式:

4 机器人控制系统测试

针对四自由度的码垛机器人对控制系统进行测试(测试平台为ARM),这里只对自由轨迹模块进行测试,根据码垛机器人的参数可获得末端执行器初始坐标为(0,-700,500),单位为 mm。

根据图4给出运动轨迹中4个点的运动坐标如表2所示。通过测试可以知道该控制系统基本上能将坐标误差控制在1.5 mm以内,大致符合码垛机器人的特性所需要的精度要求。

表2 坐标对比Tab.2 Coordinates contrast

5 结语

针对当今机器人控制系统结构体系的演化,本文所实现的控制系统符合嵌入式和模块化的潮流趋势,在四自由度码垛机器人上取得了一定成效,保证了稳定性和可靠性,精确性具有良好体现。其模块化的设计思想能大大缩短开发周期,为之后的模块组建提供了良好的开发环境。本文的创新点就是实现了机器人工作状态的动画展示,将反馈的位姿状态信息直接呈现给用户,能实现非现场监控等实际需求。其次,还提供了机器人工作轨迹的数据库管理,方便用户调试和管理。而IO功能的拓展则实现了生产线之间的同步运作。最为关键的则是提供了硬件无关和软件无关的模块动态加载方案,真正意义上实现了控制系统的拓展性和裁剪性。

虽然作者针对控制系统的开发做了大量研究工作,并取得了些许成效,但是仍有不足,需在今后的研究中完善动画演示模块以支持外部导入模型、支持硬件拓展等功能,进一步提高控制系统的兼容性和实用性。

[1]范永,谭民.机器人控制器现状和展望[J].机器人,1999,21(1):75-80.

[2]潘炼东.开放式机器人控制器及相关技术研究[D].武汉:华中科技大学,2007.

[3]Faina A,Bellas F,Souto D,et al.Towards an evolutionary design of modular robots for industry[C]//La Palma,Canary Islands,Spain:4th International Work-conference on the Interplay between Natural and Artificial Computation,2011.

[4]Murata S,Yoshida E,Kamimura A,et al.M-TRAN:self-reconfigurable modular robotic system[J].IEEE/ASME Transactions on Mechatronics,2002,7(4):431-441.

[5]MATSUO Takayuki,ISHII Kazuo.Neural Oscillator Based Motion Control System for Snake-like Robot[C]//Symposium on Underwater Technology and Workshop on Scientific Use of Submarine Cables and Related Technologies,Tokyo,2007:397-402.

[6]施文龙.六轴工业机器人控制系统的研究与实现[D].武汉:武汉科技大学,2015.

[7]王晟.基于OPENGL的码垛机器人离线编程仿真系统[D].武汉:武汉科技大学,2013.

猜你喜欢

位姿串口轨迹
解析几何中的轨迹方程的常用求法
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
无人机动平台着陆惯性/视觉位姿歧义校正算法
轨迹
轨迹
船舶清理机器人定位基准位姿测量技术研究
基于EM9000工控板高性能双串口通信模型设计与实现
优化ORB 特征的视觉SLAM
基于单目视觉的工件位姿六自由度测量方法研究
轨迹