I am planning to do a minimum-jerk trajectory. In order to achieve that I need to translate the angles given by the robot pose to Euler angles, therefore I have questions related to that topic:
When I get tcp pose the Rx,Ry,Rz are angles in axis-angle representation?
Is there any specific Euler angle representation that is recommended for use with the UR5e? There are XYZ, ZYX and many more and I am not sure if it matters which one I choose
Yes, as stated in the script manual. The poses are defined in axis-angle representation (https://en.wikipedia.org/wiki/Axis–angle_representation)
Document uploaded in this thread may be of use.
The issue that I have is that when looking at polyscope I see the values of Rx,Ry,Rz, then change the value of one of those angles using the rotation arrow (ex. rotate around z) and instead of Rz changing, all the values change. How does it make any sense?
If I want to create a trajecotry which the robot follows can I do it using axis angle representation or it has to be in Euler?
The arrows make adjustments in RPY format, but the values are displayed as axis angles. Look at the script functions rotvec2rpy() and rpy2rotvec(). If you want to define your rotations in a human comprehensible manner do it in RPY then convert to Rotation Vector to put into the target pose.
@ajp i underdtand thanks a lot.
I am operating the robot via UrScrpt and RTDE. I am using a PD controller that i defined to follow the trajectory that i have also defined. The following of position is giving me great results but i still cant wrap my head about following of the orientation
Do you know if i can just calculate the difference between current and desired angle in axis angle representation and make robot follow it? Or the angles have to be represented in RPY form?
If there is an inbuilt function that translates the orientation representation I assume it has some purpouse? In what cases its better to use RPY over axis-angle representation?
Prefacing this with the fact I also find these orientation formats a bit confusing! It’s fine to calculate and execute the target orientations directly in axis angle if you have a setup that can do so. Axis angle is ok to manipulate manually if you’re only rotating about one axis, but when you start wanting to rotate about multiple axis in a single motion it’s impossible to follow. RPY is just easier to work with if you’re trying to get your head around how the tool will move by imagining a toy Aeroplane
Thank you very much,
I am not sure then why my method doesnt work and the robot doesnt follow the trajectory. At least now I know that it doesnt matter whether i use euler or axis-angle, so thats good to know
Hi @RobotNoob, the pose you send to the robot in p[x,y,z,rx,ry,rz] format must be in axis angle format though, you know that right?
Hi @ajp, yes I know that.
I am not sending the poses to the robot, instead, I calculate the difference between current and desired position, velocity, orientation, and angular velocity and after multiplying them by a PD gains I get a PD controller which suppose to bring the robot to the desired position.
It does work well for translation but not for rotation,which was the reason why I created this question on the forum