APP下载

ROS平台下多轴机器人PVT运动控制研究*

2017-11-30平雪良仇恒坦杨子豪

组合机床与自动化加工技术 2017年11期
关键词:样条插值导数

张 颖,平雪良,仇恒坦,杨子豪

(江南大学 机械工程学院 江苏省食品先进制造装备技术重点实验室,江苏 无锡 214122)

ROS平台下多轴机器人PVT运动控制研究*

张 颖,平雪良,仇恒坦,杨子豪

(江南大学 机械工程学院 江苏省食品先进制造装备技术重点实验室,江苏 无锡 214122)

针对传统机器人控制系统大多面向特定对象,移植性差,代码复用率低,提出采用开源机器人控制系统ROS为平台,研究运动控制实现。通过研究PVT控制模式的规划算法,提出了在开源机器人操作系统ROS平台下建立机器人运动学模型并设计控制结构载入该算法、构建PVT运动控制功能模块以替代传统运动控制器的部分功能。该控制模块具有开源、可扩展、可移植的特点,有效提高控制系统开发效率,节约控制系统的开发成本。该控制方案在工业6自由度串联机器人上得到了验证,表明该方案有效可行,具有良好的稳定性,可代替传统运动控制器。

PVT运动控制;开源机器人操作系统ROS;工业机器人

0 引言

机器人技术是一门综合了多学科的高新技术。近年随着科学技术的不断发展,机器人在自动化和智能化方面取得了显著的提高,已经渗透到各行各业。由于机器人系统的复杂性和任务的多样性给机器人的程序编写工作带来了诸多困难。以往,基于各自独立的系统平台和软件架构,即便相同的算法在不同机器人间移植也要耗费大量劳动。ROS,Robot Operating System[1-2]是近年来国际上正在迅速发展的一种开源机器人操作系统开发平台。通过提供统一接口,点对点松耦合通讯方式使得代码重用和模块化设计变得更加简便,可显著提高机器人控制系统应用开发速度,降低开发成本。

针对传统控制系统复用率低和移植性差的不足,本文研究ROS系统下控制系统实现原理,在ROS平台下构建PVT[3-4]运动控制模式的实时运动控制模块,以替代传统的运动控制器功能,实现由PC直接控制机器人的一种低成本、可扩展的开源机器人控制模块。

1 ROS简介

ROS 起源于斯坦福大学与willow garage 公司的个人机器人计划的STAIR 项目[5],ROS 提供一些标准的操作系统服务,如硬件抽象描述、底层驱动程序管理、程序间消息传递、程序发行包管理等,也提供一些工具程序和库,用于获取、建立、编写和运用多机整合的程序。

2 PVT算法实现原理

机器人的规划算法分为两部分:一个是针对笛卡尔空间的路径规划算法,一个是针对关节空间变量的轨迹规划算法即精插补算法。路径规划主要研究如何在笛卡尔空间规划出一条合理的连续路径。而轨迹规划主要研究已有路径与时间的函数,规划出每个路径点的速度和加速度等。由于笛卡尔空间位姿和关节空间变量不是连续对应的,因此通常情况下轨迹规划是在关节空间下进行,主要研究关节变量与时间的函数,保证其一阶二阶导数的连续可导,从而避免速度加速度的突变,以免造成对电机的冲击。

在对关节空间变量进行轨迹规划时,大量的工作是关于关节角度变量的插值运算,研究关节空间轨迹的插值运算,采用三次埃尔米特样条函数插值。关节空间变量插值的目的是保证关节空间角度和角速度的连续性,同时保证其平稳运行和加速度不发生突变。转化成数学问题为根据指定的边界条件研究生成经过各个轨迹点且二次连续可导的函数。这种插值不仅要求节点处的函数值相等,还要求其对应的高阶导数相等,其插值多项式称之为埃尔米特插值多项式[6]。三次埃尔米特样条曲线插值根据初始条件不同分为两种:一种是已知型值点处的函数约束和一阶导数约束,求解埃尔米特样条函数;另一种是已知型值点处的函数约束和二阶导数约束,求解埃尔米特样条函数。

本文研究的轨迹规划插值算法的数据来源于高层运动规划的关节信息,根据关节空间轨迹的角度值和角速度值,求解中间插值点的角度值和角速度值,即已知边界两端节点处函数值及其一阶导数,求取中间型值点的函数和一阶导数。具体可用下述五个步骤实现样条曲线的插值。

2.1 在[0,1]区间上带一阶导数的插值

定义:设在区间[a,b]上给定一分割变量△,将区间分成a=x0

(1)

一阶导数为:

(2)

将y0、y1、y0′、y1′这4个条件代入,解得4个系数,代入式(1)整理得:

一阶导数为:

(3)

令:

(4)

则三次多项式方程可写成:

(5)

(6)

2.2 推广至在区间[xi-1,xi]上带一阶导数的插值

假设在区间[xi-1,xi](i=1,2,3,…,n)上,已知当x=xi-1和x=xi时的函数值为yi-1,yi,其一阶导数为mi-1,mi,为方便计算,首先对区间进行转换,令:

(7)

其中:

hi=xi-xi-1,i=1,2,3,…,n

(8)

则有:

(9)

参照式(5)得出第i段曲线的表达式为:

yi(x)=yi-1F0(u)+yiF1(u)+hi[mi-1G0(u)+miG1(u)]

(10)

用矩阵表达:

(11)

2.3 在小区间[xi-1,xi]上利用连续性条件

为计算出yi″(x),可利用相邻两区间端点处的二阶导数连续的条件,即:

yi″(xi)=y″i+1(xi)i=1,2,…,n-1

(12)

对式(10)求二阶导数,得到:

(13)

其中:

(14)

那么针对第i段区间末端(u=1),有:

(15)

针对第i+1段区间起点(u=0),有:

(16)

以上相邻两区间在x=xi处二阶导数连续,则式(15)和式(16)相等,即:

(17)

整理得:

(18)

令:

(19)

则式(18)可改写为:

λimi-1+2mi+uimi+1=ci(i=1,2,…,n-1)

(20)

上式可看成是关于m0,m1,…mn这n+1个未知量的线性方程组,方程的个数为n-1,因此不能唯一确定mi,需要两个限制条件。

2.4 利用大区间[X0,Xn]端点条件

通常情况下在首末端点处x=x0,x=xn的导数是已知的,现设为m0,mn,则式(20)方程组第一个方程为:

2m1+u1m2=c1-λ1m0

(21)

第n-1个方程组为:

λn-1mn-2+2mn-1=cn-1-un-1mn

(22)

则式(20)就转化为关于n-1个未知量的线性方程组,从而可求出唯一解。

2.5 关于n-1个未知量线性方程组的求解

将式(20)写成矩阵形式:

(23)

上式的系数为三对角矩阵,已知m0和mn,可用“追赶法”求解。求出所有mi后,分段埃尔米特曲线可由式(11)确定,由此得出整个区间内样条曲线方程表达式:

y(x)=y(xi) (i=1,2,…,n)

(24)

3 控制系统总体结构

3.1 控制系统结构

一般具有实时系统程序的运动控制模块对机器人的控制有很好的效果,但对CPU性能、编程技巧等有很高的要求,具体实现则更加困难。而非实时程序控制则无法保证结果的时间节点,也无法及时对程序内部及外界做出反应。机器人上层程序诸多模块任务多且复杂,若要保证自身在规定时间内的实时效果,必须分配大量的系统资源,难免降低其他任务执行效率,但系统资源有限且预留部分资源给底层控制模块。因此,本文结合ROS和Linux系统底层设计了图1所示的运动控制功能模块结构,预留PVT控制接口,实现控制。

图1 运动控制功能模块结构

上图所示为ROS平台上遵循ros_control标准的运动控制模块架构,图中实时运动控制模块由控制模块管理器调度,载入和切换由不同算法实现的各个运动控制算法模块。图2所示为控制模块在管理器中的运行过程,根据时间和运行状态的不同可分为四个过程:init()、starting()、update()、stopping()。

图2 控制模块运行状态

3.2 ROS下PVT控制策略

运动控制模块是机器人控制系统最底层模块,直接和机器人硬件伺服系统通讯,是对路径规划模块任务的具体实施者。在ROS平台上开发运动控制模块可统一采用ros_control标准框架,本文结合自主研发的基于EtherCat[7]总线的机器人硬件环境开发底层运动控制模块如图3所示。

图3 运动控制模块

运动控制模块负责系统最重要的底层PID控制和样条曲线插补,运动控制模块的实现需借助通用机器人描述(URDF,Unified Robot Description Format)[8]所蕴含的机器人运动学信息,在调用URDF之前必须对URDF进行简化,剔除与插补、PID无关的关节信息如形状、大小、惯性等以降低代码的冗余度,保留关节配置信息。URDF文件以XML文本文件的格式描述机器人模型。机器人的机械结构主要包括连杆和关节,URDF文件中标签之间的内容描述连杆包括质量特性、外观形状和碰撞属性在内的基本参数,标签间的内容描述连接两个连杆的关节的参数[9]。

实验所用的机器人如图4所示,构建的URDF文件可通过rviz进行加载显示,同时使用ros提供的tf[10]工具可以方便查看各个连杆坐标系,各连杆坐标系在rviz中显示如图5所示。

图4 实验所用六自由度工业机器人 图5 通过rivz显示各连杆坐标系

3.3 ROS平台下PVT控制验证

基于ROS开发的PVT控制功能模块与ROS平台下PID算法结合实现机器人本体关节空间轨迹实时有效控制。通过使用EtherCAT总线开发的驱动模块对上述控制模块进行验证。在空间中任意选择一个点,运行程序使机器人运行到目标位置处,通过ros下rviz显示工具可以看到末端坐标系的轨迹如图6所示。

图6 rviz下机器人末端轨迹显示

运动过程中通过ROS提供的rxplot工具实时监控各个关节变量。如图7所示。图中表示机器人各个关节的位置、速度随时间的变化。

从图中可以看到机器人在运行过程中各关节的位置和速度变化连续平滑。PVT控制模式能够提供位置、速度对时间的约束,保证系统运行的稳定和平滑。为多轴机器人运动控制奠定了基础。

(a)机器人各关节角度随时间的变化

(b)机器人各关节角速度随时间的变化图7 关节空间轨迹实时运动轨迹

4 结束语

基于ROS平台的实时运动控制模块不仅适用于本文所应用六自由度关节机器人,也可适用于其他类型关节型机器人。由实验的关节空间角度变量和角速度变量的时间轨迹来看:在ROS系统下使用PVT控制模块运动控制效果连续平滑,满足控制要求,机器人运行平稳,可以取代运动控制器的作用,具有开源、低成本、可扩展等特点,为后续研究和开发打下了基础。

[1] Quigley M, Conley K, Gerkey B, et al. ROS: an open-source Robot Operating System [C] //ICRA workshop on open source software,2009, 3(3.2): 5.

[2] Kerr J, Nickels K. Robot operating systems: Bridging the gap between human and robot[C]//System Theory(SSST), 2012 44th Southeastern Symposium on. IEEE,2012:99-104.

[3] 邓黎明, 赵现朝, 齐臣坤, 等. 开放式步行机器人实时控制系统研究[J]. 机械设计与研究, 2014,30(3):29-33,41.

[4] 林立明, 于东, 胡毅, 等. 一种嵌入式总线运动控制器的实时系统设计[J]. 中国机械工程, 2013, 24(4): 494-499.

[5] 舒志兵,严彩忠. PVT插补及位置伺服变加减速处理[J]. 电气应用,2007(4):86-89.

[6] 谢进, 檀结庆, 李声锋. 有理三次 Hermite 插值样条及其逼近性质[J]. 工程数学学报, 2011,28(3): 385-392.

[7] 刘艳强,王健,单春荣. 基于EtherCAT的多轴运动控制器研究[J]. 制造技术与机床,2008(6):100-103.

[8] 曹正万,平雪良,陈盛龙,等. 基于ROS的机器人模型构建方法研究[J]. 组合机床与自动化加工技术,2015(8):51-54.

[9] 钱伟. 基于ROS的移动操作机械臂底层规划及运动仿真[D].哈尔滨:哈尔滨工业大学,2015.

[10] Foote T.tf: The Transform Library[A]. Woburn, MA. 2013. Technologies for Practical Robot Applications (TePRA), 2013 IEEE International Conference on.

ResearchonMulti-axisRobotPVTMotionControlBasedonROS

ZHANG Ying, PING Xue-liang, QIU Heng-tan, YANG Zi-hao

(Jiangsu Province Key Laboratory of Advanced Food Manufacturing Equipment and Technology,School of Mechanical Engineering,Jiangnan University, Wuxi Jiangsu 214122,China)

Traditional robot control system is mostly for specific objects. Due to the poor portability and low rate of the code reusability, A motion control implementation based on robot operating system ROS was proposed. Research on the trajectory planning of PVT algorithm, a PVT motion control module based on ROS is designed to replace some parts function of traditional motion controller, thereby reducing the development cost of the control system and improving the reusability of the code. The experimental results indicate that the control system has good stability and can take part of the traditional motion controller.

PVT motion control; robot operating system (ROS); serial robot

1001-2265(2017)11-0057-04

10.13462/j.cnki.mmtamt.2017.11.015

2016-12-15;

2017-01-17

国家自然科学基金项目(61305016)

张颖(1992—),女,江苏连云港人,江南大学硕士研究生,研究方向为基于ros的机器人控制系统的实现,(E-mail)1542005571@qq.com。

TH659;TG68

A

(编辑李秀敏)

猜你喜欢

样条插值导数
滑动式Lagrange与Chebyshev插值方法对BDS精密星历内插及其精度分析
解导数题的几种构造妙招
对流-扩散方程数值解的四次B样条方法
基于pade逼近的重心有理混合插值新方法
混合重叠网格插值方法的改进及应用
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
关于导数解法
导数在圆锥曲线中的应用
基于节点最优分布B样条的火箭弹开舱点时间估算方法
基于混合并行的Kriging插值算法研究