论文部分内容阅读
摘要: 介绍一种基于SMP技术的纯软件开放式机器人控制系统。通过对6自由度工业机器人的轨迹规划流程分析,设计轨迹算法模块。并以空间直线插补过程为例,验证轨迹算法模块与机器人控制系统结合的有效性。
关键词: 工业机器人;开放式控制系统;轨迹算法模块
0 引言
目前,机器人运动控制系统的控制器大多采用专用的微处理器及专用的主板,其控制算法采用专用的编程语言,并固化在EPROM中[1]。这样的系统缺乏开放性,不便于系统的维护和功能扩充。而开放式机器人运动控制系统的主要思想[2-3]是:利用开放性的计算机软硬件资源,为控制器扩展创造条件;采用标准的操作系统和控制语言,改变各种专用机器人语言并存且互不兼容的局面;采用标准的总线结构和模块化设计,使系统结构更为紧凑,便于安装与维护,提高系统的可靠性;利用网络通讯,实现资源共享或远程通讯,提高系统的柔性。
本文基于SMP纯软件开放式运动控制技术,针对机器人轨迹规划的特点,构建了相应的轨迹算法模块并融合到控制软件中。实验表明,所开发的机器人控制系统具有空间直线插补、平面圆弧插补、空间圆弧插补的功能,且运行稳定,内核升级方便。
1 机器人控制系统
SMP技术是美国Soft Servo Systems公司推出的一种纯软件开放式运动控制技术。该控制系统主要功能全部由软件实现,减少了对硬件的需求。应用Soft Servo Systems公司提供的MDK(Motion Development Kit)软件包,用户可基于SMP控制内核开发自己的控制产品和界面功能。
本文选用SMP-850内核作为机器人的运动控制平台,FPA-200适配卡作为通讯平台,松下MINAS-A4N系列伺服作为机器人的关节驱动装置,以实现对机器人的运动控制。控制系统整体构架如图1所示。
1.1 SMP软件结构
SMP软件包括三个模块。底层模块包含三个实时引擎:SMP运动引擎、PLC运动引擎、SMP运动译码器。三个引擎相互配合完成伺服控制和PLC相关数据的运算处理;上层模块为Win32子空间,用于处理与伺服控制无关的非实时性操作;中层模块为SMP实时动态链接库(Real-Time DLL),保证上层模块的应用程序可实时调用和读取底层模块的运动引擎数据和系统状态信息。
1.2 硬件平台
SMP技术为纯软件运动控制技术,所有的运动控制运算和PLC逻辑运算都由SMP内核完成,硬件平台只完成伺服数据和I/O信号的传输。控制系统硬件包括:一台工控机、一台显示器、六套松下MINAS-A4N系列伺服驱动器与电机、一块FPA-200实时通讯模块和若干辅助设备。整体的控制系统架构设计如图2所示。
2 轨迹算法模块的建立
SMP运动控制系统能够实现六轴机器人的基本运动控制,如各关节的点动控制、联动控制、速度控制等,但不包含一些机器人控制特定的模块,如运动学算法(随机器人结构的不同而不同)、插补算法(独立于机器人结构)等,因此,针对机器人实际作业路径要求,相应轨迹规划功能还需完善。SMP为开发者提供了针对C/C++、Visual Basic或Visual Studio的函数库及程序源代码,用户可以应用上述工具,研发适合自己作业要求的功能模块。本文针对轨迹规划模块的开发,介绍了使用Visual Basic6.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程序中进行具体调用,实现与控制系统的融合。该模块的声明语句如下:
Public Denso608_Obj As New Denso608_Cls
Public Pi608_Obj As New Pi608_cls
之后就能在外部进程中顺利调用DLL文件的内部函数了,如:
实例:
在本文研究的机器人控制系统中,示教功能模块是其最重要的模块之一,而轨迹算法则在示教操作中得到了很大的体现:在示教模式下,记录机器人关键点处末端执行器位姿的过程中,系统将根据需要调用相关的轨迹算法模块,实时计算出所需要的机器人运动轨迹,并保存该轨迹以用于之后的示教再现过程。现以空间直线插补为例进行说明,程序流程如下:
4 结论
在融合了轨迹算法模块的机器人控制系统平台上,进行试验,测试机器人整机的工作性能。实验平台如图4所示。在添加轨迹算法模块后,可以执行空间直线、圆弧等动作,且运行平稳性高。实验表明,所设计轨迹算法模块与控制系统能够充分融合。
参考文献:
[1]周才学、李卫平、李强,开放式机器人通用控制系统[J].机器人,1998,20(1):75-79.
[2]Willam E.Ford.What is an open architecture robot controller[J].IEEEinternational symposium on intelligent control.Columbus,Ohio,US,1994:16-18.
[3]胡鹏,开放式机器人控制系统研究与实现[D].武汉科技大学,2006.
[4]卓扬娃,通用六轴机器人轨迹规划算法研究与实现[D].厦门大学,2010:47-48.
[5]沈炜、杨世锡,Visual Basic编程从基础到实践[M].北京:电子工业出版社,2005.
关键词: 工业机器人;开放式控制系统;轨迹算法模块
0 引言
目前,机器人运动控制系统的控制器大多采用专用的微处理器及专用的主板,其控制算法采用专用的编程语言,并固化在EPROM中[1]。这样的系统缺乏开放性,不便于系统的维护和功能扩充。而开放式机器人运动控制系统的主要思想[2-3]是:利用开放性的计算机软硬件资源,为控制器扩展创造条件;采用标准的操作系统和控制语言,改变各种专用机器人语言并存且互不兼容的局面;采用标准的总线结构和模块化设计,使系统结构更为紧凑,便于安装与维护,提高系统的可靠性;利用网络通讯,实现资源共享或远程通讯,提高系统的柔性。
本文基于SMP纯软件开放式运动控制技术,针对机器人轨迹规划的特点,构建了相应的轨迹算法模块并融合到控制软件中。实验表明,所开发的机器人控制系统具有空间直线插补、平面圆弧插补、空间圆弧插补的功能,且运行稳定,内核升级方便。
1 机器人控制系统
SMP技术是美国Soft Servo Systems公司推出的一种纯软件开放式运动控制技术。该控制系统主要功能全部由软件实现,减少了对硬件的需求。应用Soft Servo Systems公司提供的MDK(Motion Development Kit)软件包,用户可基于SMP控制内核开发自己的控制产品和界面功能。
本文选用SMP-850内核作为机器人的运动控制平台,FPA-200适配卡作为通讯平台,松下MINAS-A4N系列伺服作为机器人的关节驱动装置,以实现对机器人的运动控制。控制系统整体构架如图1所示。
1.1 SMP软件结构
SMP软件包括三个模块。底层模块包含三个实时引擎:SMP运动引擎、PLC运动引擎、SMP运动译码器。三个引擎相互配合完成伺服控制和PLC相关数据的运算处理;上层模块为Win32子空间,用于处理与伺服控制无关的非实时性操作;中层模块为SMP实时动态链接库(Real-Time DLL),保证上层模块的应用程序可实时调用和读取底层模块的运动引擎数据和系统状态信息。
1.2 硬件平台
SMP技术为纯软件运动控制技术,所有的运动控制运算和PLC逻辑运算都由SMP内核完成,硬件平台只完成伺服数据和I/O信号的传输。控制系统硬件包括:一台工控机、一台显示器、六套松下MINAS-A4N系列伺服驱动器与电机、一块FPA-200实时通讯模块和若干辅助设备。整体的控制系统架构设计如图2所示。
2 轨迹算法模块的建立
SMP运动控制系统能够实现六轴机器人的基本运动控制,如各关节的点动控制、联动控制、速度控制等,但不包含一些机器人控制特定的模块,如运动学算法(随机器人结构的不同而不同)、插补算法(独立于机器人结构)等,因此,针对机器人实际作业路径要求,相应轨迹规划功能还需完善。SMP为开发者提供了针对C/C++、Visual Basic或Visual Studio的函数库及程序源代码,用户可以应用上述工具,研发适合自己作业要求的功能模块。本文针对轨迹规划模块的开发,介绍了使用Visual Basic6.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程序中进行具体调用,实现与控制系统的融合。该模块的声明语句如下:
Public Denso608_Obj As New Denso608_Cls
Public Pi608_Obj As New Pi608_cls
之后就能在外部进程中顺利调用DLL文件的内部函数了,如:
实例:
在本文研究的机器人控制系统中,示教功能模块是其最重要的模块之一,而轨迹算法则在示教操作中得到了很大的体现:在示教模式下,记录机器人关键点处末端执行器位姿的过程中,系统将根据需要调用相关的轨迹算法模块,实时计算出所需要的机器人运动轨迹,并保存该轨迹以用于之后的示教再现过程。现以空间直线插补为例进行说明,程序流程如下:
4 结论
在融合了轨迹算法模块的机器人控制系统平台上,进行试验,测试机器人整机的工作性能。实验平台如图4所示。在添加轨迹算法模块后,可以执行空间直线、圆弧等动作,且运行平稳性高。实验表明,所设计轨迹算法模块与控制系统能够充分融合。
参考文献:
[1]周才学、李卫平、李强,开放式机器人通用控制系统[J].机器人,1998,20(1):75-79.
[2]Willam E.Ford.What is an open architecture robot controller[J].IEEEinternational symposium on intelligent control.Columbus,Ohio,US,1994:16-18.
[3]胡鹏,开放式机器人控制系统研究与实现[D].武汉科技大学,2006.
[4]卓扬娃,通用六轴机器人轨迹规划算法研究与实现[D].厦门大学,2010:47-48.
[5]沈炜、杨世锡,Visual Basic编程从基础到实践[M].北京:电子工业出版社,2005.