问题标签 [inverse-kinematics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
215 浏览

java - 如何根据目标点确定 2 个臂段的旋转?

我有一个 2 段机械臂,需要通过设置其关节(角度)来到达特定点。

这是设置图:

三角形

我的手臂位于草图的中间,所以我的原点是(宽度/2,0)。这些是我知道的值: 长度:第一段 (L1):140 毫米。第二段 (L2):180 毫米。原点与目标点之间的距离。(使用 dist() )。

这些长度形成一个三角形。因此,使用三角定律我可以找到三角形的角度,这些角度是我想用来定位我的手臂使其到达目标点的角度。

现在,我想使用处理环境在屏幕上绘制三角形进行模拟。我应用了一些变换来绘制三角形,但我没有得到正确的绘图。

这是我的代码:

我希望我的文字清晰,如有任何混淆,我深表歉意。

0 投票
0 回答
186 浏览

javascript - 具有任意点数的逆运动学

我已经用 HTML5 Canvas 修改了这个JavaScript 中的反向运动学示例,并通过将它分成一个函数来使其动态化,并且它可以工作,但是这个示例只使用了 3 个点——开始、中间和结束,我想要随意改变点数。这是我现在的小提琴......

这只是功能,为简洁起见,我省略了其余部分。如您所见,注释掉的行是我尝试绘制其他点的尝试。

另外,这里是我joints用点等填充数组的地方。请参阅注释行。

我如何使这个函数与n点一起工作?

0 投票
0 回答
506 浏览

animation - 逆运动学:如何参数化球窝接头?

我正在学习逆运动学,并正在尝试编写人体骨骼模拟。我无法决定如何参数化球窝接头的旋转。

我能想到的两种方法:

  1. 熟悉的轴角(或欧拉角)方式。可以通过改变旋转顺序来改变关节的特性。也可以只使用旋转矩阵。 在此处输入图像描述
  2. 使用两个四元数旋转,一个沿着骨骼的轴,一个确定方向。我认为这在模拟关节方面更直观在此处输入图像描述

那么我应该使用哪一个?据我所知:

  • 轴角法容易出现云台锁,我可以想象
  • 对于另一种方法,在计算雅可比项时应该使用哪些轴是模棱两可的——v这个方程中的向量 在此处输入图像描述

(来源:https ://www.math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/iksurvey.pdf ,第 5 页)

我倾向于使用第二种方法,因为我可以通过使用 CCD 而不是雅可比伪逆来解决这个问题。但我只想知道这些方法中的哪一种被用作标准(轴角或四元数),如果是这样,如果我要采用它,我需要考虑哪些具体细节。

任何建议都会有所帮助,但最好是专业的,并且使用非深奥的语言,如果您愿意节省一些代码:-]

0 投票
1 回答
614 浏览

c++ - 编程逆运动学解决方案仅提供工具的 x,y,z

我目前正在尝试实现一种逆运动学解决方案,该解决方案能够找到机器人在给定工具位置为 x、y、z 的情况下可以找到的所有可能 Q 状态。

我选择使用最小二乘法来做这件事,但有些事情告诉我它不会提供所有可能的解决方案,而只会提供具有最小误差的解决方案,在这种情况下,我对所有可能的 Q 状态感兴趣的工具。

我的实现看起来是这样的。

首先,反向亲属似乎不正确,因为 Q 状态不会将机器人移动到所需位置。我似乎看不出我的实现哪里错了?

0 投票
1 回答
785 浏览

trigonometry - 逆运动学:如何计算机械臂伺服系统的角度以达到画布中所有可能的点?

我有一个由 2 个伺服电机组成的机械臂。我正在尝试计算逆运动学,使手臂位于画布的中间,并且可以在两个方向(左右)上移动到所有可能的点。这是系统Image的图像。第一个伺服移动 0-180(逆时针)。第二个伺服器移动 0-180(顺时针)。

这是我的代码:

最初,当系统首次启动时,手臂伸直,肩=90,肘=0。当我给出正的 x 值时,我会在画布的左侧得到正确的结果。但是,我希望手臂也向右侧移动。当我输入负数时,我没有得到正确的值。我究竟做错了什么?我需要额外的伺服器才能到达右侧的点吗?

如果解释不好,请见谅。英语不是我的第一语言。

0 投票
1 回答
364 浏览

python - 将笛卡尔坐标从手框架转换为世界框架:ROS & Baxter (python)

所以我正在使用百特机器人并使用 ROS 工作区。巴克斯特的手臂上有一个相机,我可以从中读取某个物体相对于手架的 x、y、z 坐标。

一旦我的物体被检测到,我需要它的 x,y,z 坐标,但是来自机器人的主框架,所以我需要从手转换到机器人框架,并且鉴于机器人有 6 度的运动,我很难弄清楚如何做到这一点。我知道我应该使用 DH 矩阵,但是有人可以尝试向我解释我应该如何进行吗?

0 投票
1 回答
396 浏览

javascript - 二维逆运动学角度约束

我正在编写具有逆运动学的 2D 游戏。我正在使用这个简单的算法:

如何对孩子实施角度约束?

当父十字旋转 180 度时,此代码会出错:

0 投票
2 回答
2188 浏览

unity3d - 在 Unity 中使用反向运动学翻转 2D 角色

我在 Unity 中有一个带有Sprites 和 Bones的 2D 角色,我使用反向运动学对其进行动画处理。

但是如果我想翻转 X 轴,我的角色就​​会发狂:

IK 翻转

我有一个附加到“Karateka”的脚本,其中包含一个简单的Flip()函数:

  • “Karateka”只是骨骼、精灵和 IK 目标的容器
  • “Skeleton”包含 Sprite And Bones 中的 Skeleton 脚本
  • “右腿骨”、“右小腿骨”等有骨骼和IK脚本
  • “右腿”、“右小腿”等是精灵
  • “IK”包含所有 IK 目标

我对Unite 2014 - Unity 中的 2D Best Practices的其他 IK 脚本 Simple CCD 具有相同的效果,所以我可能会做一些愚蠢的事情。

我该怎么做才能正确翻转我的角色?

编辑(马克):

我使用它来工作:

0 投票
1 回答
20 浏览

actionscript-3 - ArgumentError:从舞台中移除子级

我正在尝试开发一个涉及一些逆运动学和状态机的基本 Snake 游戏。我试图得到它,所以当蛇的第一段与某个“鼠标”交互时,它就会消失。但是,当我这样做时,它不起作用,我最终得到 ArgumentError: Error #2025: 提供的 DisplayObject 必须是调用者的孩子。

这是我的代码:

我曾尝试查看具有相同主题的其他帖子,但我只是不明白我做错了什么。任何帮助将不胜感激!

0 投票
1 回答
2258 浏览

animation - 尝试在 Unity3D 中使用反向运动学让角色把手放在枪上

如您所见,手只是奇怪地放在角色面前。righthandhold 和 lefthandhold 是游戏对象的手应该继续的位置。

左边的截图是播放模式,中间的截图不是,所以没有IK。 截图 源代码(改编自一个统一的例子):

谁能告诉我我做错了什么?

更新:我刚刚注意到右手比左手更靠前。就像枪上的位置一样。为了进行测试,我将目标位置换成了手,然后左手在右手的前面。所以它肯定会尝试将手移动到正确的位置......只是没有到达那里。

update2:我还尝试关闭查看内容(if (layerIndex == 0) 中的所有内容),以确保不会搞砸任何事情。没有任何区别,除了不再看球员。