Python 固定端机械臂的仿真研究

Python 固定端机械臂的仿真研究,python,robotics,Python,Robotics,这是我正在处理的一个3D模型的草稿,我想用python语言模拟它的行为。我一直在研究这个模拟的最佳实现,但我发现没有任何东西可以适合真实的运动。我曾尝试过解析解,但由于测量时某些参数(手臂长度的某些误差)的不确定性而失败 我想模拟由旋转关节产生的运动,并将其转换为一个系统,该系统与方案中描述的系统类似 在特定时间,系统可能会使用旋转关节,然后转向以下状态 下一个方案中描述了系统的两种状态。 使用DH参数的简单简化方法如下: 重要的是如何计算两个非受控关节的位置和角度,以便计算受体关节角度

这是我正在处理的一个3D模型的草稿,我想用python语言模拟它的行为。我一直在研究这个模拟的最佳实现,但我发现没有任何东西可以适合真实的运动。我曾尝试过解析解,但由于测量时某些参数(手臂长度的某些误差)的不确定性而失败

我想模拟由旋转关节产生的运动,并将其转换为一个系统,该系统与方案中描述的系统类似

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

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

使用DH参数的简单简化方法如下:

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

这不仅仅是一个逆运动学问题。也有必要考虑运动限制。运动必须由旋转关节角度、连杆长度以及固定点位置和长度确定

下图中的红色圆圈描绘了第二个非控制点的可能位置


你将如何模拟这一运动?

有一个问题的位置, 其中两个圆的交点(如下所述) 有一点。 在这种情况下(我们假设它是平面情况(重力是垂直的) 对于所有手臂)和静态情况)没有任何力,它们与第二个非受控关节一起移动。 在dynamic中,我们为下一步选择另一个解决方案

当十字路口不存在时, 这种情况不存在 旋转关节不能移动 到这个位置

当我们计算时,我们得到(微不足道的)运动限制 所有位置并确定不存在交叉点的位置

是否直接获取非固定点的端点位置

安塞尔:

模拟运动:

  • 计算所有时间间隔内非控制点的位置 开始位置和结束位置,带有阶跃增量
  • 逐步绘制每个计算位置(例如通过Pygame)
  • 计算:

  • 第一个非受控点的第一次计算位置(更高)

    x_2=x_1+l_12 cos(Theta_1),

    y_2=y_1+l_12 sin(θ_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))

    您试过了吗?恐怕问题只限于python中的机械臂。。。