From b5525b0f4ed5217075a2056d5c2741267d664116 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Fri, 7 Dec 2018 23:12:35 -0500 Subject: [PATCH 1/9] upadte Matrix6Log somehow, in certain cases, I was unable to generate a trajectory without getting an error that the operator / can't work between list (omgmat) and float... so changing that fixed it for me. --- packages/Python/modern_robotics/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Python/modern_robotics/core.py b/packages/Python/modern_robotics/core.py index 925751c..a123d49 100644 --- a/packages/Python/modern_robotics/core.py +++ b/packages/Python/modern_robotics/core.py @@ -401,7 +401,7 @@ def MatrixLog6(T): elif acosinput < -1: acosinput = -1 theta = np.arccos(acosinput) - omgmat = MatrixLog3(R) + omgmat = np.array(MatrixLog3(R), dtype=np.float64) return np.r_[np.c_[omgmat, np.dot(np.eye(3) - omgmat / 2.0 \ + (1.0 / theta - 1.0 / np.tan(theta / 2.0) / 2) \ From 2e6e4ebb227b03776db189f1a12591b6c1d5466b Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Wed, 19 Dec 2018 13:01:30 -0500 Subject: [PATCH 2/9] Update core.py --- packages/Python/modern_robotics/core.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/Python/modern_robotics/core.py b/packages/Python/modern_robotics/core.py index a123d49..8d505ff 100644 --- a/packages/Python/modern_robotics/core.py +++ b/packages/Python/modern_robotics/core.py @@ -178,7 +178,10 @@ def MatrixLog3(R): elif acosinput < -1: acosinput = -1 theta = np.arccos(acosinput) - return theta / 2.0 / np.sin(theta) * (R - np.array(R).T) + if theta == 0: + return (R - np.array(R).T)/2 + else: + return theta / 2.0 / np.sin(theta) * (R - np.array(R).T) def RpToTrans(R, p): """Converts a rotation matrix and a position vector into homogeneous From fcaac5c5c78b4c3ada8ee6060786064a2f170b2d Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Fri, 21 Dec 2018 15:16:49 -0500 Subject: [PATCH 3/9] Update core.py I think this should about be right. --- packages/Python/modern_robotics/core.py | 42 ++++++++++--------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/packages/Python/modern_robotics/core.py b/packages/Python/modern_robotics/core.py index 8d505ff..88645f8 100644 --- a/packages/Python/modern_robotics/core.py +++ b/packages/Python/modern_robotics/core.py @@ -173,15 +173,12 @@ def MatrixLog3(R): return VecToso3(np.pi * omg) else: acosinput = (np.trace(R) - 1) / 2.0 - if acosinput > 1: - acosinput = 1 + if acosinput >= 1: + acosinput = 0.99999 elif acosinput < -1: acosinput = -1 theta = np.arccos(acosinput) - if theta == 0: - return (R - np.array(R).T)/2 - else: - return theta / 2.0 / np.sin(theta) * (R - np.array(R).T) + return theta / 2.0 / np.sin(theta) * (R - np.array(R).T) def RpToTrans(R, p): """Converts a rotation matrix and a position vector into homogeneous @@ -393,25 +390,20 @@ def MatrixLog6(T): [0, 0, 0, 0]]) """ R, p = TransToRp(T) - if NearZero(np.linalg.norm(R - np.eye(3))): - return np.r_[np.c_[np.zeros((3, 3)), - [T[0][3], T[1][3], T[2][3]]], - [[0, 0, 0, 0]]] - else: - acosinput = (np.trace(R) - 1) / 2.0 - if acosinput > 1: - acosinput = 1 - elif acosinput < -1: - acosinput = -1 - theta = np.arccos(acosinput) - omgmat = np.array(MatrixLog3(R), dtype=np.float64) - return np.r_[np.c_[omgmat, - np.dot(np.eye(3) - omgmat / 2.0 \ - + (1.0 / theta - 1.0 / np.tan(theta / 2.0) / 2) \ - * np.dot(omgmat,omgmat) / theta,[T[0][3], - T[1][3], - T[2][3]])], - [[0, 0, 0, 0]]] + acosinput = (np.trace(R) - 1) / 2.0 + if acosinput >= 1: + acosinput = 0.99999 + elif acosinput < -1: + acosinput = -1 + theta = np.arccos(acosinput) + omgmat = np.array(MatrixLog3(R), dtype=np.float64) + return np.r_[np.c_[omgmat, + np.dot(np.eye(3) - omgmat / 2.0 \ + + (1.0 / theta - 1.0 / np.tan(theta / 2.0) / 2) \ + * np.dot(omgmat,omgmat) / theta,[T[0][3], + T[1][3], + T[2][3]])], + [[0, 0, 0, 0]]] def ProjectToSO3(mat): From 6de81fbb32463296595fbcdac47cf5b2bfd5eafd Mon Sep 17 00:00:00 2001 From: HuanWeng Date: Mon, 24 Dec 2018 00:21:42 -0600 Subject: [PATCH 4/9] Modify the bug fix for MatrixLog3 and MatrixLog6 for Python --- packages/Python/modern_robotics/core.py | 38 +++++++++++-------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/packages/Python/modern_robotics/core.py b/packages/Python/modern_robotics/core.py index 4528b0f..0d614b9 100644 --- a/packages/Python/modern_robotics/core.py +++ b/packages/Python/modern_robotics/core.py @@ -158,9 +158,10 @@ def MatrixLog3(R): [ 1.20919958, 0, -1.20919958], [-1.20919958, 1.20919958, 0]]) """ - if NearZero(np.linalg.norm(R - np.eye(3))): + acosinput = (np.trace(R) - 1) / 2.0 + if acosinput >= 1: return np.zeros((3, 3)) - elif NearZero(np.trace(R) + 1): + elif acosinput <= -1: if not NearZero(1 + R[2][2]): omg = (1.0 / np.sqrt(2 * (1 + R[2][2]))) \ * np.array([R[0][2], R[1][2], 1 + R[2][2]]) @@ -172,11 +173,6 @@ def MatrixLog3(R): * np.array([1 + R[0][0], R[1][0], R[2][0]]) return VecToso3(np.pi * omg) else: - acosinput = (np.trace(R) - 1) / 2.0 - if acosinput >= 1: - acosinput = 0.99999 - elif acosinput < -1: - acosinput = -1 theta = np.arccos(acosinput) return theta / 2.0 / np.sin(theta) * (R - np.array(R).T) @@ -392,20 +388,20 @@ def MatrixLog6(T): [0, 0, 0, 0]]) """ R, p = TransToRp(T) - acosinput = (np.trace(R) - 1) / 2.0 - if acosinput >= 1: - acosinput = 0.99999 - elif acosinput < -1: - acosinput = -1 - theta = np.arccos(acosinput) - omgmat = np.array(MatrixLog3(R), dtype=np.float64) - return np.r_[np.c_[omgmat, - np.dot(np.eye(3) - omgmat / 2.0 \ - + (1.0 / theta - 1.0 / np.tan(theta / 2.0) / 2) \ - * np.dot(omgmat,omgmat) / theta,[T[0][3], - T[1][3], - T[2][3]])], - [[0, 0, 0, 0]]] + omgmat = MatrixLog3(R) + if np.array_equal(omgmat, np.zeros((3, 3))): + return np.r_[np.c_[np.zeros((3, 3)), + [T[0][3], T[1][3], T[2][3]]], + [[0, 0, 0, 0]]] + else: + theta = np.arccos((np.trace(R) - 1) / 2.0) + return np.r_[np.c_[omgmat, + np.dot(np.eye(3) - omgmat / 2.0 \ + + (1.0 / theta - 1.0 / np.tan(theta / 2.0) / 2) \ + * np.dot(omgmat,omgmat) / theta,[T[0][3], + T[1][3], + T[2][3]])], + [[0, 0, 0, 0]]] def ProjectToSO3(mat): From 8a8ebe1e9c25188ced76cdb107b6f217659d9335 Mon Sep 17 00:00:00 2001 From: HuanWeng Date: Mon, 24 Dec 2018 00:25:45 -0600 Subject: [PATCH 5/9] Delete an empty line in Python --- packages/Python/modern_robotics/core.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/Python/modern_robotics/core.py b/packages/Python/modern_robotics/core.py index 0d614b9..7ed7a9d 100644 --- a/packages/Python/modern_robotics/core.py +++ b/packages/Python/modern_robotics/core.py @@ -403,7 +403,6 @@ def MatrixLog6(T): T[2][3]])], [[0, 0, 0, 0]]] - def ProjectToSO3(mat): """Returns a projection of mat into SO(3) From 21586238aafa0f3468115ffe6a6d6fd159a29763 Mon Sep 17 00:00:00 2001 From: HuanWeng Date: Mon, 24 Dec 2018 02:05:24 -0600 Subject: [PATCH 6/9] Debug MatrixLog3 and MatrixLog6 for MATLAB and Mathematica --- packages/Mathematica/ModernRobotics.m | 23 ++++++++++------------- packages/Matlab/mr/MatrixLog3.m | 24 +++++++++++------------- packages/Matlab/mr/MatrixLog6.m | 20 +++++++------------- 3 files changed, 28 insertions(+), 39 deletions(-) diff --git a/packages/Mathematica/ModernRobotics.m b/packages/Mathematica/ModernRobotics.m index c85b1e6..01ed7f8 100644 --- a/packages/Mathematica/ModernRobotics.m +++ b/packages/Mathematica/ModernRobotics.m @@ -53,7 +53,7 @@ Returns the inverse (transpose). invR = RotInv[{{0,0,1},{1,0,0},{0,1,0}}] Output: {{0,1,0},{0,0,1},{1,0,0}}" - + VecToso3::usage= "VecToso3[omg]: @@ -300,7 +300,7 @@ Returns the corresponding se(3) representation of exponential coordinates. Example: Input: - se3mat = MatrixLog6[{{1,0,0,0},{0,0,-1,0},{0,1,0,3},{0,0,0,1}}] + se3mat = MatrixLog6[{{1,0,0,0},{0,0,-1,0},{0,1,0,3},{0,0,0,1}}]//N Output: {{0,0,0,0},{0,0,-1.5708,2.35619},{0,1.5708,0,2.35619},{0,0,0,0}}" @@ -1289,10 +1289,11 @@ Returns the corresponding space Jacobian (6xn real numbers). MatrixLog3[R_]:=Module[ {acosinput,theta,omgmat}, + acosinput=(Tr[R]-1)/2; Which[ - NearZero[Norm[R-IdentityMatrix[3]]], + acosinput>=1, Return[ConstantArray[0,{3,3}]], - NearZero[Tr[R]+1], + acosinput<=-1, Which[ Not[NearZero[R[[3,3]]+1]], Return[VecToso3[ @@ -1311,11 +1312,9 @@ Returns the corresponding space Jacobian (6xn real numbers). ]] ], True, - acosinput=(Tr[R]-1)/2; - Which[acosinput>1,acosinput=1,acosinput<-1,acosinput=-1]; theta=ArcCos[acosinput]; omgmat=(R-R\[Transpose])/(2*Sin[theta]); - Return[theta*omgmat] + Return[theta*omgmat] ] ] @@ -1408,20 +1407,18 @@ Returns the corresponding space Jacobian (6xn real numbers). MatrixLog6[T_]:=Module[ {R,p,acosinput,theta,omgmat}, {R,p}=TransToRp[T]; + omgmat=MatrixLog3[R]; If[ - NearZero[Norm[R-IdentityMatrix[3]]], + omgmat==ConstantArray[0,{3,3}], ArrayFlatten[ {{ConstantArray[0,{3,3}],{T[[1;;3,4]]}\[Transpose]},{0,0}} ], - acosinput=(Tr[R]-1)/2; - Which[acosinput>1,acosinput=1,acosinput<-1,acosinput=-1]; - theta=ArcCos[acosinput]; - omgmat=MatrixLog3[R]; + theta=ArcCos[(Tr[R]-1)/2]; Return[ArrayFlatten[{ {omgmat,(IdentityMatrix[3]-omgmat/2+ (1/theta-Cot[theta/2]/2)*omgmat.omgmat/theta).p}, {0,0} - }]] + }]] ] ] diff --git a/packages/Matlab/mr/MatrixLog3.m b/packages/Matlab/mr/MatrixLog3.m index fa50a47..bdb41d9 100644 --- a/packages/Matlab/mr/MatrixLog3.m +++ b/packages/Matlab/mr/MatrixLog3.m @@ -15,25 +15,23 @@ % 1.2092 0 -1.2092 % -1.2092 1.2092 0 -if NearZero(norm(R - eye(3))) - so3mat = zeros(3); -elseif NearZero(trace(R) + 1) +acosinput = (trace(R) - 1) / 2; +if acosinput >= 1 + so3mat = zeros(3); +elseif acosinput <= -1 if ~NearZero(1 + R(3, 3)) - omg = (1 / sqrt(2 * (1 + R(3, 3)))) * [R(1, 3); R(2, 3); 1 + R(3, 3)]; + omg = (1 / sqrt(2 * (1 + R(3, 3)))) ... + * [R(1, 3); R(2, 3); 1 + R(3, 3)]; elseif ~NearZero(1 + R(2, 2)) - omg = (1 / sqrt(2 * (1 + R(2, 2)))) * [R(1, 2); 1 + R(2, 2); R(3, 2)]; + omg = (1 / sqrt(2 * (1 + R(2, 2)))) ... + * [R(1, 2); 1 + R(2, 2); R(3, 2)]; else - omg = (1 / sqrt(2 * (1 + R(1, 1)))) * [1 + R(1, 1); R(2, 1); R(3, 1)]; + omg = (1 / sqrt(2 * (1 + R(1, 1)))) ... + * [1 + R(1, 1); R(2, 1); R(3, 1)]; end so3mat = VecToso3(pi * omg); else - acosinput = (trace(R) - 1) / 2; - if acosinput > 1 - acosinput = 1; - elseif acosinput < -1 - acosinput = -1; - end - theta = acos(acosinput); + theta = acos(acosinput); so3mat = theta * (1 / (2 * sin(theta))) * (R - R'); end end \ No newline at end of file diff --git a/packages/Matlab/mr/MatrixLog6.m b/packages/Matlab/mr/MatrixLog6.m index 1ca2e48..f717eab 100644 --- a/packages/Matlab/mr/MatrixLog6.m +++ b/packages/Matlab/mr/MatrixLog6.m @@ -17,20 +17,14 @@ % 0 0 0 0 [R, p] = TransToRp(T); -if NearZero(norm(R - eye(3))) +omgmat = MatrixLog3(R); +if isequal(omgmat, zeros(3)) expmat = [zeros(3), T(1: 3, 4); 0, 0, 0, 0]; else - acosinput = (trace(R) - 1) / 2; - if acosinput > 1 - acosinput = 1; - elseif acosinput < -1 - acosinput = -1; - end - theta = acos(acosinput); - omgmat = MatrixLog3(R); - expmat = [ omgmat, (eye(3) - omgmat / 2 ... - + (1 / theta - cot(theta / 2) / 2) ... - * omgmat * omgmat / theta) * p; - 0, 0, 0, 0]; + theta = acos((trace(R) - 1) / 2); + expmat = [omgmat, (eye(3) - omgmat / 2 ... + + (1 / theta - cot(theta / 2) / 2) ... + * omgmat * omgmat / theta) * p; + 0, 0, 0, 0]; end end \ No newline at end of file From 9eedd6eac933c8e91c49cdc1337c223cf8e0cf16 Mon Sep 17 00:00:00 2001 From: HuanWeng Date: Mon, 24 Dec 2018 02:20:30 -0600 Subject: [PATCH 7/9] Rename the folder for MATLAB --- packages/{Matlab => MATLAB}/README.md | 0 packages/{Matlab => MATLAB}/mr/Adjoint.m | 0 packages/{Matlab => MATLAB}/mr/AxisAng3.m | 0 packages/{Matlab => MATLAB}/mr/AxisAng6.m | 0 packages/{Matlab => MATLAB}/mr/CartesianTrajectory.m | 0 packages/{Matlab => MATLAB}/mr/ComputedTorque.m | 0 packages/{Matlab => MATLAB}/mr/CubicTimeScaling.m | 0 packages/{Matlab => MATLAB}/mr/DistanceToSE3.m | 0 packages/{Matlab => MATLAB}/mr/DistanceToSO3.m | 0 packages/{Matlab => MATLAB}/mr/EndEffectorForces.m | 0 packages/{Matlab => MATLAB}/mr/EulerStep.m | 0 packages/{Matlab => MATLAB}/mr/FKinBody.m | 0 packages/{Matlab => MATLAB}/mr/FKinSpace.m | 0 packages/{Matlab => MATLAB}/mr/ForwardDynamics.m | 0 packages/{Matlab => MATLAB}/mr/ForwardDynamicsTrajectory.m | 0 packages/{Matlab => MATLAB}/mr/GravityForces.m | 0 packages/{Matlab => MATLAB}/mr/IKinBody.m | 0 packages/{Matlab => MATLAB}/mr/IKinSpace.m | 0 packages/{Matlab => MATLAB}/mr/InverseDynamics.m | 0 packages/{Matlab => MATLAB}/mr/InverseDynamicsTrajectory.m | 0 packages/{Matlab => MATLAB}/mr/JacobianBody.m | 0 packages/{Matlab => MATLAB}/mr/JacobianSpace.m | 0 packages/{Matlab => MATLAB}/mr/JointTrajectory.m | 0 packages/{Matlab => MATLAB}/mr/MassMatrix.m | 0 packages/{Matlab => MATLAB}/mr/MatrixExp3.m | 0 packages/{Matlab => MATLAB}/mr/MatrixExp6.m | 0 packages/{Matlab => MATLAB}/mr/MatrixLog3.m | 0 packages/{Matlab => MATLAB}/mr/MatrixLog6.m | 0 packages/{Matlab => MATLAB}/mr/NearZero.m | 0 packages/{Matlab => MATLAB}/mr/Normalize.m | 0 packages/{Matlab => MATLAB}/mr/ProjectToSE3.m | 0 packages/{Matlab => MATLAB}/mr/ProjectToSO3.m | 0 packages/{Matlab => MATLAB}/mr/QuinticTimeScaling.m | 0 packages/{Matlab => MATLAB}/mr/RotInv.m | 0 packages/{Matlab => MATLAB}/mr/RpToTrans.m | 0 packages/{Matlab => MATLAB}/mr/ScrewToAxis.m | 0 packages/{Matlab => MATLAB}/mr/ScrewTrajectory.m | 0 packages/{Matlab => MATLAB}/mr/SimulateControl.m | 0 packages/{Matlab => MATLAB}/mr/TestIfSE3.m | 0 packages/{Matlab => MATLAB}/mr/TestIfSO3.m | 0 packages/{Matlab => MATLAB}/mr/TransInv.m | 0 packages/{Matlab => MATLAB}/mr/TransToRp.m | 0 packages/{Matlab => MATLAB}/mr/VecTose3.m | 0 packages/{Matlab => MATLAB}/mr/VecToso3.m | 0 packages/{Matlab => MATLAB}/mr/VelQuadraticForces.m | 0 packages/{Matlab => MATLAB}/mr/ad.m | 0 packages/{Matlab => MATLAB}/mr/se3ToVec.m | 0 packages/{Matlab => MATLAB}/mr/so3ToVec.m | 0 48 files changed, 0 insertions(+), 0 deletions(-) rename packages/{Matlab => MATLAB}/README.md (100%) rename packages/{Matlab => MATLAB}/mr/Adjoint.m (100%) rename packages/{Matlab => MATLAB}/mr/AxisAng3.m (100%) rename packages/{Matlab => MATLAB}/mr/AxisAng6.m (100%) rename packages/{Matlab => MATLAB}/mr/CartesianTrajectory.m (100%) rename packages/{Matlab => MATLAB}/mr/ComputedTorque.m (100%) rename packages/{Matlab => MATLAB}/mr/CubicTimeScaling.m (100%) rename packages/{Matlab => MATLAB}/mr/DistanceToSE3.m (100%) rename packages/{Matlab => MATLAB}/mr/DistanceToSO3.m (100%) rename packages/{Matlab => MATLAB}/mr/EndEffectorForces.m (100%) rename packages/{Matlab => MATLAB}/mr/EulerStep.m (100%) rename packages/{Matlab => MATLAB}/mr/FKinBody.m (100%) rename packages/{Matlab => MATLAB}/mr/FKinSpace.m (100%) rename packages/{Matlab => MATLAB}/mr/ForwardDynamics.m (100%) rename packages/{Matlab => MATLAB}/mr/ForwardDynamicsTrajectory.m (100%) rename packages/{Matlab => MATLAB}/mr/GravityForces.m (100%) rename packages/{Matlab => MATLAB}/mr/IKinBody.m (100%) rename packages/{Matlab => MATLAB}/mr/IKinSpace.m (100%) rename packages/{Matlab => MATLAB}/mr/InverseDynamics.m (100%) rename packages/{Matlab => MATLAB}/mr/InverseDynamicsTrajectory.m (100%) rename packages/{Matlab => MATLAB}/mr/JacobianBody.m (100%) rename packages/{Matlab => MATLAB}/mr/JacobianSpace.m (100%) rename packages/{Matlab => MATLAB}/mr/JointTrajectory.m (100%) rename packages/{Matlab => MATLAB}/mr/MassMatrix.m (100%) rename packages/{Matlab => MATLAB}/mr/MatrixExp3.m (100%) rename packages/{Matlab => MATLAB}/mr/MatrixExp6.m (100%) rename packages/{Matlab => MATLAB}/mr/MatrixLog3.m (100%) rename packages/{Matlab => MATLAB}/mr/MatrixLog6.m (100%) rename packages/{Matlab => MATLAB}/mr/NearZero.m (100%) rename packages/{Matlab => MATLAB}/mr/Normalize.m (100%) rename packages/{Matlab => MATLAB}/mr/ProjectToSE3.m (100%) rename packages/{Matlab => MATLAB}/mr/ProjectToSO3.m (100%) rename packages/{Matlab => MATLAB}/mr/QuinticTimeScaling.m (100%) rename packages/{Matlab => MATLAB}/mr/RotInv.m (100%) rename packages/{Matlab => MATLAB}/mr/RpToTrans.m (100%) rename packages/{Matlab => MATLAB}/mr/ScrewToAxis.m (100%) rename packages/{Matlab => MATLAB}/mr/ScrewTrajectory.m (100%) rename packages/{Matlab => MATLAB}/mr/SimulateControl.m (100%) rename packages/{Matlab => MATLAB}/mr/TestIfSE3.m (100%) rename packages/{Matlab => MATLAB}/mr/TestIfSO3.m (100%) rename packages/{Matlab => MATLAB}/mr/TransInv.m (100%) rename packages/{Matlab => MATLAB}/mr/TransToRp.m (100%) rename packages/{Matlab => MATLAB}/mr/VecTose3.m (100%) rename packages/{Matlab => MATLAB}/mr/VecToso3.m (100%) rename packages/{Matlab => MATLAB}/mr/VelQuadraticForces.m (100%) rename packages/{Matlab => MATLAB}/mr/ad.m (100%) rename packages/{Matlab => MATLAB}/mr/se3ToVec.m (100%) rename packages/{Matlab => MATLAB}/mr/so3ToVec.m (100%) diff --git a/packages/Matlab/README.md b/packages/MATLAB/README.md similarity index 100% rename from packages/Matlab/README.md rename to packages/MATLAB/README.md diff --git a/packages/Matlab/mr/Adjoint.m b/packages/MATLAB/mr/Adjoint.m similarity index 100% rename from packages/Matlab/mr/Adjoint.m rename to packages/MATLAB/mr/Adjoint.m diff --git a/packages/Matlab/mr/AxisAng3.m b/packages/MATLAB/mr/AxisAng3.m similarity index 100% rename from packages/Matlab/mr/AxisAng3.m rename to packages/MATLAB/mr/AxisAng3.m diff --git a/packages/Matlab/mr/AxisAng6.m b/packages/MATLAB/mr/AxisAng6.m similarity index 100% rename from packages/Matlab/mr/AxisAng6.m rename to packages/MATLAB/mr/AxisAng6.m diff --git a/packages/Matlab/mr/CartesianTrajectory.m b/packages/MATLAB/mr/CartesianTrajectory.m similarity index 100% rename from packages/Matlab/mr/CartesianTrajectory.m rename to packages/MATLAB/mr/CartesianTrajectory.m diff --git a/packages/Matlab/mr/ComputedTorque.m b/packages/MATLAB/mr/ComputedTorque.m similarity index 100% rename from packages/Matlab/mr/ComputedTorque.m rename to packages/MATLAB/mr/ComputedTorque.m diff --git a/packages/Matlab/mr/CubicTimeScaling.m b/packages/MATLAB/mr/CubicTimeScaling.m similarity index 100% rename from packages/Matlab/mr/CubicTimeScaling.m rename to packages/MATLAB/mr/CubicTimeScaling.m diff --git a/packages/Matlab/mr/DistanceToSE3.m b/packages/MATLAB/mr/DistanceToSE3.m similarity index 100% rename from packages/Matlab/mr/DistanceToSE3.m rename to packages/MATLAB/mr/DistanceToSE3.m diff --git a/packages/Matlab/mr/DistanceToSO3.m b/packages/MATLAB/mr/DistanceToSO3.m similarity index 100% rename from packages/Matlab/mr/DistanceToSO3.m rename to packages/MATLAB/mr/DistanceToSO3.m diff --git a/packages/Matlab/mr/EndEffectorForces.m b/packages/MATLAB/mr/EndEffectorForces.m similarity index 100% rename from packages/Matlab/mr/EndEffectorForces.m rename to packages/MATLAB/mr/EndEffectorForces.m diff --git a/packages/Matlab/mr/EulerStep.m b/packages/MATLAB/mr/EulerStep.m similarity index 100% rename from packages/Matlab/mr/EulerStep.m rename to packages/MATLAB/mr/EulerStep.m diff --git a/packages/Matlab/mr/FKinBody.m b/packages/MATLAB/mr/FKinBody.m similarity index 100% rename from packages/Matlab/mr/FKinBody.m rename to packages/MATLAB/mr/FKinBody.m diff --git a/packages/Matlab/mr/FKinSpace.m b/packages/MATLAB/mr/FKinSpace.m similarity index 100% rename from packages/Matlab/mr/FKinSpace.m rename to packages/MATLAB/mr/FKinSpace.m diff --git a/packages/Matlab/mr/ForwardDynamics.m b/packages/MATLAB/mr/ForwardDynamics.m similarity index 100% rename from packages/Matlab/mr/ForwardDynamics.m rename to packages/MATLAB/mr/ForwardDynamics.m diff --git a/packages/Matlab/mr/ForwardDynamicsTrajectory.m b/packages/MATLAB/mr/ForwardDynamicsTrajectory.m similarity index 100% rename from packages/Matlab/mr/ForwardDynamicsTrajectory.m rename to packages/MATLAB/mr/ForwardDynamicsTrajectory.m diff --git a/packages/Matlab/mr/GravityForces.m b/packages/MATLAB/mr/GravityForces.m similarity index 100% rename from packages/Matlab/mr/GravityForces.m rename to packages/MATLAB/mr/GravityForces.m diff --git a/packages/Matlab/mr/IKinBody.m b/packages/MATLAB/mr/IKinBody.m similarity index 100% rename from packages/Matlab/mr/IKinBody.m rename to packages/MATLAB/mr/IKinBody.m diff --git a/packages/Matlab/mr/IKinSpace.m b/packages/MATLAB/mr/IKinSpace.m similarity index 100% rename from packages/Matlab/mr/IKinSpace.m rename to packages/MATLAB/mr/IKinSpace.m diff --git a/packages/Matlab/mr/InverseDynamics.m b/packages/MATLAB/mr/InverseDynamics.m similarity index 100% rename from packages/Matlab/mr/InverseDynamics.m rename to packages/MATLAB/mr/InverseDynamics.m diff --git a/packages/Matlab/mr/InverseDynamicsTrajectory.m b/packages/MATLAB/mr/InverseDynamicsTrajectory.m similarity index 100% rename from packages/Matlab/mr/InverseDynamicsTrajectory.m rename to packages/MATLAB/mr/InverseDynamicsTrajectory.m diff --git a/packages/Matlab/mr/JacobianBody.m b/packages/MATLAB/mr/JacobianBody.m similarity index 100% rename from packages/Matlab/mr/JacobianBody.m rename to packages/MATLAB/mr/JacobianBody.m diff --git a/packages/Matlab/mr/JacobianSpace.m b/packages/MATLAB/mr/JacobianSpace.m similarity index 100% rename from packages/Matlab/mr/JacobianSpace.m rename to packages/MATLAB/mr/JacobianSpace.m diff --git a/packages/Matlab/mr/JointTrajectory.m b/packages/MATLAB/mr/JointTrajectory.m similarity index 100% rename from packages/Matlab/mr/JointTrajectory.m rename to packages/MATLAB/mr/JointTrajectory.m diff --git a/packages/Matlab/mr/MassMatrix.m b/packages/MATLAB/mr/MassMatrix.m similarity index 100% rename from packages/Matlab/mr/MassMatrix.m rename to packages/MATLAB/mr/MassMatrix.m diff --git a/packages/Matlab/mr/MatrixExp3.m b/packages/MATLAB/mr/MatrixExp3.m similarity index 100% rename from packages/Matlab/mr/MatrixExp3.m rename to packages/MATLAB/mr/MatrixExp3.m diff --git a/packages/Matlab/mr/MatrixExp6.m b/packages/MATLAB/mr/MatrixExp6.m similarity index 100% rename from packages/Matlab/mr/MatrixExp6.m rename to packages/MATLAB/mr/MatrixExp6.m diff --git a/packages/Matlab/mr/MatrixLog3.m b/packages/MATLAB/mr/MatrixLog3.m similarity index 100% rename from packages/Matlab/mr/MatrixLog3.m rename to packages/MATLAB/mr/MatrixLog3.m diff --git a/packages/Matlab/mr/MatrixLog6.m b/packages/MATLAB/mr/MatrixLog6.m similarity index 100% rename from packages/Matlab/mr/MatrixLog6.m rename to packages/MATLAB/mr/MatrixLog6.m diff --git a/packages/Matlab/mr/NearZero.m b/packages/MATLAB/mr/NearZero.m similarity index 100% rename from packages/Matlab/mr/NearZero.m rename to packages/MATLAB/mr/NearZero.m diff --git a/packages/Matlab/mr/Normalize.m b/packages/MATLAB/mr/Normalize.m similarity index 100% rename from packages/Matlab/mr/Normalize.m rename to packages/MATLAB/mr/Normalize.m diff --git a/packages/Matlab/mr/ProjectToSE3.m b/packages/MATLAB/mr/ProjectToSE3.m similarity index 100% rename from packages/Matlab/mr/ProjectToSE3.m rename to packages/MATLAB/mr/ProjectToSE3.m diff --git a/packages/Matlab/mr/ProjectToSO3.m b/packages/MATLAB/mr/ProjectToSO3.m similarity index 100% rename from packages/Matlab/mr/ProjectToSO3.m rename to packages/MATLAB/mr/ProjectToSO3.m diff --git a/packages/Matlab/mr/QuinticTimeScaling.m b/packages/MATLAB/mr/QuinticTimeScaling.m similarity index 100% rename from packages/Matlab/mr/QuinticTimeScaling.m rename to packages/MATLAB/mr/QuinticTimeScaling.m diff --git a/packages/Matlab/mr/RotInv.m b/packages/MATLAB/mr/RotInv.m similarity index 100% rename from packages/Matlab/mr/RotInv.m rename to packages/MATLAB/mr/RotInv.m diff --git a/packages/Matlab/mr/RpToTrans.m b/packages/MATLAB/mr/RpToTrans.m similarity index 100% rename from packages/Matlab/mr/RpToTrans.m rename to packages/MATLAB/mr/RpToTrans.m diff --git a/packages/Matlab/mr/ScrewToAxis.m b/packages/MATLAB/mr/ScrewToAxis.m similarity index 100% rename from packages/Matlab/mr/ScrewToAxis.m rename to packages/MATLAB/mr/ScrewToAxis.m diff --git a/packages/Matlab/mr/ScrewTrajectory.m b/packages/MATLAB/mr/ScrewTrajectory.m similarity index 100% rename from packages/Matlab/mr/ScrewTrajectory.m rename to packages/MATLAB/mr/ScrewTrajectory.m diff --git a/packages/Matlab/mr/SimulateControl.m b/packages/MATLAB/mr/SimulateControl.m similarity index 100% rename from packages/Matlab/mr/SimulateControl.m rename to packages/MATLAB/mr/SimulateControl.m diff --git a/packages/Matlab/mr/TestIfSE3.m b/packages/MATLAB/mr/TestIfSE3.m similarity index 100% rename from packages/Matlab/mr/TestIfSE3.m rename to packages/MATLAB/mr/TestIfSE3.m diff --git a/packages/Matlab/mr/TestIfSO3.m b/packages/MATLAB/mr/TestIfSO3.m similarity index 100% rename from packages/Matlab/mr/TestIfSO3.m rename to packages/MATLAB/mr/TestIfSO3.m diff --git a/packages/Matlab/mr/TransInv.m b/packages/MATLAB/mr/TransInv.m similarity index 100% rename from packages/Matlab/mr/TransInv.m rename to packages/MATLAB/mr/TransInv.m diff --git a/packages/Matlab/mr/TransToRp.m b/packages/MATLAB/mr/TransToRp.m similarity index 100% rename from packages/Matlab/mr/TransToRp.m rename to packages/MATLAB/mr/TransToRp.m diff --git a/packages/Matlab/mr/VecTose3.m b/packages/MATLAB/mr/VecTose3.m similarity index 100% rename from packages/Matlab/mr/VecTose3.m rename to packages/MATLAB/mr/VecTose3.m diff --git a/packages/Matlab/mr/VecToso3.m b/packages/MATLAB/mr/VecToso3.m similarity index 100% rename from packages/Matlab/mr/VecToso3.m rename to packages/MATLAB/mr/VecToso3.m diff --git a/packages/Matlab/mr/VelQuadraticForces.m b/packages/MATLAB/mr/VelQuadraticForces.m similarity index 100% rename from packages/Matlab/mr/VelQuadraticForces.m rename to packages/MATLAB/mr/VelQuadraticForces.m diff --git a/packages/Matlab/mr/ad.m b/packages/MATLAB/mr/ad.m similarity index 100% rename from packages/Matlab/mr/ad.m rename to packages/MATLAB/mr/ad.m diff --git a/packages/Matlab/mr/se3ToVec.m b/packages/MATLAB/mr/se3ToVec.m similarity index 100% rename from packages/Matlab/mr/se3ToVec.m rename to packages/MATLAB/mr/se3ToVec.m diff --git a/packages/Matlab/mr/so3ToVec.m b/packages/MATLAB/mr/so3ToVec.m similarity index 100% rename from packages/Matlab/mr/so3ToVec.m rename to packages/MATLAB/mr/so3ToVec.m From 7d1ac03b81655873660be41cb92d1e10bb153533 Mon Sep 17 00:00:00 2001 From: HuanWeng Date: Tue, 8 Jan 2019 22:45:44 -0600 Subject: [PATCH 8/9] Change version numbers for MATLAB and Python --- packages/MATLAB/README.md | 2 +- packages/Python/modern_robotics/__version__.py | 2 +- packages/Python/modern_robotics/core.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/MATLAB/README.md b/packages/MATLAB/README.md index 58758b8..1674098 100644 --- a/packages/MATLAB/README.md +++ b/packages/MATLAB/README.md @@ -49,7 +49,7 @@ Author: Huan Weng, Bill Hunt, Mikhail Todes, Jarvis Schultz Contact: huanweng@u.northwestern.edu -Package Version: 1.0.1 +Package Version: 1.1.0 Matlab Version: R2017b diff --git a/packages/Python/modern_robotics/__version__.py b/packages/Python/modern_robotics/__version__.py index 3ff7e14..d930acc 100644 --- a/packages/Python/modern_robotics/__version__.py +++ b/packages/Python/modern_robotics/__version__.py @@ -1,2 +1,2 @@ -__version__ = '1.0.1' +__version__ = '1.1.0' diff --git a/packages/Python/modern_robotics/core.py b/packages/Python/modern_robotics/core.py index 7ed7a9d..18cb64e 100644 --- a/packages/Python/modern_robotics/core.py +++ b/packages/Python/modern_robotics/core.py @@ -6,7 +6,7 @@ *************************************************************************** Author: Huan Weng, Bill Hunt, Jarvis Schultz, Mikhail Todes, Email: huanweng@u.northwestern.edu -Date: July 2018 +Date: January 2018 *************************************************************************** Language: Python Also available in: MATLAB, Mathematica From 8ea5cecc5b7637e5ff1e9728277f2207d3d2570f Mon Sep 17 00:00:00 2001 From: HuanWeng Date: Tue, 8 Jan 2019 22:48:37 -0600 Subject: [PATCH 9/9] Change the version number for Mathematica --- packages/Mathematica/ModernRobotics.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Mathematica/ModernRobotics.m b/packages/Mathematica/ModernRobotics.m index 01ed7f8..9c9615f 100644 --- a/packages/Mathematica/ModernRobotics.m +++ b/packages/Mathematica/ModernRobotics.m @@ -11,7 +11,7 @@ (* :Author: Huan Weng, Jarvis Schultz, Mikhail Todes*) (* :Contact: huanweng@u.northwestern.edu*) (* :Summary: This package is the code library accompanying the book. *) -(* :Package Version: 1.0.1 *) +(* :Package Version: 1.1.0*) (* :Mathematica Version: 11.3 *) (* Tested in Mathematica 11.3 *)