问题标签 [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.
c++ - 3D 中的弹丸运动:计算碰撞时间
我正在编写一个函数,该函数在 3D 空间中接收具有轨迹(包括起始位置、起始速度和加速度,均表示为 Vector3s)的对象,如果它撞到另一个对象,则返回碰撞点和碰撞时间. 我正在使用带有时间步长的运动学方程来检测可能的碰撞,我可以通过这种方式获得碰撞点,但是一旦我有了它,我想找到发生碰撞的确切时间。我想重新排列一个运动学方程解决时间并插入我已经拥有的东西,但我不知道如何使用所有三个运动轴来做到这一点,因为我的其他值是 Vec3 的,而时间只是标量。我考虑过只在一个轴上进行计算,但我不确定这是否会导致准确的结果。
仅基于一个轴计算是否准确,或者有没有办法将所有三个轴都纳入计算?我用来求解时间的公式是:
其中 v_init 是初始速度,disp 是总位移,accel 是加速度。我基于运动学方程:
d = v*t + .5*a*t^2
robotics - 如何将坐标从方位角/高度转换为倾斜倾斜
我正在尝试构建一个带有两个伺服系统的轻型天线跟踪器。出于机械原因,我首先将伺服器 1 安装在底座上,使其向前/向后倾斜,然后将伺服器 2 安装在其上,扭转 90°,使其可以向左/向右倾斜。
我基本上可以使用第一个舵机从经过方位角=0˚ 和 alt=0˚ 和 az=180˚ 和 alt=0˚ 的大圆中选择一个,然后使用第二个舵机在选定的大圆上移动。这样,即使在穿过中线时我可能需要重新定位天线(舵机只有 180 度的移动),我也应该能够指向整个上半球。
我试图找到将 z/alt 映射到倾斜/倾斜伺服角度的函数。我怀疑这应该类似于赤道望远镜支架的工作方式,但我找不到如何做的很好的参考——我也不相信我自己的数学。
我发现这个天文学讲义有点帮助:http: //ircamera.as.arizona.edu/Astr_518/ametry.pdf尤其是关于黄道坐标系的第 22/23 页,但我认为这里解决的问题略有不同。
这似乎是一个标准的运动学问题,它困扰着我,我无法弄清楚,甚至无法找到在线资源。我会非常感谢任何指示。很高兴提供有关伺服设置的更多详细信息。
animation - 三.JS | glTF Morphing 针对 glTF 问题
我正在尝试调整Nop Jiarathanakul 的Particle Dreams 演示并将其移植到更新的 THREE.JS 版本和 glTF 格式。
虽然代码结构复杂,但我无法将其发布为片段,但当前状态可在此处获得。
它适用于取自 THREE.JS 示例的马模型,而它基于变形目标。
但是,如果 glTF 没有变形目标怎么办,因为它是一项古老的技术,并且基于骨骼运动学。
很确定我需要更新shaders/UVMapShader.vs.glsl
physics - 使用运动学方程找到具有自定义重力矢量的弹丸的总飞行时间
我目前正在编写一个软件,该软件应该可以预测弹丸在 3D 环境中撞击的确切时间和位置。我编写的软件目前通过了 3824 个不同的测试用例,全部保存为 1。在这个失败的案例中,我的程序的预测(据说)偏离了 0.002 秒,这超出了可接受的范围(小数点后 3 位)。我需要一些帮助来确定测试用例提供的答案是否真的正确。
相关物理资料:
起始位置:-924.190、-874.033、-451.556
最终位置:-560.32,-1211.93,-159.66
开始速度:49.052、-65.432、68.914
向上向量:0.533、0.319、-0.783(模拟认为“向上”的方向,与重力相反的方向)
重力加速度:8.327
最终时间(他们的):5.878
最终时间(我的):5.876
同样,目前我不需要帮助来编写解决方案。我只是在寻找某人来验证这些可能的答案之一。该计划是对能力的测试,所以我真的很想在与他们讨论之前知道他们的答案是否正确。先感谢您!
python - Python 编码:创建一个新的“类”来计算弹丸的运动
我正在做一个项目,在 python 中创建一个新的“类”来做一些运动学计算。
但是,鉴于常见的物理运动学方程,我无法看到如何在 python 中构建公式。
这是总体目标:
“构造一个名为 projectile 的类。类变量应包括射弹的发射高度、降落的高度、初速度以及初速度相对于水平面的角度。类方法应包括计算弹丸的射程、最大高度和最终速度。”
我已经定义了新类和变量,但不确定如何构建函数。任何帮助都会很有帮助。这是到目前为止的代码:
python - 如何为 matplotlib 图中的旋转链接设置动画?
我会保持问题简单。
假设我有一个长度为 15 个单位的链接,我想让它在 matplotlib 图中设置动画,因为 theta(链接和 x 轴之间的角度)的值在 0 到 90 度之间变化。链接应围绕 (0,0) 坐标旋转,即链接固定在 (0,0) 坐标处。
显然,将应用三角规则来找到链接另一端的坐标,而一端固定在 (0,0) 坐标。
我只想使用纯粹的 matplotlib 和 numpy 模块。
python - 使用 Numpy 求解 n 个机械臂的 Denavit Hartenberg 正向运动学
编辑 我刚刚用 numpy 的 einsum 函数解决了这个问题。而不是做 T[:,:,:,0]@... 我只是用 einsum Matmul'ed 前两个,然后用下一个索引得到结果,依此类推。
我目前正在尝试求解 5 DOF 机械臂前向运动学的 Denavit Hartenberg 方程。由于我需要为遗传算法解决此问题,因此我需要同时为 n 个机械臂执行此操作。
我目前的方法是定义一个 4x4xnx5 矩阵,其中包含 n 个机械臂所需的所有转换矩阵。然后我在一个 for 循环上迭代所有 n 个臂,用矩阵乘法求解每个 DH 方程(参见下面的代码示例 1)。这可行,但显然很耗时。更聪明的方法是执行代码示例 2 之类的操作,但随后我收到以下错误消息 (n=500):
“matmul:输入操作数 1 的核心维度 0 不匹配,带有 gufunc 签名 (n?,k),(k,m?)->(n?,m?)(大小 4 与 500 不同)”
有没有办法像代码示例 2 中演示的那样使用 numpy 进行这样的矩阵乘法运算?
interpolation - ZX轴2自由度定向插补
Z 轴和 X 轴有 2 个 DOF 方向,如何在 2 个方向之间进行插值?我已经使用四元数和旋转矩阵对 slerp 进行了 3 DOF 方向的内插以进行逆运动学,但是我无法处理 2 DOF orientaion one。
python - 用于在类似跷跷板的物体上旋转和平移的 Python 库
我想对刚性物体两端的 3D 位置进行计算(见下图中孩子们通常坐在的位置)。刚体的几何情况相当于一个跷跷板。必须可以在三个轴上进行旋转,并且可以用滚珠轴承表示,该轴承最初位于杆的中间。
所需功能的输入应包括在滚珠轴承位置执行的三个旋转、沿轴承的三个平移以及对象两端的初始 3D 位置。
输出需要是计算出来的两端新的 3D 位置。
有谁知道确实提供有关此问题的功能的python库?
curve-fitting - 用于 msc ADAMS 软件中强加运动的样条拟合
我正在使用 msc ADAMS 软件创建 3D 基础运动问题。不幸的是,我一周前才开始在我的论文中使用它。我用胡克(万向节)接头将这个底座连接到地面,给我 2 DOF 滚动和俯仰(偏航无关)。
在Connectors -> Joint36 -> modify有选项强制运动,在这里我想在我的 test_data 上使用脊椎拟合曲线。这意味着运动将是非谐波的,将代表我的实验。否则,我可以轻松实现谐波运动。
test_data 如下:1200x3 数组 - 时间、滚动、俯仰
我尝试了 Akima 拟合方法AFMSPL(1st_indep_var, 2nd_indep_var, Spline_name, Deriv_order)但我不知道应该如何包含我的 test_data。
我知道这是一个很长的机会,但是有没有人对 ADAMS 有很好的了解并且可以帮助我如何实现这个?
谢谢:)