逆运动学(二): 二维逆运动学,多于两根骨胳

二维逆运动学多于两根骨胳

当我们处理多于两根骨胳的IK问题,之前方法是有不足的。我们可以梯度下降(Gradient Decent)

某一个模型来说,我们定义一个CostFunction函数来计算EffectorPosition的位置。并将它减去targetPosition,并把距离回传。这就是一个计算梯度下降用的Error Function. 解决逆运动学意味着我们要最小化CostFunction返回的值。最小化函数是编程和数学中经常做的问题。我们将使用梯度下降的技术。这方法不是最有效,但是梯度下降的优点是不依赖模型本身,只需知道怎计算正向运动模型。

梯度下降(Gradient Decent)

理解梯度下降原理的最简单方法是把他想为山坡。我们开始在一个随机的位置,我们想走到最低点。在每一步,梯度下降告诉你向降低高度的方向移动。如果地形的几何结构相对简单,这种方法会向谷底收敛。

在这个示例中我们有一个函数,它接受单个参数(X轴),并返回一个ErrorFunction(Y轴)。从X轴上的随机点开始,梯度下降应该迫使我们朝着最小值的方向移动。

从整体上看前进的方向是解决了。不幸的是,梯度下降事先不知道最小值在哪里。该算法所能做的最好的猜测是沿着斜率的方向移动,也称为函数的梯度。如果你在一座山上,让一个球去,并跟随它到达山谷。下图显示了误差函数在两个不同点的梯度

img

从整体上看前进的方向是解决了。梯度下降事先不知道最小值在哪里。该算法所能做的最好的猜测是沿着斜率的方向移动,也称为函数的梯度。如果你在一座山上,让一个球去,并跟随它到达山谷。下图显示了误差函数在两个不同点的梯度

梯度估计

如果你以前学过微积分,你可能知道函数的梯度与其导数有着密切的联系。然而,计算导数需要函数满足某些数学性质,而这些性质通常不能保证用于任意问题。此外,导数的解析推导需要解析地给出误差函数。同样,您并不总是能够访问您试图最小化的功能的分析版本。

在所有这些情况下,都不可能得到函数的真导数。解决办法是粗略估计它的价值。下图显示了如何在一维中实现这一点。通过对附近的点进行采样,可以得到函数局部梯度的感觉。如果左边的错误函数较小,则转到左边。同样,如果右边的小一些,你就往右边走。

此采样距离(Sample Distance)在称为 deltaX 了解梯度下降是如何工作的,数学上是怎的呢?第一步是计算误差函cost function,f

在特定点p 的梯度,我们需要的是找到函数增长的方向。函数的梯度与其导数密切相关。

f的导数叫做 f'它在p点的值是f’(p),它指示函数的增长速度。常数 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传. 通常被称为学习速率,它决定了我们逆着梯度移动的速度。值越大,解决方案的速度越快,但也越有可能實際值。

拓展

以上我们找到的一个维度解决方案。我们给出了f函数的导数的定义,结果是一个单一的数字,表示函数是增加还是减少。我们用这个数字作为梯度。单个参数的函数对应于具有单个关节的手臂。如果我们想对更复杂的手臂进行梯度下降,我们需要定义多变量函数的梯度。如果我们的手臂有三个关节,我们的函数更像f在 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F9qkteUo-1617528729577)(https://www.zhihu.com/equation?tex=%5Calpha_0%2C%5Calpha_1%2C%5Calpha_2)]

我们可以用偏导数,分别是一次计算一个变量。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VHWglteh-1617528729579)(https://www.zhihu.com/equation?tex=%5Calpha_0%2C%5Calpha_1%2C%5Calpha_2)]

img

其中, i=0-2,

img

在此,我也感謝我的大學的老師及國外朋友**Alan的指導**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值