THIS LINK IS THE NEWEST VERSION
for the complete report on the theory of delta parallel robot please refer to my internship report this will be a step by step demonstration of how I experimented the different methods of trajectory planning for a Delta Parallel robot End-Effector
Overview:
- Inverse and Forward Kinematics
- Motion Planning (Point-To-Point)
- 3-4-5 Polynomial interpolation
- 4-5-6-7 Polynomial interpolation
- Trapeoidal
- Motion Planning (Multi-Point)
- cubic-spline
- Trapezoidal
- Jacobian (incomplete)
with trajectory planning there are two fundemental questions we need an answer for:
- given a specific location in the real world, what values should my robot's joint be set to in order to get the End-Effector there? (inverse kinematics)
- given the setting of my joints, where is my EE in real world coordinates? (forward kinematics)
The Delta robot is a 3-DOF robot that consists of two parallel platforms. One of them, which we call the EE platform, is capable of moving and the other one, which we call base platform, is not capable of that. These two platforms are connected with three arms. Each arm has one pin and two universal joints (as shown in the figure) that connect two solid rods. The rod which is connected to base platform by the pin, is called the active rod, and the other one is called the passive rod. The center of the base and EE platforms are marked as
- IK: so you'll need to solve this equation and find
$\theta_{ij}$ with respect to the other variables. this will solve the inverse kinematics problem.$\theta_{1j}$ are the angles of the actuator joints. - FK: for forward kinematics it, the equation number 1 is solved for
$p_x, p_y, p_z$ (position of the EE) with respect to other variables (which is a much easier problem that IK)
-
here's a good playlist for learning FK and IK
you can see my python implementation of IK:
this section is dedicated to answer how should you go about writing a code for point to point movement (moving the EE from point 1 to point 2 in 3d space )
In order to represent each joint motion, a fifth-order polynomial
the polynomial is shown in the following form
- POINT TO POINT MOVEMENT (3-4-5 polynomial): moveing from point to point in the direction desired --> trajectory_planning_345.py
The problem with 3-4-5 polynomial is that the jerk at the boundary can't be set to zero, for this problem we use a higher degree of polynomial, namely, 7-th deg polynomial.
with the steps similar to the last section and the added boundary conditions of
- POINT TO POINT MOVEMENT (4-5-6-7 polynomial): we repeat what we've done for sub-step 2 but with a 7th order polynomial --> trajectory_planning_4567.py
3-4-5 polynomial and 4-5-6-7 polynomial point to point movement, you can learn about this in the book "Fundamentals of Robotic Mechanical Systems, theory, methods, and Algorithms, Fourth Edition by Jorge Angeles - chapter 6"
In Trapezoidal method we have 3 phases,
- Phase 1: constant positive acceleration
- Phase 2: constant velocity
- Phase 3: constant negetive acceleration
you can find the codes related to trapezoidal point to poitn movement in this source code
This is the resultant plot:
as a concept, s-curve is the better version of trapezoidal. strictly speaking, it has seven phases instead of three. as explained blow in mathemathis terms:
this section is dedicated to planning out a specific trajectory for the robot to go through
one way of interpolating a path of
- CIRCLE MOVEMENT: cubic spline with assigned initial and final velocities --> trajectory_planing_cubic_spline.py
Computation of the coefficient for assigned initial and final velocities plot:
- CIRCLE MOVEMENT: cubic spline with assigned initial and final velocities and acceleration --> trajectory_planing_cubic_spline_4.4.4.py
Computation of the coefficient for assigned initial and final velocities and acceleration plot:
cubic spline (book Trajectory Planning for Automatix Machines and Robots by Luigi Biagiotti and Claudio Melchiorri)
- cubic spline with assigned initial and final velocities (part 4.4.1)
- cubic spline with assigned intial and final velocities and acceleration (part 4.4.4)
- smoothing cubic spline (part 4.4.5)
a very common method to obtain trajectoryies with a continuous velocity profile is to use linear motions with parabolic blends, characterized therefore by the typical trapezoidal velocity profiles.
To achieve something like this first we need to initiate a form of velocity prfile and then modify it
If the method from point to point trapezoidal movement is used directly for multi-point, velocity becomes zero quite often and in every pre-defined point in the path, which is not acceptable. this kind of behaviour can be seen in the plot below:
\textbf{Theory and algorithm of modifying the velocity profile above}
after modifying this velocity profile we get the following plots:
The jacobian matrix relates velocity of EE to the velocity of actuator joints with the relation:
for the IK we have the equations as followed
-
$p_x \cos(\Phi_i) - p_y \sin(\Phi_i) = R - r + a \cos(\theta_{1i}) + b \sin(\theta_{3i}) \cos(\theta_{2i} + \theta_{1i})$ (equation 1) -
$p_x \sin(\Phi_i) + p_y \cos(\Phi_i) = b \cos(\theta_{3i})$ (equation 2) -
$p_z = a \sin(\theta_{2i}) + b \sin(\theta_{3i}) \sin(\theta_{2i} + \theta_{1i})$ (equation 3)
from these equation we solve for
further explanation in the following pdf that i've written according the mentioned references: jacobian, IK and FK