roboticstoolbox-python 1.3.0__cp312-cp312-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.cp312-win_amd64.pyd +0 -0
- roboticstoolbox/frne.cp312-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,193 @@
|
|
|
1
|
+
# motion models
|
|
2
|
+
from roboticstoolbox.mobile.Vehicle import VehicleBase, Bicycle, Unicycle, DiffSteer
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# planners
|
|
6
|
+
from roboticstoolbox.mobile.PlannerBase import PlannerBase
|
|
7
|
+
from roboticstoolbox.mobile.DistanceTransformPlanner import DistanceTransformPlanner
|
|
8
|
+
from roboticstoolbox.mobile.DstarPlanner import DstarPlanner
|
|
9
|
+
from roboticstoolbox.mobile.PRMPlanner import PRMPlanner
|
|
10
|
+
from roboticstoolbox.mobile.LatticePlanner import LatticePlanner
|
|
11
|
+
from roboticstoolbox.mobile.DubinsPlanner import DubinsPlanner
|
|
12
|
+
from roboticstoolbox.mobile.ReedsSheppPlanner import ReedsSheppPlanner
|
|
13
|
+
from roboticstoolbox.mobile.CurvaturePolyPlanner import CurvaturePolyPlanner
|
|
14
|
+
from roboticstoolbox.mobile.QuinticPolyPlanner import QuinticPolyPlanner
|
|
15
|
+
from roboticstoolbox.mobile.RRTPlanner import RRTPlanner
|
|
16
|
+
|
|
17
|
+
from roboticstoolbox.mobile.Bug2 import Bug2
|
|
18
|
+
|
|
19
|
+
from roboticstoolbox.mobile.OccGrid import (
|
|
20
|
+
BinaryOccupancyGrid,
|
|
21
|
+
OccupancyGrid,
|
|
22
|
+
PolygonMap,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
# localization and state estimation
|
|
26
|
+
from roboticstoolbox.mobile.landmarkmap import LandmarkMap
|
|
27
|
+
from roboticstoolbox.mobile.sensors import RangeBearingSensor
|
|
28
|
+
from roboticstoolbox.mobile.drivers import *
|
|
29
|
+
from roboticstoolbox.mobile.Animations import (
|
|
30
|
+
VehicleAnimationBase,
|
|
31
|
+
VehicleMarker,
|
|
32
|
+
VehiclePolygon,
|
|
33
|
+
VehicleIcon,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
from roboticstoolbox.mobile.PoseGraph import *
|
|
37
|
+
from roboticstoolbox.mobile.EKF import EKF
|
|
38
|
+
from roboticstoolbox.mobile.ParticleFilter import ParticleFilter
|
|
39
|
+
|
|
40
|
+
__all__ = [
|
|
41
|
+
"VehicleBase",
|
|
42
|
+
"Bicycle",
|
|
43
|
+
"Unicycle",
|
|
44
|
+
"DiffSteer",
|
|
45
|
+
"VehicleAnimationBase",
|
|
46
|
+
"VehicleMarker",
|
|
47
|
+
"VehiclePolygon",
|
|
48
|
+
"VehicleIcon",
|
|
49
|
+
"Bug2",
|
|
50
|
+
"DistanceTransformPlanner",
|
|
51
|
+
"DstarPlanner",
|
|
52
|
+
"DubinsPlanner",
|
|
53
|
+
"LatticePlanner",
|
|
54
|
+
"ReedsSheppPlanner",
|
|
55
|
+
"CurvaturePolyPlanner",
|
|
56
|
+
"QuinticPolyPlanner",
|
|
57
|
+
"PRMPlanner",
|
|
58
|
+
"VehicleDriverBase",
|
|
59
|
+
"RandomPath",
|
|
60
|
+
"PurePursuit",
|
|
61
|
+
"LandmarkMap",
|
|
62
|
+
"RangeBearingSensor",
|
|
63
|
+
"PoseGraph",
|
|
64
|
+
"PolygonMap",
|
|
65
|
+
"BinaryOccupancyGrid",
|
|
66
|
+
"OccupancyGrid",
|
|
67
|
+
"PlannerBase",
|
|
68
|
+
"RRTPlanner",
|
|
69
|
+
"EKF",
|
|
70
|
+
"ParticleFilter",
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# __doc__ = """
|
|
75
|
+
# The Robotics Toolbox for Python
|
|
76
|
+
# Based on the Matlab version
|
|
77
|
+
# Peter Corke 2007
|
|
78
|
+
# """
|
|
79
|
+
|
|
80
|
+
######################
|
|
81
|
+
# Import Section #
|
|
82
|
+
######################
|
|
83
|
+
|
|
84
|
+
# from numpy import *
|
|
85
|
+
|
|
86
|
+
# # Import Link Constructor section
|
|
87
|
+
# from Link import *
|
|
88
|
+
|
|
89
|
+
# # Import Robot Constructor section
|
|
90
|
+
# from Robot import *
|
|
91
|
+
|
|
92
|
+
# # utility
|
|
93
|
+
# from utility import *
|
|
94
|
+
|
|
95
|
+
# # Import transformations section
|
|
96
|
+
# from transform import *
|
|
97
|
+
|
|
98
|
+
# from trplot import *
|
|
99
|
+
|
|
100
|
+
# from jacobian import *
|
|
101
|
+
|
|
102
|
+
# # import kinematics section
|
|
103
|
+
# from kinematics import *
|
|
104
|
+
|
|
105
|
+
# from manipulability import *
|
|
106
|
+
|
|
107
|
+
# # import trajectories section
|
|
108
|
+
# from trajectory import *
|
|
109
|
+
|
|
110
|
+
# # import Quaternion constructor section
|
|
111
|
+
# from Quaternion import *
|
|
112
|
+
|
|
113
|
+
# # import dynamics section
|
|
114
|
+
# from dynamics import *
|
|
115
|
+
|
|
116
|
+
# # import robot models sections
|
|
117
|
+
# #from puma560 import *
|
|
118
|
+
# #from puma560akb import *
|
|
119
|
+
# #from stanford import *
|
|
120
|
+
# #from twolink import *
|
|
121
|
+
|
|
122
|
+
# print """
|
|
123
|
+
# Robotics Toolbox for Python
|
|
124
|
+
# Based on Matlab Toolbox Version 7 April-2002
|
|
125
|
+
|
|
126
|
+
# What's new.
|
|
127
|
+
# Readme - New features and enhancements in this version.
|
|
128
|
+
|
|
129
|
+
# Homogeneous transformations
|
|
130
|
+
# eul2tr - Euler angle to transform
|
|
131
|
+
# oa2tr - orientation and approach vector to transform
|
|
132
|
+
# rotx - transform for rotation about X-axis
|
|
133
|
+
# roty - transform for rotation about Y-axis
|
|
134
|
+
# rotz - transform for rotation about Z-axis
|
|
135
|
+
# rpy2tr - roll/pitch/yaw angles to transform
|
|
136
|
+
# tr2eul - transform to Euler angles
|
|
137
|
+
# tr2rot - transform to rotation submatrix
|
|
138
|
+
# tr2rpy - transform to roll/pitch/yaw angles
|
|
139
|
+
# transl - set or extract the translational component of a transform
|
|
140
|
+
# trnorm - normalize a transform
|
|
141
|
+
|
|
142
|
+
# Quaternions
|
|
143
|
+
# / - divide quaternion by quaternion or scalar
|
|
144
|
+
# * - multiply quaternion by a quaternion or vector
|
|
145
|
+
# inv - invert a quaternion
|
|
146
|
+
# norm - norm of a quaternion
|
|
147
|
+
# plot - display a quaternion as a 3D rotation
|
|
148
|
+
# qinterp - interpolate quaternions
|
|
149
|
+
# unit - unitize a quaternion
|
|
150
|
+
|
|
151
|
+
# Kinematics
|
|
152
|
+
# diff2tr - differential motion vector to transform
|
|
153
|
+
# fkine - compute forward kinematics
|
|
154
|
+
# ikine - compute inverse kinematics
|
|
155
|
+
# ikine560 - compute inverse kinematics for Puma 560 like arm
|
|
156
|
+
# jacob0 - compute Jacobian in base coordinate frame
|
|
157
|
+
# jacobn - compute Jacobian in end-effector coordinate frame
|
|
158
|
+
# tr2diff - transform to differential motion vector
|
|
159
|
+
# tr2jac - transform to Jacobian
|
|
160
|
+
|
|
161
|
+
# Dynamics
|
|
162
|
+
# accel - compute forward dynamics
|
|
163
|
+
# cinertia - compute Cartesian manipulator inertia matrix
|
|
164
|
+
# coriolis - compute centripetal/coriolis torque
|
|
165
|
+
# friction - joint friction
|
|
166
|
+
# ftrans - transform force/moment
|
|
167
|
+
# gravload - compute gravity loading
|
|
168
|
+
# inertia - compute manipulator inertia matrix
|
|
169
|
+
# itorque - compute inertia torque
|
|
170
|
+
# nofriction - remove friction from a robot object
|
|
171
|
+
# rne - inverse dynamics
|
|
172
|
+
|
|
173
|
+
# Trajectory generation
|
|
174
|
+
# ctraj - Cartesian trajectory
|
|
175
|
+
# jtraj - joint space trajectory
|
|
176
|
+
# trinterp - interpolate transform s
|
|
177
|
+
|
|
178
|
+
# Graphics
|
|
179
|
+
# drivebot - drive a graphical robot
|
|
180
|
+
# plot - plot/animate robot
|
|
181
|
+
|
|
182
|
+
# Other
|
|
183
|
+
# manipblty - compute manipulability
|
|
184
|
+
# unit - unitize a vector
|
|
185
|
+
|
|
186
|
+
# Creation of robot models.
|
|
187
|
+
# link - construct a robot link object
|
|
188
|
+
# puma560 - Puma 560 data
|
|
189
|
+
# puma560akb - Puma 560 data (modified Denavit-Hartenberg)
|
|
190
|
+
# robot - construct a robot object
|
|
191
|
+
# stanford - Stanford arm data
|
|
192
|
+
# twolink - simple 2-link example
|
|
193
|
+
# """
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Python Vehicle
|
|
3
|
+
@Author: Peter Corke, original MATLAB code and Python version
|
|
4
|
+
@Author: Kristian Gibson, initial MATLAB port
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from abc import ABC, abstractmethod
|
|
8
|
+
import warnings
|
|
9
|
+
from math import pi, sin, cos, tan, atan2
|
|
10
|
+
import numpy as np
|
|
11
|
+
from scipy import integrate, linalg, interpolate
|
|
12
|
+
|
|
13
|
+
import matplotlib.pyplot as plt
|
|
14
|
+
from matplotlib import patches
|
|
15
|
+
import matplotlib.transforms as mtransforms
|
|
16
|
+
|
|
17
|
+
from spatialmath import SE2, base
|
|
18
|
+
import roboticstoolbox as rtb
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class VehicleDriverBase(ABC):
|
|
22
|
+
"""
|
|
23
|
+
Abstract Vehicle driver class
|
|
24
|
+
|
|
25
|
+
Abtract class that can drive a mobile robot.
|
|
26
|
+
|
|
27
|
+
:seealso: :class:`RandomPath`
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __init__(
|
|
31
|
+
self,
|
|
32
|
+
workspace=None,
|
|
33
|
+
speed=1,
|
|
34
|
+
headinggain=0.3,
|
|
35
|
+
goalmarkerstyle=None,
|
|
36
|
+
verbose=False,
|
|
37
|
+
):
|
|
38
|
+
"""
|
|
39
|
+
_summary_
|
|
40
|
+
|
|
41
|
+
:param workspace: dimension of workspace, see :func:`spatialmath.base.exand_dims`
|
|
42
|
+
:type workspace: scalar, array_like(2), array_like(4)
|
|
43
|
+
:param speed: forward speed, defaults to 1
|
|
44
|
+
:type speed: float, optional
|
|
45
|
+
:param headinggain: _description_, defaults to 0.3
|
|
46
|
+
:type headinggain: float, optional
|
|
47
|
+
:param verbose: _description_, defaults to False
|
|
48
|
+
:type verbose: bool, optional
|
|
49
|
+
|
|
50
|
+
The workspace of the robot is a rectangular region defined by `workspace`
|
|
51
|
+
that is specified by (see ``plotvol2``):
|
|
52
|
+
|
|
53
|
+
============== ======= =======
|
|
54
|
+
``workspace`` x-range y-range
|
|
55
|
+
============== ======= =======
|
|
56
|
+
A (scalar) -A:A -A:A
|
|
57
|
+
[A, B] A:B A:B
|
|
58
|
+
[A, B, C, D] A:B C:D
|
|
59
|
+
============== ======= =======
|
|
60
|
+
"""
|
|
61
|
+
if hasattr(workspace, "workspace"):
|
|
62
|
+
# workspace can be defined by an object with a workspace attribute
|
|
63
|
+
self._workspace = base.expand_dims(workspace.workspace)
|
|
64
|
+
else:
|
|
65
|
+
self._workspace = base.expand_dims(workspace)
|
|
66
|
+
|
|
67
|
+
self._speed = speed
|
|
68
|
+
self._headinggain = headinggain
|
|
69
|
+
self._verbose = verbose
|
|
70
|
+
|
|
71
|
+
if goalmarkerstyle is None:
|
|
72
|
+
self._goal_marker_style = {
|
|
73
|
+
"marker": "D",
|
|
74
|
+
"markersize": 6,
|
|
75
|
+
"color": "r",
|
|
76
|
+
"linestyle": "None",
|
|
77
|
+
}
|
|
78
|
+
else:
|
|
79
|
+
self._goal_marker_style = goalmarkerstyle
|
|
80
|
+
|
|
81
|
+
@abstractmethod
|
|
82
|
+
def demand(self):
|
|
83
|
+
"""
|
|
84
|
+
Compute speed and heading
|
|
85
|
+
|
|
86
|
+
:return: speed and steering for :class:`VehicleBase`
|
|
87
|
+
|
|
88
|
+
When an instance of a :class:`VehicleDriverBase` class is attached as
|
|
89
|
+
the control for an instance of a :class:`VehicleBase` class, this method
|
|
90
|
+
is called at each time step to provide the control input.
|
|
91
|
+
|
|
92
|
+
Has access to the vehicle and its state through the :meth:`vehicle`
|
|
93
|
+
property.
|
|
94
|
+
"""
|
|
95
|
+
pass
|
|
96
|
+
|
|
97
|
+
@abstractmethod
|
|
98
|
+
def init(self):
|
|
99
|
+
"""
|
|
100
|
+
Initialize driving agent
|
|
101
|
+
|
|
102
|
+
Called at the start of a simulation run. Used to initialize state
|
|
103
|
+
including random number generator state.
|
|
104
|
+
"""
|
|
105
|
+
pass
|
|
106
|
+
|
|
107
|
+
@property
|
|
108
|
+
def vehicle(self):
|
|
109
|
+
"""
|
|
110
|
+
Set/get the vehicle under control
|
|
111
|
+
|
|
112
|
+
:getter: return :class:`VehicleBase` instance
|
|
113
|
+
:setter: set :class:`VehicleBase` instance
|
|
114
|
+
|
|
115
|
+
.. note:: The setter is invoked by ``vehicle.control = driver``
|
|
116
|
+
"""
|
|
117
|
+
return self._veh
|
|
118
|
+
|
|
119
|
+
@vehicle.setter
|
|
120
|
+
def vehicle(self, v):
|
|
121
|
+
|
|
122
|
+
self._veh = v
|
|
123
|
+
|
|
124
|
+
def __repr__(self):
|
|
125
|
+
return str(self)
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def workspace(self):
|
|
129
|
+
"""
|
|
130
|
+
Size of robot driving workspace
|
|
131
|
+
|
|
132
|
+
:return: workspace bounds [xmin, xmax, ymin, ymax]
|
|
133
|
+
:rtype: ndarray(4)
|
|
134
|
+
|
|
135
|
+
Returns the bounds of the workspace as specified by constructor
|
|
136
|
+
option ``workspace``
|
|
137
|
+
"""
|
|
138
|
+
return self._workspace
|
|
139
|
+
|
|
140
|
+
def driveto(self, goal):
|
|
141
|
+
|
|
142
|
+
goal_heading = atan2(goal[1] - self._veh._x[1], goal[0] - self._veh._x[0])
|
|
143
|
+
delta_heading = base.angdiff(goal_heading, self._veh._x[2])
|
|
144
|
+
print(
|
|
145
|
+
f"t={self._veh._t:.1f}, pos=({self._veh._x[0]:.1f}, {self._veh._x[1]:.1f}), ",
|
|
146
|
+
f"goal_heading={goal_heading * 180 / pi:.1f}, delta_heading={delta_heading * 180 / pi:.1f}",
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
return np.r_[self._speed, self._headinggain * delta_heading]
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
# ========================================================================= #
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class RandomPath(VehicleDriverBase):
|
|
156
|
+
def __init__(self, dthresh=0.05, seed=0, **kwargs):
|
|
157
|
+
"""
|
|
158
|
+
Driving agent for random path
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
:param dthresh: distance threshold, defaults to 0.05
|
|
162
|
+
:type dthresh: float, optional
|
|
163
|
+
|
|
164
|
+
:raises ValueError: bad workspace specified
|
|
165
|
+
|
|
166
|
+
Returns a *driver* object that drives the attached vehicle to a
|
|
167
|
+
sequence of random waypoints.
|
|
168
|
+
|
|
169
|
+
The driver is connected to the vehicle by::
|
|
170
|
+
|
|
171
|
+
Vehicle(control=driver)
|
|
172
|
+
|
|
173
|
+
or::
|
|
174
|
+
|
|
175
|
+
veh = Vehicle()
|
|
176
|
+
veh.control = driver
|
|
177
|
+
|
|
178
|
+
The waypoints are positioned inside a rectangular region defined by
|
|
179
|
+
the `workspace`
|
|
180
|
+
|
|
181
|
+
.. note::
|
|
182
|
+
- It is possible in some cases for the vehicle to move outside the desired
|
|
183
|
+
region, for instance if moving to a waypoint near the edge, the limited
|
|
184
|
+
turning circle may cause the vehicle to temporarily move outside.
|
|
185
|
+
- The vehicle chooses a new waypoint when it is closer than ``dthresh``
|
|
186
|
+
to the current waypoint.
|
|
187
|
+
- Uses its own random number generator so as to not influence the performance
|
|
188
|
+
of other randomized algorithms such as path planning. Set ``seed=None`` to have it randomly initialized from the
|
|
189
|
+
operating system.
|
|
190
|
+
|
|
191
|
+
:seealso: :class:`Bicycle` :class:`Unicycle` :func:`~spatialmath.base.graphics.plotvol2`
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
# TODO options to specify region, maybe accept a Map object?
|
|
195
|
+
|
|
196
|
+
super().__init__(**kwargs)
|
|
197
|
+
|
|
198
|
+
self._dthresh = dthresh * np.diff(self._workspace[0:2])
|
|
199
|
+
self._goal_marker = None
|
|
200
|
+
|
|
201
|
+
self._d_prev = np.inf
|
|
202
|
+
self._random = np.random.default_rng(seed)
|
|
203
|
+
self._seed = seed
|
|
204
|
+
self._goal = None
|
|
205
|
+
self._dthresh = dthresh * max(
|
|
206
|
+
self._workspace[1] - self._workspace[0],
|
|
207
|
+
self._workspace[3] - self._workspace[2],
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
self._veh = None
|
|
211
|
+
|
|
212
|
+
def __str__(self):
|
|
213
|
+
"""Convert to string
|
|
214
|
+
|
|
215
|
+
:return: driver parameters and state in in a compact human readable format
|
|
216
|
+
:rtype: str
|
|
217
|
+
"""
|
|
218
|
+
|
|
219
|
+
s = "RandomPath driver object\n"
|
|
220
|
+
s += (
|
|
221
|
+
f" X {self._workspace[0]} : {self._workspace[1]}; Y {self._workspace[0]} :"
|
|
222
|
+
f" {self._workspace[1]}, dthresh={self._dthresh}\n"
|
|
223
|
+
)
|
|
224
|
+
s += f" current goal={self._goal}"
|
|
225
|
+
return s
|
|
226
|
+
|
|
227
|
+
def init(self, ax=None):
|
|
228
|
+
"""
|
|
229
|
+
Initialize random path driving agent
|
|
230
|
+
|
|
231
|
+
:param ax: axes in which to draw via points, defaults to None
|
|
232
|
+
:type ax: Axes, optional
|
|
233
|
+
|
|
234
|
+
Called at the start of a simulation run. Ensures that the
|
|
235
|
+
random number generated is reseeded to ensure that
|
|
236
|
+
the sequence of random waypoints is repeatable.
|
|
237
|
+
"""
|
|
238
|
+
|
|
239
|
+
if self._seed is not None:
|
|
240
|
+
self._random = np.random.default_rng(self._seed)
|
|
241
|
+
|
|
242
|
+
self._goal = None
|
|
243
|
+
# delete(driver.h_goal); % delete the goal
|
|
244
|
+
# driver.h_goal = [];
|
|
245
|
+
if ax is not None:
|
|
246
|
+
self._goal_marker = plt.plot(
|
|
247
|
+
np.nan, np.nan, **self._goal_marker_style, label="random waypoint"
|
|
248
|
+
)[0]
|
|
249
|
+
|
|
250
|
+
def demand(self):
|
|
251
|
+
"""
|
|
252
|
+
Compute speed and heading for random waypoint
|
|
253
|
+
%
|
|
254
|
+
% [SPEED,STEER] = R.demand() is the speed and steer angle to
|
|
255
|
+
% drive the vehicle toward the next waypoint. When the vehicle is
|
|
256
|
+
% within R.dtresh a new waypoint is chosen.
|
|
257
|
+
%
|
|
258
|
+
% See also Vehicle."""
|
|
259
|
+
|
|
260
|
+
if self._goal is None:
|
|
261
|
+
self._new_goal()
|
|
262
|
+
|
|
263
|
+
# if nearly at goal point, choose the next one
|
|
264
|
+
d = np.linalg.norm(self._veh._x[0:2] - self._goal)
|
|
265
|
+
if d < self._dthresh or abs(d - self._d_prev) < 1e-3:
|
|
266
|
+
self._new_goal()
|
|
267
|
+
# elif d > 2 * self._d_prev:
|
|
268
|
+
# self.choose_goal()
|
|
269
|
+
self._d_prev = d
|
|
270
|
+
|
|
271
|
+
return self.driveto(self._goal)
|
|
272
|
+
|
|
273
|
+
## private method, invoked from demand() to compute a new waypoint
|
|
274
|
+
|
|
275
|
+
def _new_goal(self):
|
|
276
|
+
|
|
277
|
+
# choose a uniform random goal within inner 80% of driving area
|
|
278
|
+
while True:
|
|
279
|
+
r = self._random.uniform(0.1, 0.9)
|
|
280
|
+
gx = self._workspace[0:2] @ np.r_[r, 1 - r]
|
|
281
|
+
|
|
282
|
+
r = self._random.uniform(0.1, 0.9)
|
|
283
|
+
gy = self._workspace[2:4] @ np.r_[r, 1 - r]
|
|
284
|
+
|
|
285
|
+
self._goal = np.r_[gx, gy]
|
|
286
|
+
|
|
287
|
+
# check not too close to last goal
|
|
288
|
+
if np.linalg.norm(self._goal - self._veh._x[0:2]) > 2 * self._dthresh:
|
|
289
|
+
break
|
|
290
|
+
|
|
291
|
+
if self._veh.verbose or self._verbose:
|
|
292
|
+
print(f"set goal: {self._goal}")
|
|
293
|
+
|
|
294
|
+
# update the goal marker
|
|
295
|
+
if self._goal_marker is not None:
|
|
296
|
+
self._goal_marker.set_xdata([self._goal[0]])
|
|
297
|
+
self._goal_marker.set_ydata([self._goal[1]])
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
# ========================================================================= #
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
class PurePursuit(VehicleDriverBase):
|
|
304
|
+
def __init__(self, path, lookahead=1, linemarkerstyle=None, **kwargs):
|
|
305
|
+
"""
|
|
306
|
+
Driving agent for pure pursuit
|
|
307
|
+
|
|
308
|
+
:param path: path as a set of waypoints
|
|
309
|
+
:type path: array_like(2,n) one column per point, optional
|
|
310
|
+
:param lookahead: lookahead distance, defaults to 1
|
|
311
|
+
:type lookahead: float, optional
|
|
312
|
+
"""
|
|
313
|
+
super().__init__(**kwargs)
|
|
314
|
+
self._path = path
|
|
315
|
+
self._lookahead = lookahead
|
|
316
|
+
self._linemarkerstyle = linemarkerstyle
|
|
317
|
+
|
|
318
|
+
def __str__(self):
|
|
319
|
+
"""Convert to string
|
|
320
|
+
|
|
321
|
+
:return: driver parameters and state in in a compact human readable format
|
|
322
|
+
:rtype: str
|
|
323
|
+
"""
|
|
324
|
+
|
|
325
|
+
s = "PurePursuit driver object\n"
|
|
326
|
+
s += (
|
|
327
|
+
f" X {self._workspace[0]} : {self._workspace[1]}; Y {self._workspace[0]} :"
|
|
328
|
+
f" {self._workspace[1]}, lookahead={self._lookahead}\n"
|
|
329
|
+
)
|
|
330
|
+
return s
|
|
331
|
+
|
|
332
|
+
def init(self, ax=None):
|
|
333
|
+
if ax is not None:
|
|
334
|
+
h = plt.plot(
|
|
335
|
+
self._path[0, :],
|
|
336
|
+
self._path[1, :],
|
|
337
|
+
**self._linemarkerstyle,
|
|
338
|
+
label="waypoints",
|
|
339
|
+
)[0]
|
|
340
|
+
self._current_waypint = None
|
|
341
|
+
|
|
342
|
+
def demand(self):
|
|
343
|
+
|
|
344
|
+
cp = self._veh._x[0:2] # current point
|
|
345
|
+
|
|
346
|
+
# find closest point on the path to current point
|
|
347
|
+
d = np.linalg.norm(self._path.T - cp, axis=1) # rely on implicit expansion
|
|
348
|
+
i = np.argmin(d)
|
|
349
|
+
|
|
350
|
+
# find all points on the path at least lookahead distance away
|
|
351
|
+
(k,) = np.where(d[i + 1 :] >= self._lookahead) # find all points beyond horizon
|
|
352
|
+
if len(k) == 0:
|
|
353
|
+
# no such points, we must be near the end, goal is the end
|
|
354
|
+
goal = self._path[:, -1]
|
|
355
|
+
k = -1
|
|
356
|
+
else:
|
|
357
|
+
# many such points, take the first one
|
|
358
|
+
k = k[0] + 1 # first point beyond look ahead distance
|
|
359
|
+
goal = self._path[:, k + i]
|
|
360
|
+
k += i
|
|
361
|
+
|
|
362
|
+
if self._waypoint_marker is not None:
|
|
363
|
+
pass
|
|
364
|
+
for marker in self._waypoint_marker:
|
|
365
|
+
marker.set_color("blue")
|
|
366
|
+
self._waypoint_marker[k].set_color("red")
|
|
367
|
+
|
|
368
|
+
return self.driveto(goal)
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
# ========================================================================= #
|
|
372
|
+
|
|
373
|
+
if __name__ == "__main__":
|
|
374
|
+
# import unittest
|
|
375
|
+
|
|
376
|
+
import roboticstoolbox as rtb
|
|
377
|
+
|
|
378
|
+
# veh = rtb.Bicycle(control=rtb.RandomPath(workspace=10), animation="car")
|
|
379
|
+
# print(veh.control)
|
|
380
|
+
# veh.run(20, animate=True)
|
|
381
|
+
|
|
382
|
+
# create the path
|
|
383
|
+
path = np.array([[10.0, 10], [10, 60], [80, 80], [50, 10]]).T
|
|
384
|
+
veh = rtb.Bicycle(
|
|
385
|
+
control=rtb.PurePursuit(path, speed=4, lookahead=5, workspace=[0, 100]),
|
|
386
|
+
animation="car",
|
|
387
|
+
)
|
|
388
|
+
print(veh)
|
|
389
|
+
print(veh.control)
|
|
390
|
+
veh.run(60, animate=True)
|