问题标签 [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 回答
600 浏览

simulation - 模拟机械连接的软件

我最近对 ​​Theo Jensen 的 strandbeest 很感兴趣,(如果你之前没看过它们,请查看它们!如此令人难以置信的工程。)我想弄乱他为 strandbeest 的腿设计的东西。然而,对于这样的事情,做直接的运动学让我头疼。

这是我要建模的内容: https ://upload.wikimedia.org/wikipedia/commons/6/61/Strandbeest-Walking-Animation.gif (无法直接链接,因为我没有足够的声誉:/ )

我真正需要知道的是“脚”的路径,所以不需要视觉上的东西。

最终目标是能够对其应用进化算法,看看我是否提出了与 Theo 相同的链接长度,或者可能以某种方式改进它们,所以如果我有一些允许运行脚本的软件,那会很理想。

抱歉,如果问题有点模糊,我不太确定我在寻找什么。即使有一些数学/工程主题可以使这更容易,我也很想学习。

谢谢!-奥辛。

0 投票
1 回答
1479 浏览

python - 正向/反向运动学计算 2-DOF python

该程序使用以下等式计算具有正向运动学的末端执行器的点,

x = d1cos(a1) + d2cos(a1+a2)

y = d1sin(a1) + d2sin(a1+a2)

其中d1是第一个关节d2的长度, 是第二个关节的长度,a1是第一个关节a2的角度, 是第二个关节的角度。

它通过这个方程计算逆运动学

在此处输入图像描述

在此处输入图像描述

因此,通过输入正向运动学所需的输入,我应该得到末端执行器的点。通过输入相同的输入和反向运动学的正向运动学中的点,我应该得到我输入的角度作为正向运动学的输入。但我不让他们回来。这是我的代码,

我认为问题在于何时引入三角函数。它们的参数应该是弧度,它们返回的答案是度数。我在某处将两者混为一谈。我只是不知道在哪里。谢谢

0 投票
1 回答
5532 浏览

python - 使用python随时间推移位置的球落图

我正在尝试编写一个代码,该代码将绘制从高度 h 落下的球的模拟,并使用运动学方程 y = y_0 绘制随时间变化的位置图我的代码是这样的:

from matplotlib.pylab import show, xlabel, ylabel, scatter, plot from numpy import empty

然而,当我的图表应该看起来像一条曲线时,我的图表在图表的每个角落绘制三个点,并且我的图表每次都会发生变化,因为没有任何变量发生变化

0 投票
1 回答
84 浏览

animation - 正向运动学骨架编程

我正在整理一个项目,我需要能够获取外部数据作为将骨骼关节位置输入到 Maya 中的一种方式。基本上,我有一个骨骼顺序关节位置的电子表格,我想将其加载到 Maya 中,然后链接到皮肤。有谁知道上传或引用这些位置的方法(作为 FK 到 Maya)?

0 投票
1 回答
631 浏览

algorithm - 将运动学方程转换为 Matlab

也许这不是一个编程问题,而是一个数学问题。但是这里。

想象一下,您正在制作一个由车辆上的电机驱动的过山车。车辆具有使用该电机可以实现的固定力值。在你的过山车的一部分中,你想从我最喜欢的电子游戏之一中穿过像这样的半环:过山车大亨!

来自过山车大亨的一个很好的旧半环

当你绕过半圈时,你不知道你的速度会是多少,也不知道绕过它需要多长时间。但是,您可以根据您的发动机加速度、质量和重力加速度计算出您在半环上的任何点的最大可能加速度是多​​少。我们不要用数字来混淆这个讨论,而是假设我们已经获得了加速度与位置的曲线。它看起来像这样:

在此处输入图像描述

我已经成功地推导出了作为加速度与位置曲线和初始速度函数的速度公式。从运动学方程

我可以将速度推导出为位置的函数。v = sqrt(2 * [a=f(p) wrt 位置的积分])

在 MATLAB 中我可以通过以下方式获得:

实际上,我正在使用以下代码获取沿轨道的每个点的速度(acc 和 pos 是上面绘制的加速度与位置的数组):

现在我遇到了困境。我有加速度、速度和位置,现在我需要时间。我认为我的数学是正确的。由于我有 a/v/p,它应该就像选择任何涉及时间的运动学方程并重新排列它以获得时间一样简单(我想在轨道上的每个位置获得时间,这样我就可以绘制 a/v/ p 作为时间的函数)。

这应该意味着我可以从以下任何一个中进行选择:

方程 1 是二次方程。另外两个看起来简单多了。等式 2 看起来很有希望。让我们试试看。

将此转换为Matlab,我认为应该是这样的:

但是从我的测试来看,这会产生不正确的结果!我对数学和算法都感到困惑。但我想这个地方只是为了回答关于算法的问题。我看不出我的公式是如何不正确的。我是否错误地将其转换为 Matlab?

0 投票
1 回答
364 浏览

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

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

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

0 投票
1 回答
1457 浏览

vb.net - Visual Basic 程序中的 COM 端口超时和滞后

我一直在研究涉及机械臂的遥控应用程序。我创建了一个 VB.net 程序,它获取从网页(通过 mySQL)接收到的坐标并将坐标转换为电机步数,然后使用串行命令将其输出到机器人。

机器人手册(MICROBOT TeachMover)指出,每当向机器人发送串行命令时,机器人都会返回一个字符(0、1 或 2),指示操作成功或失败。手册指出,这个“握手”字符必须在程序中接收。

每当我运行我的程序时,机械臂都不会按预期运行。有一个很长的初始滞后,其中机器人根本不移动,之后它最终会沿正 x 方向移动。之后,它再次完全停止移动。我不断收到 COM 端口超时的异常,这表明握手字符没有被正确读取。我确实知道串行命令正在正确发送(我在表单加载期间使用关闭夹具命令对此进行了测试)但是我的串行接收命令总是以超时异常结束,而不管我设置的超时秒数。我在下面包含了我当前的代码。我对串行通信了解不多,所以如果有人能指出我的任何误解,那就太好了。

VB.net 代码

(ReceiveSerialData sub 是我最初实现的;我把它留在了程序中,作为我尝试过的两种方法的示例而被注释掉了。)

我知道从 mySQL 获取坐标没有延迟,因为我已经自己测试过了。但是,我不知道这是否会导致串行通信的滞后。

如果有人对如何使我的串行通信代码更可靠和更快有任何建议或建议,我将不胜感激。我还想知道是否应该使用握手属性,但我还没有尝试过,因为手册指出 TeachMover 臂不使用标准接口信号(DTR、CTS、RTS 等)我有兴趣找出这是软件问题还是硬件问题。

谢谢你,戈皮卡

更新:我一直在进行一些更改并测试串行通信。我暂时将超时更改为无限。我还尝试设置握手属性和 RTSEnable/DTREnable,但程序仍然没有收到来自 TeachMover 的握手并且正在无限等待。

0 投票
0 回答
116 浏览

c++ - 如何转换 3d 世界矩阵来驾驶飞机?

我正在使用directX 编写一个简单的飞行游戏。我已经对飞机进行了建模并成功将其导入到游戏中。我成功地制作了一个输入控制器。我成功地向左、向右、向上和向下转弯。

我计划有 3 个矢量来保持飞机在飞行时的横滚、俯仰和偏航轴。

向量的初始状态是:

所以这是我的算法。首先,鼠标的位置设置旋转的角度(角度限制为 -0.5f < 角度 < 0.5f)。然后我围绕保持飞机轴的单位向量创建一个旋转矩阵。旋转是R矩阵。之后,我计算保持飞机轴的新单位向量。最后,我将 flightDirection 的组件添加到转换矩阵中以获得飞机的新位置。

我的问题是我的算法没有按照我的预期工作。某些东西计算错误,我移动鼠标后我的飞机飞向错误和随机的方向。

请告诉我如何纠正此算法或给我示例链接如何在 3D 空间中移动对象。

最好的问候, 安顿

0 投票
1 回答
408 浏览

python - 用于处理 3D 运动学的 Python 库

我是运动学领域的新手,我正在寻找一些 Python 库,可以让我更轻松地开始 3D 运动学。到目前为止,我发现的唯一库是thLib,但没有别的。我不确定我是否使用了错误的关键字或者是 python 如此倒。

我的目标是使用来自加速度计、陀螺仪和磁力计的数据来计算四元数、在空间中的位置并分析该物体的运动。你有什么建议?

0 投票
1 回答
346 浏览

unity3d - 通过加速度计惯性传感器进行运动跟踪

我正在尝试通过加速度计进行手部跟踪。我不知道这是一个好主意,还是光学跟踪系统更好。特别是手背上安装了一个加速度计,我想获得手在 3D 空间中的位置。我想在unity3d中展示手部动作。现在我使用运动学方程:

其中 (x,y,z) 是位置坐标,(vx,vy,vz) 是速度分量,ax、ay 和 az 是从加速度计读取的加速度分量,乘以 9.81 常数以将其转换为 m/s/ s。

但是我用这种方法没有好的结果。有人可以建议我一种通过加速度计跟踪手部运动的方法吗?谢谢你。