我已经定义了旋转矩阵,并希望Eigen :: Transform执行旋转。由于某些原因,尽管我要旋转它,但仍设置为身份。
//Definig my rotation matrix
Eigen::Matrix3f roll_rotation_matrix( 3, 3 );
roll_rotation_matrix << 1, 0, 0, 0, 0, 1, 0, -1, 0;
//Print
display("PRINT ROLL ROTATION: ")
display(roll_rotation_matrix)
// Perform rotation along X
display("BEFORE: ")
display(roll_input_stamped_transform.transform.rotation())
//Rotate the rotation matrix
roll_input_stamped_transform.transform.rotate( roll_rotation_matrix );
roll_input_stamped_transform.transform.rotation = roll_rotation_matrix;
//Print
display(" AFTER: ")
display(roll_input_stamped_transform.transform.rotation());
我的输出如下:打印辊旋转:1 0 00 0 10 -1 0
BEFORE:
1 0 0
0 1 0
0 0 1
AFTER:
1 0 0
0 1 0
0 0 1
当我打印roll_rotation_matrix时,我看到我的矩阵不是同一性。但是,即使应用了rotate()之后,旋转矩阵似乎仍然是相同的。你们对我可能在这里发生什么有任何线索吗?
找出问题。我必须设置roll_input_stamped_transform.transform.setIdentity()
才能应用旋转矩阵。