roboticstoolbox-python 1.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- roboticstoolbox/__init__.py +107 -0
- roboticstoolbox/backends/Connector.py +113 -0
- roboticstoolbox/backends/Dynamixel/README.md +9 -0
- roboticstoolbox/backends/Dynamixel/dynamixel.json +581 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_io.py +450 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/LICENSE +201 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/README.md +28 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/ReleaseNote.md +181 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/__init__.py +27 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_bulk_read.py +163 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_bulk_write.py +109 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_sync_read.py +166 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_sync_write.py +99 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/packet_handler.py +33 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/port_handler.py +155 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/protocol1_packet_handler.py +548 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/protocol2_packet_handler.py +1080 -0
- roboticstoolbox/backends/Dynamixel/dynamixel_sdk/robotis_def.py +75 -0
- roboticstoolbox/backends/Dynamixel/dyndata.py +121 -0
- roboticstoolbox/backends/PyPlot/EllipsePlot.py +256 -0
- roboticstoolbox/backends/PyPlot/PyPlot.py +778 -0
- roboticstoolbox/backends/PyPlot/PyPlot2.py +537 -0
- roboticstoolbox/backends/PyPlot/README.md +67 -0
- roboticstoolbox/backends/PyPlot/RobotPlot.py +247 -0
- roboticstoolbox/backends/PyPlot/RobotPlot2.py +123 -0
- roboticstoolbox/backends/PyPlot/__init__.py +4 -0
- roboticstoolbox/backends/ROS/ROS.py +129 -0
- roboticstoolbox/backends/ROS/__init__.py +3 -0
- roboticstoolbox/backends/__init__.py +39 -0
- roboticstoolbox/backends/swift/__init__.py +165 -0
- roboticstoolbox/bin/__init__.py +0 -0
- roboticstoolbox/bin/_bintools.py +61 -0
- roboticstoolbox/bin/rtbtool.py +404 -0
- roboticstoolbox/blocks/Icons/250x250/armplot.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/bicycle.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/camera.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/circlepath.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/coriolis.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/ctraj.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/delta2tr.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/diffsteer.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/fdyn.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/fdynx.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/fkine.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/gravload.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/idyn.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/idynx.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/ikine.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/inertia.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/jacobian.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/jtraj.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/lspb.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/multirotor.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/multirotormixer.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/multirotorplot.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/point2tr.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/tr2delta.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/tr2t.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/unicycle.png +0 -0
- roboticstoolbox/blocks/Icons/250x250/vehicleplot.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/armplot.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/bicycle.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/camera.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/circlepath.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/coriolis.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/delta2tr.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/diffsteer.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/fdyn.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/fdynx.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/fkine.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/gravload.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/idyn.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/idynx.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/ikine.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/inertia.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/jacobian.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/jtraj.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/lspb.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/multirotor.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/multirotormixer.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/multirotorplot.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/point2tr.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/tr2delta.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/tr2t.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/unicycle.png +0 -0
- roboticstoolbox/blocks/Icons/50x50/vehicleplot.png +0 -0
- roboticstoolbox/blocks/Icons/armplot.png +0 -0
- roboticstoolbox/blocks/Icons/bicycle.png +0 -0
- roboticstoolbox/blocks/Icons/camera.png +0 -0
- roboticstoolbox/blocks/Icons/circlepath.png +0 -0
- roboticstoolbox/blocks/Icons/coriolis.png +0 -0
- roboticstoolbox/blocks/Icons/ctraj.png +0 -0
- roboticstoolbox/blocks/Icons/delta2tr.png +0 -0
- roboticstoolbox/blocks/Icons/diffsteer.png +0 -0
- roboticstoolbox/blocks/Icons/fdyn.png +0 -0
- roboticstoolbox/blocks/Icons/fdynx.png +0 -0
- roboticstoolbox/blocks/Icons/fkine.png +0 -0
- roboticstoolbox/blocks/Icons/gravload.png +0 -0
- roboticstoolbox/blocks/Icons/idyn.png +0 -0
- roboticstoolbox/blocks/Icons/idynx.png +0 -0
- roboticstoolbox/blocks/Icons/ikine.png +0 -0
- roboticstoolbox/blocks/Icons/inertia.png +0 -0
- roboticstoolbox/blocks/Icons/jacobian.png +0 -0
- roboticstoolbox/blocks/Icons/jtraj.png +0 -0
- roboticstoolbox/blocks/Icons/lspb.png +0 -0
- roboticstoolbox/blocks/Icons/multirotor.png +0 -0
- roboticstoolbox/blocks/Icons/multirotormixer.png +0 -0
- roboticstoolbox/blocks/Icons/multirotorplot.png +0 -0
- roboticstoolbox/blocks/Icons/point2tr.png +0 -0
- roboticstoolbox/blocks/Icons/tr2delta.png +0 -0
- roboticstoolbox/blocks/Icons/tr2t.png +0 -0
- roboticstoolbox/blocks/Icons/unicycle.png +0 -0
- roboticstoolbox/blocks/Icons/vehicleplot.png +0 -0
- roboticstoolbox/blocks/README.md +43 -0
- roboticstoolbox/blocks/__init__.py +6 -0
- roboticstoolbox/blocks/arm.py +1591 -0
- roboticstoolbox/blocks/mobile.py +522 -0
- roboticstoolbox/blocks/quad_model.py +132 -0
- roboticstoolbox/blocks/spatial.py +245 -0
- roboticstoolbox/blocks/uav.py +949 -0
- roboticstoolbox/demo/__init__.py +0 -0
- roboticstoolbox/demo/eigdemo.py +112 -0
- roboticstoolbox/demo/tripleangledemo.py +239 -0
- roboticstoolbox/demo/twistdemo.py +175 -0
- roboticstoolbox/ets/ET.py +439 -0
- roboticstoolbox/ets/ET2.py +179 -0
- roboticstoolbox/ets/ETS.py +2013 -0
- roboticstoolbox/ets/ETS2.py +449 -0
- roboticstoolbox/ets/_ET.py +668 -0
- roboticstoolbox/ets/_ETS.py +781 -0
- roboticstoolbox/ets/__init__.py +11 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Cholesky +45 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/CholmodSupport +48 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Core +384 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Dense +7 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Eigen +2 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Eigenvalues +60 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Geometry +59 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Householder +29 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/IterativeLinearSolvers +48 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Jacobi +32 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/KLUSupport +41 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/LU +47 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/MetisSupport +35 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/OrderingMethods +70 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/PaStiXSupport +49 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/PardisoSupport +35 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/QR +50 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/QtAlignedMalloc +39 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SPQRSupport +34 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SVD +50 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/Sparse +34 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SparseCholesky +37 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SparseCore +69 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SparseLU +50 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SparseQR +36 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/StdDeque +27 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/StdList +26 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/StdVector +27 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/SuperLUSupport +64 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/UmfPackSupport +40 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Cholesky/LDLT.h +688 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Cholesky/LLT.h +558 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ArithmeticSequence.h +413 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Array.h +417 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ArrayBase.h +226 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ArrayWrapper.h +209 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Assign.h +90 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/AssignEvaluator.h +1010 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Assign_MKL.h +178 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/BandMatrix.h +353 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Block.h +448 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/BooleanRedux.h +162 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CommaInitializer.h +164 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ConditionEstimator.h +175 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CoreEvaluators.h +1741 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CoreIterators.h +132 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseUnaryView.h +132 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DenseBase.h +701 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DenseStorage.h +652 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Diagonal.h +258 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DiagonalMatrix.h +391 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DiagonalProduct.h +28 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Dot.h +318 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/EigenBase.h +160 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Fuzzy.h +155 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/GeneralProduct.h +465 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/GenericPacketMath.h +1040 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/GlobalFunctions.h +194 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/IO.h +258 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/IndexedView.h +237 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Inverse.h +117 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Map.h +171 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MapBase.h +310 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MathFunctions.h +2057 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Matrix.h +565 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MatrixBase.h +547 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/NestByValue.h +85 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/NoAlias.h +109 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/NumTraits.h +335 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/PermutationMatrix.h +605 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/PlainObjectBase.h +1128 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Product.h +191 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ProductEvaluators.h +1179 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Random.h +218 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Redux.h +515 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Ref.h +381 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Replicate.h +142 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Reshaped.h +454 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ReturnByValue.h +119 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Reverse.h +217 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Select.h +164 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SelfAdjointView.h +365 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Solve.h +188 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SolveTriangular.h +235 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SolverBase.h +168 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/StableNorm.h +251 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/StlIterators.h +463 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Stride.h +116 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Swap.h +68 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Transpose.h +464 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Transpositions.h +386 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/TriangularMatrix.h +1001 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/VectorBlock.h +96 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/VectorwiseOp.h +784 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Visitor.h +381 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/Half.h +942 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/Settings.h +49 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/StlFunctors.h +166 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/Parallelizer.h +180 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/BlasUtil.h +583 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Constants.h +563 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/IntegralConstant.h +272 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/MKL_support.h +137 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Macros.h +1464 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Memory.h +1163 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Meta.h +812 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/NonMPL2.h +3 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/StaticAssert.h +221 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/XprHelper.h +856 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/AlignedBox.h +486 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/AngleAxis.h +247 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/EulerAngles.h +114 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Homogeneous.h +501 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Hyperplane.h +282 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/OrthoMethods.h +235 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Quaternion.h +870 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Rotation2D.h +199 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/RotationBase.h +206 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Scaling.h +188 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Transform.h +1563 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Translation.h +202 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Umeyama.h +166 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Householder/BlockHouseholder.h +110 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Householder/Householder.h +176 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Householder/HouseholderSequence.h +545 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/Jacobi/Jacobi.h +483 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/Determinant.h +117 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/FullPivLU.h +877 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/InverseImpl.h +432 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/PartialPivLU.h +624 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/arch/InverseSize4.h +351 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/OrderingMethods/Amd.h +435 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/OrderingMethods/Ordering.h +153 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/HouseholderQR.h +434 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/BDCSVD.h +1366 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/JacobiSVD.h +812 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/SVDBase.h +376 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/AmbiVector.h +378 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseAssign.h +270 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseBlock.h +571 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseDot.h +98 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseMap.h +305 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseProduct.h +181 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseRedux.h +49 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseRef.h +397 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseUtil.h +186 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseVector.h +478 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseView.h +254 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU.h +923 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseQR/SparseQR.h +758 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/StdDeque.h +116 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/StdList.h +106 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/StdVector.h +131 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/details.h +84 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/Image.h +82 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/Kernel.h +79 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/RealSvd2x2.h +55 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/blas.h +440 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/lapack.h +152 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/lapacke.h +16292 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/lapacke_mangling.h +17 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/BlockMethods.h +1442 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/ReshapedMethods.h +149 -0
- roboticstoolbox/ets/cpp-extensions/README.md +73 -0
- roboticstoolbox/ets/cpp-extensions/fknm_nb.cpp +534 -0
- roboticstoolbox/ets/cpp-extensions/ik.cpp +301 -0
- roboticstoolbox/ets/cpp-extensions/ik.h +59 -0
- roboticstoolbox/ets/cpp-extensions/linalg.cpp +316 -0
- roboticstoolbox/ets/cpp-extensions/linalg.h +64 -0
- roboticstoolbox/ets/cpp-extensions/methods.cpp +372 -0
- roboticstoolbox/ets/cpp-extensions/methods.h +32 -0
- roboticstoolbox/ets/cpp-extensions/structs.cpp +24 -0
- roboticstoolbox/ets/cpp-extensions/structs.h +62 -0
- roboticstoolbox/ets/fknm.py +366 -0
- roboticstoolbox/mobile/Animations.py +485 -0
- roboticstoolbox/mobile/Bug2.py +455 -0
- roboticstoolbox/mobile/CurvaturePolyPlanner.py +179 -0
- roboticstoolbox/mobile/DistanceTransformPlanner.py +395 -0
- roboticstoolbox/mobile/DstarPlanner.py +591 -0
- roboticstoolbox/mobile/DubinsPlanner.py +474 -0
- roboticstoolbox/mobile/EKF.py +1617 -0
- roboticstoolbox/mobile/LatticePlanner.py +419 -0
- roboticstoolbox/mobile/OccGrid.py +613 -0
- roboticstoolbox/mobile/PRMPlanner.py +348 -0
- roboticstoolbox/mobile/ParticleFilter.py +706 -0
- roboticstoolbox/mobile/PlannerBase.py +1009 -0
- roboticstoolbox/mobile/PoseGraph.py +544 -0
- roboticstoolbox/mobile/QuinticPolyPlanner.py +349 -0
- roboticstoolbox/mobile/RRTPlanner.py +359 -0
- roboticstoolbox/mobile/ReedsSheppPlanner.py +545 -0
- roboticstoolbox/mobile/Vehicle.py +1909 -0
- roboticstoolbox/mobile/__init__.py +194 -0
- roboticstoolbox/mobile/drivers.py +397 -0
- roboticstoolbox/mobile/landmarkmap.py +181 -0
- roboticstoolbox/mobile/sensors.py +789 -0
- roboticstoolbox/models/DH/AL5D.py +121 -0
- roboticstoolbox/models/DH/Ball.py +87 -0
- roboticstoolbox/models/DH/Baxter.py +91 -0
- roboticstoolbox/models/DH/Cobra600.py +63 -0
- roboticstoolbox/models/DH/Coil.py +80 -0
- roboticstoolbox/models/DH/Hyper.py +81 -0
- roboticstoolbox/models/DH/Hyper3d.py +83 -0
- roboticstoolbox/models/DH/IRB140.py +159 -0
- roboticstoolbox/models/DH/Jaco.py +102 -0
- roboticstoolbox/models/DH/KR5.py +112 -0
- roboticstoolbox/models/DH/LWR4.py +80 -0
- roboticstoolbox/models/DH/Mico.py +102 -0
- roboticstoolbox/models/DH/Orion5.py +91 -0
- roboticstoolbox/models/DH/P8.py +80 -0
- roboticstoolbox/models/DH/Panda.py +213 -0
- roboticstoolbox/models/DH/Planar2.py +69 -0
- roboticstoolbox/models/DH/Planar3.py +51 -0
- roboticstoolbox/models/DH/Puma560.py +326 -0
- roboticstoolbox/models/DH/README.md +216 -0
- roboticstoolbox/models/DH/Sawyer.py +85 -0
- roboticstoolbox/models/DH/Stanford.py +147 -0
- roboticstoolbox/models/DH/TwoLink.py +153 -0
- roboticstoolbox/models/DH/UR10.py +124 -0
- roboticstoolbox/models/DH/UR3.py +98 -0
- roboticstoolbox/models/DH/UR5.py +98 -0
- roboticstoolbox/models/DH/Uprighttl.py +24 -0
- roboticstoolbox/models/DH/__init__.py +52 -0
- roboticstoolbox/models/ETS/Frankie.py +90 -0
- roboticstoolbox/models/ETS/GenericSeven.py +54 -0
- roboticstoolbox/models/ETS/Omni.py +74 -0
- roboticstoolbox/models/ETS/Panda.py +69 -0
- roboticstoolbox/models/ETS/Planar2.py +49 -0
- roboticstoolbox/models/ETS/Planar_Y.py +65 -0
- roboticstoolbox/models/ETS/Puma560.py +70 -0
- roboticstoolbox/models/ETS/XYPanda.py +84 -0
- roboticstoolbox/models/ETS/__init__.py +20 -0
- roboticstoolbox/models/README.md +9 -0
- roboticstoolbox/models/URDF/AL5D.py +45 -0
- roboticstoolbox/models/URDF/Fetch.py +96 -0
- roboticstoolbox/models/URDF/Frankie.py +67 -0
- roboticstoolbox/models/URDF/FrankieOmni.py +94 -0
- roboticstoolbox/models/URDF/Jaco.py +49 -0
- roboticstoolbox/models/URDF/KinovaGen3.py +63 -0
- roboticstoolbox/models/URDF/LBR.py +57 -0
- roboticstoolbox/models/URDF/PR2.py +66 -0
- roboticstoolbox/models/URDF/Panda.py +60 -0
- roboticstoolbox/models/URDF/Puma560.py +90 -0
- roboticstoolbox/models/URDF/UR10.py +43 -0
- roboticstoolbox/models/URDF/UR3.py +43 -0
- roboticstoolbox/models/URDF/UR5.py +64 -0
- roboticstoolbox/models/URDF/URDFRobot.py +402 -0
- roboticstoolbox/models/URDF/Valkyrie.py +110 -0
- roboticstoolbox/models/URDF/YuMi.py +107 -0
- roboticstoolbox/models/URDF/__init__.py +51 -0
- roboticstoolbox/models/URDF/px100.py +48 -0
- roboticstoolbox/models/URDF/px150.py +48 -0
- roboticstoolbox/models/URDF/rx150.py +48 -0
- roboticstoolbox/models/URDF/rx200.py +48 -0
- roboticstoolbox/models/URDF/vx300.py +48 -0
- roboticstoolbox/models/URDF/vx300s.py +48 -0
- roboticstoolbox/models/URDF/wx200.py +48 -0
- roboticstoolbox/models/URDF/wx250.py +48 -0
- roboticstoolbox/models/URDF/wx250s.py +48 -0
- roboticstoolbox/models/__init__.py +7 -0
- roboticstoolbox/models/catalog.py +226 -0
- roboticstoolbox/robot/BaseRobot.py +2589 -0
- roboticstoolbox/robot/DHFactor.py +522 -0
- roboticstoolbox/robot/DHLink.py +949 -0
- roboticstoolbox/robot/DHRobot.py +2591 -0
- roboticstoolbox/robot/Dynamics.py +1537 -0
- roboticstoolbox/robot/ELink.py +23 -0
- roboticstoolbox/robot/ERobot.py +25 -0
- roboticstoolbox/robot/Gripper.py +242 -0
- roboticstoolbox/robot/IK.py +1378 -0
- roboticstoolbox/robot/Link.py +1557 -0
- roboticstoolbox/robot/PoERobot.py +352 -0
- roboticstoolbox/robot/Robot.py +2157 -0
- roboticstoolbox/robot/RobotKinematics.py +1505 -0
- roboticstoolbox/robot/RobotPlottingMPL.py +355 -0
- roboticstoolbox/robot/RobotProto.py +156 -0
- roboticstoolbox/robot/__init__.py +57 -0
- roboticstoolbox/robot/cpp-extensions/README.md +29 -0
- roboticstoolbox/robot/cpp-extensions/frne.h +96 -0
- roboticstoolbox/robot/cpp-extensions/frne_nb.cpp +237 -0
- roboticstoolbox/robot/cpp-extensions/ne.c +495 -0
- roboticstoolbox/robot/cpp-extensions/vmath.c +163 -0
- roboticstoolbox/robot/cpp-extensions/vmath.h +32 -0
- roboticstoolbox/robot/frne.py +51 -0
- roboticstoolbox/tools/DHFactor.py +375 -0
- roboticstoolbox/tools/Ticker.py +53 -0
- roboticstoolbox/tools/__init__.py +54 -0
- roboticstoolbox/tools/data.py +187 -0
- roboticstoolbox/tools/jsingu.py +51 -0
- roboticstoolbox/tools/null.py +48 -0
- roboticstoolbox/tools/numerical.py +96 -0
- roboticstoolbox/tools/p_servo.py +108 -0
- roboticstoolbox/tools/params.py +11 -0
- roboticstoolbox/tools/plot.py +109 -0
- roboticstoolbox/tools/trajectory.py +1152 -0
- roboticstoolbox/tools/types.py +13 -0
- roboticstoolbox/tools/urdf/__init__.py +45 -0
- roboticstoolbox/tools/urdf/tests/data/ur5.urdf +341 -0
- roboticstoolbox/tools/urdf/tests/test_urdf.py +116 -0
- roboticstoolbox/tools/urdf/urdf.py +1930 -0
- roboticstoolbox/tools/urdf/utils.py +50 -0
- roboticstoolbox_python-1.4.0.dist-info/METADATA +664 -0
- roboticstoolbox_python-1.4.0.dist-info/RECORD +610 -0
- roboticstoolbox_python-1.4.0.dist-info/WHEEL +5 -0
- roboticstoolbox_python-1.4.0.dist-info/entry_points.txt +6 -0
- roboticstoolbox_python-1.4.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
@author: Peter Corke
|
|
4
|
+
@author: Jesse Haviland
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
# 2/8/95 changed D3 to 150.05mm which is closer to data from Lee, AKB86 and
|
|
8
|
+
# Tarn fixed errors in COG for links 2 and 3
|
|
9
|
+
# 29/1/91 to agree with data from Armstrong etal. Due to their use
|
|
10
|
+
# of modified D&H params, some of the offsets Ai, Di are
|
|
11
|
+
# offset, and for links 3-5 swap Y and Z axes.
|
|
12
|
+
# 14/2/91 to use Paul's value of link twist (alpha) to be consistant
|
|
13
|
+
# with ARCL. This is the -ve of Lee's values, which means the
|
|
14
|
+
# zero angle position is a righty for Paul, and lefty for Lee.
|
|
15
|
+
|
|
16
|
+
# all parameters are in SI units: m, radians, kg, kg.m2, N.m, N.m.s etc.
|
|
17
|
+
|
|
18
|
+
# from math import pi
|
|
19
|
+
import numpy as np
|
|
20
|
+
from roboticstoolbox import DHRobot, RevoluteDH
|
|
21
|
+
from spatialmath import SE3
|
|
22
|
+
from spatialmath import base
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Puma560(DHRobot):
|
|
26
|
+
"""
|
|
27
|
+
Class that models a Puma 560 manipulator
|
|
28
|
+
|
|
29
|
+
:param symbolic: use symbolic constants
|
|
30
|
+
:type symbolic: bool
|
|
31
|
+
|
|
32
|
+
``Puma560()`` is an object which models a Unimation Puma560 robot and
|
|
33
|
+
describes its kinematic and dynamic characteristics using standard DH
|
|
34
|
+
conventions.
|
|
35
|
+
|
|
36
|
+
.. runblock:: pycon
|
|
37
|
+
|
|
38
|
+
>>> import roboticstoolbox as rtb
|
|
39
|
+
>>> robot = rtb.models.DH.Puma560()
|
|
40
|
+
>>> print(robot)
|
|
41
|
+
|
|
42
|
+
Defined joint configurations are:
|
|
43
|
+
|
|
44
|
+
- qz, zero joint angle configuration, 'L' shaped configuration
|
|
45
|
+
- qr, vertical 'READY' configuration
|
|
46
|
+
- qs, arm is stretched out in the x-direction
|
|
47
|
+
- qn, arm is at a nominal non-singular configuration
|
|
48
|
+
|
|
49
|
+
.. note::
|
|
50
|
+
- SI units are used.
|
|
51
|
+
- The model includes armature inertia and gear ratios.
|
|
52
|
+
- The value of m1 is given as 0 here. Armstrong found no value for it
|
|
53
|
+
and it does not appear in the equation for tau1 after the
|
|
54
|
+
substituion is made to inertia about link frame rather than COG
|
|
55
|
+
frame.
|
|
56
|
+
- Gravity load torque is the motor torque necessary to keep the joint
|
|
57
|
+
static, and is thus -ve of the gravity caused torque.
|
|
58
|
+
|
|
59
|
+
.. warning:: Compared to the MATLAB version of the Toolbox this model
|
|
60
|
+
includes the pedestal, making the z-coordinates 26 inches larger.
|
|
61
|
+
|
|
62
|
+
:references:
|
|
63
|
+
- "A search for consensus among model parameters reported for the PUMA
|
|
64
|
+
560 robot", P. Corke and B. Armstrong-Helouvry,
|
|
65
|
+
Proc. IEEE Int. Conf. Robotics and Automation, (San Diego),
|
|
66
|
+
pp. 1608-1613, May 1994. (for kinematic and dynamic parameters)
|
|
67
|
+
- "A combined optimization method for solving the inverse kinematics
|
|
68
|
+
problem", Wang & Chen, IEEE Trans. RA 7(4) 1991 pp 489-.
|
|
69
|
+
(for joint angle limits)
|
|
70
|
+
- https://github.com/4rtur1t0/ARTE/blob/master/robots/UNIMATE/puma560/parameters.m
|
|
71
|
+
|
|
72
|
+
.. codeauthor:: Peter Corke
|
|
73
|
+
""" # noqa
|
|
74
|
+
|
|
75
|
+
def __init__(self, symbolic=False):
|
|
76
|
+
|
|
77
|
+
if symbolic:
|
|
78
|
+
import spatialmath.base.symbolic as sym
|
|
79
|
+
|
|
80
|
+
zero = sym.zero()
|
|
81
|
+
pi = sym.pi()
|
|
82
|
+
else:
|
|
83
|
+
from math import pi
|
|
84
|
+
|
|
85
|
+
zero = 0.0
|
|
86
|
+
|
|
87
|
+
deg = pi / 180
|
|
88
|
+
inch = 0.0254
|
|
89
|
+
|
|
90
|
+
base = 26.45 * inch # from mounting surface to shoulder axis
|
|
91
|
+
|
|
92
|
+
L = [
|
|
93
|
+
RevoluteDH(
|
|
94
|
+
d=base, # link length (Dennavit-Hartenberg notation)
|
|
95
|
+
a=0, # link offset (Dennavit-Hartenberg notation)
|
|
96
|
+
alpha=pi / 2, # link twist (Dennavit-Hartenberg notation)
|
|
97
|
+
I=[0, 0.35, 0, 0, 0, 0],
|
|
98
|
+
# inertia tensor of link with respect to
|
|
99
|
+
# center of mass I = [L_xx, L_yy, L_zz,
|
|
100
|
+
# L_xy, L_yz, L_xz]
|
|
101
|
+
r=[0, 0, 0],
|
|
102
|
+
# distance of ith origin to center of mass [x,y,z]
|
|
103
|
+
# in link reference frame
|
|
104
|
+
m=0, # mass of link
|
|
105
|
+
Jm=200e-6, # actuator inertia
|
|
106
|
+
G=-62.6111, # gear ratio
|
|
107
|
+
B=1.48e-3, # actuator viscous friction coefficient (measured
|
|
108
|
+
# at the motor)
|
|
109
|
+
Tc=[0.395, -0.435],
|
|
110
|
+
# actuator Coulomb friction coefficient for
|
|
111
|
+
# direction [-,+] (measured at the motor)
|
|
112
|
+
qlim=[-160 * deg, 160 * deg], # minimum and maximum joint angle
|
|
113
|
+
),
|
|
114
|
+
RevoluteDH(
|
|
115
|
+
d=0,
|
|
116
|
+
a=0.4318,
|
|
117
|
+
alpha=zero,
|
|
118
|
+
I=[0.13, 0.524, 0.539, 0, 0, 0],
|
|
119
|
+
r=[-0.3638, 0.006, 0.2275],
|
|
120
|
+
m=17.4,
|
|
121
|
+
Jm=200e-6,
|
|
122
|
+
G=107.815,
|
|
123
|
+
B=0.817e-3,
|
|
124
|
+
Tc=[0.126, -0.071],
|
|
125
|
+
qlim=[-110 * deg, 110 * deg], # qlim=[-45*deg, 225*deg]
|
|
126
|
+
),
|
|
127
|
+
RevoluteDH(
|
|
128
|
+
d=0.15005,
|
|
129
|
+
a=0.0203,
|
|
130
|
+
alpha=-pi / 2,
|
|
131
|
+
I=[0.066, 0.086, 0.0125, 0, 0, 0],
|
|
132
|
+
r=[-0.0203, -0.0141, 0.070],
|
|
133
|
+
m=4.8,
|
|
134
|
+
Jm=200e-6,
|
|
135
|
+
G=-53.7063,
|
|
136
|
+
B=1.38e-3,
|
|
137
|
+
Tc=[0.132, -0.105],
|
|
138
|
+
qlim=[-135 * deg, 135 * deg], # qlim=[-225*deg, 45*deg]
|
|
139
|
+
),
|
|
140
|
+
RevoluteDH(
|
|
141
|
+
d=0.4318,
|
|
142
|
+
a=0,
|
|
143
|
+
alpha=pi / 2,
|
|
144
|
+
I=[1.8e-3, 1.3e-3, 1.8e-3, 0, 0, 0],
|
|
145
|
+
r=[0, 0.019, 0],
|
|
146
|
+
m=0.82,
|
|
147
|
+
Jm=33e-6,
|
|
148
|
+
G=76.0364,
|
|
149
|
+
B=71.2e-6,
|
|
150
|
+
Tc=[11.2e-3, -16.9e-3],
|
|
151
|
+
qlim=[-266 * deg, 266 * deg], # qlim=[-110*deg, 170*deg]
|
|
152
|
+
),
|
|
153
|
+
RevoluteDH(
|
|
154
|
+
d=0,
|
|
155
|
+
a=0,
|
|
156
|
+
alpha=-pi / 2,
|
|
157
|
+
I=[0.3e-3, 0.4e-3, 0.3e-3, 0, 0, 0],
|
|
158
|
+
r=[0, 0, 0],
|
|
159
|
+
m=0.34,
|
|
160
|
+
Jm=33e-6,
|
|
161
|
+
G=71.923,
|
|
162
|
+
B=82.6e-6,
|
|
163
|
+
Tc=[9.26e-3, -14.5e-3],
|
|
164
|
+
qlim=[-100 * deg, 100 * deg],
|
|
165
|
+
),
|
|
166
|
+
RevoluteDH(
|
|
167
|
+
d=0,
|
|
168
|
+
a=0,
|
|
169
|
+
alpha=zero,
|
|
170
|
+
I=[0.15e-3, 0.15e-3, 0.04e-3, 0, 0, 0],
|
|
171
|
+
r=[0, 0, 0.032],
|
|
172
|
+
m=0.09,
|
|
173
|
+
Jm=33e-6,
|
|
174
|
+
G=76.686,
|
|
175
|
+
B=36.7e-6,
|
|
176
|
+
Tc=[3.96e-3, -10.5e-3],
|
|
177
|
+
qlim=[-266 * deg, 266 * deg],
|
|
178
|
+
),
|
|
179
|
+
]
|
|
180
|
+
|
|
181
|
+
super().__init__(
|
|
182
|
+
L,
|
|
183
|
+
name="Puma 560",
|
|
184
|
+
manufacturer="Unimation",
|
|
185
|
+
keywords=("dynamics", "symbolic", "mesh"),
|
|
186
|
+
symbolic=symbolic,
|
|
187
|
+
meshdir="meshes/UNIMATE/puma560",
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
self.qr = np.array([0, pi / 2, -pi / 2, 0, 0, 0])
|
|
191
|
+
self.qz = np.zeros(6)
|
|
192
|
+
|
|
193
|
+
# nominal table top picking pose
|
|
194
|
+
self.qn = np.array([0, pi / 4, pi, 0, pi / 4, 0])
|
|
195
|
+
|
|
196
|
+
self.addconfiguration("qr", self.qr)
|
|
197
|
+
self.addconfiguration("qz", self.qz)
|
|
198
|
+
self.addconfiguration("qn", self.qn)
|
|
199
|
+
|
|
200
|
+
# straight and horizontal
|
|
201
|
+
self.addconfiguration_attr("qs", np.array([0, 0, -pi / 2, 0, 0, 0]))
|
|
202
|
+
|
|
203
|
+
def ikine_a(self, T, config="lun"):
|
|
204
|
+
"""
|
|
205
|
+
Analytic inverse kinematic solution
|
|
206
|
+
|
|
207
|
+
:param T: end-effector pose
|
|
208
|
+
:type T: SE3
|
|
209
|
+
:param config: arm configuration, defaults to "lun"
|
|
210
|
+
:type config: str, optional
|
|
211
|
+
:return: joint angle vector in radians
|
|
212
|
+
:rtype: ndarray(6)
|
|
213
|
+
|
|
214
|
+
``robot.ikine_a(T, config)`` is the joint angle vector which achieves the
|
|
215
|
+
end-effector pose ``T```. The configuration string selects the specific
|
|
216
|
+
solution and is a sting comprising the following letters:
|
|
217
|
+
|
|
218
|
+
====== ==============================================
|
|
219
|
+
Letter Meaning
|
|
220
|
+
====== ==============================================
|
|
221
|
+
l Choose the left-handed configuration
|
|
222
|
+
r Choose the right-handed configuration
|
|
223
|
+
u Choose the elbow up configuration
|
|
224
|
+
d Choose the elbow down configuration
|
|
225
|
+
n Choose the wrist not-flipped configuration
|
|
226
|
+
f Choose the wrist flipped configuration
|
|
227
|
+
====== ==============================================
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
:reference:
|
|
231
|
+
- Inverse kinematics for a PUMA 560,
|
|
232
|
+
Paul and Zhang,
|
|
233
|
+
The International Journal of Robotics Research,
|
|
234
|
+
Vol. 5, No. 2, Summer 1986, p. 32-44
|
|
235
|
+
|
|
236
|
+
:author: based on MATLAB code by Robert Biro with Gary Von McMurray,
|
|
237
|
+
GTRI/ATRP/IIMB, Georgia Institute of Technology, 2/13/95
|
|
238
|
+
|
|
239
|
+
"""
|
|
240
|
+
|
|
241
|
+
def ik3(robot, T, config="lun"):
|
|
242
|
+
|
|
243
|
+
config = self.config_validate(config, ("lr", "ud", "nf"))
|
|
244
|
+
|
|
245
|
+
# solve for the first three joints
|
|
246
|
+
|
|
247
|
+
a2 = robot.links[1].a
|
|
248
|
+
a3 = robot.links[2].a
|
|
249
|
+
d1 = robot.links[0].d
|
|
250
|
+
d3 = robot.links[2].d
|
|
251
|
+
d4 = robot.links[3].d
|
|
252
|
+
|
|
253
|
+
# The following parameters are extracted from the Homogeneous
|
|
254
|
+
# Transformation as defined in equation 1, p. 34
|
|
255
|
+
|
|
256
|
+
Px, Py, Pz = T.t
|
|
257
|
+
Pz -= d1 # offset the pedestal height
|
|
258
|
+
theta = np.zeros((3,))
|
|
259
|
+
|
|
260
|
+
# Solve for theta[0]
|
|
261
|
+
# r is defined in equation 38, p. 39.
|
|
262
|
+
# theta[0] uses equations 40 and 41, p.39,
|
|
263
|
+
# based on the configuration parameter n1
|
|
264
|
+
|
|
265
|
+
r = np.sqrt(Px**2 + Py**2)
|
|
266
|
+
if "r" in config:
|
|
267
|
+
theta[0] = np.arctan2(Py, Px) + np.arcsin(d3 / r)
|
|
268
|
+
elif "l" in config:
|
|
269
|
+
theta[0] = np.arctan2(Py, Px) + np.pi - np.arcsin(d3 / r)
|
|
270
|
+
else:
|
|
271
|
+
raise ValueError("bad configuration string")
|
|
272
|
+
|
|
273
|
+
# Solve for theta[1]
|
|
274
|
+
# V114 is defined in equation 43, p.39.
|
|
275
|
+
# r is defined in equation 47, p.39.
|
|
276
|
+
# Psi is defined in equation 49, p.40.
|
|
277
|
+
# theta[1] uses equations 50 and 51, p.40, based on the
|
|
278
|
+
# configuration parameter n2
|
|
279
|
+
if "u" in config:
|
|
280
|
+
n2 = 1
|
|
281
|
+
elif "d" in config:
|
|
282
|
+
n2 = -1
|
|
283
|
+
else:
|
|
284
|
+
raise ValueError("bad configuration string")
|
|
285
|
+
|
|
286
|
+
if "l" in config:
|
|
287
|
+
n2 = -n2
|
|
288
|
+
|
|
289
|
+
V114 = Px * np.cos(theta[0]) + Py * np.sin(theta[0])
|
|
290
|
+
|
|
291
|
+
r = np.sqrt(V114**2 + Pz**2)
|
|
292
|
+
|
|
293
|
+
with np.errstate(invalid="raise"):
|
|
294
|
+
try:
|
|
295
|
+
Psi = np.arccos(
|
|
296
|
+
(a2**2 - d4**2 - a3**2 + V114**2 + Pz**2) / (2.0 * a2 * r)
|
|
297
|
+
)
|
|
298
|
+
except FloatingPointError:
|
|
299
|
+
return "Out of reach"
|
|
300
|
+
|
|
301
|
+
theta[1] = np.arctan2(Pz, V114) + n2 * Psi
|
|
302
|
+
|
|
303
|
+
# Solve for theta[2]
|
|
304
|
+
# theta[2] uses equation 57, p. 40.
|
|
305
|
+
num = np.cos(theta[1]) * V114 + np.sin(theta[1]) * Pz - a2
|
|
306
|
+
den = np.cos(theta[1]) * Pz - np.sin(theta[1]) * V114
|
|
307
|
+
theta[2] = np.arctan2(a3, d4) - np.arctan2(num, den)
|
|
308
|
+
|
|
309
|
+
theta = base.angdiff(theta)
|
|
310
|
+
|
|
311
|
+
return theta
|
|
312
|
+
|
|
313
|
+
return self.ikine_6s(T, config, ik3)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
if __name__ == "__main__": # pragma nocover
|
|
317
|
+
puma = Puma560(symbolic=False)
|
|
318
|
+
print(puma)
|
|
319
|
+
print(puma.dynamics())
|
|
320
|
+
# T = puma.fkine(puma.qn)
|
|
321
|
+
# print(puma.ikine_a(T, 'lu').q)
|
|
322
|
+
# print(puma.ikine_a(T, 'ru').q)
|
|
323
|
+
# print(puma.ikine_a(T, 'ld').q)
|
|
324
|
+
# print(puma.ikine_a(T, 'rd').q)
|
|
325
|
+
|
|
326
|
+
# puma.plot(puma.qz)
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Denavit-Hartenberg models
|
|
2
|
+
|
|
3
|
+
## Shipped robot models
|
|
4
|
+
|
|
5
|
+
| Model name | Description |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| Ball | an n-link robot that folds into a ball shape |
|
|
8
|
+
| Cobra600 | 4-axis Adept (now OMRON) SCARA robot |
|
|
9
|
+
| IRB140 | 6-axis ABB robot |
|
|
10
|
+
| KR5 | 6-axis Kuka robot |
|
|
11
|
+
| Panda | 7-axis Franka-Emika robot |
|
|
12
|
+
| Puma | 6-axis Unimation robot (with dynamics data) |
|
|
13
|
+
| Stanford | 6-axis Stanford resarch robot, 1 prismatic joint (with dynamics data) |
|
|
14
|
+
| Threelink | ?? |
|
|
15
|
+
|
|
16
|
+
## Creating a new robot model using Denavit-Hartenberg parameters
|
|
17
|
+
|
|
18
|
+
To begin, you must know:
|
|
19
|
+
|
|
20
|
+
1. The DH parameters for your robot.
|
|
21
|
+
2. Whether the model uses standard or modified Denavit-Hartenberg parameters, DH or MDH respectively.
|
|
22
|
+
3. The joint structure, does it have revolute, prismatic joints or both.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Write the definition
|
|
26
|
+
|
|
27
|
+
Create a file called `MYROBOT.py` where `MYROBOT` is a descriptive name of your
|
|
28
|
+
robot that is a valid filename and Python class name.
|
|
29
|
+
|
|
30
|
+
Cut and paste the code blocks below into your empty file, modifying as you go. We start with the definitions:
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
from math import pi
|
|
35
|
+
import numpy as np
|
|
36
|
+
from roboticstoolbox import DHRobot, RevoluteDH, PrismaticDH, RevoluteMDH, PrismaticMDH
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The last line is important, it defines all the classes you could possibly
|
|
40
|
+
need. You won't use all of them, and to be tidy you could delete those you don't use. This is their purpose:
|
|
41
|
+
|
|
42
|
+
* `RevoluteDH` for a revolute joint using standard DH parameters
|
|
43
|
+
* `PrismaticDH` for a prismatic joint using standard DH parameters
|
|
44
|
+
* `RevoluteMDH` for a revolute joint using modified DH parameters
|
|
45
|
+
* `PrismaticMDH` for a prismatic joint using modified DH parameters
|
|
46
|
+
|
|
47
|
+
Next, add as much description as you can, check out the other model files in this
|
|
48
|
+
folder for inspiration.
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
class MYROBOT(DHRobot):
|
|
52
|
+
"""
|
|
53
|
+
Create model of MYROBOT manipulator
|
|
54
|
+
|
|
55
|
+
.
|
|
56
|
+
.
|
|
57
|
+
.
|
|
58
|
+
|
|
59
|
+
:notes:
|
|
60
|
+
.
|
|
61
|
+
.
|
|
62
|
+
.
|
|
63
|
+
|
|
64
|
+
:references:
|
|
65
|
+
.
|
|
66
|
+
.
|
|
67
|
+
.
|
|
68
|
+
|
|
69
|
+
"""
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Always a good idea to have notes about units used, DH convention, and
|
|
73
|
+
to include any references to the source of your model.
|
|
74
|
+
|
|
75
|
+
Now for the main event:. Inside the `__init__` method, define a set of link variables by creating instances of the appropriate link class.
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
def __init__(self):
|
|
79
|
+
|
|
80
|
+
deg = pi/180
|
|
81
|
+
|
|
82
|
+
L0 = RevoluteDH(
|
|
83
|
+
d=0, # link length (Dennavit-Hartenberg notation)
|
|
84
|
+
a=0, # link offset (Dennavit-Hartenberg notation)
|
|
85
|
+
alpha=pi/2, # link twist (Dennavit-Hartenberg notation)
|
|
86
|
+
I=[0, 0.35, 0, 0, 0, 0], # inertia tensor of link with respect to
|
|
87
|
+
# center of mass I = [L_xx, L_yy, L_zz,
|
|
88
|
+
# L_xy, L_yz, L_xz]
|
|
89
|
+
r=[0, 0, 0], # distance of ith origin to center of mass [x,y,z]
|
|
90
|
+
# in link reference frame
|
|
91
|
+
m=0, # mass of link
|
|
92
|
+
Jm=200e-6, # actuator inertia
|
|
93
|
+
G=-62.6111, # gear ratio
|
|
94
|
+
B=1.48e-3, # actuator viscous friction coefficient (measured
|
|
95
|
+
# at the motor)
|
|
96
|
+
Tc=[0.395, -0.435], # actuator Coulomb friction coefficient for
|
|
97
|
+
# direction [-,+] (measured at the motor)
|
|
98
|
+
qlim=[-160*deg, 160*deg]) # minimum and maximum joint angle
|
|
99
|
+
|
|
100
|
+
L1 = RevoluteDH(
|
|
101
|
+
d=0, a=0.4318, alpha=0,
|
|
102
|
+
qlim=[-45*deg, 225*deg])
|
|
103
|
+
|
|
104
|
+
.
|
|
105
|
+
.
|
|
106
|
+
.
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Provide as many parameters as you can. The definition of `L0` above includes
|
|
111
|
+
kinematic and dynamic parameters, whereas `L1` has only kinematic parameters.
|
|
112
|
+
The minimum requirement is for the kinematic parameters, and you don't even need
|
|
113
|
+
to know the joint limits, they are only required by a small number of Toolbox
|
|
114
|
+
functions.
|
|
115
|
+
|
|
116
|
+
For a robot with N joints you must define N joint instances.
|
|
117
|
+
|
|
118
|
+
Next we call the superclass constructor to do the heavy lifting.
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
super().__init__(
|
|
122
|
+
[L0, L1, L2, L3, L4, L5],
|
|
123
|
+
name="MYROBOT",
|
|
124
|
+
manufacturer="COMPANY THAT BUILDS MYROBOTs")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
We pass in an ordered list of all the joint objects we created earlier, and add
|
|
128
|
+
some metadata. The name gets used in plots.
|
|
129
|
+
|
|
130
|
+
We might like to define some useful joint configurations, maybe the home position, or where it goes to pick up a widget. You can
|
|
131
|
+
define as many of these as you like, but the pattern looks like this:
|
|
132
|
+
|
|
133
|
+
```python
|
|
134
|
+
# zero angles, L shaped pose
|
|
135
|
+
self._MYCONFIG = np.array([1, 2, 3, 4, 5, 6]) # create instance attribute
|
|
136
|
+
|
|
137
|
+
@property
|
|
138
|
+
def MYCONFIG(self):
|
|
139
|
+
return self._MYCONFIG
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
where `MYCONFIG` is the name of this particular configuration. Define an instance attribute holding the joint configuration, it must be a
|
|
143
|
+
NumPy array with N elements. Then define a property that will return that attribute.
|
|
144
|
+
|
|
145
|
+
Many of the
|
|
146
|
+
Toolbox models have a configuration called `qz` which is the set of zero
|
|
147
|
+
joint angles.
|
|
148
|
+
|
|
149
|
+
Finally, we can make the robot definition an executable script. We do that by adding a hashbang line at the top of the file
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
#!/usr/bin/env python
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
and a main code block at the bottom
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
if __name__ == '__main__':
|
|
159
|
+
|
|
160
|
+
robot = MYROBOT()
|
|
161
|
+
print(robot)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
so if you run it from your shell
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
% ./Puma560.py
|
|
168
|
+
┏━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━┓
|
|
169
|
+
┃ θⱼ ┃ dⱼ ┃ aⱼ ┃ ⍺ⱼ ┃
|
|
170
|
+
┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━╋━━━━━━━┫
|
|
171
|
+
┃q0 + 0.0 ┃ 0.672 ┃ 0 ┃ 90.0 ┃
|
|
172
|
+
┃q1 + 0.0 ┃ 0 ┃ 0.4318 ┃ 0.0 ┃
|
|
173
|
+
┃q2 + 0.0 ┃ 0.15005 ┃ 0.0203 ┃ -90.0 ┃
|
|
174
|
+
┃q3 + 0.0 ┃ 0.4318 ┃ 0 ┃ 90.0 ┃
|
|
175
|
+
┃q4 + 0.0 ┃ 0 ┃ 0 ┃ -90.0 ┃
|
|
176
|
+
┃q5 + 0.0 ┃ 0 ┃ 0 ┃ 0.0 ┃
|
|
177
|
+
┗━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━┻━━━━━━━┛
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
we see the table of Denavit-Hartenberg parameters.
|
|
181
|
+
|
|
182
|
+
### Adding your model to the Toolbox
|
|
183
|
+
|
|
184
|
+
Edit the file `__init__.py` in this folder. Add a line like:
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
from roboticstoolbox.models.DH.Stanford import MYROBOT
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
and then add `'MYROBOT'` to the list that defines `__all__`.
|
|
191
|
+
|
|
192
|
+
### Testing
|
|
193
|
+
|
|
194
|
+
If you made your definition an executable Python script as above, then run it
|
|
195
|
+
and check that the parameters are what you expect them to be.
|
|
196
|
+
|
|
197
|
+
If you defined some configurations you can also test that they are correct.
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
myrobot = MYROBOT() # instantiate an instance of your model
|
|
201
|
+
print(myrobot) # display its kinematic parameters
|
|
202
|
+
print(myrobot.MYCONFIG) # check that the joint configuration works
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Next steps
|
|
206
|
+
|
|
207
|
+
You can now use the power of the Toolbox to compute forward and inverse
|
|
208
|
+
kinematics, display a graphical model, and interactively teach the robot.
|
|
209
|
+
If you defined dynamic parameters then you can compute forward and inverse
|
|
210
|
+
rigid-body dyamics and simulate the response of the robot to applied torques.
|
|
211
|
+
|
|
212
|
+
Good luck and enjoy!
|
|
213
|
+
|
|
214
|
+
### Contribute your model
|
|
215
|
+
|
|
216
|
+
If you think your model might be interesting to others consider submitting a pull request.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
@author: Peter Corke
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import numpy as np
|
|
7
|
+
from roboticstoolbox import DHRobot, RevoluteDH
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Sawyer(DHRobot):
|
|
11
|
+
"""
|
|
12
|
+
Class that models a Sawyer manipulator
|
|
13
|
+
|
|
14
|
+
:param symbolic: use symbolic constants
|
|
15
|
+
:type symbolic: bool
|
|
16
|
+
|
|
17
|
+
``Sawyer()`` is an object which models a Rethink Sawyer robot and
|
|
18
|
+
describes its kinematic characteristics using standard DH
|
|
19
|
+
conventions.
|
|
20
|
+
|
|
21
|
+
.. runblock:: pycon
|
|
22
|
+
|
|
23
|
+
>>> import roboticstoolbox as rtb
|
|
24
|
+
>>> robot = rtb.models.DH.Sawyer()
|
|
25
|
+
>>> print(robot)
|
|
26
|
+
|
|
27
|
+
Defined joint configurations are:
|
|
28
|
+
|
|
29
|
+
- qz, zero joint angle configuration, 'L' shaped configuration
|
|
30
|
+
|
|
31
|
+
:references:
|
|
32
|
+
|
|
33
|
+
-`Layeghi, Daniel. “Dynamic and Kinematic Modelling of the Sawyer Arm ” Google Sites, 20 Nov. 2017 <https://sites.google.com/site/daniellayeghi/daily-work-and-writing/major-project-2>`_
|
|
34
|
+
|
|
35
|
+
.. note:: SI units of metres are used.
|
|
36
|
+
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __init__(self, symbolic=False):
|
|
40
|
+
|
|
41
|
+
if symbolic:
|
|
42
|
+
import spatialmath.base.symbolic as sym
|
|
43
|
+
|
|
44
|
+
# zero = sym.zero()
|
|
45
|
+
pi = sym.pi()
|
|
46
|
+
else:
|
|
47
|
+
from math import pi
|
|
48
|
+
|
|
49
|
+
# zero = 0.0
|
|
50
|
+
|
|
51
|
+
# deg = pi / 180
|
|
52
|
+
mm = 1e-3
|
|
53
|
+
|
|
54
|
+
# kinematic parameters
|
|
55
|
+
a = np.r_[81, 0, 0, 0, 0, 0, 0] * mm
|
|
56
|
+
d = np.r_[317, 192.5, 400, 168.5, 400, 136.3, 133.75] * mm
|
|
57
|
+
alpha = [-pi / 2, -pi / 2, -pi / 2, -pi / 2, -pi / 2, -pi / 2, 0]
|
|
58
|
+
|
|
59
|
+
links = []
|
|
60
|
+
|
|
61
|
+
for j in range(7):
|
|
62
|
+
link = RevoluteDH(d=d[j], a=a[j], alpha=alpha[j])
|
|
63
|
+
links.append(link)
|
|
64
|
+
|
|
65
|
+
super().__init__(
|
|
66
|
+
links,
|
|
67
|
+
name="Sawyer",
|
|
68
|
+
manufacturer="Rethink Robotics",
|
|
69
|
+
keywords=(
|
|
70
|
+
"redundant",
|
|
71
|
+
"symbolic",
|
|
72
|
+
),
|
|
73
|
+
symbolic=symbolic,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
self.qr = np.zeros(7)
|
|
77
|
+
self.qz = np.zeros(7)
|
|
78
|
+
|
|
79
|
+
self.addconfiguration("qr", self.qr)
|
|
80
|
+
self.addconfiguration("qz", self.qz)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
if __name__ == "__main__": # pragma nocover
|
|
84
|
+
sawyer = Sawyer(symbolic=False)
|
|
85
|
+
print(sawyer)
|