1
$\begingroup$

I am not sure how i should explain this, I am looking for a way to plot the trajectory an robot arm. An object is seen from the toolFrame frame, but how do I plot the position of each joint, such that the frame they uses are the same.

One way would be to use the world frame as reference, but how would i plot the position of the object related to the world frame?

$\endgroup$
5
  • $\begingroup$ What environment are you drawing in? Matlab? Is there a mathematical model of the robot available in that environment? $\endgroup$ May 17, 2016 at 9:11
  • 1
    $\begingroup$ Matlab.. I have a mathmatical model, but not coded in matlab. At the moment I just multply different transformation matrices to get the point i want the desired transformation $\endgroup$ May 17, 2016 at 9:17
  • $\begingroup$ "An object is seen from the toolFrame frame" this is what makes it a little unclear to me what you want exactly. Do you want to visualize the trajectories in the tool frame? $\endgroup$ May 17, 2016 at 10:26
  • $\begingroup$ The position of the object is given relative to the tool frame. $\endgroup$ May 17, 2016 at 10:57
  • $\begingroup$ I would like to visualize trajectory of the whole robot arm, each joint.. $\endgroup$ May 17, 2016 at 10:57

1 Answer 1

2
$\begingroup$

Assuming you have solved the inverse kinematics (IK) problem already...

I suppose you have a transformation matrix for each joint, build up from one line in the DH table (if you used DH to describe the robot). Form the IK you have obtained

$Q = [q_1, q_2, q_3, q_4, q_5, q_6]$

Having all Q values you can now write:

$H_{0,1} = A_1(q_1)$

$\Rightarrow$ $H_{0,1}(1:3, 4)$ will give you the $x$, $y$ and $z$ Coordinates of joint 1

$H_{0,2} = H_{0,1}*A_2(q_2)$

$\Rightarrow$ $H_{0,2}(1:3, 4)$ will give you the $x$, $y$ and $z$ Coordinates of joint 2

$H_{0,3} = H_{0,2}*A_3(q_3)$

$\Rightarrow$ $H_{0,3}(1:3, 4)$ will give you the $x$, $y$ and $z$ Coordinates of joint 3

$H_{0,4} = H_{0,3}*A_4(q_4)$

$\Rightarrow$ $H_{0,4}(1:3, 4)$ will give you the $x$, $y$ and $z$ Coordinates of joint 4

$H_{0,5} = H_{0,4}*A_5(q_5)$

$\Rightarrow$ $H_{0,5}(1:3, 4)$ will give you the $x$, $y$ and $z$ Coordinates of joint 5

$H_{0,6} = H_{0,5}*A_6(q_6)$

$\Rightarrow$ $H_{0,6}(1:3, 4)$ will give you the $x$, $y$ and $z$ Coordinates of joint 6

$H_{0,tool} = H_{0,6}*A_{tool}$

where

  • $A_i$ is the DH-transformation matrix associated with joint $i$.
  • the index $_0$ represents the world frame
  • the intex $_{tool}$ represents the tool frame
  • $H_{i,j}$ represent the transformation matrix from frame $i$ to frame $j$
$\endgroup$
9
  • $\begingroup$ What about the position of the object related to the world? $\endgroup$ May 17, 2016 at 12:11
  • $\begingroup$ I don't know if thats wasn't clear, but my problem is the axis is misalligned, as the position of objected is logged according to the tool $\endgroup$ May 17, 2016 at 12:13
  • $\begingroup$ If you solved the inverse kinematics then it does not matter...that is why the answer starts with "asuming you have solved the IK" $\endgroup$
    – 50k4
    May 17, 2016 at 12:14
  • $\begingroup$ did you solve the IK? $\endgroup$
    – 50k4
    May 17, 2016 at 12:15
  • 1
    $\begingroup$ If I understand correctly, you have all the joint angles ($Q$). Those define the pose of the robot regardless of any other frames. Those are always expressed in their local frames. The transition from world frame to frame of joint 1 is $A_1$. The transition is dependent on joint angle and robot geometry only. You transition by multiplication and plot the frame origin (x, y and z). Then you go to the next joint and plot the frame origin and so on until you reach the end-effector. At the end you will get the location of each joint in world frame. connect the lines and you can draw your robot. $\endgroup$
    – 50k4
    May 17, 2016 at 14:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.