Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

Location

The models are model is located in project_root/Simulation scripts

...

The code is very similar to Simulation runner where the only difference is the absence of the inverse kinematics calculations. The A1_position..A5_position are computed directly and then fed to the simulation

Motion Examples

Only A1

By only moving A1 we are mostly controlling the pitch of the strongback. However, this is not enough to obtain a pure pitch motion because we also have a parasitic motion on Y. This is why we need the inverse kinematics in place to keep all the degrees of freedom in the cartesian space as close as possible to the target configuration

Multimedia
nameSCU_FULL_vert.mp4
width600
autostarttrue


Image Added

Image AddedImage Added

Circle

Combined motions can be executed. In this case, I'm simulating a rotary motion in the joint space.

Code Block
titleRotary motion code
linenumberstrue
collapsetrue
% generate a circular trajectory
R = 2;
time_norm = time / time(end);
theta = time_norm * 4*pi;
x = R*cos(theta);
y = R*sin(theta);
% Generate trajectory
A1 = A1_start + time / time(end) * (A1_end - A1_start);
A2 = A2_start + time / time(end) * (A2_end - A2_start);
A3 = A3_start + time / time(end) * (A3_end - A3_start);
A4 = A4_start + time / time(end) * (A4_end - A4_start);
A5 = A5_start + time / time(end) * (A5_end - A5_start);

% Create position arrays for each actuator
A1_position = [time' A1'];
A2_position = [time' y'];
A3_position = [time' y'];
A4_position = [time' A4'];
A5_position = [time' x'];


Multimedia
nameSCU_FULL_circle.avi_rot.mp4
width600
autostarttrue


Image Added

By completely ignoring the inverse kinematic we on both quad_x and quad_y the maximum target position (+-2 mm) is never achieved.

It is also clear that the quad_yaw is in phase with the quad_x and the quad_pitch is in phase with quad_y. Both show a maximum error of more than 1 mrad.

Image AddedImage Added

A4 and A5 opposite motion

Let's try to have an opposite linear motion on A4 and A5 (horizontal actuators) to generate a yaw motion. Since the rotation axis is not coincident with the quadrupole center we expect an error on quad_x as well as on quad_y due to the swing effect.

Code Block
titleYaw motion code
linenumberstrue
collapsetrue
% Trajectory parameters
A1_start    = 0;    
A1_end      = 0;
A2_start    = 0;    
A2_end      = 0;
A3_start    = 0;    
A3_end      = 0;
A4_start    = -2.5;       
A4_end      = 2.5;
A5_start    = 2.5;       
A5_end      = -2.5;

% generate a circular trajectory
R = 2;
time_norm = time / time(end);
theta = time_norm * 4*pi;
x = R*cos(theta);
y = R*sin(theta);
% Generate trajectory
A1 = A1_start + time / time(end) * (A1_end - A1_start);
A2 = A2_start + time / time(end) * (A2_end - A2_start);
A3 = A3_start + time / time(end) * (A3_end - A3_start);
A4 = A4_start + time / time(end) * (A4_end - A4_start);
A5 = A5_start + time / time(end) * (A5_end - A5_start);

Multimedia
nameSCU_FULL_yaw.mp4
width800
autostarttrue

Image Added

Image AddedImage Added

Our predictions were right! The strongback mainly moved on yaw with some relevant parasitic motion on quad_x and quad_y. 

From the plot is evident that the whole strongback is moving along z. This effect is mainly because the center of mass is moving during the imposed motion and, since the simulation is firstly a dynamical simulation, this change of position results in a displacement in the only non-constrined axis. In this model,  the z-restrain mechanism is not implemented.