我正处于使用简单机械臂的早期阶段,并且了解Jacobian和逆运动学。

根据我的理解,Jacobian可用于确定机器人的线速度和角速度。给定手臂上所有关节的角速度,确定末端执行器。鉴于关节的角度和/或位置,它还可以用于确定末端执行器的笛卡尔位置吗?

此外,假设我要确定关节所需的角速度,为了实现末端执行器的期望线速度。是否可以通过简单地反转雅可比行列式并插入所需的参数来完成?

#1 楼

是的,雅可比方程通过以下公式将关节速度与末端执行器速度相关联:

$$$
\ mathbf {v} _e = \ mathbf {J}(\ mathbf {q}) \ dot {\ mathbf {q}}
$$

其中$ \ mathbf {q} $是关节角度,$ \ dot {\ mathbf {q}} $是关节角度速度,$ \ mathbf {v} _e $是末端执行器速度。如您所见,Jacobian $ \ mathbf {J} $与配置有关。因此,插入一些关节角度和速度,即可获得末端执行器的速度。

要获得给定关节角度的末端执行器的笛卡尔位置,可以使用直接运动学功能,也称为正向运动学。有多种方法可以做到这一点。手臂是否足够简单的几何分析,例如平面2连杆臂。指数乘积是另一种方法。但是Denavit-Hartenberg方法可能是使用最广泛的方法。在这里我将不做详细介绍。但是基本上,您将为每个关节获得一个转换矩阵:$ \ mathbf {A} _i ^ {i-1}(q_i)$。这样,当您插入关节角度时,您将获得关节$ i $相对于关节$ i-1 $的姿势。可以递归的方式组合它们,以获得相对于手臂根部的末端执行器的姿势:

$$
\ mathbf {T} _n ^ 0(\ mathbf {q})= \ mathbf {A} _1 ^ {0}(q_1)\ mathbf {A} _2 ^ {1}(q_2)... \ mathbf {A} _n ^ {n-1}(q_n)
$$

请注意,您可以将$ \ mathbf {T} _n ^ 0(\ mathbf {q})$求微分以获得解析雅可比行列式。但是人们通常使用几何雅可比行列式,计算起来并不难。

现在要计算所需的关节速度以达到所需的末端执行器速度,您必须将雅可比行列求逆。但这仅在自由度数等于空间尺寸数的情况下有效:

$$
\ dot {\ mathbf {q}} = \ mathbf {J} ^ {- 1}(\ mathbf {q})\ mathbf {v} _e
$$

(请注意,有些臂配置(例如奇异点)的雅可比定律是不可逆的。)如果您有更多的自由度,则约束不足。 (即不止一种解决方案)。通常,人们使用雅可比行列的右伪逆,从而局部减小关节速度的范数。

$$
\ dot {\ mathbf {q}} = \ mathbf {J} ^ {\ dagger} \ mathbf {v} _ {e}
$$
其中:
$$
\ mathbf {J} ^ {\ dagger} = \ mathbf {J} ^ T(\ mathbf {J} \ mathbf {J} ^ T)^ {- 1}
$$

请注意,J仍然依赖于q,但为了清楚起见,删除了(q)。

评论


$ \ begingroup $
简历不错。关于逆运动学的这项调查也可能会有所帮助:math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/iksurvey.pdf
$ \ endgroup $
– Ugo Pattacini
15年1月16日在20:10

$ \ begingroup $
必须反转雅可比行列式。但这仅在自由度的数量等于您空间的维数的情况下才有效,我认为即使自由度与工作空间的维数相同,J也不可能取反。例如,如果由于某些限制,物理上不可能达到所需的末端执行器位置或速度。那就没有解决办法了。
$ \ endgroup $
–纳赛尔
2015年1月30日5:50



$ \ begingroup $
是的。在奇异点,雅可比定律将不可逆。
$ \ endgroup $
–Ben♦
15年1月30日在21:01