CN111360795A - 一种六自由度并联机器人的控制系统及其控制方法 - Google Patents
一种六自由度并联机器人的控制系统及其控制方法 Download PDFInfo
- Publication number
- CN111360795A CN111360795A CN202010248569.5A CN202010248569A CN111360795A CN 111360795 A CN111360795 A CN 111360795A CN 202010248569 A CN202010248569 A CN 202010248569A CN 111360795 A CN111360795 A CN 111360795A
- Authority
- CN
- China
- Prior art keywords
- module
- arm module
- degree
- fpga
- parallel robot
- 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.)
- Granted
Links
Images
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/003—Programme-controlled manipulators having parallel kinematics
-
- 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/08—Programme-controlled manipulators characterised by modular constructions
-
- 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/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- 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
-
- 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/1679—Programme controls characterised by the tasks executed
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本发明提供了一种六自由度并联机器人的控制系统及其控制方法,该控制系统包括:具有人机交互界面的上位机;与上位机连接的ARM模块;与ARM模块连接的FPGA模块;ARM模块控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿。通过设置具有人机交互界面的上位机,便于用户向控制系统中输入控制指令;通过设置与上位机连接以与上位机进行信息交互的ARM模块,实现上位机与ARM模块的信息交互,便于将控制指令传输给ARM模块,以使ARM模块对控制指令进行处理;通过设置与ARM模块连接以与ARM模块进行信息交互的FPGA模块,使ARM模块将处理后的控制信息写入FPGA模块,并进行读取,从而控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿。
Description
技术领域
本发明涉及机器人技术领域,尤其涉及一种六自由度并联机器人的控制系统及其控制方法。
背景技术
并联机器人是通过使用至少两个独立的运动链将可运动平台和固定平台进行相互连接,其机械结构具有两个或者两个以上可运动的自由度,并且用并联方式来驱动的一种闭环特性的机器人。并联机器人类型的设备大部分情况下主要应用于紧凑精密的场景,竞争优势点集中在动态性能、速度和重复定位精度等方面。应用领域大致可以分为六大方面,运动模拟器、工业机器人、并联机床、操作器、医用机器人和微动机构。
现有技术对于不同的机器人机械结构有不同的运动控制系统和方法,市面上的控制器产品多是针对少自由度并联机器人的运动控制。少自由度并联机器人其结构简单、可相对容易地进行运动学分析和控制,但是对于六自由度并联机器人在运动和轨迹的控制和规划没有很好的运动控制系统和方法。
现有并联机器人在部分位姿状态下,可能发生奇异位形,机械结构将会失去控制,并联机器人计算获得解的方式和途径也非常的不足,经常用到的实现控制的算法仅仅在单点控制上效果明显,而实际真正需要的跟踪控制远远不能满足,其运算过程复杂,呈现出的效果也不符合预期。
发明内容
本发明提供了一种六自由度并联机器人的控制系统及其控制方法,用以实现对六自由度机器人的整体控制,且简化控制方式。
第一方面,本发明提供了一种六自由度并联机器人的控制系统,其中,六自由度并联机器人具有用于表征六自由度并联机器人的姿态的六个杆,该控制系统包括:
具有人机交互界面的上位机,人机交互界面用于输入包含有当前位姿以及期望位姿信息的控制指令;
与上位机连接以与上位机进行信息交互的ARM(Advanced RISC Machines,一种微处理器)模块;ARM模块用于接收控制指令;ARM模块还用于依据机器人逆向运动学算法计算出六自由度并联机器人的六个杆的长度;ARM模块还用于依据六自由度并联机器人的伺服参数和电缸导程,计算出六自由度并联机器人从当前位姿运动到期望位姿时所需的脉冲数;
与ARM模块连接以与ARM模块进行信息交互的FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)模块,ARM模块还用于将所需的脉冲数写入FPGA模块;ARM模块还用于控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿。
在上述的方案中,通过设置具有人机交互界面的上位机,便于用户向控制系统中输入控制指令;通过设置与上位机连接以与上位机进行信息交互的ARM模块,实现上位机与ARM模块的信息交互,便于将控制指令传输给ARM模块,以使ARM模块对控制指令进行处理;通过设置与ARM模块连接以与ARM模块进行信息交互的FPGA模块,使ARM模块将处理后的控制信息写入FPGA模块,并进行读取,从而控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿。
在一个具体的实施方式中,FPGA模块具有定时器;ARM模块还用于将所需的脉冲数写入FPGA模块;ARM模块还用于控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿具体为:
ARM模块还用于关闭FPGA模块中的定时器;
ARM模块还用于在关闭定时器后,读取FPGA模块中的剩余未输出脉冲数;ARM模块还用于依据所需的脉冲数、剩余未输出脉冲数,计算出实际所需的脉冲数及方向;ARM模块还用于计算FPGA模块进行剩余脉冲输出所需要的分频数;ARM模块还用于将实际所需的脉冲数、方向及分频数一同写入FPGA中;
ARM模块还用于在ARM模块将实际所需的脉冲数、方向及分频数一同写入FPGA中后,启动FPGA模块中的定时器。
通过ARM模块从FPGA模块中读取机器人的上一控制周期剩余未输出脉冲数,计算出实际需要向FPGA模块中写入的脉冲数和方向,从而防止出现未输出脉冲数的累积。
在一个具体的实施方式中,控制指令包括至少一帧控制信息,其中,每帧控制信息包括:命令种类标志符;六自由度并联机器人的位姿数据字符;六自由度并联机器人的轨迹运动完成时间字符。从而便于ARM模块与上位机之间的信息交互。
在一个具体的实施方式中,命令种类标志符包括:单点位姿控制标志符、归零复位控制标志符、轨迹控制标志符;且在命令种类标志符为轨迹标志符时,轨迹运动完成时间字符为有效标志符;在命令种类标志符为非轨迹标志符时,轨迹运动完成时间字符为无效标志符。以满足相应的控制需要。
在一个具体的实施方式中,每帧控制信息包括28个字符;其中,起始字符为“:”;第二个字符为命令种类标志符;第三个字符至第二十六个字符为六自由度并联机器人的位姿数据字符;第二十七个字符为六自由度并联机器人的轨迹运动完成时间字符;第二十八个字符为“\n”。以便于使每一帧的控制信息都作为一个数据单元,便于ARM模块进行处理。
在一个具体的实施方式中,在每一周期内,六个杆中的每个杆的输出脉冲数在第一脉冲数及第二脉冲数之间;其中,第一脉冲数小于第二脉冲数。通过对每周期的每个杆的输出脉冲的最大值和最小值进行限制,防止六自由度并联机器人在每一周期的输出脉冲数多大时运动猛烈;或每一周期的输出脉冲数多小时,将此脉冲数放入下一控制周期输出。
在一个具体的实施方式中,ARM模块与上位机连接以进行信息交互具体为:ARM模块通过串口通讯的方式与上位机连接以进行信息交互。以便于ARM模块与上位机之间的信息交互。
在一个具体的实施方式中,ARM模块与FPGA模块连接以进行信息交互具体为:ARM模块通过FSMC(Flexible Static Memory Controller,可变静态存储控制器)总线与FPGA模块连接以进行信息交互。以便于ARM模块对FPGA模块的控制,便于ARM模块将控制信息写入FPGA模块及读取FPGA模块。
第二方面,本发明还提供了一种六自由度并联机器人的控制方法,其中,六自由度并联机器人具有用于表征六自由度并联机器人的姿态的六个杆,该控制方法包括:
向上位机的人机交互界面输入包含有当前位姿以及期望位姿的信息的控制指令;
上位机向ARM模块传输控制指令;
ARM模块依据机器人逆向运动学算法计算出六自由度并联机器人的六个杆的长度;
ARM模块依据伺服参数及电缸导程计算出六自由度并联机器人从当前位姿运动到期望位姿时所需的脉冲数;
ARM模块向FPGA模块中写入所需的脉冲数;
ARM模块控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿。
在上述的方案中,通过设置具有人机交互界面的上位机,便于用户向控制系统中输入控制指令;通过设置与上位机连接以与上位机进行信息交互的ARM模块,实现上位机与ARM模块的信息交互,便于将控制指令传输给ARM模块,以使ARM模块对控制指令进行处理;通过设置与ARM模块连接以与ARM模块进行信息交互的FPGA模块,使ARM模块将处理后的控制信息写入FPGA模块,并进行读取,从而控制FPGA模块调整六自由度并联机器人从当前位姿运动到期望位姿。
在一个具体的实施方式中,FPGA模块具有定时器;所述ARM模块向所述FPGA模块中写入所述所需的脉冲数,所述ARM模块控制所述FPGA模块调整所述六自由度并联机器人从所述当前位姿运动到所述期望位姿具体为:
ARM模块关闭FPGA模块中的定时器;
ARM模块在关闭定时器后,读取FPGA模块中的剩余未输出脉冲数;
ARM模块依据所需的脉冲数、剩余未输出脉冲数,计算出实际所需的脉冲数及方向;
ARM模块还用于计算FPGA进行脉冲输出所需要的分频数;
ARM模块还用于将实际所需的脉冲数、方向及分频数一同写入FPGA中;
ARM模块还用于启动FPGA中的定时器。
通过ARM模块从FPGA模块中读取机器人的上一控制周期剩余未输出脉冲数,计算出实际需要向FPGA模块中写入的脉冲数和方向,从而防止出现未输出脉冲数的累积。
附图说明
图1为本发明实施例提供的六自由度并联机器人的控制系统的示意框图;
图2为本发明实施例提供的六自由度并联机器人的控制方法的一种流程图;
图3为本发明实施例提供的六自由度并联机器人的上位机与ARM模块之间信息交互的流程图;
图4为本发明实施例提供的六自由度并联机器人的控制方法的另一种流程图。
附图标记:
10-上位机20-ARM模块30-FPGA模块
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例提供的六自由度并联机器人的控制系统,下面首先说明一下本发明实施例提供的六自由度并联机器人的控制系统的应用场景,该控制系统应用于对六自由度并联机器人的控制。其中,六自由度机器人具有用于表征六自由度并联机器人的姿态的六个杆,通过调整六个杆的长度可以调整六自由度并联机器人的姿态与位置。下面结合附图对该六自由度并联机器人的控制系统进行详细的叙述。
参考图1,本发明提供的六自由度并联机器人的控制系统主要包括三个模块,这三个模块分别为:具有人机交互界面的上位机10、与上位机10连接以与上位机10进行信息交互的ARM模块20、与ARM模块20连接以与ARM模块20进行信息交互的FPGA模块30。其中,上述的人机交互界面用于输入包含有当前位姿以及期望位姿信息的控制指令。上述的ARM模块20作为一种微处理器对控制指令进行处理,并与FPGA模块30进行信息交互,生成相应的写入FPGA模块30中的控制信息,之后读取FPGA模块30,从而控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。ARM模块20的具体用途包括:ARM模块20用于接收控制指令;ARM模块20还用于依据机器人逆向运动学算法计算出六自由度并联机器人的六个杆的长度;ARM模块20还用于依据六自由度并联机器人的伺服参数和电缸导程,计算出六自由度并联机器人从当前位姿运动到期望位姿时所需的脉冲数;ARM模块20还用于将所需的脉冲数写入FPGA模块30;ARM模块20还用于控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。
在具体设置时,可以选用ARM+FPGA双核心结构作为运动控制器,采用ARM处理器S3C2440作为这里面的ARM模块20,其为主处理器;从处理器采用Cyclone IV系列的EP4CE6F17C8。ARM处理器通过总线对FPGA模块30进行控制,FPGA模块30主要用来完成复杂的运动控制,ARM模块20对数据存储模块的插补信息进行处理后将数据发送到FPGA模块30,FPGA模块30接收到插补数据或是控制指令后,实时进行插补运算处理,之后将处理过的数据发送到隔离电路,通过隔离电路,将差分信号重新变换合成为原来的信号,最后将信号发送到各个伺服电机驱动器对各轴电机进行驱动,进而完成控制目标的运动轨迹。
其具体的控制方法的流程图如图2所示,其包括:
步骤1:向上位机10的人机交互界面输入包含有当前位姿以及期望位姿的信息的控制指令。其中,当前位姿信息为六自由度并联机器人在调整之前的位置与姿态,期望位姿为希望六自由度并联机器人调整之后的位置及姿态。
步骤2:上位机10向ARM模块20传输控制指令;
步骤3:ARM模块20依据机器人逆向运动学算法计算出六自由度并联机器人的六个杆的长度。其中,机器人逆向运动学算法为现有技术中常规的算法,通过该算法可以将六自由度并联机器人的当期位姿信息转化为六自由度并联机器人的六个杆的长度,可以将六自由度并联机器人的期望位姿信息转化为六自由度并联机器人的六个杆需要调整后的长度。
步骤4:ARM模块20依据伺服参数及电缸导程计算出六自由度并联机器人从当前位姿运动到期望位姿时所需的脉冲数。其中,伺服参数及电缸导程主要指六自由度并联机器人在每个自由度上的伺服电机转一圈的电缸导程和脉冲个数。由于六自由度并联机器人的最终控制是通过脉冲实现,所以需要将六自由度并联机器人每个杆的长度根据伺服参数和电缸导程转化为机器人实际需要的脉冲数,进而结合机器人当前状态计算出下一控制周期实际需要的脉冲数和方向,以完成机器人运动控制。
步骤5:ARM模块20向FPGA模块30中写入所需的脉冲数;
步骤6:ARM模块20控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。
在上述的方案中,通过设置具有人机交互界面的上位机10,便于用户向控制系统中输入控制指令;通过设置与上位机10连接以与上位机10进行信息交互的ARM模块20,实现上位机10与ARM模块20的信息交互,便于将控制指令传输给ARM模块20,以使ARM模块20对控制指令进行处理;通过设置与ARM模块20连接以与ARM模块20进行信息交互的FPGA模块30,使ARM模块20将处理后的控制信息写入FPGA模块30,并进行读取,从而控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。
根据ARM软件设计完成的功能,软件结构可分为:与上位机10的串口通讯、对FPGA模块30的使能、FPGA模块30对ARM模块20的外部中断触发、内部定时器中断、机器人逆向运动学实现、主函数的命令类型判别和处理。其中的主函数用于对串口数据接收完成进行判断,接收完成后将数据解码并根据其中对应标志符执行相应的代码程序和数据处理。下面对上述各个部件进行详细的叙述。
在上位机10具体向ARM模块20传输控制指令时,控制指令包括至少一帧控制信息,其中,每帧控制信息包括:命令种类标志符;六自由度并联机器人的位姿数据字符;六自由度并联机器人的轨迹运动完成时间字符。从而便于ARM模块20与上位机10之间的信息交互。
在具体设置上述的命令种类标志符时,命令种类标志符包括:单点位姿控制标志符、归零复位控制标志符、轨迹控制标志符等。其中,命令种类标志符用于判断接收命令的类型,如字符M代表单点位姿控制,字符F代表归零复位控制,字符L代表直线轨迹控制等;六自由度并联机器人数据根据前面的命令种类相应有所改变。且在命令种类标志符为轨迹标志符时,轨迹运动完成时间字符为有效标志符;在命令种类标志符为非轨迹标志符时,轨迹运动完成时间字符为无效标志符。以满足相应的控制需要。
在具体设置每帧控制信息时,每帧控制信息包括28个字符;其中,起始字符为“:”;第二个字符为命令种类标志符;第三个字符至第二十六个字符为六自由度并联机器人的位姿数据字符;第二十七个字符为六自由度并联机器人的轨迹运动完成时间字符;第二十八个字符为“\n”。以便于使每一帧的控制信息都作为一个数据单元,便于ARM模块20进行处理。
在具体实现ARM模块20与上位机10连接以进行信息交互时,其具体为:ARM模块20通过串口通讯的方式与上位机10连接以进行信息交互。以便于ARM模块20与上位机10之间的信息交互。具体的,参考图3,ARM模块20将接收到的控制指令解码后进行相应的处理和计算。ARM模块20与上位机10的通讯流程图如图4所示:ARM模块20初始化需要对串口资源进行配置,包括串口号、波特率、数据位、停止位和奇偶校验位,同时对串口接收数组、串口接收成功标志位、串口接收数据个数清零,以及其他的ARM模块20资源配置。初始化完成后,等待串口中断,串口每接收一个字符会发生一次中断。如果发生串口中断,串口中断服务程序会判断数据帧的起始数据并将数据依次存入数组,同时记录串口接收数据的个数,当数据个数为28时,表示接收完一个数据帧,并将数据帧返回给上位机10以判断接收数据是否成功,同时将数据个数清零,数据接收成功标志位置位。此时,串口数据接收成功,关闭外部中断,将接收到的数据解码后,并判断命令类型,进一步进行机器人逆向运动学计算。逆向运动学算法将给定六自由度并联机器人的位姿计算得到六自由度并联机器人的六个杆的长度,进一步根据伺服电机转一圈的电缸导程和脉冲个数可得到六个杆运动到指定长度所需要的脉冲个数。在具体应用时,机器人逆向运动学算法在ARM模块20中实现,给定机器人位姿,求出机器人六个杆的长度,进一步根据伺服电机转一圈的电缸导程和脉冲个数可得到六个杆运动到指定长度所需要的脉冲个数。之后,串口接收成功标志位复位,开启外部中断,同时等待下一次的串口数据接收。
在具体实现ARM模块20与FPGA模块30连接以进行信息交互时,其具体为:ARM模块20通过FSMC总线与FPGA模块30连接以进行信息交互。以便于ARM模块20对FPGA模块30的控制,便于ARM模块20将控制信息写入FPGA模块30及读取FPGA模块30。具体的,参考图1,ARM模块20与FPGA模块30的通信使用并行总线的方式,将FPGA模块30内部划分出一个SRAM模块,ARM模块20通过FSMC高速总线对SRAM模块进行访问。FSMC高速总线通信采用6位地址线与16位数据线,通过ARM模块20片选选中FPGA模块30完成对数据的读写,FPGA模块30通过中断反馈对数据的处理情况。
在具体实现将所需的脉冲数写入FPGA模块30;ARM模块20还用于控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿时。FPGA模块30具有定时器。ARM模块20还用于关闭FPGA模块30中的定时器;ARM模块20还用于在关闭定时器后,读取FPGA模块30中的剩余未输出脉冲数;ARM模块20还用于依据所需的脉冲数、剩余未输出脉冲数,计算出实际所需的脉冲数及方向;ARM模块20还用于计算FPGA模块30进行剩余脉冲输出所需要的分频数;ARM模块20还用于将实际所需的脉冲数、方向及分频数一同写入FPGA中;ARM模块20还用于在ARM模块20将实际所需的脉冲数、方向及分频数一同写入FPGA中后,启动FPGA模块30中的定时器。其具体的流程图如图1及图4所示,包括:
步骤1:ARM模块20关闭FPGA模块30中的定时器;
步骤2:ARM模块20在关闭定时器后,读取FPGA模块30中的剩余未输出脉冲数;
步骤3:ARM模块20依据所需的脉冲数、剩余未输出脉冲数,计算出实际所需的脉冲数及方向;
步骤4:ARM模块20还用于计算FPGA进行脉冲输出所需要的分频数;
步骤5:ARM模块20还用于将实际所需的脉冲数、方向及分频数一同写入FPGA中;
步骤6:ARM模块20还用于启动FPGA中的定时器。
通过ARM模块20从FPGA模块30中读取机器人的上一控制周期剩余未输出脉冲数,计算出实际需要向FPGA模块30中写入的脉冲数和方向,从而防止出现未输出脉冲数的累积。
其中上述定时器在一个周期中的关闭与重新启动可以通过定时器中断实现,定时器中断主要用于记录ARM模块20内部时间,在设置时,可以每10ms中断一次,这里,用于机器人预测跟踪控制时计算预测值时提供时间参数。
具体应用时,ARM模块20初始化对IO引脚(模拟输入输出引脚)、外部中断、FSMC总线及相关变量等进行了配置。其中的外部中断包括:将IO口配置为输入模式,并将其与ARM模块20的外部中断服务关联,指向对应的中断服务函数,当IO口电平跳变时进入相应的中断服务函数进行相关代码的运行和数据的处理。这里用于FPGA模块30中定时器时间到、脉冲输出停止时IO口跳变下降延对ARM模块20中的IO口外部中断触发,从而执行相应的中断服务程序,在中断服务程序中,首先复位FPGA模块30中的定时器,然后计算工业机器人下一控制周期所需的脉冲数和方向,并写入FPGA模块的存储器中;最后,开启定时器,使FPGA模块30进行脉冲输出。
初始化后,ARM模块20通过IO引脚置高电平关闭FPGA模块30内部的定时器,根据ARM模块20串口通讯获得数据求出的机器人六杆长对应的脉冲个数。并根据六自由度并联机器人的当前状态计算出运动所需的脉冲增量,ARM模块20通过FSMC总线从FPGA模块30中读取六自由度并联机器人在上一控制周期结束后的剩余未输出脉冲数,计算出实际需要向FPGA模块30写入的脉冲个数和方向,防止出现未输出脉冲数的累积。在程序中,对每周期输出脉冲的最大最小个数进行了限制,防止机器人运动猛烈以及在脉冲个数少的情况下,将此脉冲数放入下一控制周期输出。之后计算FPGA模块30进行实际脉冲输出所需要的分频数。之后,将实际所需的脉冲数、方向及所需要的分频数一同写入FPGA模块中。之后启动FPGA模块30中的定时器,以使FPGA模块30进行脉冲输出,便于将六自由度并联机器人从当前位姿调整到期望位姿。另外,在脉冲输出完后重复上述过程,以进行下一控制周期的运动增量计算。
在具体实现串口通讯时,串口通讯使用ARM模块20内部的串口资源,包含数据接收和数据发送,数据接收采用串口中断服务函数,用于接收上位机10发送的数据,每接收一个字符中断一次,当接收次数达到要求,进行相应的数据处理并将接收次数清零重新接收;数据发送采用串口相关寄存器,用于将ARM模块20接收数据原样返回来判断数据是否接收成功以及将机器人状态信息发送给上位机10以供判断和处理。
其中上述FPGA 模块30的使能包括:对FPGA模块30的使能使用了ARM模块20的IO口引脚,将IO口配置为普通IO口,并设置为输出,用于对FPGA模块30中定时器的开启和关闭,从而在规定时间内控制脉冲的输出。
另外,在每一周期内,六个杆中的每个杆的输出脉冲数在第一脉冲数及第二脉冲数之间;其中,第一脉冲数小于第二脉冲数。通过对每周期的每个杆的输出脉冲的最大值和最小值进行限制,防止六自由度并联机器人在每一周期的输出脉冲数多大时运动猛烈;或每一周期的输出脉冲数多小时,将此脉冲数放入下一控制周期输出。在具体确定第一脉冲数与第二脉冲数的大小时,根据不同尺寸、功能用途、及精密程度确定不同的第一脉冲数及第二脉冲数。
通过设置具有人机交互界面的上位机10,便于用户向控制系统中输入控制指令;通过设置与上位机10连接以与上位机10进行信息交互的ARM模块20,实现上位机10与ARM模块20的信息交互,便于将控制指令传输给ARM模块20,以使ARM模块20对控制指令进行处理;通过设置与ARM模块20连接以与ARM模块20进行信息交互的FPGA模块30,使ARM模块20将处理后的控制信息写入FPGA模块30,并进行读取,从而控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。
另外,本发明实施例还提供了一种六自由度并联机器人的控制方法,其中,六自由度并联机器人具有用于表征六自由度并联机器人的姿态的六个杆,参考图1及图2,该控制方法包括:
步骤1:向上位机10的人机交互界面输入包含有当前位姿以及期望位姿的信息的控制指令;
步骤2:上位机10向ARM模块20传输控制指令;
步骤3:ARM模块20依据机器人逆向运动学算法计算出六自由度并联机器人的六个杆的长度;
步骤4:ARM模块20依据伺服参数及电缸导程计算出六自由度并联机器人从当前位姿运动到期望位姿时所需的脉冲数;
步骤5:ARM模块20向FPGA模块30中写入所需的脉冲数;
步骤6:ARM模块20控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。
在上述的方案中,通过设置具有人机交互界面的上位机10,便于用户向控制系统中输入控制指令;通过设置与上位机10连接以与上位机10进行信息交互的ARM模块20,实现上位机10与ARM模块20的信息交互,便于将控制指令传输给ARM模块20,以使ARM模块20对控制指令进行处理;通过设置与ARM模块20连接以与ARM模块20进行信息交互的FPGA模块30,使ARM模块20将处理后的控制信息写入FPGA模块30,并进行读取,从而控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿。
FPGA模块30具有定时器。在具体实现ARM模块20将所需的脉冲数写入FPGA模块30;ARM模块20控制FPGA模块30调整六自由度并联机器人从当前位姿运动到期望位姿时,参考图1及图4其具体为:
步骤1:ARM模块20关闭FPGA模块30中的定时器;
步骤2:ARM模块20在关闭定时器后,读取FPGA模块30中的剩余未输出脉冲数;
步骤3:ARM模块20依据所需的脉冲数、剩余未输出脉冲数,计算出实际所需的脉冲数及方向;
步骤4:ARM模块20还用于计算FPGA进行脉冲输出所需要的分频数;
步骤5:ARM模块20还用于将实际所需的脉冲数、方向及分频数一同写入FPGA中;
步骤6:ARM模块20还用于启动FPGA中的定时器。
通过ARM模块20从FPGA模块30中读取机器人的上一控制周期剩余未输出脉冲数,计算出实际需要向FPGA模块30中写入的脉冲数和方向,从而防止出现未输出脉冲数的累积。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种六自由度并联机器人的控制系统,其中,所述六自由度并联机器人具有用于表征六自由度并联机器人的姿态的六个杆,其特征在于,所述控制系统包括:
具有人机交互界面的上位机,所述人机交互界面用于输入包含有当前位姿以及期望位姿信息的控制指令;
与所述上位机连接以与所述上位机进行信息交互的ARM模块;所述ARM模块用于接收所述控制指令;所述ARM模块还用于依据机器人逆向运动学算法计算出所述六自由度并联机器人的六个杆的长度;所述ARM模块还用于依据所述六自由度并联机器人的伺服参数和电缸导程,计算出所述六自由度并联机器人从所述当前位姿运动到所述期望位姿时所需的脉冲数;
与所述ARM模块连接以与所述ARM模块进行信息交互的FPGA模块,所述ARM模块还用于将所述所需的脉冲数写入所述FPGA模块;所述ARM模块还用于控制所述FPGA模块调整所述六自由度并联机器人从所述当前位姿运动到所述期望位姿。
2.如权利要求1所述的控制系统,其特征在于,所述FPGA模块具有定时器;
所述ARM模块还用于将所述所需的脉冲数写入所述FPGA模块;所述ARM模块还用于控制所述FPGA模块调整所述六自由度并联机器人从所述当前位姿运动到所述期望位姿具体为:
所述ARM模块还用于关闭所述FPGA模块中的定时器;
所述ARM模块还用于在关闭所述定时器后,读取所述FPGA模块中的剩余未输出脉冲数;所述ARM模块还用于依据所述所需的脉冲数、所述剩余未输出脉冲数,计算出实际所需的脉冲数及方向;所述ARM模块还用于计算FPGA模块进行实际脉冲输出所需要的分频数;所述ARM模块还用于将所述实际所需的脉冲数、方向及所述分频数一同写入所述FPGA中;
所述ARM模块还用于在所述ARM模块将所述实际所需的脉冲数、方向及所述分频数一同写入所述FPGA中后,启动FPGA模块中的定时器。
3.如权利要求1-2任一项所述的控制系统,其特征在于,所述控制指令包括至少一帧控制信息,其中,每帧控制信息包括:
命令种类标志符;
所述六自由度并联机器人的位姿数据字符;
所述六自由度并联机器人的轨迹运动完成时间字符。
4.如权利要求3所述的控制系统,其特征在于,所述命令种类标志符包括:单点位姿控制标志符、归零复位控制标志符、轨迹控制标志符;
且在所述命令种类标志符为轨迹标志符时,所述轨迹运动完成时间字符为有效标志符;
在所述命令种类标志符为非轨迹标志符时,所述轨迹运动完成时间字符为无效标志符。
5.如权利要求3所述的控制系统,其特征在于,每帧控制信息包括28个字符;
其中,起始字符为“:”;
第二个字符为所述命令种类标志符;
第三个字符至第二十六个字符为所述六自由度并联机器人的位姿数据字符;
第二十七个字符为所述六自由度并联机器人的轨迹运动完成时间字符;
第二十八个字符为“\n”。
6.如权利要求1所述的控制系统,其特征在于,在每一周期内,所述六个杆中的每个杆的输出脉冲数在第一脉冲数及第二脉冲数之间;其中,所述第一脉冲数小于所述第二脉冲数。
7.如权利要求1所述的控制系统,其特征在于,所述ARM模块与所述上位机连接以进行信息交互具体为:
所述ARM模块通过串口通讯的方式与所述上位机连接以进行信息交互。
8.如权利要求1所述的控制系统,其特征在于,所述ARM模块与所述FPGA模块连接以进行信息交互具体为:
所述ARM模块通过FSMC总线与所述FPGA模块连接以进行信息交互。
9.一种六自由度并联机器人的控制方法,其中,所述六自由度并联机器人具有用于表征六自由度并联机器人的姿态的六个杆,其特征在于,所述控制方法包括:
向上位机的人机交互界面输入包含有当前位姿以及期望位姿的信息的控制指令‘’
所述上位机向ARM模块传输所述控制指令;
所述ARM模块依据机器人逆向运动学算法计算出所述六自由度并联机器人的六个杆的长度;
所述ARM模块依据伺服参数及电缸导程计算出所述六自由度并联机器人从所述当前位姿运动到所述期望位姿时所需的脉冲数;
所述ARM模块向所述FPGA模块中写入所述所需的脉冲数;
所述ARM模块控制所述FPGA模块调整所述六自由度并联机器人从所述当前位姿运动到所述期望位姿。
10.如权利要求9所述的控制方法,其特征在于,所述FPGA模块具有定时器;
所述ARM模块向所述FPGA模块中写入所述所需的脉冲数,所述ARM模块控制所述FPGA模块调整所述六自由度并联机器人从所述当前位姿运动到所述期望位姿具体为:
所述ARM模块关闭所述FPGA模块中的定时器;
所述ARM模块在关闭所述定时器后,读取所述FPGA模块中的剩余未输出脉冲数;
所述ARM模块依据所述所需的脉冲数、所述剩余未输出脉冲数,计算出实际所需的脉冲数及方向;
所述ARM模块还用于计算FPGA进行脉冲输出所需要的分频数;
所述ARM模块还用于将所述实际所需的脉冲数、方向及所述分频数一同写入所述FPGA中;
所述ARM模块还用于启动FPGA中的定时器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010248569.5A CN111360795B (zh) | 2020-03-31 | 2020-03-31 | 一种六自由度并联机器人的控制系统及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010248569.5A CN111360795B (zh) | 2020-03-31 | 2020-03-31 | 一种六自由度并联机器人的控制系统及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111360795A true CN111360795A (zh) | 2020-07-03 |
CN111360795B CN111360795B (zh) | 2021-08-03 |
Family
ID=71201125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010248569.5A Active CN111360795B (zh) | 2020-03-31 | 2020-03-31 | 一种六自由度并联机器人的控制系统及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111360795B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035882A (zh) * | 2020-07-17 | 2020-12-04 | 成都飞机工业(集团)有限责任公司 | 一种保证上位机与下位机通讯中数据完整性的方法 |
CN113268271A (zh) * | 2021-04-25 | 2021-08-17 | 北京航天发射技术研究所 | 一种基于中断方式的控制方法与装置 |
CN114509965A (zh) * | 2021-12-29 | 2022-05-17 | 北京航天自动控制研究所 | 一种复杂工况下的通用异构机器人控制平台 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101045298A (zh) * | 2007-04-12 | 2007-10-03 | 武汉科技大学 | 一种多自由度机器人运动规划控制器 |
CN102354134A (zh) * | 2011-09-02 | 2012-02-15 | 北京邮电大学 | 基于fpga的模块化双关节伺服控制系统 |
CN104339354A (zh) * | 2014-11-20 | 2015-02-11 | 西安电子科技大学 | 一种用于6自由度并联机器人的专用运动控制器硬件平台 |
CN204308953U (zh) * | 2014-11-20 | 2015-05-06 | 西安电子科技大学 | 一种用于六自由度并联机器人的专用运动控制器硬件平台 |
CN105929797A (zh) * | 2016-05-30 | 2016-09-07 | 深圳市微秒控制技术有限公司 | 一种六轴关节机器人分布式控制系统及方法 |
CN110666802A (zh) * | 2018-11-07 | 2020-01-10 | 宁波赛朗科技有限公司 | 一种具有双核运动控制器工业机器人平台 |
-
2020
- 2020-03-31 CN CN202010248569.5A patent/CN111360795B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101045298A (zh) * | 2007-04-12 | 2007-10-03 | 武汉科技大学 | 一种多自由度机器人运动规划控制器 |
CN102354134A (zh) * | 2011-09-02 | 2012-02-15 | 北京邮电大学 | 基于fpga的模块化双关节伺服控制系统 |
CN104339354A (zh) * | 2014-11-20 | 2015-02-11 | 西安电子科技大学 | 一种用于6自由度并联机器人的专用运动控制器硬件平台 |
CN204308953U (zh) * | 2014-11-20 | 2015-05-06 | 西安电子科技大学 | 一种用于六自由度并联机器人的专用运动控制器硬件平台 |
CN105929797A (zh) * | 2016-05-30 | 2016-09-07 | 深圳市微秒控制技术有限公司 | 一种六轴关节机器人分布式控制系统及方法 |
CN110666802A (zh) * | 2018-11-07 | 2020-01-10 | 宁波赛朗科技有限公司 | 一种具有双核运动控制器工业机器人平台 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035882A (zh) * | 2020-07-17 | 2020-12-04 | 成都飞机工业(集团)有限责任公司 | 一种保证上位机与下位机通讯中数据完整性的方法 |
CN113268271A (zh) * | 2021-04-25 | 2021-08-17 | 北京航天发射技术研究所 | 一种基于中断方式的控制方法与装置 |
CN113268271B (zh) * | 2021-04-25 | 2023-12-15 | 北京航天发射技术研究所 | 一种基于中断方式的控制方法与装置 |
CN114509965A (zh) * | 2021-12-29 | 2022-05-17 | 北京航天自动控制研究所 | 一种复杂工况下的通用异构机器人控制平台 |
Also Published As
Publication number | Publication date |
---|---|
CN111360795B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111360795B (zh) | 一种六自由度并联机器人的控制系统及其控制方法 | |
US10913155B2 (en) | Robot and method for controlling joints thereof | |
CN105058396A (zh) | 机器人示教系统及其控制方法 | |
CN108247611A (zh) | 一种三自由度并联机构控制方法 | |
CN110328663A (zh) | 基于虚拟仿真与Linux操作系统的机器人硬实时控制系统 | |
CN106959672A (zh) | 一种基于api的工业运动控制系统及方法 | |
US20210373530A1 (en) | Synchronization control device, synchronization control system, synchronization control method, and simulation device | |
CN112207829A (zh) | 机器人的控制方法及装置、可读存储介质 | |
CN105128010B (zh) | 一种scara机器人分布式控制系统及其控制方法 | |
CN109454641B (zh) | 一种运动控制器多任务分工及数据交互方法 | |
CN113492414B (zh) | 一种基于Web的机器人跨平台人机交互系统及实现方法 | |
CN203250190U (zh) | 工业机器人控制器 | |
CN108858209A (zh) | 一种工业机器人控制器 | |
CN115703227A (zh) | 机器人的控制方法、机器人以及计算机可读存储介质 | |
CN108170102B (zh) | 一种运动控制系统 | |
CN103552072B (zh) | 一种基于嵌入式控制器的机器人控制方法和装置 | |
CN111142445A (zh) | 多场景通用的边缘视觉运动控制系统及方法 | |
JP3421172B2 (ja) | ロボット制御装置の通信方法 | |
CN110253568B (zh) | 机器人控制方法、系统、设备及存储介质 | |
CN113848813A (zh) | 一种基于plc单元的三轴运动控制系统 | |
CN110580005B (zh) | 一种适用于极端应用条件的运动控制系统 | |
US6330485B1 (en) | High-speed multi-task system | |
JPH09285983A (ja) | ロボット制御装置およびそのデータ通信方法 | |
CN112975120A (zh) | 扫描仪控制器和扫描仪控制系统 | |
WO2003084720A1 (fr) | Dispositif de simulation de controleur de robot |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |