关于固定端机器人臂的仿真

时间:2015-01-15 09:41:39

标签: python robotics

这是我正在使用的3D模型的草稿,我想用python语言模拟它的行为。我一直在研究这种模拟的最佳实现,但我发现没有什么能适合真实运动。我已经尝试过分析求解并且由于某些参数的不确定性(臂长的某些误差)进行测量而失败了。

我想模拟一个旋转关节产生的运动,并转移到一个类似于该方案所描绘的系统。

Stable Status

在某个时间,系统可能会使用旋转关节,然后转到以下状态。

Rotated

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

DH参数的简单简化是:

enter image description here

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

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

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

enter image description here

你会如何模拟这个动作?

1 个答案:

答案 0 :(得分:1)

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

当交叉点不存在时, 这种情况并不存在 和旋转关节不能动 到这个位置。

在计算的时候得到(琐事)运动限制 所有位置并确定不存在交叉点的位置。

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

较旧的ansewer:

模拟动作:

  1. 计算所有时间之间非控制点的位置 步骤delta_t开始位置和结束位置。
  2. 逐步绘制每个计算出的位置(例如通过Pygame)。
  3. 计算:

    1. 第一个非控制点的计算位置(更高)

      x_2 = x_1 + l_12 cos(Theta_1),

      y_2 = y_1 + l_12 sin(Theta_2),

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

      1. 计算两个圆圈k_1和k_2的交点, 其中k_1(第一个非受控点,l_23)和k_2(受体关节,l_34), 其中k(圆心,圆的半径)。
      2. 第2步有两个解决方案。 我们选择其中一个。 要模拟运动,我们必须选择 "相同的解决方案"。

        从两点计算角度:

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