I have recently had a hard time trying to understand the function of the parameters reference_frame and base_frame of the class DQ_Kinematics. I am not sure if the problem is the current state of the documentation, the name of those parameters, or if I unnecessarily complicated things by looking at the code and thinking about how I would have done things instead of following the implementation (or even more likely, a combination of all above). Regardless, the impression I had is that "reference_frame" would set the frame of reference used by methods such as fkm, whereas base_frame would inform those methods of the current pose of the robot base.
Considering that, I was expecting the following results from the code:
-
After setting the robot's reference_frame to coincide with the pose of its end-effector, I expected a subsequent call of the method fkm to return DQ(1) since the transformation from the new reference frame to the end-effector is the identity;
-
After changing the base_frame, I expected to have a new end-effector pose returned by fkm since now the robot moved, and the reference frame remained unchanged.
I have spoken with @bvadorno, and he clarified things for me. Nonetheless, he asked me to open a request for documentation improvement. Unfortunately, as I am not sure of what exactly caused my confusion, I cannot recommend a specific solution.
I have recently had a hard time trying to understand the function of the parameters reference_frame and base_frame of the class DQ_Kinematics. I am not sure if the problem is the current state of the documentation, the name of those parameters, or if I unnecessarily complicated things by looking at the code and thinking about how I would have done things instead of following the implementation (or even more likely, a combination of all above). Regardless, the impression I had is that "reference_frame" would set the frame of reference used by methods such as fkm, whereas base_frame would inform those methods of the current pose of the robot base.
Considering that, I was expecting the following results from the code:
After setting the robot's reference_frame to coincide with the pose of its end-effector, I expected a subsequent call of the method fkm to return DQ(1) since the transformation from the new reference frame to the end-effector is the identity;
After changing the base_frame, I expected to have a new end-effector pose returned by fkm since now the robot moved, and the reference frame remained unchanged.
I have spoken with @bvadorno, and he clarified things for me. Nonetheless, he asked me to open a request for documentation improvement. Unfortunately, as I am not sure of what exactly caused my confusion, I cannot recommend a specific solution.