Robotic manipulator end-effector pose calculation
20 views (last 30 days)
Show older comments
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.
0 Comments
Answers (1)
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.
See Also
Categories
Find more on Robotics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!