问题标签 [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.
unity3d - 为什么我的头像编辑器在尝试预览肌肉设置时出错?
事件发生的屏幕截图:https ://gfycat.com/ApprehensiveInconsequentialAmethystgemclam
我正在尝试熟悉 Unity 逆运动学 (IK) 系统,因此在标准资产中打开了与 Ethan 角色相关联的头像。它允许我使用“肌肉组设置”部分中的滑块,但如果我尝试移动“每肌肉”设置中的任何滑块,Unity 会引发空引用异常,然后停止更新场景窗口。“游戏”窗口继续更新,但对于我来说太小/太远了,无法用作预览机制。
我尝试重新启动统一并重新加载项目,但无济于事。
这是确切的错误:
sympy - 使用 Sympy 求解逆运动学
我想用 Sympy 解决简单的二维逆运动学问题。我知道 x 和 y 位置的正向运动方程。
如果我知道这两个方程,如何用 Sympy 求解 theta1 和 theta2 值?
godot - 如何在 godot 3.1 中对 IK 应用约束
SkeletonIK
似乎忽略了任何和所有约束。
我已经设定:
- 正常骨骼约束(在搅拌机中)
- IK 约束(在搅拌机中)
PhysicalBone
约束(在 godot 中)
这些都对 IK 没有任何作用,我可以将我的模型移动到绝对荒谬的姿势,将手臂拉过身体,诸如此类……</p>
PS:我尝试使用其内置的导出器以及 godots “better collada” 导出器从 blender 导出到 .dae - 没有区别。
IK 动画似乎也没有以任何方式改变“物理”骨骼的姿势,同时激活布娃娃和 IK 会导致彻底的混乱,但我不确定这与我的 IK 问题有什么关系。
说明在 IK 中没有约束的问题:
说明 IK + ragdoll 变得疯狂:
示例项目数据:
https
://paste.xinu.at/XaP6c/ 自从制作屏幕截图后,我将PhysicalBone
s 放入分层顺序中,这样可以用布娃娃修复一些东西,同时破坏其他东西 - 但 IK 的行为仍然相同。
我本来希望我定义约束的三种方式中至少有一种方式可以实际应用于 IK 动画,但事实并非如此。
这不是它应该如何工作的,对吧?
如果有人设法让 IK 与约束一起工作,我会很高兴知道其中的诀窍……</p>
c# - 如何在 CCD 中限制关节旋转
我在数学上拼命挣扎,试图改进我一直在尝试在 Unity 中创建 IK 解决方案。
我做了一个简单的 CCD 算法,其行为符合预期:https ://www.youtube.com/watch?v=tZvdZGUxbbc
但是当我尝试向关节角度添加约束时,行为是不准确和扭曲的:https ://www.youtube.com/watch?v=k1YY9KqqaYY
目前,我有一个 for 循环,它遍历链中的所有关节,而未达到目标且当前尝试<尝试阈值。
一旦计算出每个关节的校正旋转,我将其应用于关节[i]。然后我检查每个关节的旋转,将其固定在最小-最大范围内。
这是应用旋转的代码,然后检查旋转限制:
如第二个视频所示,结果很差。
任何人都可以提出解决方案,并可能解释为什么这不起作用?
更新,更正了粘贴代码中的错字。
matlab - 机器人 MATLAB 的正向和反向运动学
希望你一切顺利。
我正在通过反向运动学验证我的正向运动学的输出,但结果并不理想。由于我的反向运动学的输出与正向运动学的输入不同。
机械手的DH参数如下:
链接:alpha、a、theta、d
链接 1:-90 0 theta1* d1
链接 2:0 a2 theta2* 0
链接 3:0 a3 theta3* 0
使用的函数有:
逆运动学
正向运动学:
c# - 尝试在 Unity 中实现 Jacobian IK 示例概述
我正在尝试实现此处显示的示例。
但是在运行代码并使用调试模式时,没有返回值。我假设我没有使用正确的旋转轴。
额外的统一细节:
Joints 变量是一个 GameObjects 数组(由 4 个组成)。
Target 是一个单一的 GameObject。
Tools.M_Populate、Tools.M_Multiply 和 Tools.M_Transpose。在检查调试数据时,我已经检查并且似乎正在工作。它们是返回 float[,] 的简单代码。
我期待一个角度向量适用于每个关节
three.js - 围绕给定轴和角度的枢轴点正确旋转对象
在 Three.js 中似乎有很多我个人觉得不太直观的旋转方式。参见示例
http://cloud.engineering-bear.com/apps/robot/robot.html
当我对多个对象应用旋转时,我得到了非常奇怪的意外效果。例如,当我旋转已相互添加的对象并开始旋转父对象时,各个对象将突然之间通过相对于彼此不同的位置放置,然后它们原来的位置。我现在正在尝试分组,并希望避免同样的效果。
有关当前状态,请参阅http://pi-q-robot.bitplan.com/example/robot?robot=/models/thing3088064.json和https://github.com/BITPlan/PI-Q-Robot源代码。
因此,我在不同的 API 选项之后搜索了适当的示例:
回转
旋转轴
旋转环绕世界轴
- 如何在轴世界 three.js 上旋转对象?
- https://stackoverflow.com/a/32038265/1497139
- https://jsfiddle.net/b4wqxkjn/7/
- 三.js 更新rotateOnWorldAxis后对象的旋转属性
旋转世界轴
旋转关于点
setRotationFromAxisAngle
setEulerFromQuaternion
应用矩阵
我喜欢https://stackoverflow.com/a/56427636/1497139的jsFiddle
我还在discourcee.three.js.org 中发现了以下讨论 中枢问题
- https://discourse.threejs.org/t/rotate-group-around-pivot/3656
- https://discourse.threejs.org/t/how-to-rotate-an-object-around-a-pivot-point/6838
- https://discourse.threejs.org/t/set-dynamically-generated-groups-pivot-position-to-the-center-of-its-children-objects-position/6349
- https://discourse.threejs.org/t/my-3d-model-is-not-rotating-around-its-origin/3339/3
- https://discourse.threejs.org/t/rotate-object-at-end-point/2190
问题 上述信息都不够清楚,无法直指要解决的问题。与提案中的解决方案相比,上面的图形更清楚地说明了问题。
a)
即使圆柱体被移动,我也想将圆柱体用作轴。我希望最简单的方法是使用 rotateAroundWorldAxis -是可以在three.js的最新版本中使用还是我有从例如https://stackoverflow.com/a/32038265/1497139添加它?
b)我想得到一个要旋转的对象链,以便以后应用逆运动学,如
虽然我查看了该解决方案的源代码,但我真的找不到父子定位和旋转发生的地方。有哪些相关的代码行/API 函数可以围绕关节链进行适当的旋转? 我已经查看了 Three.js 的 Bone/Skeleton API,但在那里遇到了同样的问题 - 很多代码行,但没有明确的点在哪里发生子和父之间的旋转/定位。