CN100587664C - 六自由度机器人运动学cordic算法协处理器 - Google Patents

六自由度机器人运动学cordic算法协处理器 Download PDF

Info

Publication number
CN100587664C
CN100587664C CN200810106444A CN200810106444A CN100587664C CN 100587664 C CN100587664 C CN 100587664C CN 200810106444 A CN200810106444 A CN 200810106444A CN 200810106444 A CN200810106444 A CN 200810106444A CN 100587664 C CN100587664 C CN 100587664C
Authority
CN
China
Prior art keywords
theta
module
basic module
basic
input
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.)
Expired - Fee Related
Application number
CN200810106444A
Other languages
English (en)
Other versions
CN101286115A (zh
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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN200810106444A priority Critical patent/CN100587664C/zh
Publication of CN101286115A publication Critical patent/CN101286115A/zh
Application granted granted Critical
Publication of CN100587664C publication Critical patent/CN100587664C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

本发明所设计的六自由度机器人运动学CORDIC算法的协处理器通过采用CORDIC算法替代了传统的通过计算大量超越方程才能完成机器人运动学正反解计算,使大量的超越方程计算过程简化为只需要通过加法、减法、和移位等这些硬件便于实现的操作,从而大大提高了协处理器的计算速度。

Description

六自由度机器人运动学CORDIC算法协处理器
技术领域
本发明涉及一种在空间机器人控制中用于进行高速计算的协处理器,特别是一种基于CORDIC算法对空间机器人运动学进行正反解高速计算的协处理器,属于空间技术领域。
背景技术
空间机器人作为一种通用机械、电气、计算机控制系统和人工智能的综合体,可以感知外界环境,并进行推理、判断和决策,能够在未知的环境中完成各种各样的任务,完全胜任空间作业的要求。未来空间机器人需要完成的任务越来越复杂,这就要求其中央控制计算机具有足够的处理能力。
目前地面机器人的主控计算机通常采用地面高速嵌入式系统、工控机甚至高性能的通用计算机实现,虽然地面机器人主控计算机的运算能力较高,但是很难适应空间强辐射、大温差、高真空以及发射时的振动要求,因此不可能作为空间机器人中央控制器。目前也有利用较成熟的空间用计算机作为空间机器人的中央控制器,但目前空间用计算机(如X386,80C51系列)由于系统的抗单粒子设计、降额设计,使其运算能力一般都在10MIPS以下,很难满足空间机械手实时控制的高处理能力要求。
在国际航天领域,空间机器人控制器目前主要有两种设计方法,第一种是纯粹采用抗辐照技术和策略制造的系统,这样的系统采用抗辐照的微处理器(如Lockheed的PowerPC结构的RAD750,欧空局SPARC V7结构的TSC695系列处理器,SPARC V8结构的LEON系列处理器,这些处理器都采用了抗辐照设计,但速度相对商用微处理器较慢)、存储器、电路板等等,为了避免辐照带来的负面效应,电路设计中会采用各种复杂的硬件检错纠错机制和硬件冗余容错策略;芯片布线不能太密,走线不能太细,否则也会由于辐照产生单粒子效应或者加快总辐照剂量效应带来破坏,因此也限制了芯片速度和系统性能的提高。
另一种方法种是采用商用组件技术搭建的系统,一般使用商用微处理器(例如Atmel的ARM系列,Motorola的PowerPC 603e,IBM的PowerPC 750FXTM)。此类系统虽微处理器速度快、性能较高,但由于商业器件不同于专用的星载芯片,没有专门的防护和容错机制,所以必须采用一套比较全面的策略来缓解和减轻辐射对系统带来的扰动。太空空间这样一个特殊环境,星载计算机既要增加很多容错策略来提高运行可靠性,又要完成复杂的空间任务,因此星载计算机的处理速度还远不能做到现今通用计算机那样高的程度,尤其是我们国家星上计算机性能相对国外更是有较大差距。这种情况下此类星载计算机芯片应用于空间机器人运动控制运算时,其运算速度就更显得捉襟见肘。这对于实时性要求极高的空间任务的完成有着不可回避的矛盾。
另外,在空间机器人运动学正反解的过程中,包含很多超越函数的运算,并且在各个关节角的计算中很少包含相同的计算式。因此在通常的只使用一个主处理器的空间机器人中央控制计算机上进行运动学正反解会占用较多的控制时间和系统资源,影响系统的实时性。如何解决正反解中大量超越函数的快速计算问题,使用何种适合运动学算式及系统硬件特点的算法,成为了提高中央控制计算机运动学计算速度的关键问题之一。
发明内容
本发明的发明目的在于解决现有空间机器人技术中存在的问题,提供一种基于CORDIC算法的机器人运动学正反解高速计算的协处理器。
本发明的发明目的是通过下述技术方案予以实现的:
六自由度机器人运动学CORDIC算法协处理器,用以协助主处理器完成数据计算,其特征在于:包括输入输出逻辑接口、算法运算模块;
所述算法运算模块中包括:运算参数寄存器、命令字寄存器、控制逻辑模块、状态字寄存器、输入FIFO、输出FIFO、运算处理模块;
所述输入输出逻辑接口分别与所述运算参数寄存器、命令字寄存器和输入FIFO相连;所述运算参数寄存器、命令字寄存器将所存参数输入至所述控制逻辑模块;所述控制逻辑模块控制所述状态字寄存器中的状态参数;该状态字寄存器与输入输出逻辑接口相连;
所述输入FIFO、运算处理模块、输出FIFO顺序串联,并且受所述控制逻辑模块控制;所述输出FIFO与输入输出逻辑接口相连。
该协处理包括三个结构相同的所述算法运算模块;该协处理还设有三模输出比较器、错误处理模块、配置更新模块;
所述三个的算法运算模块并联于所述输入输出逻辑接口和三模输出比较器之间;该三模输出比较器的输出端与所述错误处理模块、输入输出逻辑接口相连;该错误处理模块的输出端通过输入输出逻辑接口与主处理器相连;该配置更新模块的输入端通过输入输出逻辑接口与主处理器相连;该配置更新模块的输出端与所述三个算法运算模块相连。
所述运算处理模块中存储有机器人运动学正解的CORDIC算法流水结构和六个关节角度的运动学反解的CORDIC算法流水结构;所述机器人运动学正解的CORDIC算法流水结构和六个关节角度的运动学反解的CORDIC算法流水结构分别由若干CORDIC算法的基本模块构成;所述控制逻辑模块通过控制运算处理模块选择进行不同的算法运算。
所述第一关节角度的运动学反解的CORDIC算法流水结构由一个基本模块(2)构成。
所述第二关节角度的运动学反解的CORDIC算法流水结构包括八个基本模块(3)、一个基本模块(1)、一个基本模块(2)和一个基本模块(6);所述基本模块(1)的输出端分为并行的两路;一路依次串联有第一至第四基本模块(3)和基本模块(6);另一路依次串联有第五至第七基本模块(3)、第一基本模块(2)和第八基本模块(3);所述基本模块(6)和第八基本模块(3)的输出端分别连接至基本模块(2)的输入端,由基本模块(2)计算第二关节角度。
所述第三关节角度的运动学反解的CORDIC算法流水结构包括四个基本模块(3)、一个基本模块(2)、一个基本模块(6);所述第一基本模块(3)、第二基本模块(3)、第三基本模块(3)串联;该第三基本模块(3)的输出端分别与所述基本模块(6)和第四基本模块(3)的输入端相连;所述基本模块(6)和第四基本模块3的输出端连接于基本模块(2)的输入端,由基本模块(2)计算第三关节角度。
所述第四关节角度的运动学反解的CORDIC算法流水结构由顺序串联的第一基本模块(1)、基本模块(3)、第二基本模块(1)、基本模块(2)构成;由所述基本模块(2)输出第四关节角度。
所述第五关节角度的运动学反解的CORDIC算法流水结构包括三个基本模块(1)、两个基本模块(3)和一个基本模块(2);所述第一基本模块(1)和第一基本模块(3)串联,所述第二基本模块(1)和第二基本模块(3)串联;该第一基本模块(3)和第二基本模块(3)的输出端连接于第三基本模块(1)输入端;所述第三基本模块(1)的输出信号输入基本模块(2),由基本模块(2)计算第五关节角度。
所述第六关节角度的运动学反解的CORDIC算法流水结构包括四个基本模块(1)、两个基本模块(3)和一个基本模块(2);所述流水结构中包括两路并行的输入线路;一路由该第一基本模块(1)、第一基本模块(3)、第二基本模块(1)顺序串联而成;另一路由该第三基本模块(1)、第二基本模块(3)、第四基本模(1)顺序串联而成;该第二基本模块(1)和第四基本模块(1)的输出端与基本模块(2)的输入端相连,由基本模块2计算第六关节角度。
本发明的有益效果是:本发明所设计的CORDIC算法的协处理器通过采用CORDIC算法替代了传统的通过计算大量超越方程完成机器人运动学正反解计算,使大量的超越方程计算过程简化为只需要通过加法、减法、和移位等这些硬件便于实现的操作,从而大大提高了协处理器的计算速度。
附图说明
图1为六自由度空间机械臂模型简图;
图2为第一次矩阵相乘的CORDIC算法;
图3为六自由度空间机械臂运动学正解的CORDIC计算流水线;
图4为关节角θ1的CORDIC计算流程;
图5为关节角θ3的CORDIC计算流程;
图6为关节角θ2的CORDIC计算流程;
图7为关节角θ6的CORDIC计算流程;
图8为关节角θ4的CORDIC计算流程;
图9为关节角θ5的CORDIC计算流程;
图10为运动学CORDIC算法的协处理器的基本结构图;
图11为三冗余结构的CORDIC算法的协处理器结构图;
图12为CORDIC算法基本模块图表。
具体实施方式
下面结合附图和实施例对本发明作进一步描述。
由前述可知,空间机器人不同于一般的地面机器人,由于处于太空空间这样一个特殊环境,对于系统的可靠性和稳定性都有了较高的要求。另一方面,空间机器人运动学正反解的过程中,包含很多超越函数的运算,并且在各个关节角的计算中很少包含相同的计算式,这对处理器的处理能力提出了较高的要求。基于这种情况,使用一种有效的求解析解的算法并开发与此算法紧密相关的专用协处理器来加速中央控制计算机的运动控制计算能力,成为了解决空间机器人运动控制计算需求和星载计算机性能瓶颈矛盾的较好途径。本发明即是基于这一设计思想,设计了一种专门针对空间机器人运动学正反解高速计算的协处理器。
六自由度机器人正反解
六自由度机器人是目前空间技术中比较常见的机械结构。下面即以六自由度空间机械臂为例,分析六自由度机器人运动学正反解的解析表达式。图1为六自由度空间机械臂模型简图。该六自由度机械臂由三个二自由度双关节P1、P2、P3,两根碳纤维臂杆,一个手爪Pg和一个安装在手爪上的手眼视觉构成。其末端三个关节的轴线相交于一点P3。该空间机械臂可以安装在空间平台上来完成某些空间任务,如抓取、维修、操作等。
这个六转动关节机械臂的运动学正解方程可以用六个关节角角度来表示。六个关节角角度θi从关节位置传感器反馈。
根据Denavit-Hartenberg方法,该机械臂末端手爪相对于基坐标系的位姿矩阵n 0T可以由6个4×4的齐次变换矩阵i i-1T顺序相乘得到,见式(1)。这里,i i-1T是坐标系{i}相对于坐标系{i-1}的变换矩阵。
T T 0 = T 6 0 = T 1 0 T 2 1 . . . T 6 5 式(1)
通过手眼视觉可以得到目标体相对于手爪坐标系的位置,并且构成其4×4的齐次变换矩阵G TT。
T G T = n x T o x T a x T p x T n y T o y T a y T p x T n z T o z T a z T p x T 0 0 0 1 = V 1 T V 2 T V 3 T V 4 T 式(2)
为了得到手爪捕获目标的笛卡儿轨迹上的期望节点,需要将G TT变换到基坐标下的G 0T:
T G 0 = T T 0 × T G T = ( T 1 0 T 2 1 . . . T 6 5 ) × T G T =
Figure C20081010644400122
式(3)
图1中,Pw是机械臂的腕关节,并且末端3个关节的轴线交于腕关节的中心,故机械臂末端的位姿可以分开求解。前3个关节用来决定其位置,后三个关节用来决定其姿势。
若机械臂末端定义在基座标下的位姿矩阵为G 0T:
T G 0 = n x o x a x p x n y o y a y p y n z o z a z p z 0 0 0 1
则腕关节位置坐标Pw=(Pwx,Pwy,Pwz)可以由下式表示:
pwx=px-l4ax
pwy=py-l4ay
pwz=pz-l4az
各关节的转角用θ=(θ1,θ2,…,θ6)表示,若知道腕关节的位置坐标,则前3个关节的关节角可被求出。采用其次变换求得的解析解如下:
θ 1 = tan - 1 ( p wy p wx ) 式(4)
θ 3 = tan - 1 ( ( 2 l 2 l 3 ) 2 - ( p wx 2 + p wy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 ) ) 2 p wx 2 + p wy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 ) ) 式(5)
θ 2 = tan - 1 ( p wz - l 1 ( l 2 + l 3 s 3 ) 2 + ( l 3 c 3 ) 2 - ( p wz - l 1 ) 2 ) - tan - 1 ( l 3 c 3 l 2 + l 3 s 3 ) 式(6)
得出前3个关节角后,后3个关节的关节角可作如下求解:
θ 6 = - tan - 1 ( s 23 ( c 1 o x + s 1 o y ) + c 23 o z s 23 ( c 1 n x + s 1 n y ) + c 23 n z ) 式(7)
θ 4 = tan - 1 ( c 23 ( c 1 a x + s 1 a y ) - s 23 a z - s 1 a x + c 1 a y ) 式(8)
θ 5 = - tan - 1 ( s 23 ( c 1 n x + s 1 n y ) + c 23 n z c 4 ( c 23 ( c 1 n x + s 1 n y ) + s 23 n z ) - s 4 ( s 1 n x + c 1 n y ) ) 式(9)
其中:sθ、cθ分别是sinθ、cosθ的缩写形式。sn=sinθn(n=1,2,…,6);
cn=cosθn(n=1,2,…,6);s23=sin(θ23);c23=cos(θ23)。
从上面的求解式可以发现,在正反解得过程中,包含很多超越函数的运算,并且在各个关节角的计算中很少包含相同的计算式。因此,如何解决正反解中大量超越函数的快速计算问题,使用何种适合运动学算式及系统硬件特点的算法,是提高中央控制计算机运动学计算速度的关键问题。
CORDIC算法
CORDIC算法是一种坐标旋转数值计算方法,将任意坐标的某一角度的旋转移动通过离散地反复旋转直至收敛而得到,所用到的操作只有加法、减法、和移位。这些操作用硬件能够很快的实现,从而提高了计算速度。经典的CORDIC算法共有三种旋转系统,分别为:圆周(circular)系统、线性(linear)系统与双曲(hyperbolic)系统,算法使用了线性,圆周和双曲坐标下的二维向量旋转。
由于CORDIC算法的推到过程复杂,且为现代信号处理领域经常使用的成熟算法,在此仅给出其结论性的计算公式。三种旋转系统下,CORDIC算法的基本公式:
xi+1=xi-μdiyi2-i
yi+1=yi+dixi2-i
zi+1=zi-diei
圆周坐标系旋转:μ=l,ei=tan-12-i
线性坐标系旋转:μ=0,ei=2-i
双曲坐标系旋转:μ=-1,ei=tanh-12-i
在CRODIC算法的旋转和向量计算模式中,选择不同的迭代约束就可以得到如图12的CRODIC算法基本模块表。由图12我们可以知道,通过选择CRODIC算法的不同计算模式和旋转系统,我们可以通过CRODIC算法得到cosz、sinz、tan-1y、乘法、除法、cosh z、sinh z、tanh-1y等函数计算方法。按图12中标记所示,我们将CRODIC算法的六种不同计算模块称为基本模块1至基本模块6。每个基本模块都具有三路输入和对应的三路输出,我们将这三路分别称为x、y、z。
通过观察发现,六自由度机器人运动学正反解解析表达式中的代数式结构与CORDIC算法基本模块有很大相似度。故,可以将六自由度机器人运动学正反解解析表达式与CORDIC算法相结合,得到一种新的算法。而由于CORDIC算法所用到的操作只有加法、减法、和移位。这些操作用硬件能够很快的实现,从而提高了处理器计算速度。这是本发明的设计核心所在。
运动学正解的CORDIC算法
为了便于采用CORDIC算法,式(3)可以被改写成以下形式:
T G 0 = ( T 1 0 T 2 1 . . . T 6 5 ) × T G T = ( T 1 0 T 2 1 . . . T 5 4 ) × T 6 5 T G T = ( T 1 0 T 2 1 . . . T 4 3 ) × T 5 4 T G 5 = . . . = T 1 0 × T G 1 式(10)
这里,只需进行六次矩阵相乘就可以计算出G 0T。
假设TVi=(TXiTYiTZi,0(1))T为定义在手抓坐标系下的变换矩阵G TT中的第i个向量。则正解的第一次矩阵相乘可以由式(11)表示:
X i 5 Y i 5 Z i 5 1 = cθ 6 - s θ 6 0 0 0 0 1 l 4 - sθ 6 - c θ 6 0 0 0 0 0 1 X i T Y i T Z i T 0 ( 1 ) = cθ 6 X i T - sθ 6 Y i T Z i T + 0 ( l 4 ) - ( cθ 6 Y i T + sθ 6 X i T ) 0 ( 1 ) 式(11)
根据图12,式(11)的计算可以用CORDIC算法的基本模块1和一个加法器来实现,如图2所示。
故,由6个CORDIC算法基本模块组成的串行流水线结构可以有效地计算式(11),如图3所示。流水线的输出即为G 0T的第i个向量0Vi=(0Xi0Yi0Zi,0(1))T。CLR信号是复用器MUX的输出选择信号。当CLR置高时,所有的复用器输出全部置0。
对于该机械臂模型的运动学正解计算,通过使用CORDIC算法的流水结构,将常规解法的245次各种复杂的超越函数的计算变成如图3所示的36次CORDIC计算操作,大大降低了运算复杂度和难度。
运动学反解的CORDIC算法
运动学反解的CORDIC计算的基本思想是将运动学反解解析解转变为坐标旋转和正反切等基本运算。为了使运动学反解高速化,必须在复杂的反解解析解式(4)至(式9)中找出与CORDIC算法基本模块输出共同的计算式,并同正解一样由CORDIC的算法基本模块组成流水线结构来实现反解解析式的计算。
观察六自由度空间机器人运动学反解解析解式式(4)至式(9),可以看出,在所有的解析表达式中,主要由旋转、反正切、开方、乘法等计算形式构成。这些恰好可以用图12中基本模块1、2、6、3来计算。以此可以得出所有6个关节角的运动学反解解析解的CORDIC算法。
六自由度机械臂的运动学反解解析解的计算也可以使用运动学正解求解的流水结构来处理。下面对6个关节角的反解计算分别进行讨论,并给出其各自的CORDIC流水线算法结构(参见图4至图9)。
(1)关节角1的反解解析式为:
θ 1 = tan - 1 ( p wy p wx )
由前述可以得出,其计算流程结构可以用图4表示。
θ1运动学反解的CORDIC算法流水结构由一个基本模块2构成。该基本模块2的X路输入Pwx,Y路输入Pwy,Z路输入0,该Z路的输出即为θ1
(2)关节角3的反解解析式为:
θ 3 = tan - 1 ( ( 2 l 2 l 3 ) 2 - ( p wx 2 + p wy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 ) ) 2 p wx 2 + p wy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 ) )
由前述可以得出,其计算流程结构可以用图5表示。
θ3运动学反解的CORDIC算法流水结构包括四个基本模块3、一个基本模块2、一个基本模块6。其中,第一基本模块3、第二基本模块3、第三基本模块3顺序串联。第一基本模块3的X路和Z路输入Pwx,Y路输入V(1);第二基本模块3的X路和Z路输入Pwx,Y路输入与第一基本模块3的Y路输出相连;第三基本模块3的X路和Z路输入V(2),Y路输入与第二基本模块3的Y路输出相连。第三基本模块3的Y路输出一路直接输入基本模块6的Y路输入端,一路经V(4)输入第四基本模块3的X路输入端。基本模块6的X路和Z路输入V(3),其X路输出经V(5)输入基本模块2的Y路输入端。第四基本模块3的Y路输入0,Z路输入V(6),其Y路输出至基本模块2的X路输入。该基本模块2的Z路输入0,其Z路输出即为θ3
其中:
V ( 1 ) = - ( l 2 2 + l 3 2 )
V(2)=pwz-l1
V(3)=2l2l3
V ( 4 ) = p wx 2 + p wy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 )
V ( 5 ) = K * ( 2 l 2 l 3 ) 2 - ( p wx 2 + p wy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 ) ) 2
V(6)=K*
(3)关节角2的反解解析式为:
θ 2 = tan - 1 ( p wz - l 1 ( l 2 + l 3 s 3 ) 2 + ( l 3 c 3 ) 2 - ( p wz - l 1 ) 2 ) - tan - 1 ( l 3 c 3 l 2 + l 3 s 3 )
由前述可以得出,其计算流程结构可以用图6表示。
θ2运动学反解的CORDIC算法流水结构包括八个基本模块3、一个基本模块1、两个基本模块2和一个基本模块6。其中,基本模块1的X路输入0,Y路输入l3,Z路输入前述计算出的θ3。该基本模块1的输出分为两路,其X路输出依次串联有第一至第四基本模块3和基本模块6,其Y路输出依次串联有第五至第七基本模块3、第一基本模块2和第八基本模块3。最终由第四基本模块3的X路输出至第二基本模块2的X路,第八基本模块3的Z路输出经V(12)输出至第二基本模块2的Z路,第二基本模块2的Y路输入V(11),该第二基本模块2的Z路输出即为θ2
其中:
V(7)=1/K
V(8)=l2+l3s3
V(9)=l3c3
V(10)=K*(pwz-l1)
V(11)=pwz-l1
V ( 12 ) = - tan - 1 ( l 3 c 3 l 2 + l 3 s 3 )
(4)关节角6的反解解析式为:
θ 6 = - tan - 1 ( s 23 ( c 1 o x + s 1 o y ) + c 23 o z s 23 ( c 1 n x + s 1 n y ) + c 23 n z )
由前述可以得出,其计算流程结构可以用图7表示。
θ6运动学反解的CORDIC算法流水结构包括四个基本模块1、两个基本模块3和一个基本模块2。其中,该流水结构中包括两路并行的输入线路,一路由第一基本模块1、第一基本模块3、第二基本模块1顺序串联而成;另一路由第三基本模块1、第二基本模块3、第四基本模块1顺序串联而成。该第二基本模块1的X路输出至基本模块2的X路输入,第四基本模块1的X路输出至基本模块2的Y路输入,该基本模块2的Z路输出即为-θ6
其中:
V(7)=1/K
V(13)=c1nx+s1ny
V(14)=K(s23(c1nx+s1ny)+c23nz)
(5)关节角4的反解解析式为:
θ 4 = tan - 1 ( c 23 ( c 1 a x + s 1 a y ) - s 23 a z - s 1 a x + c 1 a y )
由前述可以得出,其计算流程结构可以用图8表示。
θ4运动学反解的CORDIC算法流水结构由顺序串联的第一基本模块1、基本模块3、第二基本模块1、基本模块2构成。该第一基本模块1的X路输入ax,Y路输入ay,Z路输入前述计算出的θ1,其X路输出至基本模块3的X路,Y路输出经V(15)至基本模块2的X路。基本模块3的Y路输入0,Z路输入V(7),其Y路输出至第二基本模块1的Y路。第二基本模块1的X路输入az,Z路输入θ23,其Y路输出至基本模块2的Y路,则基本模块2的Z路输出即为θ4
其中:
V(15)=K(-s1ax+c1ay)
(6)关节角5的反解解析式为:
θ 5 = - tan - 1 ( s 23 ( c 1 n x + s 1 n y ) + c 23 n z c 4 ( c 23 ( c 1 n x + s 1 n y ) + s 23 n z ) - s 4 ( s 1 n x + c 1 n y ) )
由前述可以得出,其计算流程结构可以用图9表示。
θ5运动学反解的CORDIC算法流水结构包括三个基本模块1、两个基本模块3和一个基本模块2。其中,该流水结构中包括两路并行的输入线路,一路由第一基本模块1和第一基本模块3串联而成,另一路由第二基本模块1和第二基本模块3串联而成。第一基本模块3的Y路输出至第三基本模块1的X路,第二基本模块3的Y路输出至第三基本模块1的Y路,该第三基本模块1的Y路输出至基本模块2的X路。基本模块2的Y路输入前述V(14),Z路输入0,其Z路输出即为-θ5
其中:
V(7)=1/K
V(13)=c1nx+s1ny
V(14)=K(s23(c1nx+s1ny)+c23nz)
V(15)=s1nx+c1ny
至此,我们已经得到了六自由度空间机器人运动学正反解的全部CORDIC计算方法和算法模型。在这些计算过程中,所有的超越函数的计算我们都是用CORDIC算法来处理的。对于超越函数的计算,一般的算法是比较复杂和耗费计算资源的,但是使用CORDIC流水结构来计算这些有大量超越函数组成的表达式却具有很好的效果。这些运算只需要加法和移位操作就能实现,这两种操作在二进制硬件系统中的实现是快速和简单的。
另外,由于CORDIC算法的3个输入的计算是并行的,所以它的数据处理都是以三路全并行的形式进行的,这就大大提高了处理速度,缩短了计算时间。计算过程在空间机器人控制周期的占用上减少到了较低的水平。
图10即为基于上述得出的运动学正反解CORDIC算法的协处理器的基本结构图。该协处理器包括:输入输出逻辑接口、算法运算模块。其中,算法运算模块中包括:运算参数寄存器、命令字寄存器、控制逻辑模块、状态字寄存器、输入FIFO、输出FIFO、运算处理模块。
该输入输出逻辑接口的输入信号分别输入运算参数寄存器、命令字寄存器和输入FIFO。运算参数寄存器、命令字寄存器中所存参数输入控制逻辑模块,再由控制逻辑模块控制状态字寄存器中的状态参数。该状态字寄存器中所存状态参数输出至主处理器,以表明当前算法运算模块的运算状态。由命令字寄存器、运算参数寄存器、控制逻辑模块、状态字寄存器所形成的串联线路构成了算法运算模块的控制信息路径。
该输入FIFO、运算处理模块、输出FIFO顺序串联构成了算法运算模块的数据信息路径。这三部分根据控制逻辑模块的控制命令进行相应的运算操作。运算处理模块处理后的运算结果由输出FIFO输出。
下面对其中各个模块的作用作进一步说明:
控制逻辑模块是算法运算模块中的控制核心,依据命令字寄存器、状态字寄存器输入的参数确定运算处理模块所需使用的运动学正解和反解的CORDIC算法结构,并控制FIFO、运算处理模块、输出FIFO进行相应操作。
运算处理模块包含有前述得出的各种运动学正反解CORDIC算法流水结构。该模块为整个协处理器的核心运算模块,可进行直接运动学正反解计算,超越函数计算以及定点数的基本数学运算。该模块每次计算使用哪条流水结构根据控制逻辑模块的控制指令决定。
运动参数寄存器中存储有机械手的结构参数,可由主处理器发出进行参数的更新,满足不同构型机械手的需要。
命令字寄存器由主处理器发出可变更控制逻辑模块进行不同的控制操作。该命令字寄存器是一个8位寄存器。
状态字寄存器用来记录算法运算模块的各阶段的运行状态,反映了协处理器的当前状态。状态字寄存器为16位寄存器。高8位为一级状态字,指示所进行的运算功能;低8位为二级状态字,指示所进行的某项功能中的哪一步操作。
输入输出逻辑接口用以实现协处理器与主处理器的数据传送和控制协调。
当主处理器需要协处理器完成运动学中的某项计算时,将该运算相应的命令字发送至协处理器。协处理器将该命令字寄存在命令字寄存器中供控制逻辑模块解析。控制逻辑模块完成对主处理器命令的解析后,将所对应的算法流程准备好,同时配置好运算参数。当运动学计算数据压入输入FIFO后,控制逻辑模块控制数据进入算法流程进行计算。计算过程中,数据计算进行到流程的哪一步,会将当前状态以状态字的形式写入状态字寄存器,控制逻辑模块根据当前状态字来决定下一步的计算。最终计算出的结果存入输出FIFO,完成此次计算。
图10所示的协处理器结构仅为一个基本结构。由于该协处理器使用在特殊的太空环境下,对协处理器的抗干扰能力和容错能力都有着较高的要求。因此,我们有必要再图10所示结构的基础上进一步增加一定的冗余和差错控制结构。
图11给出了具有三冗余结构设计的协处理器。该协处理具有三个结构相同的算法运算模块。该协处理另外还设有三模输出比较器、错误处理模块、配置更新模块。所述三个结构相同的算法运算模块与前述图10中所示的算法运算模块的结构一致。三个算法运算模块并联于输入输出逻辑接口和三模输出比较器之间。该三模输出比较器的输出端与错误处理模块和输入输出逻辑接口相连。该错误处理模块的输出端通过输入输出逻辑接口与主处理器相连。配置更新模块的输入端通过输入输出逻辑接口与主处理器相连。配置更新模块的输出端与三个算法运算模块相连。
三模输出比较器主要对三个算法运算模块的输出数据进行三取二的多数表决纠错,避免单粒子翻转的影响。
错误处理模块通过监控三模输出比较器,诊断出有故障的算法运算模块,通知主处理器进行协处理器内部逻辑配置的修正和更新操作。
配置更新模块主要配合主处理器,对三个算法运算模块进行逻辑配置的修正和更新操作。

Claims (9)

1、一种六自由度机器人运动学CORDIC算法协处理器,用以协助主处理器完成数据计算,其特征在于:包括输入输出逻辑接口、算法运算模块;
所述算法运算模块中包括:运算参数寄存器、命令字寄存器、控制逻辑模块、状态字寄存器、输入FIFO、输出FIFO、运算处理模块;
所述输入输出逻辑接口分别与所述运算参数寄存器、命令字寄存器和输入FIFO相连;所述运算参数寄存器、命令字寄存器将所存参数输入至所述控制逻辑模块;所述控制逻辑模块控制所述状态字寄存器中的状态参数;该状态字寄存器与输入输出逻辑接口相连;
所述输入FIFO、运算处理模块、输出FIFO顺序串联,并且受所述控制逻辑模块控制;所述输出FIFO与输入输出逻辑接口相连;
所述控制逻辑模块,用于解析寄存于命令字寄存器中的主处理器发送的命令字,将对应的运算处理模块所需使用的运动学正解和反解的CORDIC算法流水结构准备好,配置好运算参数,当运动学计算数据压入输入FIF0后,控制逻辑模块控制数据进入CORDIC算法流水结构进行计算,根据状态字寄存器的当前状态字来决定所述运算处理模块下一步的计算,并将计算出的结果存入输出FIFO;
所述运算处理模块,用于存储机器人运动学正解的CORDIC算法流水结构和六个关节角度的运动学反解的CORDIC算法流水结构,以及进行直接运动学正反解计算、超越函数计算和定点数的基本数学运算,其中,所述机器人运动学正解的CORDIC算法流水结构和六个关节角度的运动学反解的CORDIC算法流水结构分别由若干个CORDIC算法的基本模块构成,所述运算处理模块每次计算使用哪条流水结构根据所述控制逻辑模块的控制指令决定;
所述运算参数寄存器,用于寄存机械手的结构参数;
所述命令字寄存器,用于寄存由主处理器发出变更控制逻辑模块进行不同的控制操作的命令字;
所述状态字寄存器,用于寄存所述运算处理模块的各阶段的运行状态,描述协处理器的当前状态;
所述输入输出逻辑接口,用于实现协处理器与主处理器的数据传送和控制协调。
2、如权利要求1所述的协处理器,其特征在于:该协处理器包括三个结构相同的所述算法运算模块;该协处理器还设有三模输出比较器、错误处理模块、配置更新模块;
所述三个算法运算模块并联于所述输入输出逻辑接口和三模输出比较器之间;该三模输出比较器的输出端与所述错误处理模块、输入输出逻辑接口相连;该错误处理模块的输出端通过输入输出逻辑接口与主处理器相连;该配置更新模块的输入端通过输入输出逻辑接口与主处理器相连;该配置更新模块的输出端与所述三个算法运算模块相连。
3、如权利要求1所述的协处理器,其特征在于:所述CORDIC算法的基本模块都具有三路输入和对应的三路输出,三路输入、输出分别为x、y、z,其中基本模块1计算cosz和sinz,基本模块2计算tan-1y,基本模块3计算乘法,基本模块4计算除法,基本模块5计算cosh z和sinh z,基本模块6计算tanh-1y。
4、如权利要求3所述的协处理器,其特征在于:第一关节角度的运动学反解的CORDIC算法流水结构由一个基本模块2构成,用于计算第一关节角度
θ 1 = tan - 1 ( p wy p wx ) ,
其中,Pwx、Pwy分别为机械臂的腕关节的X、Y轴位置坐标。
5、如权利要求3所述的协处理器,其特征在于:第二关节角度的运动学反解的CORDIC算法流水结构包括八个基本模块3、一个基本模块1、二个基本模块2和一个基本模块6;所述基本模块1的输出端分为并行的两路;一路依次串联有第一至第四基本模块3和基本模块6;另一路依次串联有第五至第七基本模块3、第一基本模块2和第八基本模块3;所述基本模块6和第八基本模块3的输出端分别连接至第二基本模块2的输入端,用于计算第二关节角度
θ 2 = tan - 1 ( p wz - l 1 ( l 2 + l 3 s 3 ) 2 + ( l 3 c 3 ) 2 - ( p wz - l 1 ) 2 ) - tan - 1 ( l 3 c 23 l 2 + l 3 s 3 ) ,
其中,PWZ为机械臂的腕关节的Z轴位置坐标,cn=cosθn(n=1,2,…,6),sn=sinθn(n=1,2,…,6),θn(n=1,2,...,6)为第n关节角度,sθ、cθ分别是sinθ、cosθ的缩写形式,ln(n=1,2,3)取自于目标体相对于手爪坐标系位置的4×4的齐次变换矩阵G TT所变换成的基坐标下的矩阵G 0T:
T = T T 0 × T G T G 0 = ( T 1 0 T 2 1 · · · T 6 5 ) × T G T =
c θ 1 - s θ 1 0 0 s θ 1 c θ 1 0 0 0 0 1 - l 1 0 0 0 1 c θ 2 - s θ 2 0 0 0 0 1 0 - s θ 2 - c θ 2 0 0 0 0 0 1 c θ 3 - s θ 3 0 - l 2 s θ 3 c θ 3 0 0 0 0 - 1 0 0 0 0 1
c θ 4 - s θ 4 0 0 0 0 1 l 3 - s θ 4 - c θ 4 0 0 0 0 0 1 c θ 5 - s θ 5 0 0 0 0 - 1 0 s θ 5 c θ 5 0 0 0 0 0 1 c θ 6 - s θ 6 0 0 0 0 1 l 4 - s θ 6 - c θ 6 0 0 0 0 0 1 V 1 T V 2 T V 3 T V 4 T
6、如权利要求3所述的协处理器,其特征在于:第三关节角度的运动学反解的CORDIC算法流水结构包括四个基本模块3、一个基本模块2、一个基本模块6;所述第一基本模块3、第二基本模块3、第三基本模块3串联;该第三基本模块3的输出端分别与所述基本模块6和第四基本模块3的输入端相连:所述基本模块6和第四基本模块3的输出端连接于基本模块2的输入端,用于计算第三关节角度
θ 3 = tan - 1 ( ( 2 l 2 l 3 ) 2 - ( p wx 2 + p xy 2 + ( p wz - l 1 ) 2 - ( l 2 2 + l 3 2 ) ) 2 p wx 2 + p wy 2 + ( p wz - l 1 ) 2 + ( l 2 2 + l 3 2 ) ) ,
其中,PWX、PWY、PWZ分别为机械臂的腕关节的X、Y、Z轴位置坐标,sθ、cθ分别是sinθ、cosθ的缩写形式,ln(n=1,2,3)取自于目标体相对于手爪坐标系位置的4×4的齐次变换矩阵G TT所变换成的基坐标下的矩阵G 0T:
T = T T 0 × T G T G 0 = ( T 1 0 T 2 1 · · · T 6 5 ) × T G T =
c θ 1 - s θ 1 0 0 s θ 1 c θ 1 0 0 0 0 1 - l 1 0 0 0 1 c θ 2 - s θ 2 0 0 0 0 1 0 - s θ 2 - c θ 2 0 0 0 0 0 1 c θ 3 - s θ 3 0 - l 2 s θ 3 c θ 3 0 0 0 0 - 1 0 0 0 0 1
c θ 4 - s θ 4 0 0 0 0 1 l 3 - s θ 4 - c θ 4 0 0 0 0 0 1 c θ 5 - s θ 5 0 0 0 0 - 1 0 s θ 5 c θ 5 0 0 0 0 0 1 c θ 6 - s θ 6 0 0 0 0 1 l 4 - s θ 6 - c θ 6 0 0 0 0 0 1 V 1 T V 2 T V 3 T V 4 T
7、如权利要求3所述的协处理器,其特征在于:第四关节角度的运动学反解的CORDIC算法流水结构由顺序串联的第一基本模块1、基本模块3、第二基本模块1、基本模块2构成,用于计算第四关节角度
θ 4 = tan - 1 ( c 23 ( c 1 a x + s 1 a y ) + s 23 a z - s 1 a x + c 1 a y ) ,
其中,c23=cos(θ23),cn=cosθn(n=1,2,…,6),sn=sinθn(n=1,2,…,6),s23=sin(θ23),θn(n=1,2,...,6)为第n关节角度,ax,ay,az取自于机械臂末端定义在基座标下的位姿矩阵G 0T:
T G 0 = n x o x a x p x n y o y a y p y n z o z a z p z 0 0 0 1 .
8、如权利要求3所述的协处理器,其特征在于:第五关节角度的运动学反解的CORDIC算法流水结构包括三个基本模块1、两个基本模块3和一个基本模块2;所述第一基本模块1和第一基本模块3串联,所述第二基本模块1和第二基本模块3串联;该第一基本模块3和第二基本模块3的输出端连接于第三基本模块1输入端;所述第三基本模块1的输出信号输入基本模块2,用于计算第五关节角度
θ 5 = - tan - 1 ( s 23 ( c 1 n x + s 1 n y ) + c 23 n z c 4 ( c 23 ( c 1 n x + s 1 n y ) + s 23 n z ) - s 4 ( s 1 n x + c 1 n y ) ) ,
其中,c23=cos(θ23),cn=cosθn(n=1,2,…,6),sn=sinθn(n=1,2,…,6),s23=sin(θ23),θn(n=1,2,...,6)为第n关节角度,nx,ny,nz取自于机械臂末端定义在基座标下的位姿矩阵G 0T:
T G 0 = n x o x a x p x n y o y a y p y n z o z a z p z 0 0 0 1 .
9、如权利要求3所述的协处理器,其特征在于:第六关节角度的运动学反解的CORDIC算法流水结构包括四个基本模块1、两个基本模块3和一个基本模块2;所述第六关节角度的流水结构中包括两路并行的输入线路;一路由该第一基本模块1、第一基本模块3、第二基本模块1顺序串联而成;另一路由该第三基本模块1、第二基本模块3、第四基本模块1顺序串联而成;该第二基本模块1和第四基本模块1的输出端与基本模块2的输入端相连,用于计算第六关节角度
θ 6 = - tan - 1 ( s 23 ( c 1 o x + s 1 o y ) + c 23 o z s 23 ( c 1 n x + s 1 n y ) + c 23 n z ) ,
其中,c23=cos(θ23),cn=cosθn(n=1,2,…,6),sn=sinθn(n=1,2,…,6),s23=sin(θ23),θn(n=1,2,...,6)为第n关节角度,nx,ny,nz,ox,oy,oz取自于机械臂末端定义在基座标下的位姿矩阵G 0T:
T G 0 = n x o x a x p x n y o y a y p y n z o z a z p z 0 0 0 1 .
CN200810106444A 2008-05-13 2008-05-13 六自由度机器人运动学cordic算法协处理器 Expired - Fee Related CN100587664C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810106444A CN100587664C (zh) 2008-05-13 2008-05-13 六自由度机器人运动学cordic算法协处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810106444A CN100587664C (zh) 2008-05-13 2008-05-13 六自由度机器人运动学cordic算法协处理器

Publications (2)

Publication Number Publication Date
CN101286115A CN101286115A (zh) 2008-10-15
CN100587664C true CN100587664C (zh) 2010-02-03

Family

ID=40058337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810106444A Expired - Fee Related CN100587664C (zh) 2008-05-13 2008-05-13 六自由度机器人运动学cordic算法协处理器

Country Status (1)

Country Link
CN (1) CN100587664C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012232363A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボット制御システム、ロボットシステム及びプログラム
CN102722469A (zh) * 2012-05-28 2012-10-10 西安交通大学 基于浮点运算单元的基本超越函数运算方法及其协处理器
CN104390612B (zh) * 2014-07-08 2017-03-08 西安电子科技大学 用于Stewart平台构型的六自由度并联机器人基准位姿标定方法
CN106695845A (zh) * 2015-11-13 2017-05-24 上海优爱宝机器人技术有限公司 机器人电控系统的控制方法
CN109032564B (zh) * 2018-08-16 2022-12-02 电子科技大学 一种高稳定性的cordic算法实现电路
FR3087907B1 (fr) 2018-10-24 2021-08-06 St Microelectronics Grenoble 2 Microcontroleur destine a executer un traitement parametrable
FR3087908B1 (fr) * 2018-10-24 2021-08-06 St Microelectronics Grenoble 2 Microcontroleur capable d'executer de facon acceleree un traitement parametrable
CN112985517B (zh) * 2021-05-11 2021-10-15 成都卡诺普机器人技术股份有限公司 一种工业机器人动态数据自动化检测的方法
CN114012728B (zh) * 2021-11-12 2023-04-25 哈尔滨工业大学(威海) 适用于两段6自由度连续体机械臂的逆运动学求解方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
空间机器人坐标逆变换超高速算法. 洪炳镕等.机器人,第Vol.14卷第No.3期. 1992 *
空间机器人坐标逆变换高速专用处理机体系结构及其仿真系统的研究. 洪炳镕等.机器人,第Vol.15卷第No.6期. 1993 *

Also Published As

Publication number Publication date
CN101286115A (zh) 2008-10-15

Similar Documents

Publication Publication Date Title
CN100587664C (zh) 六自由度机器人运动学cordic算法协处理器
Zhang et al. Velocity-level control with compliance to acceleration-level constraints: A novel scheme for manipulator redundancy resolution
WO2018107851A1 (zh) 冗余机械臂的控制方法及装置
CN102785248B (zh) 一种解耦型六自由度工业机器人的运动控制方法
Léger et al. Off-line programming of six-axis robots for optimum five-dimensional tasks
Chen et al. A recurrent neural network applied to optimal motion control of mobile robots with physical constraints
Qiu et al. Two new discrete-time neurodynamic algorithms applied to online future matrix inversion with nonsingular or sometimes-singular coefficient
Xu et al. Analytical and semi-analytical inverse kinematics of SSRMS-type manipulators with single joint locked failure
US20180365349A1 (en) Method and system for formally analyzing the motion planning of a robotic arm based on conformal geometric algebra
CN106423657A (zh) 一种基于索引曲线的热喷涂机器人路径规划方法及系统
CN111975771A (zh) 一种基于偏差重定义神经网络的机械臂运动规划方法
CN109781059A (zh) 星载点波束天线对地指向精度评估系统
Boesen et al. Autonomous distributed self-organizing and self-healing hardware architecture-The eDNA concept
Xie et al. Hybrid control of orientation and position for redundant manipulators using neural network
Wu et al. Inverse kinematics of a class of 7R 6-DOF robots with non-spherical wrist
Zhang et al. Bi-criteria velocity minimization of robot manipulators using LVI-based primal-dual neural network and illustrated via PUMA560 robot arm
Lambert Parallel robots with configurable platforms
Han et al. Integral backstepping based computed torque control for a 6 DOF arm robot
Wang et al. A closed-form solution for inverse kinematics of redundant space manipulator with multiple joint offsets
Moustris et al. Feedback equivalence and control of mobile robots through a scalable FPGA architecture
Wang et al. Investigation on a new discrete-time synchronous motion planning scheme for dual-arm robot systems
Bai et al. Coordinated motion planning of the mobile redundant manipulator for processing large complex components
Yeung et al. Efficient parallel algorithms and VLSI architectures for manipulator Jacobian computation
CN110569582A (zh) 一种用于天线的二维指向机构的指向精度计算方法及装置
Zheng et al. An optimal kinematics calculation method for a multi-DOF manipulator

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100203

Termination date: 20110513