roboticstoolbox-python 1.3.0__cp313-cp313-win_amd64.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 +104 -0
- roboticstoolbox/backends/Connector.py +107 -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 +253 -0
- roboticstoolbox/backends/PyPlot/PyPlot.py +769 -0
- roboticstoolbox/backends/PyPlot/PyPlot2.py +526 -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 +26 -0
- roboticstoolbox/bin/__init__.py +0 -0
- roboticstoolbox/bin/rtbtool.py +307 -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 +1587 -0
- roboticstoolbox/blocks/mobile.py +500 -0
- roboticstoolbox/blocks/quad_model.py +132 -0
- roboticstoolbox/blocks/spatial.py +245 -0
- roboticstoolbox/blocks/uav.py +949 -0
- roboticstoolbox/core/Eigen/Cholesky +45 -0
- roboticstoolbox/core/Eigen/CholmodSupport +48 -0
- roboticstoolbox/core/Eigen/Core +384 -0
- roboticstoolbox/core/Eigen/Dense +7 -0
- roboticstoolbox/core/Eigen/Eigen +2 -0
- roboticstoolbox/core/Eigen/Eigenvalues +60 -0
- roboticstoolbox/core/Eigen/Geometry +59 -0
- roboticstoolbox/core/Eigen/Householder +29 -0
- roboticstoolbox/core/Eigen/IterativeLinearSolvers +48 -0
- roboticstoolbox/core/Eigen/Jacobi +32 -0
- roboticstoolbox/core/Eigen/KLUSupport +41 -0
- roboticstoolbox/core/Eigen/LU +47 -0
- roboticstoolbox/core/Eigen/MetisSupport +35 -0
- roboticstoolbox/core/Eigen/OrderingMethods +70 -0
- roboticstoolbox/core/Eigen/PaStiXSupport +49 -0
- roboticstoolbox/core/Eigen/PardisoSupport +35 -0
- roboticstoolbox/core/Eigen/QR +50 -0
- roboticstoolbox/core/Eigen/QtAlignedMalloc +39 -0
- roboticstoolbox/core/Eigen/SPQRSupport +34 -0
- roboticstoolbox/core/Eigen/SVD +50 -0
- roboticstoolbox/core/Eigen/Sparse +34 -0
- roboticstoolbox/core/Eigen/SparseCholesky +37 -0
- roboticstoolbox/core/Eigen/SparseCore +69 -0
- roboticstoolbox/core/Eigen/SparseLU +50 -0
- roboticstoolbox/core/Eigen/SparseQR +36 -0
- roboticstoolbox/core/Eigen/StdDeque +27 -0
- roboticstoolbox/core/Eigen/StdList +26 -0
- roboticstoolbox/core/Eigen/StdVector +27 -0
- roboticstoolbox/core/Eigen/SuperLUSupport +64 -0
- roboticstoolbox/core/Eigen/UmfPackSupport +40 -0
- roboticstoolbox/core/Eigen/src/Cholesky/LDLT.h +688 -0
- roboticstoolbox/core/Eigen/src/Cholesky/LLT.h +558 -0
- roboticstoolbox/core/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- roboticstoolbox/core/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- roboticstoolbox/core/Eigen/src/Core/ArithmeticSequence.h +413 -0
- roboticstoolbox/core/Eigen/src/Core/Array.h +417 -0
- roboticstoolbox/core/Eigen/src/Core/ArrayBase.h +226 -0
- roboticstoolbox/core/Eigen/src/Core/ArrayWrapper.h +209 -0
- roboticstoolbox/core/Eigen/src/Core/Assign.h +90 -0
- roboticstoolbox/core/Eigen/src/Core/AssignEvaluator.h +1010 -0
- roboticstoolbox/core/Eigen/src/Core/Assign_MKL.h +178 -0
- roboticstoolbox/core/Eigen/src/Core/BandMatrix.h +353 -0
- roboticstoolbox/core/Eigen/src/Core/Block.h +448 -0
- roboticstoolbox/core/Eigen/src/Core/BooleanRedux.h +162 -0
- roboticstoolbox/core/Eigen/src/Core/CommaInitializer.h +164 -0
- roboticstoolbox/core/Eigen/src/Core/ConditionEstimator.h +175 -0
- roboticstoolbox/core/Eigen/src/Core/CoreEvaluators.h +1741 -0
- roboticstoolbox/core/Eigen/src/Core/CoreIterators.h +132 -0
- roboticstoolbox/core/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- roboticstoolbox/core/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- roboticstoolbox/core/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- roboticstoolbox/core/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- roboticstoolbox/core/Eigen/src/Core/CwiseUnaryView.h +132 -0
- roboticstoolbox/core/Eigen/src/Core/DenseBase.h +701 -0
- roboticstoolbox/core/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- roboticstoolbox/core/Eigen/src/Core/DenseStorage.h +652 -0
- roboticstoolbox/core/Eigen/src/Core/Diagonal.h +258 -0
- roboticstoolbox/core/Eigen/src/Core/DiagonalMatrix.h +391 -0
- roboticstoolbox/core/Eigen/src/Core/DiagonalProduct.h +28 -0
- roboticstoolbox/core/Eigen/src/Core/Dot.h +318 -0
- roboticstoolbox/core/Eigen/src/Core/EigenBase.h +160 -0
- roboticstoolbox/core/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- roboticstoolbox/core/Eigen/src/Core/Fuzzy.h +155 -0
- roboticstoolbox/core/Eigen/src/Core/GeneralProduct.h +465 -0
- roboticstoolbox/core/Eigen/src/Core/GenericPacketMath.h +1040 -0
- roboticstoolbox/core/Eigen/src/Core/GlobalFunctions.h +194 -0
- roboticstoolbox/core/Eigen/src/Core/IO.h +258 -0
- roboticstoolbox/core/Eigen/src/Core/IndexedView.h +237 -0
- roboticstoolbox/core/Eigen/src/Core/Inverse.h +117 -0
- roboticstoolbox/core/Eigen/src/Core/Map.h +171 -0
- roboticstoolbox/core/Eigen/src/Core/MapBase.h +310 -0
- roboticstoolbox/core/Eigen/src/Core/MathFunctions.h +2057 -0
- roboticstoolbox/core/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- roboticstoolbox/core/Eigen/src/Core/Matrix.h +565 -0
- roboticstoolbox/core/Eigen/src/Core/MatrixBase.h +547 -0
- roboticstoolbox/core/Eigen/src/Core/NestByValue.h +85 -0
- roboticstoolbox/core/Eigen/src/Core/NoAlias.h +109 -0
- roboticstoolbox/core/Eigen/src/Core/NumTraits.h +335 -0
- roboticstoolbox/core/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- roboticstoolbox/core/Eigen/src/Core/PermutationMatrix.h +605 -0
- roboticstoolbox/core/Eigen/src/Core/PlainObjectBase.h +1128 -0
- roboticstoolbox/core/Eigen/src/Core/Product.h +191 -0
- roboticstoolbox/core/Eigen/src/Core/ProductEvaluators.h +1179 -0
- roboticstoolbox/core/Eigen/src/Core/Random.h +218 -0
- roboticstoolbox/core/Eigen/src/Core/Redux.h +515 -0
- roboticstoolbox/core/Eigen/src/Core/Ref.h +381 -0
- roboticstoolbox/core/Eigen/src/Core/Replicate.h +142 -0
- roboticstoolbox/core/Eigen/src/Core/Reshaped.h +454 -0
- roboticstoolbox/core/Eigen/src/Core/ReturnByValue.h +119 -0
- roboticstoolbox/core/Eigen/src/Core/Reverse.h +217 -0
- roboticstoolbox/core/Eigen/src/Core/Select.h +164 -0
- roboticstoolbox/core/Eigen/src/Core/SelfAdjointView.h +365 -0
- roboticstoolbox/core/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- roboticstoolbox/core/Eigen/src/Core/Solve.h +188 -0
- roboticstoolbox/core/Eigen/src/Core/SolveTriangular.h +235 -0
- roboticstoolbox/core/Eigen/src/Core/SolverBase.h +168 -0
- roboticstoolbox/core/Eigen/src/Core/StableNorm.h +251 -0
- roboticstoolbox/core/Eigen/src/Core/StlIterators.h +463 -0
- roboticstoolbox/core/Eigen/src/Core/Stride.h +116 -0
- roboticstoolbox/core/Eigen/src/Core/Swap.h +68 -0
- roboticstoolbox/core/Eigen/src/Core/Transpose.h +464 -0
- roboticstoolbox/core/Eigen/src/Core/Transpositions.h +386 -0
- roboticstoolbox/core/Eigen/src/Core/TriangularMatrix.h +1001 -0
- roboticstoolbox/core/Eigen/src/Core/VectorBlock.h +96 -0
- roboticstoolbox/core/Eigen/src/Core/VectorwiseOp.h +784 -0
- roboticstoolbox/core/Eigen/src/Core/Visitor.h +381 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- roboticstoolbox/core/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/Half.h +942 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/Settings.h +49 -0
- roboticstoolbox/core/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- roboticstoolbox/core/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- roboticstoolbox/core/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- roboticstoolbox/core/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- roboticstoolbox/core/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- roboticstoolbox/core/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- roboticstoolbox/core/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- roboticstoolbox/core/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- roboticstoolbox/core/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- roboticstoolbox/core/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- roboticstoolbox/core/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- roboticstoolbox/core/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- roboticstoolbox/core/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- roboticstoolbox/core/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- roboticstoolbox/core/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- roboticstoolbox/core/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- roboticstoolbox/core/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- roboticstoolbox/core/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- roboticstoolbox/core/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- roboticstoolbox/core/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- roboticstoolbox/core/Eigen/src/Core/functors/StlFunctors.h +166 -0
- roboticstoolbox/core/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- roboticstoolbox/core/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- roboticstoolbox/core/Eigen/src/Core/products/Parallelizer.h +180 -0
- roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- roboticstoolbox/core/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- roboticstoolbox/core/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- roboticstoolbox/core/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- roboticstoolbox/core/Eigen/src/Core/util/BlasUtil.h +583 -0
- roboticstoolbox/core/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- roboticstoolbox/core/Eigen/src/Core/util/Constants.h +563 -0
- roboticstoolbox/core/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- roboticstoolbox/core/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- roboticstoolbox/core/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- roboticstoolbox/core/Eigen/src/Core/util/IntegralConstant.h +272 -0
- roboticstoolbox/core/Eigen/src/Core/util/MKL_support.h +137 -0
- roboticstoolbox/core/Eigen/src/Core/util/Macros.h +1464 -0
- roboticstoolbox/core/Eigen/src/Core/util/Memory.h +1163 -0
- roboticstoolbox/core/Eigen/src/Core/util/Meta.h +812 -0
- roboticstoolbox/core/Eigen/src/Core/util/NonMPL2.h +3 -0
- roboticstoolbox/core/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- roboticstoolbox/core/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- roboticstoolbox/core/Eigen/src/Core/util/StaticAssert.h +221 -0
- roboticstoolbox/core/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- roboticstoolbox/core/Eigen/src/Core/util/XprHelper.h +856 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- roboticstoolbox/core/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- roboticstoolbox/core/Eigen/src/Geometry/AlignedBox.h +486 -0
- roboticstoolbox/core/Eigen/src/Geometry/AngleAxis.h +247 -0
- roboticstoolbox/core/Eigen/src/Geometry/EulerAngles.h +114 -0
- roboticstoolbox/core/Eigen/src/Geometry/Homogeneous.h +501 -0
- roboticstoolbox/core/Eigen/src/Geometry/Hyperplane.h +282 -0
- roboticstoolbox/core/Eigen/src/Geometry/OrthoMethods.h +235 -0
- roboticstoolbox/core/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- roboticstoolbox/core/Eigen/src/Geometry/Quaternion.h +870 -0
- roboticstoolbox/core/Eigen/src/Geometry/Rotation2D.h +199 -0
- roboticstoolbox/core/Eigen/src/Geometry/RotationBase.h +206 -0
- roboticstoolbox/core/Eigen/src/Geometry/Scaling.h +188 -0
- roboticstoolbox/core/Eigen/src/Geometry/Transform.h +1563 -0
- roboticstoolbox/core/Eigen/src/Geometry/Translation.h +202 -0
- roboticstoolbox/core/Eigen/src/Geometry/Umeyama.h +166 -0
- roboticstoolbox/core/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- roboticstoolbox/core/Eigen/src/Householder/BlockHouseholder.h +110 -0
- roboticstoolbox/core/Eigen/src/Householder/Householder.h +176 -0
- roboticstoolbox/core/Eigen/src/Householder/HouseholderSequence.h +545 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- roboticstoolbox/core/Eigen/src/Jacobi/Jacobi.h +483 -0
- roboticstoolbox/core/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- roboticstoolbox/core/Eigen/src/LU/Determinant.h +117 -0
- roboticstoolbox/core/Eigen/src/LU/FullPivLU.h +877 -0
- roboticstoolbox/core/Eigen/src/LU/InverseImpl.h +432 -0
- roboticstoolbox/core/Eigen/src/LU/PartialPivLU.h +624 -0
- roboticstoolbox/core/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- roboticstoolbox/core/Eigen/src/LU/arch/InverseSize4.h +351 -0
- roboticstoolbox/core/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- roboticstoolbox/core/Eigen/src/OrderingMethods/Amd.h +435 -0
- roboticstoolbox/core/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- roboticstoolbox/core/Eigen/src/OrderingMethods/Ordering.h +153 -0
- roboticstoolbox/core/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- roboticstoolbox/core/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- roboticstoolbox/core/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- roboticstoolbox/core/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- roboticstoolbox/core/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- roboticstoolbox/core/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- roboticstoolbox/core/Eigen/src/QR/HouseholderQR.h +434 -0
- roboticstoolbox/core/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- roboticstoolbox/core/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- roboticstoolbox/core/Eigen/src/SVD/BDCSVD.h +1366 -0
- roboticstoolbox/core/Eigen/src/SVD/JacobiSVD.h +812 -0
- roboticstoolbox/core/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- roboticstoolbox/core/Eigen/src/SVD/SVDBase.h +376 -0
- roboticstoolbox/core/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- roboticstoolbox/core/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- roboticstoolbox/core/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- roboticstoolbox/core/Eigen/src/SparseCore/AmbiVector.h +378 -0
- roboticstoolbox/core/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- roboticstoolbox/core/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- roboticstoolbox/core/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseAssign.h +270 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseBlock.h +571 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseDot.h +98 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseMap.h +305 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseProduct.h +181 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseRedux.h +49 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseRef.h +397 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseUtil.h +186 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseVector.h +478 -0
- roboticstoolbox/core/Eigen/src/SparseCore/SparseView.h +254 -0
- roboticstoolbox/core/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU.h +923 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- roboticstoolbox/core/Eigen/src/SparseQR/SparseQR.h +758 -0
- roboticstoolbox/core/Eigen/src/StlSupport/StdDeque.h +116 -0
- roboticstoolbox/core/Eigen/src/StlSupport/StdList.h +106 -0
- roboticstoolbox/core/Eigen/src/StlSupport/StdVector.h +131 -0
- roboticstoolbox/core/Eigen/src/StlSupport/details.h +84 -0
- roboticstoolbox/core/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- roboticstoolbox/core/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- roboticstoolbox/core/Eigen/src/misc/Image.h +82 -0
- roboticstoolbox/core/Eigen/src/misc/Kernel.h +79 -0
- roboticstoolbox/core/Eigen/src/misc/RealSvd2x2.h +55 -0
- roboticstoolbox/core/Eigen/src/misc/blas.h +440 -0
- roboticstoolbox/core/Eigen/src/misc/lapack.h +152 -0
- roboticstoolbox/core/Eigen/src/misc/lapacke.h +16292 -0
- roboticstoolbox/core/Eigen/src/misc/lapacke_mangling.h +17 -0
- roboticstoolbox/core/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- roboticstoolbox/core/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- roboticstoolbox/core/Eigen/src/plugins/BlockMethods.h +1442 -0
- roboticstoolbox/core/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- roboticstoolbox/core/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- roboticstoolbox/core/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- roboticstoolbox/core/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- roboticstoolbox/core/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- roboticstoolbox/core/Eigen/src/plugins/ReshapedMethods.h +149 -0
- roboticstoolbox/core/fknm.cpp +1557 -0
- roboticstoolbox/core/fknm.h +55 -0
- roboticstoolbox/core/frne.c +351 -0
- roboticstoolbox/core/frne.h +96 -0
- roboticstoolbox/core/ik.cpp +301 -0
- roboticstoolbox/core/ik.h +59 -0
- roboticstoolbox/core/linalg.cpp +316 -0
- roboticstoolbox/core/linalg.h +64 -0
- roboticstoolbox/core/methods.cpp +372 -0
- roboticstoolbox/core/methods.h +32 -0
- roboticstoolbox/core/ne.c +493 -0
- roboticstoolbox/core/structs.cpp +24 -0
- roboticstoolbox/core/structs.h +62 -0
- roboticstoolbox/core/vmath.c +163 -0
- roboticstoolbox/core/vmath.h +32 -0
- roboticstoolbox/fknm.cp313-win_amd64.pyd +0 -0
- roboticstoolbox/frne.cp313-win_amd64.pyd +0 -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 +193 -0
- roboticstoolbox/mobile/drivers.py +390 -0
- roboticstoolbox/mobile/landmarkmap.py +181 -0
- roboticstoolbox/mobile/sensors.py +771 -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 +83 -0
- roboticstoolbox/models/DH/Hyper3d.py +85 -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 +85 -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 +178 -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 +109 -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 +69 -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 +54 -0
- roboticstoolbox/models/URDF/Fetch.py +70 -0
- roboticstoolbox/models/URDF/FetchCamera.py +71 -0
- roboticstoolbox/models/URDF/Frankie.py +75 -0
- roboticstoolbox/models/URDF/FrankieOmni.py +94 -0
- roboticstoolbox/models/URDF/KinovaGen3.py +71 -0
- roboticstoolbox/models/URDF/LBR.py +59 -0
- roboticstoolbox/models/URDF/Mico.py +68 -0
- roboticstoolbox/models/URDF/PR2.py +64 -0
- roboticstoolbox/models/URDF/Panda.py +67 -0
- roboticstoolbox/models/URDF/Puma560.py +97 -0
- roboticstoolbox/models/URDF/UR10.py +53 -0
- roboticstoolbox/models/URDF/UR3.py +53 -0
- roboticstoolbox/models/URDF/UR5.py +74 -0
- roboticstoolbox/models/URDF/Valkyrie.py +84 -0
- roboticstoolbox/models/URDF/YuMi.py +109 -0
- roboticstoolbox/models/URDF/__init__.py +53 -0
- roboticstoolbox/models/URDF/px100.py +56 -0
- roboticstoolbox/models/URDF/px150.py +56 -0
- roboticstoolbox/models/URDF/rx150.py +56 -0
- roboticstoolbox/models/URDF/rx200.py +56 -0
- roboticstoolbox/models/URDF/vx300.py +56 -0
- roboticstoolbox/models/URDF/vx300s.py +56 -0
- roboticstoolbox/models/URDF/wx200.py +56 -0
- roboticstoolbox/models/URDF/wx250.py +56 -0
- roboticstoolbox/models/URDF/wx250s.py +56 -0
- roboticstoolbox/models/__init__.py +7 -0
- roboticstoolbox/models/list.py +119 -0
- roboticstoolbox/robot/BaseRobot.py +3133 -0
- roboticstoolbox/robot/DHFactor.py +522 -0
- roboticstoolbox/robot/DHLink.py +981 -0
- roboticstoolbox/robot/DHRobot.py +2520 -0
- roboticstoolbox/robot/Dynamics.py +1620 -0
- roboticstoolbox/robot/ELink.py +23 -0
- roboticstoolbox/robot/ERobot.py +25 -0
- roboticstoolbox/robot/ET.py +1097 -0
- roboticstoolbox/robot/ETS.py +3542 -0
- roboticstoolbox/robot/Gripper.py +282 -0
- roboticstoolbox/robot/IK.py +1522 -0
- roboticstoolbox/robot/Link.py +1698 -0
- roboticstoolbox/robot/PoERobot.py +348 -0
- roboticstoolbox/robot/Robot.py +2100 -0
- roboticstoolbox/robot/RobotKinematics.py +1725 -0
- roboticstoolbox/robot/RobotProto.py +92 -0
- roboticstoolbox/robot/__init__.py +54 -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 +106 -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 +1976 -0
- roboticstoolbox/tools/urdf/utils.py +50 -0
- roboticstoolbox/tools/xacro/__init__.py +1148 -0
- roboticstoolbox/tools/xacro/cli.py +128 -0
- roboticstoolbox/tools/xacro/color.py +66 -0
- roboticstoolbox/tools/xacro/tests/CMakeLists.txt +4 -0
- roboticstoolbox/tools/xacro/tests/broken.xacro +1 -0
- roboticstoolbox/tools/xacro/tests/emoji.xacro +5 -0
- roboticstoolbox/tools/xacro/tests/include1.xacro +4 -0
- roboticstoolbox/tools/xacro/tests/include1.xml +1 -0
- roboticstoolbox/tools/xacro/tests/include2.xacro +4 -0
- roboticstoolbox/tools/xacro/tests/include2.xml +1 -0
- roboticstoolbox/tools/xacro/tests/robots/README +4 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/base_v0/base.gazebo.xacro +59 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/base_v0/base.transmission.xacro +24 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/base_v0/base.urdf.xacro +264 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/common.xacro +71 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/forearm_v0/forearm.gazebo.xacro +36 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/forearm_v0/forearm.transmission.xacro +20 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/forearm_v0/forearm.urdf.xacro +130 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/gazebo/gazebo.urdf.xacro +24 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/gripper_v0/gripper.gazebo.xacro +288 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/gripper_v0/gripper.transmission.xacro +50 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/gripper_v0/gripper.urdf.xacro +374 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/head_v0/head.gazebo.xacro +16 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/head_v0/head.transmission.xacro +34 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/head_v0/head.urdf.xacro +147 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/materials.urdf.xacro +52 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/pr2.urdf.xacro +157 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/pr2_1.11.4.xml +3781 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/double_stereo_camera.gazebo.xacro +16 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/double_stereo_camera.urdf.xacro +61 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/head_sensor_package.gazebo.xacro +20 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/head_sensor_package.urdf.xacro +63 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/hokuyo_lx30_laser.gazebo.xacro +39 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/hokuyo_lx30_laser.urdf.xacro +27 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_camera.gazebo.xacro +87 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_camera.urdf.xacro +55 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_prosilica_camera.gazebo.xacro +193 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_prosilica_camera.urdf.xacro +181 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/microstrain_3dmgx2_imu.gazebo.xacro +20 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/microstrain_3dmgx2_imu.urdf.xacro +25 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/projector_wg6802418.gazebo.xacro +31 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/projector_wg6802418.urdf.xacro +42 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/prosilica_gc2450_camera.gazebo.xacro +43 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/prosilica_gc2450_camera.urdf.xacro +49 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/stereo_camera.gazebo.xacro +23 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/stereo_camera.urdf.xacro +71 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/wge100_camera.gazebo.xacro +46 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/wge100_camera.urdf.xacro +47 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/shoulder_v0/shoulder.gazebo.xacro +40 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/shoulder_v0/shoulder.transmission.xacro +35 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/shoulder_v0/shoulder.urdf.xacro +167 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/tilting_laser_v0/tilting_laser.gazebo.xacro +11 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/tilting_laser_v0/tilting_laser.transmission.xacro +14 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/tilting_laser_v0/tilting_laser.urdf.xacro +60 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/torso_v0/torso.gazebo.xacro +37 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/torso_v0/torso.transmission.xacro +22 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/torso_v0/torso.urdf.xacro +122 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/upper_arm_v0/upper_arm.gazebo.xacro +39 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/upper_arm_v0/upper_arm.transmission.xacro +28 -0
- roboticstoolbox/tools/xacro/tests/robots/pr2/upper_arm_v0/upper_arm.urdf.xacro +173 -0
- roboticstoolbox/tools/xacro/tests/settings.yaml +9 -0
- roboticstoolbox/tools/xacro/tests/subdir/foo.xacro +3 -0
- roboticstoolbox/tools/xacro/tests/subdir/include-recursive.xacro +5 -0
- roboticstoolbox/tools/xacro/tests/subdir/include1.xml +1 -0
- roboticstoolbox/tools/xacro/tests/test_xacro.py +1418 -0
- roboticstoolbox/tools/xacro/xmlutils.py +152 -0
- roboticstoolbox_python-1.3.0.dist-info/METADATA +552 -0
- roboticstoolbox_python-1.3.0.dist-info/RECORD +673 -0
- roboticstoolbox_python-1.3.0.dist-info/WHEEL +5 -0
- roboticstoolbox_python-1.3.0.dist-info/entry_points.txt +6 -0
- roboticstoolbox_python-1.3.0.dist-info/licenses/LICENSE +21 -0
- spatialgeometry/__init__.py +32 -0
- spatialgeometry/geom/CollisionShape.py +419 -0
- spatialgeometry/geom/SceneGroup.py +26 -0
- spatialgeometry/geom/SceneNode.py +315 -0
- spatialgeometry/geom/Shape.py +420 -0
- spatialgeometry/geom/__init__.py +26 -0
- spatialgeometry/scene.py +107 -0
- spatialgeometry/tools/__init__.py +0 -0
- spatialgeometry/tools/stdout_supress.py +302 -0
|
@@ -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)
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
@author: Peter Corke
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from roboticstoolbox import DHRobot, RevoluteDH, PrismaticDH
|
|
7
|
+
from math import pi
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Stanford(DHRobot):
|
|
12
|
+
"""
|
|
13
|
+
Class that models a Stanford arm manipulator
|
|
14
|
+
|
|
15
|
+
``Stanford()`` is a class which models a Unimation Puma560 robot and
|
|
16
|
+
describes its kinematic and dynamic characteristics using standard DH
|
|
17
|
+
conventions.
|
|
18
|
+
|
|
19
|
+
.. runblock:: pycon
|
|
20
|
+
|
|
21
|
+
>>> import roboticstoolbox as rtb
|
|
22
|
+
>>> robot = rtb.models.DH.Stanford()
|
|
23
|
+
>>> print(robot)
|
|
24
|
+
|
|
25
|
+
Defined joint configurations are:
|
|
26
|
+
|
|
27
|
+
- qz, zero joint angle configuration
|
|
28
|
+
|
|
29
|
+
.. note::
|
|
30
|
+
- SI units are used.
|
|
31
|
+
- Gear ratios not currently known, though reflected armature inertia
|
|
32
|
+
is known, so gear ratios are set to 1.
|
|
33
|
+
|
|
34
|
+
:references:
|
|
35
|
+
- Kinematic data from "Modelling, Trajectory calculation and Servoing
|
|
36
|
+
of a computer controlled arm". Stanford AIM-177. Figure 2.3
|
|
37
|
+
- Dynamic data from "Robot manipulators: mathematics, programming and
|
|
38
|
+
control"
|
|
39
|
+
Paul 1981, Tables 6.5, 6.6
|
|
40
|
+
- Dobrotin & Scheinman, "Design of a computer controlled manipulator
|
|
41
|
+
for robot research", IJCAI, 1973.
|
|
42
|
+
|
|
43
|
+
.. codeauthor:: Peter Corke
|
|
44
|
+
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
def __init__(self):
|
|
48
|
+
|
|
49
|
+
deg = pi / 180
|
|
50
|
+
inch = 0.0254
|
|
51
|
+
|
|
52
|
+
L0 = RevoluteDH(
|
|
53
|
+
d=0.412, # link length (Dennavit-Hartenberg notation)
|
|
54
|
+
a=0, # link offset (Dennavit-Hartenberg notation)
|
|
55
|
+
alpha=-pi / 2, # link twist (Dennavit-Hartenberg notation)
|
|
56
|
+
# inertia tensor of link with respect to
|
|
57
|
+
# center of mass I = [L_xx, L_yy, L_zz,
|
|
58
|
+
# L_xy, L_yz, L_xz]
|
|
59
|
+
I=[0.276, 0.255, 0.071, 0, 0, 0],
|
|
60
|
+
# distance of ith origin to center of mass [x,y,z]
|
|
61
|
+
# in link reference frame
|
|
62
|
+
r=[0, 0.0175, -0.1105],
|
|
63
|
+
m=9.29, # mass of link
|
|
64
|
+
Jm=0.953, # actuator inertia
|
|
65
|
+
G=1, # gear ratio
|
|
66
|
+
qlim=[-170 * deg, 170 * deg],
|
|
67
|
+
) # minimum and maximum joint angle
|
|
68
|
+
|
|
69
|
+
L1 = RevoluteDH(
|
|
70
|
+
d=0.154,
|
|
71
|
+
a=0.0,
|
|
72
|
+
alpha=pi / 2,
|
|
73
|
+
I=[0.108, 0.018, 0.100, 0, 0, 0],
|
|
74
|
+
r=[0, -1.054, 0],
|
|
75
|
+
m=5.01,
|
|
76
|
+
Jm=2.193,
|
|
77
|
+
G=1,
|
|
78
|
+
qlim=[-170 * deg, 170 * deg],
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
L2 = PrismaticDH(
|
|
82
|
+
theta=-pi / 2,
|
|
83
|
+
a=0.0203,
|
|
84
|
+
alpha=0,
|
|
85
|
+
I=[2.51, 2.51, 0.006, 0, 0, 0],
|
|
86
|
+
r=[0, 0, -6.447],
|
|
87
|
+
m=4.25,
|
|
88
|
+
Jm=0.782,
|
|
89
|
+
G=1,
|
|
90
|
+
qlim=[12 * inch, (12 + 38) * inch],
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
L3 = RevoluteDH(
|
|
94
|
+
d=0,
|
|
95
|
+
a=0,
|
|
96
|
+
alpha=-pi / 2,
|
|
97
|
+
I=[0.002, 0.001, 0.001, 0, 0, 0],
|
|
98
|
+
r=[0, 0.092, -0.054],
|
|
99
|
+
m=1.08,
|
|
100
|
+
Jm=0.106,
|
|
101
|
+
G=1,
|
|
102
|
+
qlim=[-170 * deg, 170 * deg],
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
L4 = RevoluteDH(
|
|
106
|
+
d=0,
|
|
107
|
+
a=0,
|
|
108
|
+
alpha=pi / 2,
|
|
109
|
+
I=[0.003, 0.0004, 0, 0, 0, 0],
|
|
110
|
+
r=[0, 0.566, 0.003],
|
|
111
|
+
m=0.630,
|
|
112
|
+
Jm=0.097,
|
|
113
|
+
G=1,
|
|
114
|
+
qlim=[-90 * deg, 90 * deg],
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
L5 = RevoluteDH(
|
|
118
|
+
d=0,
|
|
119
|
+
a=0,
|
|
120
|
+
alpha=0,
|
|
121
|
+
I=[0.013, 0.013, 0.0003, 0, 0, 0],
|
|
122
|
+
r=[0, 0, 1.554],
|
|
123
|
+
m=0.51,
|
|
124
|
+
Jm=0.020,
|
|
125
|
+
G=1,
|
|
126
|
+
qlim=[-170 * deg, 170 * deg],
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
L = [L0, L1, L2, L3, L4, L5]
|
|
130
|
+
|
|
131
|
+
super().__init__(
|
|
132
|
+
L,
|
|
133
|
+
name="Stanford arm",
|
|
134
|
+
manufacturer="Victor Scheinman",
|
|
135
|
+
keywords=("dynamics",),
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
self.qr = np.zeros(6)
|
|
139
|
+
self.qz = np.zeros(6)
|
|
140
|
+
|
|
141
|
+
self.addconfiguration("qr", self.qr)
|
|
142
|
+
self.addconfiguration("qz", self.qz)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
if __name__ == "__main__": # pragma nocover
|
|
146
|
+
stanford = Stanford()
|
|
147
|
+
print(stanford)
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@author: Peter Corke
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from roboticstoolbox import DHRobot, RevoluteDH
|
|
6
|
+
|
|
7
|
+
# from math import pi
|
|
8
|
+
from spatialmath import SE3
|
|
9
|
+
import numpy as np
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TwoLink(DHRobot):
|
|
13
|
+
"""
|
|
14
|
+
Class that models a 2-link robot moving in the vertical plane
|
|
15
|
+
|
|
16
|
+
:param symbolic: use symbolic constants
|
|
17
|
+
:type symbolic: bool
|
|
18
|
+
|
|
19
|
+
``TwoLink()`` is a class which models a 2-link planar robot and
|
|
20
|
+
describes its kinematic and dynamic characteristics using standard DH
|
|
21
|
+
conventions. of a simple planar 2-link mechanism moving in the xz-plane, it experiences gravity loading.
|
|
22
|
+
All mass is concentrated at the joints.
|
|
23
|
+
|
|
24
|
+
.. runblock:: pycon
|
|
25
|
+
|
|
26
|
+
>>> import roboticstoolbox as rtb
|
|
27
|
+
>>> robot = rtb.models.DH.TwoLink()
|
|
28
|
+
>>> print(robot)
|
|
29
|
+
|
|
30
|
+
The parameters values depend on the ``symbolic`` parameter
|
|
31
|
+
|
|
32
|
+
======================================= ================= ==============
|
|
33
|
+
Parameters Numeric values Symbolic values
|
|
34
|
+
======================================= ================= ==============
|
|
35
|
+
link lengths 1, 1 a1, a2
|
|
36
|
+
link masses 1, 1 m1, m2
|
|
37
|
+
link CoMs in the link frame x-direction -0.5, -0.5 c1, c2
|
|
38
|
+
gravitational acceleration 9.8 g
|
|
39
|
+
======================================= ================= ==============
|
|
40
|
+
|
|
41
|
+
Defined joint configurations are:
|
|
42
|
+
|
|
43
|
+
- qz, zero angles, all folded up
|
|
44
|
+
- q1, links are horizontal and vertical respectively
|
|
45
|
+
- q2, links are vertical and horizontal respectively
|
|
46
|
+
- qn, nominal working configuration
|
|
47
|
+
|
|
48
|
+
.. note::
|
|
49
|
+
|
|
50
|
+
- Robot has only 2 DoF.
|
|
51
|
+
- Motor inertia is 0.
|
|
52
|
+
- Link inertias are 0.
|
|
53
|
+
- Viscous and Coulomb friction is 0.
|
|
54
|
+
|
|
55
|
+
:Reference: Based on Fig 3-6 (p73) of Spong and Vidyasagar (1st edition).
|
|
56
|
+
|
|
57
|
+
.. codeauthor:: Peter Corke
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
def __init__(self, symbolic=False):
|
|
61
|
+
|
|
62
|
+
if symbolic:
|
|
63
|
+
import spatialmath.base.symbolic as sym
|
|
64
|
+
|
|
65
|
+
zero = sym.zero()
|
|
66
|
+
pi = sym.pi()
|
|
67
|
+
a1, a2 = sym.symbol("a1 a2") # type: ignore
|
|
68
|
+
m1, m2 = sym.symbol("m1 m2") # type: ignore
|
|
69
|
+
c1, c2 = sym.symbol("c1 c2") # type: ignore
|
|
70
|
+
g = sym.symbol("g")
|
|
71
|
+
else:
|
|
72
|
+
from math import pi
|
|
73
|
+
|
|
74
|
+
zero = 0.0
|
|
75
|
+
a1 = 1
|
|
76
|
+
a2 = 1
|
|
77
|
+
m1 = 1
|
|
78
|
+
m2 = 1
|
|
79
|
+
c1 = -0.5
|
|
80
|
+
c2 = -0.5
|
|
81
|
+
g = 9.8
|
|
82
|
+
|
|
83
|
+
links = [
|
|
84
|
+
RevoluteDH(a=a1, alpha=zero, m=m1, r=[c1, 0, 0]),
|
|
85
|
+
RevoluteDH(a=a2, alpha=zero, m=m2, r=[c2, 0, 0]),
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
super().__init__(
|
|
89
|
+
links, symbolic=symbolic, name="2 link", keywords=("planar", "dynamics")
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
self.qr = np.array([pi / 6, -pi / 6])
|
|
93
|
+
self.qz = np.zeros(2)
|
|
94
|
+
|
|
95
|
+
self.addconfiguration("qr", self.qr)
|
|
96
|
+
self.addconfiguration("qz", self.qz)
|
|
97
|
+
|
|
98
|
+
self.addconfiguration_attr("qz", [0, 0])
|
|
99
|
+
self.addconfiguration_attr("q1", [0, pi / 2])
|
|
100
|
+
self.addconfiguration_attr("q2", [pi / 2, -pi / 2])
|
|
101
|
+
self.addconfiguration_attr("qn", [pi / 6, -pi / 6])
|
|
102
|
+
|
|
103
|
+
self.base = SE3.Rx(pi / 2)
|
|
104
|
+
self.gravity = [0, 0, g]
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
if __name__ == "__main__": # pragma nocover
|
|
108
|
+
robot = TwoLink(symbolic=True)
|
|
109
|
+
print(robot)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
from roboticstoolbox import DHRobot, RevoluteDH
|
|
3
|
+
from spatialmath import SE3
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class UR10(DHRobot):
|
|
7
|
+
"""
|
|
8
|
+
Class that models a Universal Robotics UR10 manipulator
|
|
9
|
+
|
|
10
|
+
:param symbolic: use symbolic constants
|
|
11
|
+
:type symbolic: bool
|
|
12
|
+
|
|
13
|
+
``UR10()`` is an object which models a Unimation Puma560 robot and
|
|
14
|
+
describes its kinematic and dynamic characteristics using standard DH
|
|
15
|
+
conventions.
|
|
16
|
+
|
|
17
|
+
.. runblock:: pycon
|
|
18
|
+
|
|
19
|
+
>>> import roboticstoolbox as rtb
|
|
20
|
+
>>> robot = rtb.models.DH.UR10()
|
|
21
|
+
>>> print(robot)
|
|
22
|
+
|
|
23
|
+
Defined joint configurations are:
|
|
24
|
+
|
|
25
|
+
- qz, zero joint angle configuration
|
|
26
|
+
- qr, arm horizontal along x-axis
|
|
27
|
+
|
|
28
|
+
.. note::
|
|
29
|
+
- SI units are used.
|
|
30
|
+
|
|
31
|
+
:References:
|
|
32
|
+
|
|
33
|
+
- `Parameters for calculations of kinematics and dynamics <https://www.universal-robots.com/articles/ur/parameters-for-calculations-of-kinematics-and-dynamics>`_
|
|
34
|
+
|
|
35
|
+
:sealso: :func:`UR3`, :func:`UR5`
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
.. codeauthor:: Peter Corke
|
|
39
|
+
""" # noqa
|
|
40
|
+
|
|
41
|
+
def __init__(self, symbolic=False):
|
|
42
|
+
if symbolic:
|
|
43
|
+
import spatialmath.base.symbolic as sym
|
|
44
|
+
|
|
45
|
+
zero = sym.zero()
|
|
46
|
+
pi = sym.pi()
|
|
47
|
+
else:
|
|
48
|
+
from math import pi
|
|
49
|
+
|
|
50
|
+
zero = 0.0
|
|
51
|
+
|
|
52
|
+
deg = pi / 180
|
|
53
|
+
inch = 0.0254
|
|
54
|
+
|
|
55
|
+
# robot length values (metres)
|
|
56
|
+
a = [0, -0.612, -0.5723, 0, 0, 0]
|
|
57
|
+
d = [0.1273, 0, 0, 0.163941, 0.1157, 0.0922]
|
|
58
|
+
|
|
59
|
+
alpha = [pi / 2, zero, zero, pi / 2, -pi / 2, zero]
|
|
60
|
+
|
|
61
|
+
# mass data
|
|
62
|
+
mass = [7.1, 12.7, 4.27, 2.000, 2.000, 0.365]
|
|
63
|
+
center_of_mass = [
|
|
64
|
+
[0.021, 0, 0.027],
|
|
65
|
+
[0.38, 0, 0.158],
|
|
66
|
+
[0.24, 0, 0.068],
|
|
67
|
+
[0.0, 0.007, 0.018],
|
|
68
|
+
[0.0, 0.007, 0.018],
|
|
69
|
+
[0, 0, -0.026],
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
# inertia matrices for each link
|
|
73
|
+
inertia = [
|
|
74
|
+
np.array(
|
|
75
|
+
[[0.0341, 0, -0.0043], [0, 0.0353, 0.0001], [-0.0043, 0.0001, 0.0216]]
|
|
76
|
+
),
|
|
77
|
+
np.array(
|
|
78
|
+
[[0.0281, 0.0001, -0.0156], [0.0001, 0.7707, 0], [-0.0156, 0, 0.7694]]
|
|
79
|
+
),
|
|
80
|
+
np.array(
|
|
81
|
+
[[0.0101, 0.0001, 0.0092], [0.0001, 0.3093, 0], [0.0092, 0, 0.3065]]
|
|
82
|
+
),
|
|
83
|
+
np.array(
|
|
84
|
+
[[0.0030, -0.0000, 0], [-0.0000, 0.0022, -0.0002], [0, -0.0002, 0.0026]]
|
|
85
|
+
),
|
|
86
|
+
np.array(
|
|
87
|
+
[[0.0030, -0.0000, 0], [-0.0000, 0.0022, -0.0002], [0, -0.0002, 0.0026]]
|
|
88
|
+
),
|
|
89
|
+
np.array([[0, 0, 0], [0, 0.0004, 0], [0, 0, 0.0003]]),
|
|
90
|
+
]
|
|
91
|
+
|
|
92
|
+
links = []
|
|
93
|
+
|
|
94
|
+
for j in range(6):
|
|
95
|
+
link = RevoluteDH(
|
|
96
|
+
d=d[j],
|
|
97
|
+
a=a[j],
|
|
98
|
+
alpha=alpha[j],
|
|
99
|
+
m=mass[j],
|
|
100
|
+
r=center_of_mass[j],
|
|
101
|
+
G=1,
|
|
102
|
+
I=inertia[j],
|
|
103
|
+
)
|
|
104
|
+
links.append(link)
|
|
105
|
+
|
|
106
|
+
super().__init__(
|
|
107
|
+
links,
|
|
108
|
+
name="UR10",
|
|
109
|
+
manufacturer="Universal Robotics",
|
|
110
|
+
keywords=("dynamics", "symbolic"),
|
|
111
|
+
symbolic=symbolic,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
self.qr = np.array([180, 0, 0, 0, 90, 0]) * deg
|
|
115
|
+
self.qz = np.zeros(6)
|
|
116
|
+
|
|
117
|
+
self.addconfiguration("qr", self.qr)
|
|
118
|
+
self.addconfiguration("qz", self.qz)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
if __name__ == "__main__": # pragma nocover
|
|
122
|
+
ur10 = UR10(symbolic=False)
|
|
123
|
+
print(ur10)
|
|
124
|
+
# print(ur10.dyntable())
|