• Twitter
  • Facebook
  • Google+
  • Instagram
  • Youtube

Thursday, August 6, 2015

Behind of Robot Arm : Cubic Trajectory Planning

Holiday had gone out of existence. yeah. it was really nice how holiday went. it made me realize that was good chance to know that time is so worth. Of course, time makes sense in small pieces. But, when we look at huge stretches of time. it's almost impossible to put it into the perspective. The only time that only matter is now. So,  that cute girl you like, ask her out.

This time i explain how cubic polynomial trajectory works. what is trajectory planning? how does it work?
Trajectory planning is one of control method to make your arms go what you want and move smoothly. It has many methods. One of them is cubic polynomial trajectory. There are four boundary conditions, and therefore a polynomial of degree 3 must be considered. In mathematics, a Cubic function is shown below :
Where the four parameter a0, a1, a2, a3 must be defined so that the boundary conditions are satisfied. From the boundary conditions, it follows that :
where :
So, the question is "How do i find out those parameters?"
They depend on you. you want to solve it by forward or inverse. if you want solve them by forward. you need define parameters first. Otherwise, if you want solve them by inverse you need define start angle, start speed, final angles and final speed. But, if you pick "forward", you need change parameters every you make move. Because, parameters you define actually for specific angle & speed.

To understand how inverse works, first we must look at forward. We know the current angles of each joint based on our live measurements, and we know the shape and connectivity of the arm. Each segment of the arm can be seen as a simple rod of length ai connected to the previous joint and rotated by some angle θi:


According the image, we have 5 degree of freedom. here is the deal. we put eyes on one of them. okay, we concern with angle θ2. Based on our live measurements, we can get Initial Angle.. Then, we would like 1 second to reach the target.

lets we start when t = 0 :
According to initial angle, we can get :

According to initial speed, we can get :

when t = tf  = 1 :
According to Final Angle, we can get :

from equation 1 & 2, we can substitute to equation 3 :

According to Final Speed, we can get :


From equation 2, we can substitute to equation 5 :

And finally,  from equation 4 and 6, we'll get 2 additional parameters (a2 and a3).  that's quite easy, right? we have done forward method of cubic polynomial trajectory. But, that isn't simple enough to be implemented to robot arm. As robot arms move different start angles and final angles every time, we need robot arms to be adaptable. They're actually dumb. we need change the methode to be inverse way. it means robot must be able to translate human perspective (cartesian space) into robot needed (joint space).


form those equtaions, i would like represent it to be matrix, so here it is :

Hence,

As parameters need to be found, we inverse T matrix from left side to right side.
I recorded 4 moves to GUI with different time, angle and speed. so, Here is the result :

Here is the GUI :

Sorry, i forget to put A matrix on GUI, So, we don't know if A matrix is changeable. But, i'm pretty sure, it changes if i make every move. As you see, speed servos work as books told.

Reference :
  • Biagiotti, Luigi and Claudio Melchiorri.  2008. Trajectory Planning for Automatic Machines and Robots. Germany : Springer.
  • http://www.diag.uniroma1.it/~deluca/rob1_en/13_TrajectoryPlanningJoints.pdf
  • http://www-lar.deis.unibo.it/people/cmelchiorri/Files_Robotica/FIR_07_Traj_1.pdf



0 comments:

Post a Comment