Robotic manipulator end-effector pose calculation

20 views (last 30 days)
Boyu
Boyu on 2 Mar 2023
Commented: Boyu on 15 Mar 2023
Hi,
In my case, I need to determine the end effector pose with the imformation of the target points location and the end effector's Euler angle when passing these points.
In one of the demo. There is a command like this.
tgtPose = trvec2tform(waypoints(:,idx)') * eul2tform(orientations(:,idx)',"XYZ") ;
The result is correct, though I have a question. In my robotics lecture, there is a note:
Rotate around the current axis -> right multiplication; Rotate around the world axis -> left multiplication;
From my understanding, the Euler angle is how much rotation around the world frame axis. Why in here is a right multiplication?
Hope someone can answer me.
Cheers.

Answers (1)

Divyank
Divyank on 9 Mar 2023
Hello @Boyu, in general, if you want to rotate a point around a fixed world axis, you should use left multiplication. However, the specific multiplication order used in the command you provided is not actually rotating the end effector around a world axis.
The trvec2tform() function is creating a homogeneous transformation matrix based on the translation vector waypoints(:,idx)', which is specifying the location of the target point in world coordinates. This matrix will translate the end effector from its current position to the target point.
The eul2tform() function is creating another homogeneous transformation matrix based on the Euler angles orientations(:,idx)', which specify the desired orientation of the end effector in terms of three consecutive rotations around the end effector's own coordinate axes, in the order specified by the "XYZ" argument. This matrix will rotate the end effector from its current orientation to the desired orientation.
Multiplying these two matrices together gives a single homogeneous transformation matrix that combines both the translation and rotation operations, which when applied to the current end effector pose will result in the desired end effector pose.
Therefore, the right multiplication used in this command is correct for this specific use case, where the goal is to combine a translation and rotation to obtain a single desired end effector pose, rather than to rotate around a fixed world axis.
  1 Comment
Boyu
Boyu on 15 Mar 2023
Thank you! That's very helphful. I am also posting another question on manipulator simulation. I am glad if you have any opinions to share.

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!