@@ -967,42 +967,64 @@ def test_trlog(self):
967
967
# %%% SO(3) tests
968
968
# zero rotation case
969
969
nt .assert_array_almost_equal (trlog (np .eye (3 )), skew ([0 , 0 , 0 ]))
970
+ nt .assert_array_almost_equal (trlog (np .eye (3 ), twist = True ), np .r_ [0 , 0 , 0 ])
970
971
971
972
# rotation by pi case
972
973
nt .assert_array_almost_equal (trlog (rotx (pi )), skew ([pi , 0 , 0 ]))
973
974
nt .assert_array_almost_equal (trlog (roty (pi )), skew ([0 , pi , 0 ]))
974
975
nt .assert_array_almost_equal (trlog (rotz (pi )), skew ([0 , 0 , pi ]))
975
976
977
+ nt .assert_array_almost_equal (trlog (rotx (pi ), twist = True ), np .r_ [pi , 0 , 0 ])
978
+ nt .assert_array_almost_equal (trlog (roty (pi ), twist = True ), np .r_ [0 , pi , 0 ])
979
+ nt .assert_array_almost_equal (trlog (rotz (pi ), twist = True ), np .r_ [0 , 0 , pi ])
980
+
976
981
# general case
977
982
nt .assert_array_almost_equal (trlog (rotx (0.2 )), skew ([0.2 , 0 , 0 ]))
978
983
nt .assert_array_almost_equal (trlog (roty (0.3 )), skew ([0 , 0.3 , 0 ]))
979
984
nt .assert_array_almost_equal (trlog (rotz (0.4 )), skew ([0 , 0 , 0.4 ]))
980
985
986
+ nt .assert_array_almost_equal (trlog (rotx (0.2 ), twist = True ), np .r_ [0.2 , 0 , 0 ])
987
+ nt .assert_array_almost_equal (trlog (roty (0.3 ), twist = True ), np .r_ [0 , 0.3 , 0 ])
988
+ nt .assert_array_almost_equal (trlog (rotz (0.4 ), twist = True ), np .r_ [0 , 0 , 0.4 ])
989
+
981
990
R = rotx (0.2 ) @ roty (0.3 ) @ rotz (0.4 )
982
991
nt .assert_array_almost_equal (trlog (R ), logm (R ))
992
+ nt .assert_array_almost_equal (trlog (R , twist = True ), vex (logm (R )))
983
993
984
- # %% SE(3) tests
994
+ # SE(3) tests
985
995
986
996
# pure translation
987
997
nt .assert_array_almost_equal (trlog (transl ([1 , 2 , 3 ])), np .array ([[0 , 0 , 0 , 1 ], [0 , 0 , 0 , 2 ], [0 , 0 , 0 , 3 ], [0 , 0 , 0 , 0 ]]))
998
+ nt .assert_array_almost_equal (trlog (transl ([1 , 2 , 3 ]), twist = True ), np .r_ [1 ,2 ,3 ,0 ,0 ,0 ])
988
999
989
1000
# pure rotation
990
1001
# rotation by pi case
991
1002
nt .assert_array_almost_equal (trlog (trotx (pi )), skewa ([0 , 0 , 0 , pi , 0 , 0 ]))
992
1003
nt .assert_array_almost_equal (trlog (troty (pi )), skewa ([0 , 0 , 0 , 0 , pi , 0 ]))
993
1004
nt .assert_array_almost_equal (trlog (trotz (pi )), skewa ([0 , 0 , 0 , 0 , 0 , pi ]))
994
1005
1006
+ nt .assert_array_almost_equal (trlog (trotx (pi ), twist = True ), np .r_ [0 , 0 , 0 , pi , 0 , 0 ])
1007
+ nt .assert_array_almost_equal (trlog (troty (pi ), twist = True ), np .r_ [0 , 0 , 0 , 0 , pi , 0 ])
1008
+ nt .assert_array_almost_equal (trlog (trotz (pi ), twist = True ), np .r_ [0 , 0 , 0 , 0 , 0 , pi ])
1009
+
995
1010
# general case
996
1011
nt .assert_array_almost_equal (trlog (trotx (0.2 )), skewa ([0 , 0 , 0 , 0.2 , 0 , 0 ]))
997
1012
nt .assert_array_almost_equal (trlog (troty (0.3 )), skewa ([0 , 0 , 0 , 0 , 0.3 , 0 ]))
998
1013
nt .assert_array_almost_equal (trlog (trotz (0.4 )), skewa ([0 , 0 , 0 , 0 , 0 , 0.4 ]))
999
1014
1015
+ nt .assert_array_almost_equal (trlog (trotx (0.2 ), twist = True ), np .r_ [0 , 0 , 0 , 0.2 , 0 , 0 ])
1016
+ nt .assert_array_almost_equal (trlog (troty (0.3 ), twist = True ), np .r_ [0 , 0 , 0 , 0 , 0.3 , 0 ])
1017
+ nt .assert_array_almost_equal (trlog (trotz (0.4 ), twist = True ), np .r_ [0 , 0 , 0 , 0 , 0 , 0.4 ])
1018
+
1000
1019
# mixture
1001
1020
T = transl ([1 , 2 , 3 ]) @ trotx (0.3 )
1002
1021
nt .assert_array_almost_equal (trlog (T ), logm (T ))
1022
+ nt .assert_array_almost_equal (trlog (T , twist = True ), vexa (logm (T )))
1003
1023
1004
1024
T = transl ([1 , 2 , 3 ]) @ troty (0.3 )
1005
1025
nt .assert_array_almost_equal (trlog (T ), logm (T ))
1026
+ nt .assert_array_almost_equal (trlog (T , twist = True ), vexa (logm (T )))
1027
+
1006
1028
1007
1029
# def test_trlog2(self):
1008
1030
0 commit comments