论文部分内容阅读
六自由度串联机械手的位置逆解问题一直是机器人学研究领域的难点和热点之一。从逆解算法中得到的输入输出方程具有很大的理论研究价值,可以在此基础上进行诸多机构学问题的研究;另外,运动学逆解也是机械手进行运动规划和轨迹控制的关键。目前,已经提出一些准确性和实时性都比较好的逆解算法,也有一些针对欠自由度机械手的逆解算法,但对于因关节故障而形成的欠自由度机械手的位置逆解都不能使它达到更多位姿,完成大部分原计划任务。本文以这种因关节故障而形成的欠自由度机械手逆解算法问题为研究对象,提出了一种新的方法,并将其运用于解决实际问题中。主要研究内容如下: 1.六自由度机械手在一个关节发生故障时,成为五自由度机械手或称欠自由度机械手。如果机械手抓取的是棒状物体,可以对手爪围绕棒中心线的转动姿态参数不加限制,从而把这一转动虚拟成一个未知的旋转关节,这样欠自由度机械手的位置反解问题就转换成含有六个未知量的位置反解问题。由于其结构参数发生变化,成为对新的机构的机械手进行求解,且故障的关节是不确定的,因而反解程序须满足这一不确定性要求。一旦位置反解的运动学方程建立之后,解方程的过程与六自由度串联机械手的算法类似。 2.本文在将关节变量的三角函数形式转化为复指数形式的六自由度串联机械手位置逆解算法的基础上,采用将机械手末端姿态γ虚拟成未知旋转关节的方法分别对一般6R串联机械手、一种1P5R机械手和一种双关节6R机械手在不同关节发生故障时形成的欠自由度机械手进行了位置逆解的求解。并通过数值算例,验证了机械手末端姿态γ不加限制时,不同关节故障的六自由度机械手位置逆解的过程不同,并且解的个数也不同。这种具有容错性能的机械手位置逆解算法也可以用于一般的欠自由度机械手的位置逆解。 3.本文还在六自由度串联机械手位置逆解特征值算法的基础上,用C++语言实现了六自由度串联机械手位置逆解算法,利用OpenGL