机器人学——3.3-逆运动学

上一节已经展示了机械臂的正运动学求解方法,即在给定关节坐标以及可选工具和基座变换的条件下,如何确定末端执行器的位姿。
实际应用中的另一个问题是运动学的逆问题:给定期望的末端执行器位姿 ξ E \xi_E ξE,如何求取所需的关节坐标?例如,如果我们知道一个物体的笛卡儿坐标位姿,那么机器人需要什么样的关节坐标才能接近这个物体?这就是逆运动学问题,写成函数形式如下:
q = K − 1 ( ξ ) q=\mathcal{K}^{-1}(\xi) q=K1(ξ)一般而言这个函数的解不是唯一的,而且对于某些类型的机械臂甚至没有解析解存在,只能求出一个数值解。

解析解

对于一个六轴机器人,其逆运动学具有解析解的一个必要条件是:三个腕关节的轴相交于一个点。这意味着腕关节的运动只改变末端执行器的姿态,而不改变其位置。这种机构被称为球腕,而且几乎所有的工业机器人都具有这样的腕关节。
我们将继续使用Puma机器人模型来探讨逆运动学问题。机器人标准状态的关节坐标为

>> mdl_puma560
>> qn
qn =
         0    0.7854    3.1416         0    0.7854         0

对应的末端执行器位姿是

>> T = p560.fkine(qn)
T =
   -0.0000    0.0000    1.0000    0.5963
   -0.0000    1.0000   -0.0000   -0.1501
   -1.0000   -0.0000   -0.0000   -0.0144
         0         0         0    1.0000

Puma560 是一种包含一个球腕的六轴机器人,因此我们使用ikine6s方法来计算其逆运动学的封闭解(ikine6s方法会检查机器人的 D-H 参数,以确定它是否满足这些标准)。要实现位姿T,所需的关节坐标为

>> qi = p560.ikine6s(T)
qi =
    2.6486   -3.9270    0.0940    2.5326    0.9743    0.3734

奇怪的是,这些解与我们开始采用的标准状态关节坐标完全不同。但是,如果我们进一步探究一下:

>> p560.fkine(qi)
ans =
   -0.0000    0.0000    1.0000    0.5963
   -0.0000    1.0000   -0.0000   -0.1500
   -1.0000   -0.0000   -0.0000   -0.0144
         0         0         0    1.0000

我们发现,两组不同的关节坐标值得到了相同的末端执行器位姿,而这两组坐标值对应的机器人位形如图所示。该 Puma 机器人的肩关节相对于腰部有个水平偏移,所以一组坐标解对应的机械臂在腰部的左侧,而另一组则对应在右侧,它们分别被称为左手运动学位形和右手运动学位形。一般来说,有 8 8 8 组不同的关节坐标值可以得到相同的末端执行器位姿——正如前面所提到的,逆解不是唯一的。
在这里插入图片描述
在这里插入图片描述
我们可以人为指定获得右手位形解:

>> qi = p560.ikine6s(T, 'ru')
qi =
   -0.0000    0.7854    3.1416   -0.0000    0.7854    0.0000

它就是我们最初的那组关节角度,并且是肘关节在上的右手位形。
除了左手位形和右手位形的解,还有一些解对应肘关节在上或在下,以及手腕翻转或不翻转。对于 Puma560 机器人的腕关节 θ 4 \theta_4 θ4 ,具有一个较大的旋转范围,因此其可以采用两个相差 π \pi π 的关节角度。又由于大多数机器人夹持器只需两个手指,因此相差 π \pi π 并不会改变它抓取物体的效果。

ikine6s返回的运动学位形由一个或多个字来控制

左手或右手 'l''r'
肘部在上或在下 'u''d'
手腕是否翻转 'f''n'

由于关节转角上的机械限制以及连杆之间可能发生的碰撞,并不是所有 8 8 8 种位形解在物理上都可以实现,有时甚至可能不存在可以实现的解。例如:

>> p560.ikine6s(transl(3, 0, 0))
警告: point not reachable 
> In SerialLink/ikine6s (line 210) 
ans =
   NaN   NaN   NaN   NaN   NaN   NaN

以上位姿就没有对应的解,这仅仅是因为手臂的长度不足以达到这个位姿。另外,由于奇异位形的存在,即关节轴线重合而减少了有效自由度(再次出现万向节锁问题),某个姿态也可能是无法实现的。Puma560 有一个奇异位形,即当 q 5 q_5 q5 等于零时,关节 4 4 4 和关节 6 6 6 之间的轴线重合了。在这种情况下,ikine6s可以做到最好的是限制 q 4 + q 6 q_4+q_6 q4+q6,但它们各自的数值却是任意的。例如,考虑位形:

>> q = [0 pi/4 pi 0.1 0 0.2];

其中 q 4 + q 6 = 0.3 q_4+q_6=0.3 q4

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值