CN109483546A - 可移植的机器人运动控制算法库及其创建使用方法 - Google Patents
可移植的机器人运动控制算法库及其创建使用方法 Download PDFInfo
- Publication number
- CN109483546A CN109483546A CN201811499725.4A CN201811499725A CN109483546A CN 109483546 A CN109483546 A CN 109483546A CN 201811499725 A CN201811499725 A CN 201811499725A CN 109483546 A CN109483546 A CN 109483546A
- Authority
- CN
- China
- Prior art keywords
- program module
- double
- bool
- file
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提出了一种可移植的机器人运动控制算法库及其创建使用方法,当主控软件的运行环境发生变化时,该算法库可以直接移植使用。该算法库包括C语言编写生成的动态链接库,所述动态链接库生成文件由三部分组成:.h文件、.lib文件和.dll文件;所述动态链接库内容包括正运动学程序模块、逆运动学程序模块、关节同步运动程序模块、直线轨迹规划程序模块和圆弧轨迹规划程序模块。
Description
技术领域
本发明涉及一种可移植的机器人运动控制算法库及其创建使用方法。
背景技术
工业机器人的构型是多关节耦合的,建立机器人运动学模型和轨迹规划算法是控制机器人运动的基础。
目前市场上的机器人运动控制算法库都被封装在运动控制卡、运动控制器或运动控制平台软件厂商自己的产品中,离开其所属产品和特定的运行环境就无法使用。
发明内容
针对背景技术中提出的问题,本发明提出了一种可移植的机器人运动控制算法库,当主控软件的运行环境发生变化时,该算法库可以直接移植使用。
本发明的具体技术方案是:
本发明提供了一种可移植的机器人运动控制算法库,其特征在于:包括C语言编写生成的动态链接库,所述动态链接库生成文件由三部分组成:.h文件、.lib文件和.dll文件;所述动态链接库内容包含了正运动学程序模块、逆运动学程序模块、关节同步运动程序模块、直线轨迹规划程序模块和圆弧轨迹规划程序模块。
基于上述算法库,本发明还给出了该算法库的创建及使用方法,具体包括以下步骤:
【1】创建算法库
【1.1】在VS软件平台上新建一个名为“RobotGeneralLibrary”的Win32项目类型的工程,并选择导出符号;
【1.2】在生成的Win32项目类型的工程中的RobotGeneralLibrary.h文件中使用C语言写入各程序模块的声明;
所述程序模块包括正运动学程序模块、逆运动学程序模块、关节同步运动程序模块、直线轨迹规划程序模块和圆弧轨迹规划程序模块;
【1.3】在生成的Win32项目类型的工程的RobotGeneralLibrary.cpp文件中使用C语言写入各程序模块的实现内容;
【1.4】编译并生成三个文件,分别为:
RobotGeneralLibrary.h、botGeneralLibrary.lib和RobotGeneralLibrary.dll;
【2】使用算法库
【2.1】将【1.4】生成的三个文件拷贝到主控平台工程所在的文件夹中;
【2.2】在主控平台工程中添加RobotGeneralLibrary.h文件;
【2.3】在主控平台工程中的“*.cpp”文件中添加:
#include"RobotGeneralLibrary.h"
#pragma comment(lib,"RobotGeneralLibrary.lib")
【2.4】调用算法库中的程序模块:
当已知机器人各关节位置,求解机器人末端法兰中心点位置时,调用正运动学程序模块;
当已知机器人末端法兰中心点位置,求解机器人各关节要转动的位置时,调用逆运动学程序模块;
当需要机器人各关节同步运动时,调用关节同步运动程序模块;
当需要机器人各关节直线运动时,调用直线轨迹规划程序模块;
当需要机器人各关节圆弧运动时,调用圆弧轨迹规划程序模块。
进一步地,所述正运动学程序模块包括正运动学程序模块声明、正运动学程序模块输入输出;
其中,正运动学程序模块声明的具体是:
void GetTCPPosOrientationFK(sDH* pDHParameter,sFrame pflangeFrame);
正运动学程序模块输入输出的输入变量名为:pDHParameter,其输出变量名为:pflangeFrame。
进一步地,所述逆运动学程序模块包括逆运动学程序模块声明、逆运动学程序模块输入输出;
其中,逆运动学程序模块声明的具体是:
void GetSixAnglesIK(sDH* pDHParameter,sFrame pflangeFrame,int*pAnglesLimit,double* pMaxAngles,double* pInverseAngles);
逆运动学程序模块输入输出的输入变量名包括:pDHParameter、pflangeFrame、pAnglesLimit、pMaxAngles,其输出变量名为:pInverseAngles。
进一步地,关节同步运动程序模块声明的具体是:
void PTP(BOOL Execute,BOOL bStop,double lrCycleTime,double* StaP,double* EndP,double* lrVel,double* lrAcc,double* lrDec,BOOL bDone,BOOL bBusy,double* MidAngles);
关节同步运动程序模块输入输出的输入变量名包括:Execute、bStop、lrCycleTime、StaP、EndP、lrVel、lrAcc、lrDec,其输出变量名为:bDone、bBusy、MidAngles。
进一步地,直线轨迹规划程序模块声明的具体是:
void MoveLine(BOOL Execute,BOOL bStop,double lrCycleTime,sFrameStaP,sFrameEndP,sDH* pDHParameter,int* pAnglesLimit,double* pMaxAngles,BOOL bDone,BOOL bBusy,double* MidAngles);
直线轨迹规划程序模块输入输出的输入变量名包括:Execute、bStop、lrCycleTime、StaP、EndP、pDHParameter、pAnglesLimit、pMaxAngles,其输出变量名为:bDone、bBusy、MidAngles。
进一步地,圆弧轨迹规划程序模块声明的具体是:
void MoveArc(BOOL Execute,BOOL bStop,double lrCycleTime,sFrame StaP,sFrame SedP,sFrame EndP,BOOL bCircleFlag,sDH* pDHParameter,int* pAnglesLimit,double* pMaxAngles,BOOL bDone,BOOL bBusy,double* MidAngles)
圆弧轨迹规划程序模块输入输出的输入变量名包括:Execute、bStop、lrCycleTime、StaP、SedP、EndP、bCircleFlag、pDHParameter、pAnglesLimit、pMaxAngles,其输出变量名为:bDone、bBusy、MidAngles。
本发明的有益效果是:
1、可移植性强,使用范围广。其包含的算法可应用于串联结构、并联结构和串并联混合结构的各种类型的工业机器人,其生成的动态链接库在WINDOWS、WINCE、LINUX、嵌入式平台等各种环境下都可以使用,当主控软件发生变化时,此算法库可以直接移植使用。
2、算法库还可以根据需求扩展功能模块,扩展性强。
具体实施方式
本发明提出了一种可移植的机器人运动控制算法库,是由C语言编写进而生成的动态链接库,其生成文件由三部分组成:.h文件、.lib文件和.dll文件,其内容包含了正运动学程序模块、逆运动学程序模块、关节同步运动程序模块、直线轨迹规划程序模块和圆弧轨迹规划程序模块。其包含的算法可应用于串联结构、并联结构和串并联混合结构的各种类型的工业机器人,其生成的动态链接库在WINDOWS、WINCE、LINUX、嵌入式平台等各种环境下都可以使用,当主控软件发生变化时,此算法库可以直接移植使用。
该算法库的创建使用方法具体是:
步骤【1】创建算法库
步骤【1.1】在VS软件平台上新建一个名为“RobotGeneralLibrary”的Win32项目类型的工程,并选择导出符号;
步骤【1.2】在生成的Win32项目类型的工程中的RobotGeneralLibrary.h文件中使用C语言写入各程序模块的声明;
正运动学程序模块模块声明:
void GetTCPPosOrientationFK(sDH*pDHParameter,sFrame pflangeFrame);
逆运动学程序模块声明的具体是:
void GetSixAnglesIK(sDH* pDHParameter,sFrame pflangeFrame,int*pAnglesLimit,double* pMaxAngles,double* pInverseAngles);
关节同步运动程序模块声明的具体是:
void PTP(BOOL Execute,BOOL bStop,double lrCycleTime,double* StaP,double* EndP,double* lrVel,double* lrAcc,double* lrDec,BOOL bDone,BOOL bBusy,double* MidAngles);
直线轨迹规划程序模块声明的具体是:
void MoveLine(BOOL Execute,BOOL bStop,double lrCycleTime,sFrame StaP,sFrame EndP,sDH* pDHParameter,int* pAnglesLimit,double* pMaxAngles,BOOLbDone,BOOL bBusy,double* MidAngles);
圆弧轨迹规划程序模块声明的具体是:
void MoveArc(BOOL Execute,BOOL bStop,double lrCycleTime,sFrame StaP,sFrame SedP,sFrame EndP,BOOL bCircleFlag,sDH* pDHParameter,int* pAnglesLimit,double* pMaxAngles,BOOL bDone,BOOL bBusy,double* MidAngles);
各程序模块声明中:sDH是一个结构体,该结构体包含四个成员:
各程序模块声明中:sFrame是一个结构体,该结构体包含六个成员:
步骤【1.3】在生成的Win32项目类型的工程的RobotGeneralLibrary.cpp文件中使用C语言写入各程序模块的实现内容;
正运动学程序模块的实现内容:
逆运动学程序模块的实现内容:
关节同步运动程序模块的实现内容:
直线轨迹规划程序模块的实现内容:
圆弧轨迹规划程序模块的实现内容:
步骤【1.4】编译并生成三个文件,分别为:
RobotGeneralLibrary.h、botGeneralLibrary.lib和RobotGeneralLibrary.dll;
步骤【2】使用算法库
步骤【2.1】将【1.4】生成的三个文件拷贝到主控平台工程所在的文件夹中;
步骤【2.2】在主控平台工程中添加RobotGeneralLibrary.h文件;
步骤【2.3】在主控平台工程中的“*.cpp”文件中添加:
#include"RobotGeneralLibrary.h"
#pragmacomment(lib,"RobotGeneralLibrary.lib")步骤【2.4】调用算法库中的程序模块:
当已知机器人各关节位置,求解机器人末端法兰中心点位置时,调用正运动学程序模块;
当已知机器人末端法兰中心点位置,求解机器人各关节要转动的位置时,调用逆运动学程序模块;
当需要机器人各关节同步运动时,调用关节同步运动程序模块;
当需要机器人各关节直线运动时,调用直线轨迹规划程序模块;
当需要机器人各关节圆弧运动时,调用圆弧轨迹规划程序模块。
Claims (7)
1.一种可移植的机器人运动控制算法库,其特征在于:包括C语言编写生成的动态链接库,所述动态链接库生成文件由三部分组成:.h文件、.lib文件和.dll文件;所述动态链接库内容包括正运动学程序模块、逆运动学程序模块、关节同步运动程序模块、直线轨迹规划程序模块和圆弧轨迹规划程序模块。
2.一种可移植的机器人运动控制算法库的创建使用方法,其特征在于,具体包括以下步骤:
【1】创建算法库
【1.1】在VS软件平台上新建一个名为“RobotGeneralLibrary”的Win32项目类型的工程,并选择导出符号;
【1.2】在生成的Win32项目类型的工程中的RobotGeneralLibrary.h文件中使用C语言写入各程序模块的声明;
所述程序模块包括正运动学程序模块、逆运动学程序模块、关节同步运动程序模块、直线轨迹规划程序模块和圆弧轨迹规划程序模块;
【1.3】在生成的Win32项目类型的工程的RobotGeneralLibrary.cpp文件中使用C语言写入各程序模块的实现内容;
【1.4】编译并生成三个文件,分别为:
RobotGeneralLibrary.h、botGeneralLibrary.lib和RobotGeneralLibrary.dll;
【2】使用算法库
【2.1】将【1.4】生成的三个文件拷贝到主控平台工程所在的文件夹中;
【2.2】在主控平台工程中添加RobotGeneralLibrary.h文件;
【2.3】在主控平台工程中的“*.cpp”文件中添加:
#include"RobotGeneralLibrary.h"
#pragma comment(lib,"RobotGeneralLibrary.lib")
【2.4】调用算法库中的程序模块:
当已知机器人各关节位置,求解机器人末端法兰中心点位置时,调用正运动学程序模块;
当已知机器人末端法兰中心点位置,求解机器人各关节要转动的位置时,调用逆运动学程序模块;
当需要机器人各关节同步运动时,调用关节同步运动程序模块;
当需要机器人各关节直线运动时,调用直线轨迹规划程序模块;
当需要机器人各关节圆弧运动时,调用圆弧轨迹规划程序模块。
3.根据权利要求2所述的可移植的机器人运动控制算法库的创建使用方法,其特征在于:
正运动学程序模块声明的具体是:
void GetTCPPosOrientationFK(sDH*pDHParameter,sFramepflangeFrame);
正运动学程序模块的实现内容中输入变量名为:pDHParameter,其输出变量名为:pflangeFrame。
4.根据权利要求2所述的可移植的机器人运动控制算法库的创建使用方法,其特征在于:
逆运动学程序模块声明的具体是:
void GetSixAnglesIK(sDH*pDHParameter,sFramepflangeFrame,int*pAnglesLimit,double*pMaxAngles,double*pInverseAngles);
逆运动学程序模块实现内容中输入变量名包括:pDHParameter、pflangeFrame、pAnglesLimit、pMaxAngles,其输出变量名为:pInverseAngles。
5.根据权利要求2所述的可移植的机器人运动控制算法库的创建使用方法,其特征在于:
关节同步运动程序模块声明的具体是:
void PTP(BOOL Execute,BOOL bStop,double lrCycleTime,double*StaP,double*EndP,double*lrVel,double*lrAcc,double*lrDec,BOOL bDone,BOOL bBusy,double*MidAngles);
关节同步运动程序模块实现内容中输入变量名包括:Execute、bStop、lrCycleTime、StaP、EndP、lrVel、lrAcc、lrDec,其输出变量名为:bDone、bBusy、MidAngles。
6.根据权利要求2所述的可移植的机器人运动控制算法库的创建使用方法,其特征在于:
直线轨迹规划程序模块声明的具体是:
void MoveLine(BOOL Execute,BOOL bStop,double lrCycleTime,sFrame StaP,sFrame EndP,sDH*pDHParameter,int*pAnglesLimit,double*pMaxAngles,BOOL bDone,BOOL bBusy,double*MidAngles);
直线轨迹规划程序模块实现内容中输入变量名包括:Execute、bStop、lrCycleTime、StaP、EndP、pDHParameter、pAnglesLimit、pMaxAngles,其输出变量名为:bDone、bBusy、MidAngles。
7.根据权利要求2所述的可移植的机器人运动控制算法库的创建使用方法,其特征在于:
圆弧轨迹规划程序模块声明的具体是:
void MoveArc(BOOL Execute,BOOL bStop,double lrCycleTime,sFrame StaP,sFrame SedP,sFrame EndP,BOOL bCircleFlag,sDH*pDHParameter,int*pAnglesLimit,double*pMaxAngles,BOOLbDone,BOOL bBusy,double*MidAngles)
圆弧轨迹规划程序模块实现内容中输入变量名包括:Execute、bStop、lrCycleTime、StaP、SedP、EndP、bCircleFlag、pDHParameter、pAnglesLimit、pMaxAngles,其输出变量名为:bDone、bBusy、MidAngles。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811499725.4A CN109483546A (zh) | 2018-12-09 | 2018-12-09 | 可移植的机器人运动控制算法库及其创建使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811499725.4A CN109483546A (zh) | 2018-12-09 | 2018-12-09 | 可移植的机器人运动控制算法库及其创建使用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109483546A true CN109483546A (zh) | 2019-03-19 |
Family
ID=65698340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811499725.4A Pending CN109483546A (zh) | 2018-12-09 | 2018-12-09 | 可移植的机器人运动控制算法库及其创建使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109483546A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281404A (zh) * | 2021-12-24 | 2022-04-05 | 科东(广州)软件科技有限公司 | 一种工控机算法代码的移植方法及装置 |
CN114905499A (zh) * | 2021-02-08 | 2022-08-16 | 广东博智林机器人有限公司 | 升举方法、装置及管道安装机器人 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015117641A1 (en) * | 2014-02-05 | 2015-08-13 | Abb Technology Ltd | A system and method for defining motions of a plurality of robots cooperatively performing a show |
CN105619407A (zh) * | 2016-01-28 | 2016-06-01 | 上海交通大学 | 基于刀位源文件的工业机器人离线编程方法 |
CN105786483A (zh) * | 2016-01-05 | 2016-07-20 | 南京熊猫电子股份有限公司 | 基于平板电脑的焊接机器人离线编程系统及其离线编程方法 |
CN106648744A (zh) * | 2016-10-26 | 2017-05-10 | 合肥润客软件科技有限公司 | 一种基于软件开发中动态链接库的加载方法 |
CN107471206A (zh) * | 2017-08-16 | 2017-12-15 | 大连交通大学 | 一种模块化工业机器人重构系统及其控制方法 |
CN108942932A (zh) * | 2018-07-19 | 2018-12-07 | 深圳市智能机器人研究院 | 基于EtherCAT总线的工业机器人控制系统及方法 |
-
2018
- 2018-12-09 CN CN201811499725.4A patent/CN109483546A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015117641A1 (en) * | 2014-02-05 | 2015-08-13 | Abb Technology Ltd | A system and method for defining motions of a plurality of robots cooperatively performing a show |
CN105786483A (zh) * | 2016-01-05 | 2016-07-20 | 南京熊猫电子股份有限公司 | 基于平板电脑的焊接机器人离线编程系统及其离线编程方法 |
CN105619407A (zh) * | 2016-01-28 | 2016-06-01 | 上海交通大学 | 基于刀位源文件的工业机器人离线编程方法 |
CN106648744A (zh) * | 2016-10-26 | 2017-05-10 | 合肥润客软件科技有限公司 | 一种基于软件开发中动态链接库的加载方法 |
CN107471206A (zh) * | 2017-08-16 | 2017-12-15 | 大连交通大学 | 一种模块化工业机器人重构系统及其控制方法 |
CN108942932A (zh) * | 2018-07-19 | 2018-12-07 | 深圳市智能机器人研究院 | 基于EtherCAT总线的工业机器人控制系统及方法 |
Non-Patent Citations (3)
Title |
---|
孙斌: "六轴工业机器人的离线编程与仿真系统研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
张力 等: "《陆地机器人》", 31 March 2017, 中国民主法治出版社 * |
杨磊 等: "《C语言程序设计》", 30 August 2011 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114905499A (zh) * | 2021-02-08 | 2022-08-16 | 广东博智林机器人有限公司 | 升举方法、装置及管道安装机器人 |
CN114281404A (zh) * | 2021-12-24 | 2022-04-05 | 科东(广州)软件科技有限公司 | 一种工控机算法代码的移植方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Su et al. | Integration of saturated PI synchronous control and PD feedback for control of parallel manipulators | |
Morlock et al. | Real-time trajectory tracking control of a parallel robot with flexible links | |
Huang et al. | Sliding-mode tracking control of the Stewart platform | |
Harib et al. | A hexapod-based machine tool with hybrid structure: kinematic analysis and trajectory planning | |
CN109483546A (zh) | 可移植的机器人运动控制算法库及其创建使用方法 | |
Li et al. | Model-free impedance control for safe human-robot interaction | |
Ibanez et al. | Unified preview control for humanoid postural stability and upper-limb interaction adaptation | |
Constantin et al. | Forward kinematic analysis of an industrial robot | |
Yamane | Simulating and generating motions of human figures | |
Zhao et al. | Trajectory planning for 6-DOF robotic arm based on quintic polynormial | |
Saafi et al. | Optimal haptic control of a redundant 3-RRR spherical parallel manipulator | |
Choudhury et al. | Planar parallel manipulators: a review on kinematic, dynamic, and control aspects | |
Lu et al. | An iterative calculation method for solve the inverse kinematics of a 7-DOF robot with link offset | |
Wang et al. | Fast and intuitive kinematics mapping for human-robot motion imitating: A virtual-joint-based approach | |
Zarafshan et al. | Which impedance strategy is the most effective for cooperative object manipulation? | |
Linar et al. | Numerical solution approach for the ROBOTIS OP2 humanoid hand inverse kinematics | |
Yang et al. | Human-in-the-loop Learning and Control for Robot Teleoperation | |
Kader et al. | Simulation system to aid in vehicle simulator design | |
Kong et al. | Mobile manipulator control based on voice and visual signal | |
Ma et al. | The kinematic analysis and trajectory planning study of high-speed SCARA robot handling operation | |
Vladareanu | Open architecture systems for the compliance robots control. | |
Tourajizadeh et al. | A New Optimal Method for Calculating the Null Space of a Robot using NOC Algorithm; Application on Parallel 3PRS Robot. | |
Belfiore et al. | Kinematics of machines: Contributions from Meccanica | |
Wang | Dynamic Modeling and Control Method of Manipulator Based on Model Recognition | |
Reyes-Uquillas et al. | Online motion adjustment using compliance control for a multi-axis robot manipulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190319 |
|
RJ01 | Rejection of invention patent application after publication |