Pablo Stark
Pablo Stark

Reputation: 682

On simulation of fixed-end robotic arms

This a draft of a 3D model I’m working with, and I would like to simulate its behaviour using python language. I have been researching on the best implementation for this simulation, but I found nothing that could fit real motion. I have tried analytical solving and failed because of uncertainity of certain parameters (certain errors for arm length) when those were measured.

I want to simulate the motion produced by a revolute joint and transfered to a system which is similar to the one depicted on the scheme.

Stable Status

At a certain time, the system might use the revolute joint and then turn to the following status.

Rotated

Both status for the system are depicted on the next scheme. Both

An easy simplification with DH parameters would be:

enter image description here

The important thing is how to calculate the position and the angles of both non-controlled joints so that receptor joint angle (fixed point) can be calculated.

It is not only an inverse kinematics problem. It is necessary to consider the motion restrictions too. The motion must be determined by the revolute joint angle, the lenght of the links and the fixed point position and length.

The red circle in the next image depicts the possible positions for the second non-controlled point.

enter image description here

How would you simulate this motion?

Upvotes: 2

Views: 1091

Answers (1)

Petr Pecha
Petr Pecha

Reputation: 61

There are one problematic position, where intersections of two circles (described below) has one point. In this situation (we suppose it is planar situation (gravity is perpendicular to all arm) and static situation) there isn't any force, which move with second non-controlled joint. In dynamic we choose another solution for next step.

When intersection isn't exist, that situation dosn't exist and revolute joint cannot move to this position.

We obtain (trivialy) motion restrictions when we calculate all position and determine position where doesn't exist intersection.

Do you obtain end position of non-fixed point directly?

Older ansewer:

Simulate motion:

  1. Calculate position of non controled points for all time between start position and end position with step delta_t.
  2. Draw step by step each calculated position (for example via Pygame).

Calculate:

  1. First compute position of first non-controlled point (higher)

    x_2 = x_1 + l_12 cos(Theta_1),

    y_2 = y_1 + l_12 sin(Theta_2),

where X_1(x_1, y_1) is position of revolute point, X_2(x_2, y_2) is position of first non-controlled point and l_12 is length between X_1 and X_2

  1. Compute intersection of two circle k_1 and k_2, where k_1(first non-controlled point, l_23) and k_2(receptor joint, l_34), where k(center of circle, radius of circle).

Step 2 has two solution. We choose one of then. To simulate motion, we must choose "same solution".

Compute angle from two points:

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

Upvotes: 1

Related Questions