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,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file vmath.c
|
|
3
|
+
* \author Peter Corke
|
|
4
|
+
* \author Jesse Haviland
|
|
5
|
+
* \brief Simple vector/matrix maths library.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#define PY_SSIZE_T_CLEAN
|
|
9
|
+
#include <Python.h>
|
|
10
|
+
#include "vmath.h"
|
|
11
|
+
#include <stdio.h>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Vector cross product.
|
|
16
|
+
*
|
|
17
|
+
* @param r Return vector.
|
|
18
|
+
* @param a Vector.
|
|
19
|
+
* @param b Vector.
|
|
20
|
+
*/
|
|
21
|
+
void
|
|
22
|
+
vect_cross (Vect *r, Vect *a, Vect *b)
|
|
23
|
+
{
|
|
24
|
+
r->x = a->y*b->z - a->z*b->y;
|
|
25
|
+
r->y = a->z*b->x - a->x*b->z;
|
|
26
|
+
r->z = a->x*b->y - a->y*b->x;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Vector cross product.
|
|
31
|
+
*
|
|
32
|
+
* @param a Vector.
|
|
33
|
+
* @param b Vector.
|
|
34
|
+
* @return Dot (inner) product.
|
|
35
|
+
*/
|
|
36
|
+
double
|
|
37
|
+
vect_dot (Vect *a, Vect *b)
|
|
38
|
+
{
|
|
39
|
+
return a->x * b->x + a->y * b->y + a->z * b->z;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Vector sum.
|
|
44
|
+
*
|
|
45
|
+
* @param r Return sum vector.
|
|
46
|
+
* @param a Vector.
|
|
47
|
+
* @param b Vector.
|
|
48
|
+
*
|
|
49
|
+
* @note Elementwise addition of two vectors.
|
|
50
|
+
*/
|
|
51
|
+
void
|
|
52
|
+
vect_add (Vect *r, Vect *a, Vect *b)
|
|
53
|
+
{
|
|
54
|
+
r->x = a->x + b->x;
|
|
55
|
+
r->y = a->y + b->y;
|
|
56
|
+
r->z = a->z + b->z;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Vector scalar product.
|
|
61
|
+
*
|
|
62
|
+
* @param r Return scaled vector.
|
|
63
|
+
* @param a Vector.
|
|
64
|
+
* @param s Scalar.
|
|
65
|
+
*
|
|
66
|
+
* @note Elementwise scaling of vector.
|
|
67
|
+
*/
|
|
68
|
+
void
|
|
69
|
+
scal_mult (Vect *r, Vect *a, double s)
|
|
70
|
+
{
|
|
71
|
+
r->x = s*a->x;
|
|
72
|
+
r->y = s*a->y;
|
|
73
|
+
r->z = s*a->z;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Matrix vector product.
|
|
78
|
+
*
|
|
79
|
+
* @param r Return rotated vector.
|
|
80
|
+
* @param m 3x3 rotation matrix.
|
|
81
|
+
* @param v Vector.
|
|
82
|
+
*/
|
|
83
|
+
void
|
|
84
|
+
rot_vect_mult (Vect *r, Rot *m, Vect *v)
|
|
85
|
+
{
|
|
86
|
+
r->x = m->n.x*v->x + m->o.x*v->y + m->a.x*v->z;
|
|
87
|
+
r->y = m->n.y*v->x + m->o.y*v->y + m->a.y*v->z;
|
|
88
|
+
r->z = m->n.z*v->x + m->o.z*v->y + m->a.z*v->z;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Matrix transpose vector product.
|
|
93
|
+
*
|
|
94
|
+
* @param r Return rotated vector.
|
|
95
|
+
* @param m 3x3 rotation matrix.
|
|
96
|
+
* @param v Vector.
|
|
97
|
+
*
|
|
98
|
+
* @note Multiplies \p v by transpose of \p m.
|
|
99
|
+
*/
|
|
100
|
+
void
|
|
101
|
+
rot_trans_vect_mult (Vect *r, Rot *m, Vect *v)
|
|
102
|
+
{
|
|
103
|
+
r->x = m->n.x*v->x + m->n.y*v->y + m->n.z*v->z;
|
|
104
|
+
r->y = m->o.x*v->x + m->o.y*v->y + m->o.z*v->z;
|
|
105
|
+
r->z = m->a.x*v->x + m->a.y*v->y + m->a.z*v->z;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* General matrix vector product.
|
|
111
|
+
*
|
|
112
|
+
* @param r Return vector.
|
|
113
|
+
* @param m 3x3 matrix.
|
|
114
|
+
* @param v Vector.
|
|
115
|
+
*
|
|
116
|
+
* @note Assumes matrix is organized in column major order.
|
|
117
|
+
*/
|
|
118
|
+
void
|
|
119
|
+
mat_vect_mult (Vect *r, double *m, Vect *v)
|
|
120
|
+
{
|
|
121
|
+
r->x = m[0]*v->x + m[3]*v->y + m[6]*v->z;
|
|
122
|
+
r->y = m[1]*v->x + m[4]*v->y + m[7]*v->z;
|
|
123
|
+
r->z = m[2]*v->x + m[5]*v->y + m[8]*v->z;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// /**
|
|
127
|
+
// * Print vector.
|
|
128
|
+
// *
|
|
129
|
+
// * @param s Identification string, printed first.
|
|
130
|
+
// * @param v Vector
|
|
131
|
+
// *
|
|
132
|
+
// * Vector is printed on a single line, preceded by the string \p s.
|
|
133
|
+
// */
|
|
134
|
+
// void
|
|
135
|
+
// vect_print(char *s, Vect *v)
|
|
136
|
+
// {
|
|
137
|
+
// int j;
|
|
138
|
+
|
|
139
|
+
// mexPrintf("%10s: ", s);
|
|
140
|
+
// mexPrintf("%15.3f", v->x);
|
|
141
|
+
// mexPrintf("%15.3f", v->y);
|
|
142
|
+
// mexPrintf("%15.3f\n", v->z);
|
|
143
|
+
// }
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
// /**
|
|
147
|
+
// * Print matrix.
|
|
148
|
+
// *
|
|
149
|
+
// * @param s Identification string, printed first.
|
|
150
|
+
// * @param m Rotation matrix.
|
|
151
|
+
// *
|
|
152
|
+
// * Vector is printed on a single line, preceded by the string \p s.
|
|
153
|
+
// */
|
|
154
|
+
// void
|
|
155
|
+
// rot_print(char *s, Rot *m)
|
|
156
|
+
// {
|
|
157
|
+
// int j;
|
|
158
|
+
|
|
159
|
+
// mexPrintf("%s:\n", s);
|
|
160
|
+
// mexPrintf(" %15.3f%15.3f%15.3f\n", m->n.x, m->o.x, m->a.x);
|
|
161
|
+
// mexPrintf(" %15.3f%15.3f%15.3f\n", m->n.y, m->o.y, m->a.y);
|
|
162
|
+
// mexPrintf(" %15.3f%15.3f%15.3f\n", m->n.z, m->o.z, m->a.z);
|
|
163
|
+
// }
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file vmath.h
|
|
3
|
+
* \author Peter Corke
|
|
4
|
+
* \author Jesse Haviland
|
|
5
|
+
* \brief Simple vector/matrix maths library.
|
|
6
|
+
*
|
|
7
|
+
* \note All vectors and matrices are passed by reference.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef _vmath_h_
|
|
11
|
+
#define _vmath_h_
|
|
12
|
+
typedef struct vector {
|
|
13
|
+
double x, y, z;
|
|
14
|
+
} Vect;
|
|
15
|
+
|
|
16
|
+
typedef struct matrix {
|
|
17
|
+
Vect n, o, a;
|
|
18
|
+
} Rot;
|
|
19
|
+
|
|
20
|
+
typedef struct homogeneous_matrix {
|
|
21
|
+
Vect n, o, a, p;
|
|
22
|
+
} Transform;
|
|
23
|
+
void vect_cross (Vect *r, Vect *a, Vect *b);
|
|
24
|
+
double vect_dot (Vect *a, Vect *b);
|
|
25
|
+
void vect_add (Vect *r, Vect *a, Vect *b);
|
|
26
|
+
void scal_mult (Vect *r, Vect *a, double s);
|
|
27
|
+
void rot_vect_mult (Vect *r, Rot *m, Vect *v);
|
|
28
|
+
void rot_trans_vect_mult (Vect *r, Rot *m, Vect *v);
|
|
29
|
+
void mat_vect_mult (Vect *r, double *m, Vect *v);
|
|
30
|
+
void rot_print(char *s, Rot *m);
|
|
31
|
+
void vect_print(char *s, Vect *v);
|
|
32
|
+
#endif
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@Author: Peter Corke, original MATLAB code and Python version
|
|
3
|
+
@Author: Kristian Gibson, initial MATLAB port
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from abc import ABC
|
|
7
|
+
from math import pi, atan2
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
# from scipy import integrate, linalg, interpolate
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
import matplotlib.pyplot as plt
|
|
13
|
+
from matplotlib import patches, colors
|
|
14
|
+
import matplotlib.transforms as mtransforms
|
|
15
|
+
|
|
16
|
+
from spatialmath import SE2, base, Polygon2
|
|
17
|
+
from roboticstoolbox import rtb_load_data
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class VehicleAnimationBase(ABC):
|
|
21
|
+
"""
|
|
22
|
+
Abstract base class to support animation of a vehicle in a Matplotlib plot
|
|
23
|
+
|
|
24
|
+
There are three concrete subclasses:
|
|
25
|
+
|
|
26
|
+
- ``VehicleMarker`` animates a Matplotlib marker (shows position only)
|
|
27
|
+
- ``VehiclePolygon`` animates a polygon shape (outline or filled), including predefined shapes (shows position and orientation)
|
|
28
|
+
- ``VehicleIcon`` animates an image (shows position and orientation)
|
|
29
|
+
|
|
30
|
+
An instance ``a`` of these classes can be used in three different ways, firstly::
|
|
31
|
+
|
|
32
|
+
a = VehiclePolygon("car", color="red")
|
|
33
|
+
a.add()
|
|
34
|
+
|
|
35
|
+
adds an instance of the animation shape to the plot and subsequent calls
|
|
36
|
+
to::
|
|
37
|
+
|
|
38
|
+
a.update(q)
|
|
39
|
+
|
|
40
|
+
will animate it with the configuration given by ``q``.
|
|
41
|
+
|
|
42
|
+
Secondly, an instance can be passed to a Vehicle subclass object to make an animation
|
|
43
|
+
during simulation::
|
|
44
|
+
|
|
45
|
+
a = VehiclePolygon("car", color="red")
|
|
46
|
+
veh = Bicycle(animation=a)
|
|
47
|
+
|
|
48
|
+
Thirdly::
|
|
49
|
+
|
|
50
|
+
a = VehiclePolygon("car", color="red")
|
|
51
|
+
a.plot(q)
|
|
52
|
+
|
|
53
|
+
adds an instance of the animation shape to the plot with the specified
|
|
54
|
+
configuration. It cannot be moved, but the method does return a reference
|
|
55
|
+
to the Matplotlib object added to the plot.
|
|
56
|
+
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
def __init__(self):
|
|
60
|
+
self._object = None
|
|
61
|
+
self._ax = None
|
|
62
|
+
|
|
63
|
+
def add(self, ax=None, **kwargs):
|
|
64
|
+
"""
|
|
65
|
+
Add vehicle animation to the current plot
|
|
66
|
+
|
|
67
|
+
:param ax: Axis to add to, defaults to current axis
|
|
68
|
+
:type ax: Axes, optional
|
|
69
|
+
:param kwargs: additional arguments passed to Matplotlib :meth:`~matplotlib.axes.Axes.plot`, which
|
|
70
|
+
override arguments given to the constructor.
|
|
71
|
+
|
|
72
|
+
A reference to the animation object is kept, and it will be deleted
|
|
73
|
+
from the plot when the ``VehicleAnimation`` object is garbage collected.
|
|
74
|
+
|
|
75
|
+
The animation is not displayed until :meth:`update` is called.
|
|
76
|
+
|
|
77
|
+
:seealso: :meth:`update`
|
|
78
|
+
"""
|
|
79
|
+
if ax is None:
|
|
80
|
+
self._ax = plt.gca()
|
|
81
|
+
else:
|
|
82
|
+
self._ax = ax
|
|
83
|
+
|
|
84
|
+
self._add(**kwargs)
|
|
85
|
+
|
|
86
|
+
def update(self, q):
|
|
87
|
+
"""
|
|
88
|
+
Update the vehicle animation (superclass)
|
|
89
|
+
|
|
90
|
+
:param q: vehicle position or configuration
|
|
91
|
+
:type q: array_like(2) or array_like(3)
|
|
92
|
+
|
|
93
|
+
The graphical depiction of the vehicle position or configuration is updated.
|
|
94
|
+
|
|
95
|
+
:seealso: :meth:`add`
|
|
96
|
+
"""
|
|
97
|
+
self._update(q)
|
|
98
|
+
|
|
99
|
+
def plot(self, q, **kwargs):
|
|
100
|
+
"""
|
|
101
|
+
Add vehicle to the current plot (superclass)
|
|
102
|
+
|
|
103
|
+
:param q: vehicle position or configuration
|
|
104
|
+
:type q: array_like(2) or array_like(3)
|
|
105
|
+
:param kwargs: additional arguments passed to Matplotlib :meth:`~matplotlib.axes.Axes.plot`, which
|
|
106
|
+
override arguments given to the constructor.
|
|
107
|
+
:return: reference to Matplotlib object
|
|
108
|
+
|
|
109
|
+
The animation object is rendered into the current axes.
|
|
110
|
+
"""
|
|
111
|
+
self.add(**kwargs)
|
|
112
|
+
self.update(q)
|
|
113
|
+
return self._object
|
|
114
|
+
|
|
115
|
+
def __del__(self):
|
|
116
|
+
|
|
117
|
+
if self._object is not None:
|
|
118
|
+
self._object.remove()
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
# ========================================================================= #
|
|
122
|
+
class VehicleMarker(VehicleAnimationBase):
|
|
123
|
+
def __init__(self, **kwargs):
|
|
124
|
+
"""
|
|
125
|
+
Create graphical animation of vehicle as a Matplotlib marker
|
|
126
|
+
|
|
127
|
+
:param kwargs: additional arguments passed to Matplotlib :meth:`~matplotlib.axes.Axes.plot`.
|
|
128
|
+
:return: animation object
|
|
129
|
+
:rtype: VehicleAnimation
|
|
130
|
+
|
|
131
|
+
Creates an object that can be passed to a ``Vehicle`` subclass to depict
|
|
132
|
+
the moving robot as a simple Matplotlib marker during simulation.
|
|
133
|
+
|
|
134
|
+
The default marker is a red filled circle with a white outline.
|
|
135
|
+
|
|
136
|
+
For example, to animate a simulation with a blue square marker::
|
|
137
|
+
|
|
138
|
+
a = VehicleMarker(marker="s", markerfacecolor="b")
|
|
139
|
+
veh = Bicycle(driver=RandomPath(10), animation=a)
|
|
140
|
+
veh.run()
|
|
141
|
+
|
|
142
|
+
.. note:: A marker can only indicate vehicle position, not orientation.
|
|
143
|
+
|
|
144
|
+
:seealso: :func:`~Vehicle`
|
|
145
|
+
"""
|
|
146
|
+
super().__init__()
|
|
147
|
+
if len(kwargs) == 0:
|
|
148
|
+
kwargs = {
|
|
149
|
+
"marker": "o",
|
|
150
|
+
"markerfacecolor": "r",
|
|
151
|
+
"markeredgecolor": "w",
|
|
152
|
+
"markersize": 12,
|
|
153
|
+
}
|
|
154
|
+
self._args = kwargs
|
|
155
|
+
|
|
156
|
+
def _update(self, x):
|
|
157
|
+
self._object.set_xdata(x[0])
|
|
158
|
+
self._object.set_ydata(x[1])
|
|
159
|
+
|
|
160
|
+
def _add(self, x=None, **kwargs):
|
|
161
|
+
if x is None:
|
|
162
|
+
x = (0, 0)
|
|
163
|
+
self._object = plt.plot(x[0], x[1], **{**self._args, **kwargs})[0]
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# ========================================================================= #
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
class VehiclePolygon(VehicleAnimationBase):
|
|
170
|
+
def __init__(self, shape="car", scale=1, **kwargs):
|
|
171
|
+
"""
|
|
172
|
+
Create graphical animation of vehicle as a polygon
|
|
173
|
+
|
|
174
|
+
:param shape: polygon shape as vertices or a predefined shape, defaults to "car"
|
|
175
|
+
:type shape: ndarray(2,n) or str
|
|
176
|
+
:param scale: Length of the vehicle on the plot, defaults to 1
|
|
177
|
+
:type scale: float
|
|
178
|
+
:param kwargs: additional arguments passed to Matplotlib :class:`~matplotlib.patches.Polygon` such as
|
|
179
|
+
``color`` (face+edge), ``alpha``, ``facecolor``, ``edgecolor``,
|
|
180
|
+
``linewidth`` etc.
|
|
181
|
+
:raises ValueError: unknown shape name
|
|
182
|
+
:raises TypeError: bad shape argument
|
|
183
|
+
:return: animation object
|
|
184
|
+
:rtype: VehiclePolygon
|
|
185
|
+
|
|
186
|
+
Creates an object that can be passed to a ``Vehicle`` subclass to
|
|
187
|
+
depict the moving robot as a polygon during simulation.
|
|
188
|
+
|
|
189
|
+
For example, to animate a simulation with a red filled car-shaped polygon::
|
|
190
|
+
|
|
191
|
+
a = VehiclePolygon("car", color="r")
|
|
192
|
+
veh = Bicycle(driver=RandomPath(10), animation=a)
|
|
193
|
+
veh.run()
|
|
194
|
+
|
|
195
|
+
``shape`` can be:
|
|
196
|
+
|
|
197
|
+
* ``"car"`` a rectangle with chamfered front corners
|
|
198
|
+
* ``"box"`` a rectangle
|
|
199
|
+
* ``"triangle"`` an isocles triangle pointing in the forward direction
|
|
200
|
+
* an 2xN NumPy array of vertices, does not have to be closed.
|
|
201
|
+
|
|
202
|
+
The polygon is scaled to an image with a length of ``scale`` in the
|
|
203
|
+
vehicle x-direction, in the units of the plot.
|
|
204
|
+
|
|
205
|
+
:seealso: :func:`~Vehicle` :class:`matplotlib.patches.Polygon`
|
|
206
|
+
"""
|
|
207
|
+
super().__init__()
|
|
208
|
+
if isinstance(shape, str):
|
|
209
|
+
# consider vehicle at origin, pointing along +ve x-axis
|
|
210
|
+
h = 0.3
|
|
211
|
+
t = 0.8 # start of head taper
|
|
212
|
+
c = 0.5 # centre x coordinate
|
|
213
|
+
w = 1 # width in x direction
|
|
214
|
+
|
|
215
|
+
if isinstance(shape, str):
|
|
216
|
+
if shape == "car":
|
|
217
|
+
self._coords = np.array(
|
|
218
|
+
[
|
|
219
|
+
[-c, h],
|
|
220
|
+
[t - c, h],
|
|
221
|
+
[w - c, 0],
|
|
222
|
+
[t - c, -h],
|
|
223
|
+
[-c, -h],
|
|
224
|
+
]
|
|
225
|
+
).T
|
|
226
|
+
elif shape == "box":
|
|
227
|
+
self._coords = np.array(
|
|
228
|
+
[
|
|
229
|
+
[-c, h],
|
|
230
|
+
[w - c, h],
|
|
231
|
+
[w - c, -h],
|
|
232
|
+
[-c, -h],
|
|
233
|
+
]
|
|
234
|
+
).T
|
|
235
|
+
elif shape == "triangle":
|
|
236
|
+
self._coords = np.array(
|
|
237
|
+
[
|
|
238
|
+
[-c, h],
|
|
239
|
+
[w, 0],
|
|
240
|
+
[-c, -h],
|
|
241
|
+
]
|
|
242
|
+
).T
|
|
243
|
+
else:
|
|
244
|
+
raise ValueError("unknown vehicle shape name")
|
|
245
|
+
|
|
246
|
+
elif isinstance(shape, np.ndarray) and shape.shape[0] == 2:
|
|
247
|
+
self._coords = shape
|
|
248
|
+
elif isinstance(shape, Polygon2):
|
|
249
|
+
self._coords = shape.vertices()
|
|
250
|
+
else:
|
|
251
|
+
raise TypeError("unknown shape argument")
|
|
252
|
+
self._coords *= scale
|
|
253
|
+
self._args = kwargs
|
|
254
|
+
|
|
255
|
+
def _add(self, **kwargs):
|
|
256
|
+
# color is fillcolor + edgecolor
|
|
257
|
+
# facecolor if None is default
|
|
258
|
+
self._ax = plt.gca()
|
|
259
|
+
self._object = patches.Polygon(self._coords.T, **{**self._args, **kwargs})
|
|
260
|
+
self._ax.add_patch(self._object)
|
|
261
|
+
|
|
262
|
+
def _update(self, x):
|
|
263
|
+
|
|
264
|
+
if self._object is not None:
|
|
265
|
+
# if animation is initialized
|
|
266
|
+
xy = SE2(x) * self._coords
|
|
267
|
+
self._object.set_xy(xy.T)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
# ========================================================================= #
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
class VehicleIcon(VehicleAnimationBase):
|
|
274
|
+
def __init__(self, filename, origin=None, scale=1, rotation=0):
|
|
275
|
+
"""
|
|
276
|
+
Create graphical animation of vehicle as an image icon
|
|
277
|
+
|
|
278
|
+
:param filename: Standard icon name or a path to an image
|
|
279
|
+
:type filename: str
|
|
280
|
+
:param origin: Origin of the vehicle coordinate frame, defaults to centre
|
|
281
|
+
:type origin: array_like(2)
|
|
282
|
+
:param scale: Length of the vehicle on the plot, defaults to 1
|
|
283
|
+
:type scale: float
|
|
284
|
+
:param rotation: Vehicle icon heading in degrees, defaults to 0
|
|
285
|
+
:type rotation: float
|
|
286
|
+
:raises ValueError: Icon file not found
|
|
287
|
+
:return: animation object
|
|
288
|
+
:rtype: VehicleAnimation
|
|
289
|
+
|
|
290
|
+
Creates an object that can be passed to a ``Vehicle`` subclass to
|
|
291
|
+
depict the moving robot as an image icon during simulation. The image
|
|
292
|
+
is translated and rotated to represent the vehicle configuration.
|
|
293
|
+
|
|
294
|
+
The car is scaled to an image with a horizontal length (width) of
|
|
295
|
+
``scale`` in the units of the plot. By default the image is assumed to
|
|
296
|
+
contain a car parallel to the x-axis and facing right. If the vehicle
|
|
297
|
+
is facing upward set ``rotation`` to 90.
|
|
298
|
+
|
|
299
|
+
The vehicle rotates about its ``origin`` which is expressed in terms of
|
|
300
|
+
normalized coordinates in the range 0 to 1. By default it is in the
|
|
301
|
+
middle of the icon image, (0.2, 0.5) moves it toward the back of the
|
|
302
|
+
vehicle, (0.8, 0.5) moves it toward the front of the vehicle.
|
|
303
|
+
|
|
304
|
+
``filename`` can be an included image:
|
|
305
|
+
|
|
306
|
+
* ``"greycar"`` a grey and white car (top view)
|
|
307
|
+
* ``"redcar"`` a red car (top view)
|
|
308
|
+
* ``"piano"`` a piano (top view)
|
|
309
|
+
|
|
310
|
+
or the path to an image file, including extension.
|
|
311
|
+
|
|
312
|
+
The included images are:
|
|
313
|
+
|
|
314
|
+
.. image:: ../../rtb-data/rtbdata/data/greycar.png
|
|
315
|
+
:width: 200px
|
|
316
|
+
:align: center
|
|
317
|
+
:alt: "greycar"
|
|
318
|
+
|
|
319
|
+
.. image:: ../../rtb-data/rtbdata/data/redcar.png
|
|
320
|
+
:width: 300px
|
|
321
|
+
:align: center
|
|
322
|
+
:alt: "redcar"
|
|
323
|
+
|
|
324
|
+
.. image:: ../../rtb-data/rtbdata/data/piano.png
|
|
325
|
+
:width: 200px
|
|
326
|
+
:align: center
|
|
327
|
+
:alt: "piano"
|
|
328
|
+
|
|
329
|
+
For example, to animate a simulation with the red car icon::
|
|
330
|
+
|
|
331
|
+
a = VehicleIcon("redcar", scale=2)
|
|
332
|
+
veh = Bicycle(driver=RandomPath(10), animation=a)
|
|
333
|
+
veh.run(animation=a)
|
|
334
|
+
|
|
335
|
+
.. note:: The standard icons are provided in the package ``rtb-data``
|
|
336
|
+
|
|
337
|
+
:seealso: :class:`Vehicle`
|
|
338
|
+
"""
|
|
339
|
+
super().__init__()
|
|
340
|
+
if "." not in filename:
|
|
341
|
+
try:
|
|
342
|
+
# try the default folder first
|
|
343
|
+
image = rtb_load_data(
|
|
344
|
+
Path("data") / Path(filename + ".png"), plt.imread
|
|
345
|
+
)
|
|
346
|
+
except FileNotFoundError:
|
|
347
|
+
raise ValueError(f"{filename} is not a provided icon")
|
|
348
|
+
else:
|
|
349
|
+
try:
|
|
350
|
+
image = plt.imread(filename)
|
|
351
|
+
except FileNotFoundError:
|
|
352
|
+
raise ValueError(f"icon file {filename} not found")
|
|
353
|
+
|
|
354
|
+
self._rotation = rotation
|
|
355
|
+
self._image = image
|
|
356
|
+
|
|
357
|
+
# figure size of bounding box the image will fill in data coordinates
|
|
358
|
+
if origin is None:
|
|
359
|
+
origin = [0.5, 0.5]
|
|
360
|
+
self._origin = origin
|
|
361
|
+
|
|
362
|
+
if image.shape[0] >= image.shape[1]:
|
|
363
|
+
# width >= height
|
|
364
|
+
self._width = scale
|
|
365
|
+
self._height = scale * image.shape[1] / image.shape[0]
|
|
366
|
+
else:
|
|
367
|
+
# width < height
|
|
368
|
+
self._height = scale
|
|
369
|
+
self._width = scale * image.shape[0] / image.shape[1]
|
|
370
|
+
|
|
371
|
+
def _add(self, ax=None, **kwargs):
|
|
372
|
+
def imshow_affine(ax, z, *args, **kwargs):
|
|
373
|
+
im = ax.imshow(z, *args, **kwargs)
|
|
374
|
+
x1, x2, y1, y2 = im.get_extent()
|
|
375
|
+
# im._image_skew_coordinate = (x2, y1)
|
|
376
|
+
return im
|
|
377
|
+
|
|
378
|
+
self._ax = plt.gca()
|
|
379
|
+
extent = [
|
|
380
|
+
-self._origin[0] * self._height,
|
|
381
|
+
(1 - self._origin[0]) * self._height,
|
|
382
|
+
-self._origin[1] * self._width,
|
|
383
|
+
(1 - self._origin[1]) * self._width,
|
|
384
|
+
]
|
|
385
|
+
self._ax = plt.gca()
|
|
386
|
+
|
|
387
|
+
args = {}
|
|
388
|
+
if "color" in kwargs and self._image.ndim == 2:
|
|
389
|
+
color = kwargs["color"]
|
|
390
|
+
del kwargs["color"]
|
|
391
|
+
rgb = colors.to_rgb(color)
|
|
392
|
+
cmapdata = {
|
|
393
|
+
"red": [(0.0, 0.0, 0.0), (1.0, rgb[0], 0.0)],
|
|
394
|
+
"green": [(0.0, 0.0, 0.0), (1.0, rgb[1], 0.0)],
|
|
395
|
+
"blue": [(0.0, 0.0, 0.0), (1.0, rgb[2], 0.0)],
|
|
396
|
+
}
|
|
397
|
+
cmap = colors.LinearSegmentedColormap("linear", segmentdata=cmapdata, N=256)
|
|
398
|
+
args = {"cmap": cmap}
|
|
399
|
+
elif self._image.ndim == 2:
|
|
400
|
+
args = {"cmap": "gray"}
|
|
401
|
+
if "zorder" not in kwargs:
|
|
402
|
+
args["zorder"] = 3
|
|
403
|
+
|
|
404
|
+
self._object = imshow_affine(
|
|
405
|
+
self._ax,
|
|
406
|
+
self._image,
|
|
407
|
+
interpolation="none",
|
|
408
|
+
extent=extent,
|
|
409
|
+
clip_on=True,
|
|
410
|
+
**{**kwargs, **args},
|
|
411
|
+
)
|
|
412
|
+
|
|
413
|
+
def _update(self, x):
|
|
414
|
+
|
|
415
|
+
# center_x = self._width // 2
|
|
416
|
+
# center_y = self._height // 2
|
|
417
|
+
center_x = 0
|
|
418
|
+
center_y = 0
|
|
419
|
+
|
|
420
|
+
T = (
|
|
421
|
+
mtransforms.Affine2D()
|
|
422
|
+
.rotate_deg_around(center_x, center_y, np.degrees(x[2]) - self._rotation)
|
|
423
|
+
.translate(x[0], x[1])
|
|
424
|
+
+ self._ax.transData
|
|
425
|
+
)
|
|
426
|
+
self._object.set_transform(T)
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
if __name__ == "__main__":
|
|
430
|
+
from math import pi
|
|
431
|
+
|
|
432
|
+
from roboticstoolbox import Bicycle, RandomPath
|
|
433
|
+
|
|
434
|
+
V = np.diag(np.r_[0.02, 0.5 * pi / 180] ** 2)
|
|
435
|
+
|
|
436
|
+
v = VehiclePolygon(facecolor="None", edgecolor="k")
|
|
437
|
+
# v = VehicleIcon('greycar2', scale=2, rotation=90)
|
|
438
|
+
|
|
439
|
+
veh = Bicycle(covar=V, animation=v, control=RandomPath(10), verbose=False)
|
|
440
|
+
print(veh)
|
|
441
|
+
|
|
442
|
+
odo = veh.step([1, 0.3])
|
|
443
|
+
print(odo)
|
|
444
|
+
|
|
445
|
+
print(veh.x)
|
|
446
|
+
|
|
447
|
+
print(veh.f([0, 0, 0], odo))
|
|
448
|
+
|
|
449
|
+
def control(v, t, x):
|
|
450
|
+
goal = (6, 6)
|
|
451
|
+
goal_heading = atan2(goal[1] - x[1], goal[0] - x[0])
|
|
452
|
+
d_heading = base.angdiff(goal_heading, x[2])
|
|
453
|
+
v.stopif(base.norm(x[0:2] - goal) < 0.1)
|
|
454
|
+
|
|
455
|
+
return (1, d_heading)
|
|
456
|
+
|
|
457
|
+
veh.control = RandomPath(10)
|
|
458
|
+
p = veh.run(20, animate=True)
|
|
459
|
+
# plt.show()
|
|
460
|
+
print(p)
|
|
461
|
+
|
|
462
|
+
veh.plot_xyt()
|
|
463
|
+
plt.show(block=True)
|
|
464
|
+
# veh.plot(p)
|
|
465
|
+
|
|
466
|
+
# t, x = veh.path(5, u=control)
|
|
467
|
+
# print(t)
|
|
468
|
+
|
|
469
|
+
# fig, ax = plt.subplots()
|
|
470
|
+
|
|
471
|
+
# ax.set_xlim(-5, 5)
|
|
472
|
+
# ax.set_ylim(-5, 5)
|
|
473
|
+
|
|
474
|
+
# v = VehicleAnimation.Polygon(shape='triangle', maxdim=0.1, color='r')
|
|
475
|
+
# v = VehicleAnimation.Icon('car3.png', maxdim=2, centre=[0.3, 0.5])
|
|
476
|
+
# v = VehicleAnimation.Icon('/Users/corkep/Dropbox/code/robotics-toolbox-python/roboticstoolbox/data/car1.png', maxdim=2, centre=[0.3, 0.5])
|
|
477
|
+
# v = VehicleAnimation.icon('car3.png', maxdim=2, centre=[0.3, 0.5])
|
|
478
|
+
# v = VehicleAnimation.marker()
|
|
479
|
+
# v.start()
|
|
480
|
+
# plt.grid(True)
|
|
481
|
+
# # plt.axis('equal')
|
|
482
|
+
|
|
483
|
+
# for theta in np.linspace(0, 2 * np.pi, 100):
|
|
484
|
+
# v.update([0, 0, theta])
|
|
485
|
+
# plt.pause(0.1)
|