Rigid3d Tutorial ((exclusive)) -
Quaterniond q = T_ab.unit_quaternion(); // rotation as quaternion Vector3d t = T_ab.translation();
[ p_B = R_AB \cdot p_A + t_AB ]
# Rotation: 90 deg around Z r = R.from_euler('z', 90, degrees=True) t = np.array([1.0, 0.0, 0.0]) T = np.eye(4) T[:3,:3] = r.as_matrix() T[:3, 3] = t 4. Applying the Transformation Transform a 3D point ( p = (0, 1, 0) ) from frame A to frame B. rigid3d tutorial
Vector3d p_a(0.0, 1.0, 0.0); Vector3d p_b = T_ab * p_a; std::cout << "p_b: " << p_b.transpose() << std::endl; // Expected: after 90° Z rot: (0,1,0) -> (-1,0,0) then + translation (1,0,0) -> (0,0,0) Quaterniond q = T_ab