Replies: 1 comment
-
I ran the test as you said and I think your R_ Root is correct. The problem may be in the function Eigen::Vector4d quat;
quat << sqrt(1.0/2), sqrt(1.0/8), sqrt(1.0/4), sqrt(1.0/8);
Eigen::Matrix3d R;
R = Eigen::Quaterniond(quat).toRotationMatrix();
std::cout << "R = \n" << R << std::endl; |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
I wanted to discuss a point of confusion I've encountered regarding the orientation of the root joint in the freeflyer model. It seems that the orientation of the body, represented as
R_base
, should ideally align with the orientation of the root joint, represented asR_root
. However, based on my recent testing, it appears thatR_base
is computed asR_base = R_root.transpose()
. I'd like to outline my testing procedure and results to seek your insights and expertise on this matter.quat = [qx, qy, qz, qw]
. In my test, I used the valuesquat = [sqrt(1.0/2), sqrt(1.0/8), sqrt(1.0/4), sqrt(1.0/8)]
.q
and setq.segment(3,4) = quat
.forwardKinematics(model, data, q)
.R_root = data.oMi[1].rotation()
.R_base = quaternionToRotationMatrix(quat)
.After this process, I obtained the following results for
R_root and R_base
:My question is whether there is a misunderstanding on my part regarding the root joint's orientation or if there might be an error in the process of calculating it. Your guidance on this matter would be greatly appreciated.
Thank you for your time and assistance.
Beta Was this translation helpful? Give feedback.
All reactions