python机械臂仿真_关于固定端机械臂的仿真

本文探讨了使用Python模拟3D模型中旋转关节产生的运动。面对解析求解的挑战,特别是涉及不确定参数的情况,文章详细介绍了模拟过程,包括计算非控制点的位置、使用DH参数简化模型、以及解决运动学问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我正在使用的3D模型的草稿,我想使用python语言模拟其行为。我一直在研究此模拟的最佳实现,但没有发现任何适合实际运动的东西。我尝试了解析求解,但由于某些参数(确定臂长的某些误差)的不确定性而失败了。

我想模拟旋转关节产生的运动,然后将其转移到类似于该方案所示系统的系统。

APDST.png

在特定时间,系统可能会使用旋转关节,然后变为以下状态。

sfu9c.png

下一个方案描述了系统的两种状态。

Lm7lf.png

使用DH参数的简单简化将是:

mW8wT.png

重要的是如何计算两个不受控制的关节的位置和角度,以便可以计算出受体关节的角度(固定点)。

这不仅是逆运动学问题。也必须考虑运动限制。运动必须由旋转关节角度,链节的长度以及固定点的位置和长度决定。

下一个图像中的红色圆圈表示第二个非受控点的可能位置。

eRota.png

您将如何模拟该运动?

解决方案

有一个有问题的位置,其中两个圆的交点(如下所述)只有一个点。在这种情况下(我们假设它是平面状态(重力垂直于所有手臂),并且处于静态状态),没有任何力随着第二个不受控制的关节而运动。在动态中,我们为下一步选择了另一个解决方案。

当不存在相交时,该情况不存在,并且旋转关节无法移动到该位置。

当计算所有位置并确定不存在交点的位置时,我们将获得(琐碎的)运动限制。

您是否直接获得非固定点的终点位置?

较旧的答案:

模拟运动:

使用步骤delta_t计算开始位置和结束位置之间所有时间的非控制点的位置。

逐步绘制每个计算出的位置(例如通过Pygame)。

计算:

第一个非控制点的第一个计算位置(较高)

x_2 = x_1 + l_12 cos(Theta_1),

y_2 = y_1 + l_12 sin(Theta_2),

其中X_1(x_1,y_1)是旋转点的位置,X_2(x_2,y_2)是第一个非控制点的位置,l_12是X_1和X_2之间的长度

计算两个圆k_1和k_2的交点,其中k_1(第一个非控制点,l_23)和k_2(受体关节,l_34),其中k(圆的中心,圆的半径)。

步骤2有两个解决方案。我们选择其中之一。为了模拟运动,我们必须选择“相同的解决方案”。

从两点计算角度:

alpha = math.atan2((y_2-y_1)/(x_2-x_1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值