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,355 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MPL-specific plotting methods for robot objects.
|
|
3
|
+
|
|
4
|
+
This mixin is mixed into BaseRobot. All matplotlib / PyPlot imports are
|
|
5
|
+
deferred to the first call so that importing ``roboticstoolbox`` in a
|
|
6
|
+
headless or browser environment (Pyodide / JupyterLite) does not pull in
|
|
7
|
+
matplotlib.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from typing import TYPE_CHECKING, Any, Literal as L
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING: # pragma: nocover
|
|
15
|
+
from roboticstoolbox.backends.PyPlot import PyPlot
|
|
16
|
+
from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
|
|
17
|
+
from roboticstoolbox.tools.types import ArrayLike
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class RobotPlottingMPLMixin:
|
|
21
|
+
"""Mixin that adds MPL-specific visualisation to BaseRobot subclasses."""
|
|
22
|
+
|
|
23
|
+
# ------------------------------------------------------------------
|
|
24
|
+
# Colour helpers
|
|
25
|
+
# ------------------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
def linkcolormap(self, linkcolors: list[Any] | str = "viridis"):
|
|
28
|
+
"""
|
|
29
|
+
Create a colormap for robot joints.
|
|
30
|
+
|
|
31
|
+
:param linkcolors: list of colors or colormap name, defaults to ``"viridis"``
|
|
32
|
+
:returns: the color map
|
|
33
|
+
|
|
34
|
+
- ``cm = robot.linkcolormap()`` is an n-element colormap that gives a
|
|
35
|
+
unique color for every link. The RGBA colors for link ``j`` are
|
|
36
|
+
``cm(j)``.
|
|
37
|
+
- ``cm = robot.linkcolormap(cmap)`` as above but ``cmap`` is the name
|
|
38
|
+
of a valid matplotlib colormap. The default, example above, is the
|
|
39
|
+
``viridis`` colormap.
|
|
40
|
+
- ``cm = robot.linkcolormap(list of colors)`` as above but a
|
|
41
|
+
colormap is created from a list of n color names given as strings,
|
|
42
|
+
tuples or hexstrings.
|
|
43
|
+
|
|
44
|
+
.. runblock:: pycon
|
|
45
|
+
|
|
46
|
+
>>> import roboticstoolbox as rtb
|
|
47
|
+
>>> robot = rtb.models.DH.Puma560()
|
|
48
|
+
>>> cm = robot.linkcolormap("inferno")
|
|
49
|
+
>>> print(cm(range(6))) # cm(i) is 3rd color in colormap
|
|
50
|
+
>>> cm = robot.linkcolormap(
|
|
51
|
+
... ['red', 'g', (0,0.5,0), '#0f8040', 'yellow', 'cyan'])
|
|
52
|
+
>>> print(cm(range(6)))
|
|
53
|
+
|
|
54
|
+
.. rubric:: Notes
|
|
55
|
+
|
|
56
|
+
- Colormaps have 4-elements: red, green, blue, alpha (RGBA)
|
|
57
|
+
- Names of supported colors and colormaps are defined in the
|
|
58
|
+
matplotlib documentation.
|
|
59
|
+
|
|
60
|
+
- `Specifying colors <https://matplotlib.org/3.1.0/tutorials/colors/colors.html>`_
|
|
61
|
+
- `Colormaps <https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html>`_
|
|
62
|
+
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
from matplotlib import cm, colors
|
|
66
|
+
|
|
67
|
+
if isinstance(linkcolors, list) and len(linkcolors) == self.n: # type: ignore[attr-defined] # pragma: nocover
|
|
68
|
+
return colors.ListedColormap(linkcolors)
|
|
69
|
+
else: # pragma: nocover
|
|
70
|
+
return cm.get_cmap(linkcolors, 6) # type: ignore[arg-type]
|
|
71
|
+
|
|
72
|
+
# ------------------------------------------------------------------
|
|
73
|
+
# Ellipse creation
|
|
74
|
+
# ------------------------------------------------------------------
|
|
75
|
+
|
|
76
|
+
def fellipse(
|
|
77
|
+
self,
|
|
78
|
+
q: ArrayLike,
|
|
79
|
+
opt: L["trans", "rot"] = "trans",
|
|
80
|
+
unit: L["rad", "deg"] = "rad",
|
|
81
|
+
centre: L["ee"] | ArrayLike = "ee",
|
|
82
|
+
add: bool = True,
|
|
83
|
+
) -> EllipsePlot:
|
|
84
|
+
"""
|
|
85
|
+
Create a force ellipsoid object for plotting with PyPlot.
|
|
86
|
+
|
|
87
|
+
:param q: the joint configuration of the robot
|
|
88
|
+
:param opt: ``'trans'`` or ``'rot'`` — plot the translational or
|
|
89
|
+
rotational force ellipsoid
|
|
90
|
+
:param unit: ``'rad'`` or ``'deg'``
|
|
91
|
+
:param centre: centre of the ellipsoid — ``'ee'`` for the
|
|
92
|
+
end-effector or a 3-vector ``[x, y, z]`` in the world frame
|
|
93
|
+
:param add: if ``True``, add the ellipsoid to the active plot environment
|
|
94
|
+
:returns: an EllipsePlot object
|
|
95
|
+
:rtype: EllipsePlot
|
|
96
|
+
|
|
97
|
+
``robot.fellipse(q)`` creates a force ellipsoid for the robot at
|
|
98
|
+
pose ``q``. By default the ellipsoid is centered at the end-effector.
|
|
99
|
+
|
|
100
|
+
.. rubric:: Notes
|
|
101
|
+
|
|
102
|
+
- By default the ellipsoid related to translational motion is
|
|
103
|
+
drawn. Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
|
|
104
|
+
- By default the ellipsoid is drawn at the end-effector. The option
|
|
105
|
+
``centre`` allows its origin to be set to the specified 3-vector,
|
|
106
|
+
or the string ``"ee"`` ensures it is drawn at the end-effector position.
|
|
107
|
+
"""
|
|
108
|
+
import roboticstoolbox as rtb
|
|
109
|
+
from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
|
|
110
|
+
from spatialmath.base.argcheck import getunit
|
|
111
|
+
|
|
112
|
+
if isinstance(self, rtb.ERobot): # pragma: nocover
|
|
113
|
+
raise NotImplementedError("ERobot fellipse not implemented yet")
|
|
114
|
+
|
|
115
|
+
q = getunit(q, unit) # type: ignore[assignment]
|
|
116
|
+
ell = EllipsePlot(self, q, "f", opt, centre=centre)
|
|
117
|
+
|
|
118
|
+
if add:
|
|
119
|
+
self._maybe_add_ellipse_to_active_env(ell)
|
|
120
|
+
|
|
121
|
+
return ell
|
|
122
|
+
|
|
123
|
+
def vellipse(
|
|
124
|
+
self,
|
|
125
|
+
q: ArrayLike,
|
|
126
|
+
opt: L["trans", "rot"] = "trans",
|
|
127
|
+
unit: L["rad", "deg"] = "rad",
|
|
128
|
+
centre: L["ee"] | ArrayLike = "ee",
|
|
129
|
+
scale: float = 0.1,
|
|
130
|
+
add: bool = True,
|
|
131
|
+
) -> EllipsePlot:
|
|
132
|
+
"""
|
|
133
|
+
Create a velocity ellipsoid object for plotting with PyPlot.
|
|
134
|
+
|
|
135
|
+
:param q: the joint configuration of the robot
|
|
136
|
+
:param opt: ``'trans'`` or ``'rot'`` — plot the translational or
|
|
137
|
+
rotational velocity ellipsoid
|
|
138
|
+
:param unit: ``'rad'`` or ``'deg'``
|
|
139
|
+
:param centre: centre of the ellipsoid — ``'ee'`` for the
|
|
140
|
+
end-effector or a 3-vector ``[x, y, z]`` in the world frame
|
|
141
|
+
:param scale: scale factor for the ellipsoid
|
|
142
|
+
:param add: if ``True``, add the ellipsoid to the active plot environment
|
|
143
|
+
:returns: an EllipsePlot object
|
|
144
|
+
:rtype: EllipsePlot
|
|
145
|
+
|
|
146
|
+
``robot.vellipse(q)`` creates a velocity ellipsoid for the robot at
|
|
147
|
+
pose ``q``. By default the ellipsoid is centered at the end-effector.
|
|
148
|
+
|
|
149
|
+
.. rubric:: Notes
|
|
150
|
+
|
|
151
|
+
- By default the ellipsoid related to translational motion is
|
|
152
|
+
drawn. Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
|
|
153
|
+
- By default the ellipsoid is drawn at the end-effector. The option
|
|
154
|
+
``centre`` allows its origin to be set to the specified 3-vector,
|
|
155
|
+
or the string ``"ee"`` ensures it is drawn at the end-effector position.
|
|
156
|
+
"""
|
|
157
|
+
import roboticstoolbox as rtb
|
|
158
|
+
from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
|
|
159
|
+
from spatialmath.base.argcheck import getunit
|
|
160
|
+
|
|
161
|
+
if isinstance(self, rtb.ERobot): # pragma: nocover
|
|
162
|
+
raise NotImplementedError("ERobot vellipse not implemented yet")
|
|
163
|
+
|
|
164
|
+
q = getunit(q, unit) # type: ignore[assignment]
|
|
165
|
+
ell = EllipsePlot(self, q, "v", opt, centre=centre, scale=scale)
|
|
166
|
+
|
|
167
|
+
if add:
|
|
168
|
+
self._maybe_add_ellipse_to_active_env(ell)
|
|
169
|
+
|
|
170
|
+
return ell
|
|
171
|
+
|
|
172
|
+
def _maybe_add_ellipse_to_active_env(self, ellipse: EllipsePlot) -> None:
|
|
173
|
+
"""Add ellipse to the most recently active PyPlot environment, if available."""
|
|
174
|
+
env = self._active_plot_env # type: ignore[attr-defined]
|
|
175
|
+
if env is None:
|
|
176
|
+
return
|
|
177
|
+
|
|
178
|
+
if not getattr(env, "supports_ellipse", False):
|
|
179
|
+
return
|
|
180
|
+
|
|
181
|
+
try:
|
|
182
|
+
env.add(ellipse)
|
|
183
|
+
except Exception:
|
|
184
|
+
pass
|
|
185
|
+
|
|
186
|
+
# ------------------------------------------------------------------
|
|
187
|
+
# Ellipse plotting
|
|
188
|
+
# ------------------------------------------------------------------
|
|
189
|
+
|
|
190
|
+
def plot_ellipse(
|
|
191
|
+
self,
|
|
192
|
+
ellipse: EllipsePlot,
|
|
193
|
+
block: bool = True,
|
|
194
|
+
limits: ArrayLike | None = None,
|
|
195
|
+
jointaxes: bool = True,
|
|
196
|
+
eeframe: bool = True,
|
|
197
|
+
shadow: bool = True,
|
|
198
|
+
name: bool = True,
|
|
199
|
+
) -> PyPlot:
|
|
200
|
+
"""
|
|
201
|
+
Plot an ellipsoid.
|
|
202
|
+
|
|
203
|
+
:param ellipse: the ellipsoid to plot
|
|
204
|
+
:param block: block operation of the code and keep the figure open
|
|
205
|
+
:param limits: custom view limits ``[x1, x2, y1, y2, z1, z2]``; autoscales if not supplied
|
|
206
|
+
:param jointaxes: plot an arrow indicating the joint axis
|
|
207
|
+
:param eeframe: plot the end-effector coordinate frame
|
|
208
|
+
:param shadow: plot a shadow of the robot in the x-y plane
|
|
209
|
+
:param name: plot the name of the robot near its base
|
|
210
|
+
:returns: a reference to the PyPlot object controlling the matplotlib figure
|
|
211
|
+
:rtype: PyPlot
|
|
212
|
+
|
|
213
|
+
``robot.plot_ellipse(ellipsoid)`` displays the ellipsoid.
|
|
214
|
+
"""
|
|
215
|
+
from roboticstoolbox.backends.PyPlot import PyPlot
|
|
216
|
+
from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
|
|
217
|
+
|
|
218
|
+
if not isinstance(ellipse, EllipsePlot): # pragma: nocover
|
|
219
|
+
raise TypeError(
|
|
220
|
+
"ellipse must be of type roboticstoolbox.backend.PyPlot.EllipsePlot"
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
env = PyPlot()
|
|
224
|
+
|
|
225
|
+
env.launch(ellipse.robot.name + " " + ellipse.name, limits=limits)
|
|
226
|
+
env.add(ellipse, jointaxes=jointaxes, eeframe=eeframe, shadow=shadow, name=name)
|
|
227
|
+
|
|
228
|
+
if block: # pragma: nocover
|
|
229
|
+
env.hold()
|
|
230
|
+
|
|
231
|
+
return env
|
|
232
|
+
|
|
233
|
+
def plot_fellipse(
|
|
234
|
+
self,
|
|
235
|
+
q: ArrayLike | None,
|
|
236
|
+
block: bool = True,
|
|
237
|
+
fellipse: EllipsePlot | None = None,
|
|
238
|
+
limits: ArrayLike | None = None,
|
|
239
|
+
opt: L["trans", "rot"] = "trans",
|
|
240
|
+
centre: L["ee"] | ArrayLike = "ee",
|
|
241
|
+
jointaxes: bool = True,
|
|
242
|
+
eeframe: bool = True,
|
|
243
|
+
shadow: bool = True,
|
|
244
|
+
name: bool = True,
|
|
245
|
+
) -> PyPlot:
|
|
246
|
+
"""
|
|
247
|
+
Plot the force ellipsoid for a manipulator.
|
|
248
|
+
|
|
249
|
+
:param q: the joint configuration of the robot
|
|
250
|
+
:param block: block operation of the code and keep the figure open
|
|
251
|
+
:param fellipse: a pre-built force ellipsoid to plot
|
|
252
|
+
:param limits: custom view limits ``[x1, x2, y1, y2, z1, z2]``; autoscales if not supplied
|
|
253
|
+
:param opt: ``'trans'`` or ``'rot'`` — plot the translational or rotational force ellipsoid
|
|
254
|
+
:param centre: coordinates to plot the ellipse — ``[x, y, z]`` or ``"ee"``
|
|
255
|
+
:param jointaxes: plot an arrow indicating the joint axis
|
|
256
|
+
:param eeframe: plot the end-effector coordinate frame
|
|
257
|
+
:param shadow: plot a shadow of the robot in the x-y plane
|
|
258
|
+
:param name: plot the name of the robot near its base
|
|
259
|
+
:raises ValueError: if neither ``q`` nor ``fellipse`` is supplied
|
|
260
|
+
:returns: a reference to the PyPlot object controlling the matplotlib figure
|
|
261
|
+
:rtype: PyPlot
|
|
262
|
+
|
|
263
|
+
``robot.plot_fellipse(q)`` displays the force ellipsoid for the robot
|
|
264
|
+
at pose ``q``. The plot will autoscale with an aspect ratio of 1.
|
|
265
|
+
|
|
266
|
+
``robot.plot_fellipse(vellipse=ell)`` uses a pre-built ellipse object.
|
|
267
|
+
|
|
268
|
+
.. rubric:: Notes
|
|
269
|
+
|
|
270
|
+
- By default the ellipsoid related to translational motion is drawn.
|
|
271
|
+
Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
|
|
272
|
+
- By default the ellipsoid is drawn at the origin. Use ``centre``
|
|
273
|
+
to specify a 3-vector, or ``"ee"`` to draw at the end-effector.
|
|
274
|
+
"""
|
|
275
|
+
import roboticstoolbox as rtb
|
|
276
|
+
|
|
277
|
+
if isinstance(self, rtb.ERobot): # pragma: nocover
|
|
278
|
+
raise NotImplementedError("Ellipse Plotting of ERobot's not implemented yet")
|
|
279
|
+
|
|
280
|
+
if fellipse is None and q is not None:
|
|
281
|
+
fellipse = self.fellipse(q, opt=opt, centre=centre, add=False)
|
|
282
|
+
elif fellipse is None:
|
|
283
|
+
raise ValueError("Must specify either q or fellipse") # pragma: nocover
|
|
284
|
+
|
|
285
|
+
return self.plot_ellipse(
|
|
286
|
+
fellipse,
|
|
287
|
+
block=block,
|
|
288
|
+
limits=limits,
|
|
289
|
+
jointaxes=jointaxes,
|
|
290
|
+
eeframe=eeframe,
|
|
291
|
+
shadow=shadow,
|
|
292
|
+
name=name,
|
|
293
|
+
)
|
|
294
|
+
|
|
295
|
+
def plot_vellipse(
|
|
296
|
+
self,
|
|
297
|
+
q: ArrayLike | None,
|
|
298
|
+
block: bool = True,
|
|
299
|
+
vellipse: EllipsePlot | None = None,
|
|
300
|
+
limits: ArrayLike | None = None,
|
|
301
|
+
opt: L["trans", "rot"] = "trans",
|
|
302
|
+
centre: L["ee"] | ArrayLike = "ee",
|
|
303
|
+
jointaxes: bool = True,
|
|
304
|
+
eeframe: bool = True,
|
|
305
|
+
shadow: bool = True,
|
|
306
|
+
name: bool = True,
|
|
307
|
+
) -> PyPlot:
|
|
308
|
+
"""
|
|
309
|
+
Plot the velocity ellipsoid for a manipulator.
|
|
310
|
+
|
|
311
|
+
:param q: the joint configuration of the robot
|
|
312
|
+
:param block: block operation of the code and keep the figure open
|
|
313
|
+
:param vellipse: a pre-built velocity ellipsoid to plot
|
|
314
|
+
:param limits: custom view limits ``[x1, x2, y1, y2, z1, z2]``; autoscales if not supplied
|
|
315
|
+
:param opt: ``'trans'`` or ``'rot'`` — plot the translational or rotational velocity ellipsoid
|
|
316
|
+
:param centre: coordinates to plot the ellipse — ``[x, y, z]`` or ``"ee"``
|
|
317
|
+
:param jointaxes: plot an arrow indicating the joint axis
|
|
318
|
+
:param eeframe: plot the end-effector coordinate frame
|
|
319
|
+
:param shadow: plot a shadow of the robot in the x-y plane
|
|
320
|
+
:param name: plot the name of the robot near its base
|
|
321
|
+
:raises ValueError: if neither ``q`` nor ``vellipse`` is supplied
|
|
322
|
+
:returns: a reference to the PyPlot object controlling the matplotlib figure
|
|
323
|
+
:rtype: PyPlot
|
|
324
|
+
|
|
325
|
+
``robot.plot_vellipse(q)`` displays the velocity ellipsoid for the robot
|
|
326
|
+
at pose ``q``. The plot will autoscale with an aspect ratio of 1.
|
|
327
|
+
|
|
328
|
+
``robot.plot_vellipse(vellipse=ell)`` uses a pre-built ellipse object.
|
|
329
|
+
|
|
330
|
+
.. rubric:: Notes
|
|
331
|
+
|
|
332
|
+
- By default the ellipsoid related to translational motion is drawn.
|
|
333
|
+
Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
|
|
334
|
+
- By default the ellipsoid is drawn at the origin. Use ``centre``
|
|
335
|
+
to specify a 3-vector, or ``"ee"`` to draw at the end-effector.
|
|
336
|
+
"""
|
|
337
|
+
import roboticstoolbox as rtb
|
|
338
|
+
|
|
339
|
+
if isinstance(self, rtb.ERobot): # pragma: nocover
|
|
340
|
+
raise NotImplementedError("Ellipse Plotting of ERobot's not implemented yet")
|
|
341
|
+
|
|
342
|
+
if vellipse is None and q is not None:
|
|
343
|
+
vellipse = self.vellipse(q=q, opt=opt, centre=centre, add=False)
|
|
344
|
+
elif vellipse is None:
|
|
345
|
+
raise ValueError("Must specify either q or vellipse") # pragma: nocover
|
|
346
|
+
|
|
347
|
+
return self.plot_ellipse(
|
|
348
|
+
vellipse,
|
|
349
|
+
block=block,
|
|
350
|
+
limits=limits,
|
|
351
|
+
jointaxes=jointaxes,
|
|
352
|
+
eeframe=eeframe,
|
|
353
|
+
shadow=shadow,
|
|
354
|
+
name=name,
|
|
355
|
+
)
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
from roboticstoolbox.tools.types import ArrayLike, NDArray
|
|
2
|
+
from typing import Any, Callable, Literal
|
|
3
|
+
from typing_extensions import Protocol, Self
|
|
4
|
+
|
|
5
|
+
from roboticstoolbox.robot.Link import Link, BaseLink
|
|
6
|
+
from roboticstoolbox.robot.Gripper import Gripper
|
|
7
|
+
from roboticstoolbox.ets.ETS import ETS
|
|
8
|
+
from spatialmath import SE3
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class KinematicsProtocol(Protocol):
|
|
12
|
+
"""Structural type contract for the RobotKinematics mixin.
|
|
13
|
+
|
|
14
|
+
Declares the attributes that mixin methods access on ``self``. This avoids
|
|
15
|
+
circular imports while allowing type checkers to validate mixin usage.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def _T(self) -> NDArray: ...
|
|
20
|
+
|
|
21
|
+
def ets(
|
|
22
|
+
self,
|
|
23
|
+
start: Link | Gripper | str | None = None,
|
|
24
|
+
end: Link | Gripper | str | None = None,
|
|
25
|
+
) -> ETS: ...
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class RobotProto(Protocol):
|
|
29
|
+
"""Structural type contract for the Dynamics mixin.
|
|
30
|
+
|
|
31
|
+
Declares every attribute that Dynamics mixin methods access on ``self``,
|
|
32
|
+
including methods defined within the mixin itself (which must be listed here
|
|
33
|
+
so the type checker knows they exist on ``self`` when called cross-method).
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
# ------------------------------------------------------------------
|
|
37
|
+
# Core robot properties
|
|
38
|
+
# ------------------------------------------------------------------
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def links(self) -> list[BaseLink]: ...
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def n(self) -> int: ...
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def q(self) -> NDArray: ...
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def name(self) -> str: ...
|
|
51
|
+
|
|
52
|
+
@name.setter
|
|
53
|
+
def name(self, new_name: str): ...
|
|
54
|
+
|
|
55
|
+
@property
|
|
56
|
+
def gravity(self) -> NDArray: ...
|
|
57
|
+
|
|
58
|
+
# ------------------------------------------------------------------
|
|
59
|
+
# Kinematics (called by dynamics methods)
|
|
60
|
+
# ------------------------------------------------------------------
|
|
61
|
+
|
|
62
|
+
def jacobe(
|
|
63
|
+
self,
|
|
64
|
+
q: ArrayLike,
|
|
65
|
+
end: str | BaseLink | Gripper | None = None,
|
|
66
|
+
start: str | BaseLink | Gripper | None = None,
|
|
67
|
+
tool: NDArray | SE3 | None = None,
|
|
68
|
+
) -> NDArray: ...
|
|
69
|
+
|
|
70
|
+
def jacob0(
|
|
71
|
+
self,
|
|
72
|
+
q: ArrayLike,
|
|
73
|
+
end: str | BaseLink | Gripper | None = None,
|
|
74
|
+
start: str | BaseLink | Gripper | None = None,
|
|
75
|
+
tool: NDArray | SE3 | None = None,
|
|
76
|
+
) -> NDArray: ...
|
|
77
|
+
|
|
78
|
+
def jacob0_analytical(
|
|
79
|
+
self,
|
|
80
|
+
q: ArrayLike,
|
|
81
|
+
representation: Literal["rpy/xyz", "rpy/zyx", "eul", "exp"] = "rpy/xyz",
|
|
82
|
+
end: str | BaseLink | Gripper | None = None,
|
|
83
|
+
start: str | BaseLink | Gripper | None = None,
|
|
84
|
+
tool: NDArray | SE3 | None = None,
|
|
85
|
+
) -> NDArray: ...
|
|
86
|
+
|
|
87
|
+
def jacob0_dot(
|
|
88
|
+
self,
|
|
89
|
+
q: ArrayLike,
|
|
90
|
+
qd: ArrayLike,
|
|
91
|
+
J0: NDArray | None = None,
|
|
92
|
+
representation: Literal["rpy/xyz", "rpy/zyx", "eul", "exp"] | None = None,
|
|
93
|
+
) -> NDArray: ...
|
|
94
|
+
|
|
95
|
+
# ------------------------------------------------------------------
|
|
96
|
+
# Dynamics methods (cross-called within the Dynamics mixin)
|
|
97
|
+
# ------------------------------------------------------------------
|
|
98
|
+
|
|
99
|
+
def dynchanged(self) -> None: ...
|
|
100
|
+
|
|
101
|
+
def rne(
|
|
102
|
+
self,
|
|
103
|
+
q: NDArray,
|
|
104
|
+
qd: NDArray,
|
|
105
|
+
qdd: NDArray,
|
|
106
|
+
symbolic: bool = False,
|
|
107
|
+
gravity: ArrayLike | None = None,
|
|
108
|
+
) -> NDArray: ...
|
|
109
|
+
|
|
110
|
+
def inertia(self, q: NDArray) -> NDArray: ...
|
|
111
|
+
|
|
112
|
+
def inertia_x(
|
|
113
|
+
self,
|
|
114
|
+
q: ArrayLike | None = None,
|
|
115
|
+
pinv: bool = False,
|
|
116
|
+
representation: Literal["rpy/xyz", "rpy/zyx", "eul", "exp"] = "rpy/xyz",
|
|
117
|
+
Ji: NDArray | None = None,
|
|
118
|
+
) -> NDArray: ...
|
|
119
|
+
|
|
120
|
+
def coriolis(self, q: ArrayLike, qd: ArrayLike) -> NDArray: ...
|
|
121
|
+
|
|
122
|
+
def gravload(
|
|
123
|
+
self,
|
|
124
|
+
q: ArrayLike | None = None,
|
|
125
|
+
gravity: ArrayLike | None = None,
|
|
126
|
+
) -> NDArray: ...
|
|
127
|
+
|
|
128
|
+
def accel(
|
|
129
|
+
self,
|
|
130
|
+
q: ArrayLike,
|
|
131
|
+
qd: ArrayLike,
|
|
132
|
+
torque: ArrayLike,
|
|
133
|
+
gravity: ArrayLike | None = None,
|
|
134
|
+
) -> NDArray: ...
|
|
135
|
+
|
|
136
|
+
def pay(
|
|
137
|
+
self,
|
|
138
|
+
W: ArrayLike,
|
|
139
|
+
q: NDArray | None = None,
|
|
140
|
+
J: NDArray | None = None,
|
|
141
|
+
frame: int = 1,
|
|
142
|
+
) -> NDArray: ...
|
|
143
|
+
|
|
144
|
+
def nofriction(self, coulomb: bool = True, viscous: bool = False) -> Self: ...
|
|
145
|
+
|
|
146
|
+
def copy(self) -> Self: ...
|
|
147
|
+
|
|
148
|
+
def _fdyn(
|
|
149
|
+
self,
|
|
150
|
+
t: float,
|
|
151
|
+
x: NDArray,
|
|
152
|
+
torqfun: Callable[[Any], NDArray],
|
|
153
|
+
targs: dict,
|
|
154
|
+
) -> NDArray: ...
|
|
155
|
+
|
|
156
|
+
def delete_rne(self) -> None: ...
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from roboticstoolbox.robot.Robot import BaseRobot, Robot, Robot2
|
|
2
|
+
from roboticstoolbox.robot.Link import Link, Link2
|
|
3
|
+
from roboticstoolbox.robot.DHRobot import SerialLink, DHRobot
|
|
4
|
+
from roboticstoolbox.robot.DHLink import (
|
|
5
|
+
DHLink,
|
|
6
|
+
RevoluteDH,
|
|
7
|
+
PrismaticDH,
|
|
8
|
+
RevoluteMDH,
|
|
9
|
+
PrismaticMDH,
|
|
10
|
+
)
|
|
11
|
+
from roboticstoolbox.robot.PoERobot import PoELink, PoERobot, PoERevolute, PoEPrismatic
|
|
12
|
+
from roboticstoolbox.robot.ERobot import ERobot, ERobot2
|
|
13
|
+
|
|
14
|
+
from roboticstoolbox.robot.ELink import ELink, ELink2
|
|
15
|
+
from roboticstoolbox.ets import ET, ET2, ETS, ETS2
|
|
16
|
+
from roboticstoolbox.robot.Gripper import Gripper
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
from roboticstoolbox.robot.IK import IKSolution, IKSolver, IK_LM, IK_NR, IK_GN, IK_QP
|
|
20
|
+
|
|
21
|
+
__all__ = [
|
|
22
|
+
"Robot",
|
|
23
|
+
"Robot2",
|
|
24
|
+
"SerialLink",
|
|
25
|
+
"DHRobot",
|
|
26
|
+
"Link",
|
|
27
|
+
"DHLink",
|
|
28
|
+
"RevoluteDH",
|
|
29
|
+
"PrismaticDH",
|
|
30
|
+
"RevoluteMDH",
|
|
31
|
+
"PrismaticMDH",
|
|
32
|
+
"BaseRobot",
|
|
33
|
+
"ELink",
|
|
34
|
+
"ELink2",
|
|
35
|
+
"Link",
|
|
36
|
+
"Link2",
|
|
37
|
+
"ERobot",
|
|
38
|
+
"ERobot2",
|
|
39
|
+
"ETS",
|
|
40
|
+
"ETS2",
|
|
41
|
+
"Gripper",
|
|
42
|
+
"PoERobot",
|
|
43
|
+
"PoELink",
|
|
44
|
+
"PoEPrismatic",
|
|
45
|
+
"PoERevolute",
|
|
46
|
+
"ET",
|
|
47
|
+
"ET2",
|
|
48
|
+
"IKSolution",
|
|
49
|
+
"IKSolver",
|
|
50
|
+
"IK_LM",
|
|
51
|
+
"IK_NR",
|
|
52
|
+
"IK_GN",
|
|
53
|
+
"IK_QP",
|
|
54
|
+
# "URDFRobot",
|
|
55
|
+
# "URDF_str",
|
|
56
|
+
# "URDF_file"
|
|
57
|
+
]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Fast recursive Newton-Euler (frne)
|
|
2
|
+
|
|
3
|
+
## Synopsis
|
|
4
|
+
|
|
5
|
+
nanobind C++/C extension that accelerates `DHRobot.rne()`: recursive
|
|
6
|
+
Newton-Euler inverse dynamics. These files were developed for a "MEX
|
|
7
|
+
version" of robot dynamics in the MATLAB version of the Robotics Toolbox
|
|
8
|
+
— `ne.c` is virtually unchanged.
|
|
9
|
+
|
|
10
|
+
This is one of two such extensions in the codebase — the other, **fknm**
|
|
11
|
+
(`_fknm_c`, ETS forward kinematics/Jacobians/Hessians/IK), lives at
|
|
12
|
+
`ets/cpp-extensions/` since it's an ETS concern, not a dynamics one. See
|
|
13
|
+
that directory's README for the architecture patterns shared by both
|
|
14
|
+
extensions (build/install mechanics, the Python facade + pure-Python
|
|
15
|
+
fallback pattern, lazy serialization into the C++ mirror object).
|
|
16
|
+
|
|
17
|
+
It's optional: `robot/frne.py` is a pure-Python facade that tries to
|
|
18
|
+
import the compiled extension and transparently falls back to an
|
|
19
|
+
equivalent pure-Python implementation when it's unavailable.
|
|
20
|
+
|
|
21
|
+
# Files
|
|
22
|
+
|
|
23
|
+
| File | Purpose |
|
|
24
|
+
| ---- | ------- |
|
|
25
|
+
| frne_nb.cpp | nanobind glue for `_frne_c` — binds `init`/`frne`/`delete` |
|
|
26
|
+
| frne.h | struct/function declarations shared with `ne.c` |
|
|
27
|
+
| ne.c | implementation of the RNE algorithm |
|
|
28
|
+
| vmath.c | Simple vector/matrix library |
|
|
29
|
+
| vmath.h | Simple vector/matrix library |
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file frne.h
|
|
3
|
+
* \author Peter Corke
|
|
4
|
+
* \author Jesse Haviland
|
|
5
|
+
* \brief Definitions for c file
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef _rne_h_
|
|
10
|
+
#define _rne_h_
|
|
11
|
+
|
|
12
|
+
#include <math.h>
|
|
13
|
+
#include "vmath.h"
|
|
14
|
+
|
|
15
|
+
#define TRUE 1
|
|
16
|
+
#define FALSE 0
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* Accessing information within a MATLAB structure is inconvenient and slow.
|
|
20
|
+
* To get around this we build our own robot and link data structures, and
|
|
21
|
+
* copy the information from the MATLAB objects once per call. If the call
|
|
22
|
+
* is for multiple states values then our efficiency becomes very high.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/* Robot kinematic convention */
|
|
26
|
+
typedef
|
|
27
|
+
enum _dhtype {
|
|
28
|
+
STANDARD,
|
|
29
|
+
MODIFIED
|
|
30
|
+
} DHType;
|
|
31
|
+
|
|
32
|
+
/* Link joint type */
|
|
33
|
+
typedef
|
|
34
|
+
enum _axistype {
|
|
35
|
+
REVOLUTE ,
|
|
36
|
+
PRISMATIC
|
|
37
|
+
} Sigma;
|
|
38
|
+
|
|
39
|
+
/* A robot link structure */
|
|
40
|
+
typedef struct _link {
|
|
41
|
+
/**********************************************************
|
|
42
|
+
*************** kinematic parameters *********************
|
|
43
|
+
**********************************************************/
|
|
44
|
+
double alpha; /* link twist */
|
|
45
|
+
double A; /* link offset */
|
|
46
|
+
double D; /* link length */
|
|
47
|
+
double theta; /* link rotation angle */
|
|
48
|
+
double offset; /* link coordinate offset */
|
|
49
|
+
Sigma jointtype; /* axis type; revolute ('R') or prismatic ('P') */
|
|
50
|
+
|
|
51
|
+
/**********************************************************
|
|
52
|
+
***************** dynamic parameters *********************
|
|
53
|
+
**********************************************************/
|
|
54
|
+
|
|
55
|
+
/**************** of links ********************************/
|
|
56
|
+
Vect *rbar; /* centre of mass of link wrt link origin */
|
|
57
|
+
double m; /* mass of link */
|
|
58
|
+
double *I; /* inertia tensor of link wrt link origin */
|
|
59
|
+
|
|
60
|
+
/**************** of actuators *****************************/
|
|
61
|
+
/* these parameters are motor referenced */
|
|
62
|
+
double Jm; /* actuator inertia */
|
|
63
|
+
double G; /* gear ratio */
|
|
64
|
+
double B; /* actuator friction damping coefficient */
|
|
65
|
+
double *Tc; /* actuator Coulomb friction coeffient */
|
|
66
|
+
|
|
67
|
+
/**********************************************************
|
|
68
|
+
**************** intermediate variables ******************
|
|
69
|
+
**********************************************************/
|
|
70
|
+
Vect r; /* distance of ith origin from i-1th wrt ith */
|
|
71
|
+
Rot R; /* link rotation matrix */
|
|
72
|
+
Vect omega; /* angular velocity */
|
|
73
|
+
Vect omega_d; /* angular acceleration */
|
|
74
|
+
Vect acc; /* acceleration */
|
|
75
|
+
Vect abar; /* acceleration of centre of mass */
|
|
76
|
+
Vect f; /* inter-link force */
|
|
77
|
+
Vect n; /* inter-link moment */
|
|
78
|
+
} Link;
|
|
79
|
+
|
|
80
|
+
/* A robot */
|
|
81
|
+
typedef struct _robot {
|
|
82
|
+
int njoints; /* number of joints */
|
|
83
|
+
Vect *gravity; /* gravity vector */
|
|
84
|
+
DHType dhtype; /* kinematic convention */
|
|
85
|
+
Link *links; /* the links */
|
|
86
|
+
} Robot;
|
|
87
|
+
|
|
88
|
+
void newton_euler (
|
|
89
|
+
Robot *robot, /*!< robot object */
|
|
90
|
+
double *tau, /*!< returned joint torques */
|
|
91
|
+
double *qd, /*!< joint velocities */
|
|
92
|
+
double *qdd, /*!< joint accelerations */
|
|
93
|
+
double *fext, /*!< wrench applied to end-effector */
|
|
94
|
+
int stride /*!< indexing stride for qd, qdd */
|
|
95
|
+
);
|
|
96
|
+
#endif
|