问题标签 [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.
python - Pybullet 逆运动学
calculateInverseKinematics()
我对 pybullet 环境中函数的使用感到非常困惑。我有两个简单的问题:
1)我们如何计算关节范围以从零空间特征中受益?
实际上,我检查了链接中的逆运动学代码:https ://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/examples/inverse_kinematics_husky_kuka.py
似乎范围是通过取上下限的差异来计算的。在这种情况下,我猜 jr[0] 和 jr[3] 有问题。
2)
a) 什么是“联合阻尼系数”用于?
b) 它对 IK 精度有影响吗?
c) 我们如何确定它的值?
我在 pybullet 指南文档中对这些进行了一些研究;但是,我找不到有用的东西。如果有人可以解释他们,我将不胜感激。
c++ - 机械臂的逆运动学
所以我在很多机器人书籍中寻找休息位置的定义,我找不到任何参考。Samuel Buss IK 库中提到了休息位置。
谁能在这里告诉我机械臂逆运动学控制中的静止位置是什么?
谢谢你。
c# - 如何通过代码移动 InverseKinematics 2D?Unity2D(平台)
有没有办法从手臂上移动逆运动学(CCD),在这种情况下,通过代码?目标是在鼠标单击的方向上移动 IK 目标
我想在运行时通过代码执行的视频: https ://vimeo.com/489165740
javascript - 以编程方式在 Three.js 中创建骨架
我正在 Three.js 中加载一个机构模型(例如机械臂)。遗憾的是,我使用的模型没有骨架,但我有关节的位置、轴等。为了使用像 Three-IK 这样的逆运动学求解器,我想从这些参数中创建一个骨架。由于我想使用许多不同的模型,我宁愿不手动创建骨架,而是用代码创建。
一个多星期以来,我一直在尝试从这些反映模型的值创建一个有效的骨骼结构,但没有成功。例如,如果我使用关节的位置创建一个骨骼链,我会得到一个很长的骨架,它与我使用的位置完全不匹配。
上面的代码导致下面的屏幕截图。红色标记是我从机器人关节得到的位置,蜿蜒到远处的线是 SkeletonHelper 可视化的骨架。
所以我的问题是:似乎我不太了解 Three.js 中如何处理骨骼。如何从关节位置和方向创建反映现有模型的骨架?
提前致谢!
python - 如何为 matplotlib 图中的旋转链接设置动画?
我会保持问题简单。
假设我有一个长度为 15 个单位的链接,我想让它在 matplotlib 图中设置动画,因为 theta(链接和 x 轴之间的角度)的值在 0 到 90 度之间变化。链接应围绕 (0,0) 坐标旋转,即链接固定在 (0,0) 坐标处。
显然,将应用三角规则来找到链接另一端的坐标,而一端固定在 (0,0) 坐标。
我只想使用纯粹的 matplotlib 和 numpy 模块。
python - PyDrake:从机器人中提取 AutoDiff 梯度(通过微分逆运动学控制)
我正在使用PyDrake构建一个 Franka Emika Panda 机器人手臂的简单模型,它可以捡起并放置一块砖头。
我想观察我的砖的初始选择起始位置的变化如何影响自定义目标损失函数。因此,我想使用AutoDiffXd
Drake 内置的功能在模拟结束时自动提取我的损失函数相对于我的初始输入的导数。
我像往常一样构建我的系统,然后运行ToAutoDiffXd()
以将相应的系统转换为 autodiff 版本。但是,我收到以下错误:
不走运,我的控制器类(利用DifferentialInverseKinematicsIntegrator
)似乎不支持 autodiff 转换。由于该系统本质上是该类的一个方便的包装类DoDifferentialInverseKinematics
,因此我尝试手动创建一个 IK 控制器,并直接提供 autodiff 变量DoDifferentialInverseKinematics
。但是,这似乎也不支持 autodiff:
我尝试查找DoDifferentialKinematics 的 C++ 文档以获取线索。确实,这个函数似乎只接受双标量类型。然而,关于DoDifferentialKinematics
's implementation 的注释指出,本质上所有发生的事情都是这个函数运行一个MathematicalProgram
. 我的理解是 Drake 支持通过 a 编织MathematicalProgram
AutoDiff。
所以我的问题是:我实现目标的最佳方式是什么?我是否应该使用 MathematicalProgram API 手动重新创建一个自定义的自动差异版本的差分逆运动?这甚至会成功吗?另外,有没有更简单的选择?
c# - 使用逆运动学,我将如何在动作之间制作动画?
因此,我正在观看下面链接中的示例,并且几乎重新创建了它。我唯一挣扎的部分是在动作之间抬起腿!关于如何重新创建它的任何想法?我被困在使用动作之间的动画或只是在点之间的腿部提升中编码!谢谢,任何帮助将不胜感激。
https://www.youtube.com/watch?v=e6Gjhr1IP6w&ab_channel=Codeer
unity3d - 如何使用 IK 制作一个系统以将目标锁定到身体的不同部位?
我只是有这个想法,想学习如何实现,我想做的是,当我按下按钮角色的目标以及目标的 IK 时,例如手臂位置或他如何握住武器调整到头部,腿部或身体NPC并射击它。不同部分的不同按钮。我将如何实现它,我只需要对正确的方法一点点点头,在此先感谢
python - python中带有雅可比矩阵的7自由度逆运动学
我在计算 dtheta 时遇到问题。根据我的讲座,计算 dtheta 这是以下代码
猜测初始关节角 θ
求解方程 J∗dθ=dp=pf−pi 增量关节角 θf = θi+dθ
计算 J 在每个点的数值,可以使用以下行: Jsub = J.subs({theta1:theta_i[0], theta2:theta_i[1], theta3:theta_i[2], theta4:theta_i[3 ], theta5:theta_i[4], theta6:theta_i[5]}) Jeval = Jsub.evalf()
方法 subs() 用于将 θ 的数值替换为符号,然后方法 evalf() 用于评估表达式中每个元素的整体值。最后,
您需要以一种可以找到“起作用”以达到新点的 θ 值的方式求解表达式。您可以使用 solve() 函数找到这些值。
解决(Jeval * dtheta-p_delta,(dtheta1,dtheta2,dtheta3,dtheta4,dtheta5,dtheta6))
这是我在 python 中 7dof 的逆运动学代码
这是我面临的问题
解方程sol = solve(Jeval * dtheta - dp , dtheta)
后得到 dtheta 值。我需要 7 个 dtheta 值,因为矩阵有 7 个 dtheta dtheta = Matrix([dtheta1,dtheta2,dtheta3,dtheta4,dtheta5,dtheta6,dtheta7])
,但我得到了其中 3 个的值,其余的仍然是符号,如以下输出
arduino - denavit hartenberg 6dof moveo 反向运动机械臂
我需要你的帮助。我无法正确使用 denavit hartenberg 矩阵。(对于这个机器人:https ://github.com/BCN3D/BCN3D-Moveo )我的机械臂有 6 个自由度(正常的只有 5 个),但我不知道如何为其配置 theta 和 alpha 变量。当前矩阵如下所示:
联合的 | d | r | α | θ |
---|---|---|---|---|
1 | 232.0 | 0 | ? | ? |
2 | 0 | 223.0 | ? | ? |
3 | 0 | 0 | ? | ? |
4 | 224.0 | 0 | ? | ? |
5 | 0 | 0 | ? | ? |
6 | 175.0 | 0 | ? | ? |
(如果此表看起来不正确,请单击此处)机械臂处于原始位置时正直视空中。
denavit-hartenberg 矩阵是什么样的?
更多图片: https ://www.bcn3d.com/bcn3d-moveo-the-future-of-learning/