CN109483546A - 可移植的机器人运动控制算法库及其创建使用方法 - Google Patents

可移植的机器人运动控制算法库及其创建使用方法 Download PDF

Info

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
Application number
CN201811499725.4A
Other languages
English (en)
Inventor
冯艳丽
黎原
兰玉乾
张颖
马少阳
田子阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aerospace Precision Electromechanical Institute
Original Assignee
Xian Aerospace Precision Electromechanical Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Aerospace Precision Electromechanical Institute filed Critical Xian Aerospace Precision Electromechanical Institute
Priority to CN201811499725.4A priority Critical patent/CN109483546A/zh
Publication of CN109483546A publication Critical patent/CN109483546A/zh
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme 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。
CN201811499725.4A 2018-12-09 2018-12-09 可移植的机器人运动控制算法库及其创建使用方法 Pending CN109483546A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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总线的工业机器人控制系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
孙斌: "六轴工业机器人的离线编程与仿真系统研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
张力 等: "《陆地机器人》", 31 March 2017, 中国民主法治出版社 *
杨磊 等: "《C语言程序设计》", 30 August 2011 *

Cited By (2)

* Cited by examiner, † Cited by third party
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