def test_small_angle(self): theta = 1e-2 quaternion = torch.Tensor([np.cos(theta / 2), np.sin(theta / 2), 0, 0]) expected = torch.Tensor([theta, 0, 0]) angle_axis = tgm.quaternion_to_angle_axis(quaternion) assert utils.check_equal_torch(angle_axis, expected)
def test_z_rotation(self): quaternion = torch.Tensor([np.sqrt(3) / 2, 0, 0, 0.5]) expected = torch.Tensor([0, 0, tgm.pi / 3]) angle_axis = tgm.quaternion_to_angle_axis(quaternion) assert utils.check_equal_torch(angle_axis, expected)
def test_smoke_batch(self, batch_size): quaternion = torch.zeros(batch_size, 4) angle_axis = tgm.quaternion_to_angle_axis(quaternion) assert angle_axis.shape == (batch_size, 3)
def test_y_rotation(self): quaternion = torch.Tensor([0, 0, 1, 0]) expected = torch.Tensor([0, tgm.pi, 0]) angle_axis = tgm.quaternion_to_angle_axis(quaternion) assert utils.check_equal_torch(angle_axis, expected)
def test_smoke(self): quaternion = torch.zeros(4) angle_axis = tgm.quaternion_to_angle_axis(quaternion) assert angle_axis.shape == (3, )