问题标签 [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.
javascript - 逆运动学 JavaScript 中 z 轴的公式
逆运动学 JavaScript 中 z 轴的公式
对于 x 斧头:x + Math.cos(angle) * segment_length
;
对于 y 轴:y + Math.sin(angle) * segment_length
;
对于 z 轴:z + ???
inverse-kinematics - 具有关节角度约束的最佳逆运动学算法
我为逆运动学实现了 CCD 算法,它工作得很好,但由于限制而失败,我想实现一个系统,如果手臂无法到达目标,它会尝试靠近它。
我试图将约束放在 CCD 算法中,也就是说,如果我的旋转角度高于或低于约束,我将其限制为最大值或最小值。例如,如果旋转角度为 100 度且约束为 90,那么我旋转 90 度并在此基础上计算其他角度,它适用于某些情况,但适用于大多数情况。
谁能告诉我一个处理约束的 3D IK 算法?
linear-algebra - 使用四元数控制方向
为了控制机械臂,我有一个具有 6 个维度(x、y、z 位置以及滚动、俯仰、偏航旋转)的控制器。我使用位置 (x, y, z) 和四元数 (x, y, z, w) 来表示机器人夹具的所需位置和方向。
我正在使用一些人们可能不熟悉的库(即来自 ROS 的 geometry_msgs),所以这是我在伪代码中所做的:
我可以很好地设置姿势位置部分的 x、y 和 z。从技术上讲,我也可以很好地设置四元数,但我的问题是控制四元数非常不直观,因为旋转不是可交换的。即,如果我围绕 x 轴旋转 180 度,那么围绕 z 轴的旋转控制会反转。
有什么方法可以让我从某种“全局参考框架”中控制旋转,如果这有意义的话?我希望这样,如果我将操纵杆绕 z 顺时针旋转,姿势将相应地旋转,而不是“有时顺时针旋转,有时逆时针旋转”。
matlab - 如何在 Simulink 的正向动力学解决方案中获得相同的运动?
我是 Simulink 新手,在构建和运行多体模型时遇到了一些问题。
很快,这是我的问题。我设计了一个 2 关节,2 身体系统。我用位置、速度和加速度数据(数组格式)驱动每个关节,系统运行良好。我将关节传感器连接到每个关节,关节产生的扭矩被保存到工作区。我有相同的模型,但它分析了正向动力学的系统。因此,该模型中的关节由从逆动力学模型获得的扭矩驱动。但从正向动力学模型中得出的运动与逆向动力学模型不同,甚至不相似,这完全是荒谬的。我想我已经检查了一切,但肯定不是“一切”。任何人都可以帮助我吗?
algorithm - 逆运动学CCD算法的工作
假设我有一个机械臂,在 3D 空间中的点 A、B、C、D 处都有关节。设 D 为末端执行器(最底层的子代),A 为最顶层的父代。令 T 为空间中任意位置的目标点。目的是使末端执行器在顶层(父母)中以最小的旋转到达目标。
我最初的想法是:
1) 将手臂 C 旋转角度 TCD。2) 然后将手臂 B 旋转新角度 TBD。3) 然后将手臂 A 旋转新角度 TAD。
但是在第 2 步之后,末端执行器似乎指向远离目标。我做错了什么,我该如何解决?
c++ - 骨骼动画与 Assimp 的混合
我正在制作一个游戏,我刚刚完成了基本的动画工作(万岁!),我现在希望通过结合动画混合来改进它。但是,我无法找到任何网格或教程。此外,我不完全确定骨骼动画是否是前进的方向,或者反向运动学是否会是一个更好的主意(也许是混合?)。有什么建议吗?
python - Python 逆运动学包
我正在使用 arduino 和 6 个伺服电机构建一个具有 6 个自由度的机械臂。
我使用串行通信为自己制作了一个 Python 接口,以便我可以编写:move_motor(angle1=45, angle2=37)
并且伺服电机将相应地移动。
现在我进入 IK 部分,我正在寻找一个好的包,您可以在其中设置臂长,然后您可以给它(x,y,z,theta)
,它会返回每个电机的角度。
有没有好的套餐?或者至少可以满足我的需要?
c++ - 7 DOF Inverse Kinematic with Jacobian and Pseudo inverse
我一直试图用具有 7 个自由度的伪逆来为角色的手臂设置动画。整体FK是这样的:
(x,y,x) = TrootTshoulderRz(θ3)Ry(θ2)Rx(θ1)TelbowRy(θ5)Rx(θ4)TwristRy(θ7)Rz(θ6) 悬垂式效应器。
我不确定我做错了什么。这些是我所拥有的:
如果它是渲染调用,它会计算转换并绘制结果:
IK 解算器功能:
构建雅可比行列式并更新从模拟步骤返回的位置:
用于制作 J 的实用函数:
该过程没有返回正确的值,手臂到处都是,除了它应该去的地方。也请原谅我偶尔使用 glm。
c++ - 3DOF 腿反向运动学 C++
我正在尝试在 arduino 控制的四足动物上实现逆运动学,但我得到了一些不准确的计算结果。为了检查出了什么问题,我将算法移植到 C++ 并在 PC 上运行。我的问题是我会假设坐标变化会产生相同的结果,无论我改变坐标的哪个方向。但是 x 和 y 轴上的过渡会产生几度差异,具体取决于方向。我的数学知识有点尘土飞扬,所以也许我在检查算法时错过了一些东西。腿的配置是这样的http://te.unib.ac.id/lecturer/indraagustian/wp-content/uploads/2014/05/逆运动学.jpg
什么可能导致结果的差异?
python - 正向/反向运动学计算 2-DOF python
该程序使用以下等式计算具有正向运动学的末端执行器的点,
x = d1cos(a1) + d2cos(a1+a2)
y = d1sin(a1) + d2sin(a1+a2)
其中d1
是第一个关节d2
的长度, 是第二个关节的长度,a1
是第一个关节a2
的角度, 是第二个关节的角度。
它通过这个方程计算逆运动学
因此,通过输入正向运动学所需的输入,我应该得到末端执行器的点。通过输入相同的输入和反向运动学的正向运动学中的点,我应该得到我输入的角度作为正向运动学的输入。但我不让他们回来。这是我的代码,
我认为问题在于何时引入三角函数。它们的参数应该是弧度,它们返回的答案是度数。我在某处将两者混为一谈。我只是不知道在哪里。谢谢