Fixed corner cases for ProjectToSO3(), and added a reference in README.
This commit is contained in:
parent
c849e4bfca
commit
36f0f1b471
|
|
@ -23,6 +23,7 @@ Some unofficial versions in other languages are being developed:
|
||||||
|
|
||||||
Some libraries built on ours:
|
Some libraries built on ours:
|
||||||
* [KinematicsFromDescriptionTool](https://github.com/Interbotix/kinematics_from_description), which calculates the kinematics input parameters from a robot's URDF or robot_description parameter using ROS and Python3.
|
* [KinematicsFromDescriptionTool](https://github.com/Interbotix/kinematics_from_description), which calculates the kinematics input parameters from a robot's URDF or robot_description parameter using ROS and Python3.
|
||||||
|
* [mr_urdf_loader](https://github.com/tjdalsckd/mr_urdf_loader), which generates `M`, `Slist`, `Blist`, `Mlist` and `Glist` parameters for kinematics and dynamics. It also provides UR5 simulation using `PyBullet`.
|
||||||
* [tf_rbdl](https://github.com/junhyeokahn/tf_rbdl#tf_rbdl), which refactors the Python version using the package `tensorflow`.
|
* [tf_rbdl](https://github.com/junhyeokahn/tf_rbdl#tf_rbdl), which refactors the Python version using the package `tensorflow`.
|
||||||
|
|
||||||
Any contribution is welcomed but the maintenance team for this library here doesn't vouch for the reliability of those projects.
|
Any contribution is welcomed but the maintenance team for this library here doesn't vouch for the reliability of those projects.
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,6 @@ function R = ProjectToSO3(mat)
|
||||||
R = U * V';
|
R = U * V';
|
||||||
if det(R) < 0
|
if det(R) < 0
|
||||||
% In this case the result may be far from mat.
|
% In this case the result may be far from mat.
|
||||||
R = [R(:, 1: 2); -R(:, 3)];
|
R = [R(:, 1: 2), -R(:, 3)];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -426,7 +426,7 @@ def ProjectToSO3(mat):
|
||||||
R = np.dot(U, Vh)
|
R = np.dot(U, Vh)
|
||||||
if np.linalg.det(R) < 0:
|
if np.linalg.det(R) < 0:
|
||||||
# In this case the result may be far from mat.
|
# In this case the result may be far from mat.
|
||||||
R[:, s[2, 2]] = -R[:, s[2, 2]]
|
R[:, 2] = -R[:, 2]
|
||||||
return R
|
return R
|
||||||
|
|
||||||
def ProjectToSE3(mat):
|
def ProjectToSE3(mat):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue