机器人逆运动学

我们已经看到了前向运动学问题。逆运动学问题更有趣,其解决方案更有用。在位置层面,问题表述为:“考虑到机器人手部的理想位置,所有机器人关节的角度必须是什么?”

人类一直在解决这个问题,甚至没有想到它。当你早上吃麦片时,你只需伸手拿起勺子。你不会想,“我的肩膀需要这样做,我的肘部需要这样做,等等。” 下面我们将看看大多数机器人如何解决这个问题。我们将从一个非常简单的例子开始。


上图是位于XY平面上的简单机器人的示意图。机器人有一个长度为l的连杆和一个连接角度为Ø的连杆。机器人的手的位置是 Xhand该机器人的逆运动学问题(在位置级别)如下:给定 Xhand关节角度Ø是多少?我们将开始解决这个问题,写下前向位置方程,然后求解Ø。

Xhand = lcosØ      (forward position solution)
cosØ = Xhand/l 
Ø = cos-1(Xhand/l) 

 
 

为了完成解决方案,假设这个机器人的链接长度为1英尺,我们希望机器人的手在X = 0.771英尺。这给出了:

 
 

Ø = cos-1(.7071) = +/- 45 degrees

 

即使对于这个简单的例子,逆运动学问题有两个解决方案:一个在正45度和一个在负45度!多种解决方案的存在增加了逆运动学问题的挑战。通常我们需要知道哪些解决方案是正确的。我所知道的所有编程语言都提供称为ATan2的三角函数,当给出X和Y参数时,它们将找到适当的象限:Ø= ATan2(Y / X)。现在我们有了我们需要的工具来查看更有趣的逆运动学问题:

你可能不得不使用你的想象力,但上面的示意图是我们在工业机器人部分讨论的SCARA机器人的平面部分以下是该机器人在位置级别的逆向运动学问题的陈述:

 
Given: Xhand, Yhand, Øhand
Find: Ø1, Ø2 and  Ø3 
  

为了帮助解决这个问题,我将定义一个假想的直线,从机器人的第一个关节延伸到最后一个关节,如下所示:

  
 B:虚线的长度
 1:X轴和虚线之间的角度
 2:虚线与链路l 1之间的内角
  
然后我们有: 
 

B2 = Xhand2 + Yhand2                            (由毕达哥拉斯定理)

q1 = ATan2(Yhand/Xhand)

q2 = acos[(l12 - l22 + B2)/2l1B] 

Ø1 = q1 + q2

Ø2 = acos[(l12 + l22 - B2)/2l1l2]

Ø3 = Øhand - Ø1 - Ø2


 
这样就完成了Ø1Ø2和Ø 3 给定的X hand,Y handØ hand位置级别的大多数逆运动学解决方案都以类似的方式进行。您将运用自己的三角学和几何学知识与您的创造力相结合来设计解决方案。以上给出的解决方案适用于SCARA机器人。如果您可以想象将SCARA机器人转向一边,那么您会发现上述解决方案也适用于大多数六自由度工业机器人的定位组件。笛卡尔机器人的逆运动学解决方案是微不足道的,因为所有轴都是垂直的,因此运动没有耦合。
原文地址:http://www.learnaboutrobots.com/inverseKinematics.htm
阅读更多
个人分类: 硬件开发。
上一篇实时步进运动配置文件
下一篇实时步进电机 仅通过加法和乘法实现线性斜坡
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭