基于SMP开放式机器人控制系统及其轨迹算法模块的研究 |
2012-11-09 09:54 作者:赵辉 陈永明 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网11月9日文】据《硅谷》杂志2012年第17期刊文称,介绍一种基于SMP技术的纯软件开放式机器人控制系统。通过对6自由度工业机器人的轨迹规划流程分析,设计轨迹算法模块。并以空间直线插补过程为例,验证轨迹算法模块与机器人控制系统结合的有效性。
0引言
目前,机器人运动控制系统的控制器大多采用专用的微处理器及专用的主板,其控制算法采用专用的编程语言,并固化在EPROM中【1】。这样的系统缺乏开放性,不便于系统的维护和功能扩充。而开放式机器人运动控制系统的主要思想【2-3】是:利用开放性的计算机软硬件资源,为控制器扩展创造条件;采用标准的操作系统和控制语言,改变各种专用机器人语言并存且互不兼容的局面;采用标准的总线结构和模块化设计,使系统结构更为紧凑,便于安装与维护,提高系统的可靠性;利用网络通讯,实现资源共享或远程通讯,提高系统的柔性。
本文基于SMP纯软件开放式运动控制技术,针对机器人轨迹规划的特点,构建了相应的轨迹算法模块并融合到控制软件中。实验表明,所开发的机器人控制系统具有空间直线插补、平面圆弧插补、空间圆弧插补的功能,且运行稳定,内核升级方便。
1机器人控制系统
SMP技术是美国SoftServoSystems公司推出的一种纯软件开放式运动控制技术。该控制系统主要功能全部由软件实现,减少了对硬件的需求。应用SoftServoSystems公司提供的MDK(MotionDevelopmentKit)软件包,用户可基于SMP控制内核开发自己的控制产品和界面功能。
本文选用SMP-850内核作为机器人的运动控制平台,FPA-200适配卡作为通讯平台,松下MINAS-A4N系列伺服作为机器人的关节驱动装置,以实现对机器人的运动控制。控制系统整体构架如图1所示。
图1控制系统整体构架
1.1SMP软件结构
SMP软件包括三个模块。底层模块包含三个实时引擎:SMP运动引擎、PLC运动引擎、SMP运动译码器。三个引擎相互配合完成伺服控制和PLC相关数据的运算处理;上层模块为Win32子空间,用于处理与伺服控制无关的非实时性操作;中层模块为SMP实时动态链接库(Real-TimeDLL),保证上层模块的应用程序可实时调用和读取底层模块的运动引擎数据和系统状态信息。
1.2硬件平台
SMP技术为纯软件运动控制技术,所有的运动控制运算和PLC逻辑运算都由SMP内核完成,硬件平台只完成伺服数据和I/O信号的传输。控制系统硬件包括:一台工控机、一台显示器、六套松下MINAS-A4N系列伺服驱动器与电机、一块FPA-200实时通讯模块和若干辅助设备。整体的控制系统架构设计如图2所示。
图2控制系统硬件结构模型
2轨迹算法模块的建立
SMP运动控制系统能够实现六轴机器人的基本运动控制,如各关节的点动控制、联动控制、速度控制等,但不包含一些机器人控制特定的模块,如运动学算法(随机器人结构的不同而不同)、插补算法(独立于机器人结构)等,因此,针对机器人实际作业路径要求,相应轨迹规划功能还需完善。SMP为开发者提供了针对C/C++、VisualBasic或VisualStudio的函数库及程序源代码,用户可以应用上述工具,研发适合自己作业要求的功能模块。本文针对轨迹规划模块的开发,介绍了使用VisualBasic6.0开发机器人控制系统应用程序的方法,将轨迹规划数学模型采用VB语言描述,通过VB中动态链接库DLL文件建立轨迹算法模块,以实现与机器人控制系统很好的融合在一起,从而实现更多的功能。
2.1机器人运动轨迹规划流程
为实现机器人按照特定的轨迹运动,需要对其进行轨迹规划,在控制系统中添加轨迹算法模块【4】。本文采用笛卡尔空间轨迹规划方法,其生成的值是关节坐标量,由于控制对象是关节机器人,因此需要通过反复求解逆运动学方程,将机器人末端执行器的位姿转换为各关节的坐标量,具体规划步骤如下:
1)由示教得到几个关键路径点(对六自由度机器人而言,每个点得到的是6个关节角度值),通过机器人正运动学正解得出各点处末端执行器在笛卡尔空间中所表示的位姿值;
2)按照轨迹算法进行插补,形成笛卡尔空间里各插补点末端执行器的位姿值;
3)对路径点进行逆运动学反解,得出机器人可以识别的关节空间坐标量。
2.2轨迹算法模块的建立过程
VB中建立DLL文件的过程如下【5】:
1)新建类模块(*.cls)。
①运动学算法模块Denso608.dll的主体是类模块Denso608_Cls,内部包含有两个主函数可供外部进程调用:正运动学解函数、逆运动学解函数。
②轨迹规划算法模块Pi608.dll的主体是类模块Pi608_Cls,内部包含有三个主函数可供外部进程调用:空间直线插补、平面圆弧插补、空间圆弧插补。
2)编写程序代码。
3)编译生成DLL文件。
3轨迹算法模块与控制系统的融合
轨迹算法模块建立后,将其封装在DLL文件中,然后,在声明部分中添加相应的声明语句,即可在VB程序中进行具体调用,实现与控制系统的融合。该模块的声明语句如下:
PublicDenso608_ObjAsNewDenso608_Cls
PublicPi608_ObjAsNewPi608_cls
之后就能在外部进程中顺利调用DLL文件的内部函数了,如:
CallDenso608_Obj.TnoapCalu(theta,TooLen,Tnoap)
CallPi608_Obj.LinePi(Pa,Pb,PiCount,Pi)
3.1实例
在本文研究的机器人控制系统中,示教功能模块是其最重要的模块之一,而轨迹算法则在示教操作中得到了很大的体现:在示教模式下,记录机器人关键点处末端执行器位姿的过程中,系统将根据需要调用相关的轨迹算法模块,实时计算出所需要的机器人运动轨迹,并保存该轨迹以用于之后的示教再现过程。现以空间直线插补为例进行说明,程序流程如下:
4结论
在融合了轨迹算法模块的机器人控制系统平台上,进行试验,测试机器人整机的工作性能。实验平台如图4所示。在添加轨迹算法模块后,可以执行空间直线、圆弧等动作,且运行平稳性高。实验表明,所设计轨迹算法模块与控制系统能够充分融合。
(a)工控机与显示器(b)伺服驱动系统与机械本体
图4实验平台
参考文献:
[1]周才学、李卫平、李强,开放式机器人通用控制系统[J].机器人,1998,20(1):75-79.
[2]WillamE.Ford.Whatisanopenarchitecturerobotcontroller[J].IEEEinternationalsymposiumonintelligentcontrol.Columbus,Ohio,US,1994:16-18.
[3]胡鹏,开放式机器人控制系统研究与实现[D].武汉科技大学,2006.
[4]卓扬娃,通用六轴机器人轨迹规划算法研究与实现[D].厦门大学,2010:47-48.
[5]沈炜、杨世锡,VisualBasic编程从基础到实践[M]..北京:电子工业出版社,2005.
作者简介:
赵辉(1987-),女,河北唐山人,硕士研究生,主要从事数控技术、智能仪器技术等方面的研究。
|
|
|
|
【对“基于SMP开放式机器人控制系统及其轨迹算法模块的研究”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|