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,500 @@
|
|
|
1
|
+
from typing import Type
|
|
2
|
+
import numpy as np
|
|
3
|
+
from math import sin, cos, atan2, tan, sqrt, pi
|
|
4
|
+
|
|
5
|
+
import matplotlib.pyplot as plt
|
|
6
|
+
from matplotlib.patches import Polygon
|
|
7
|
+
import time
|
|
8
|
+
|
|
9
|
+
from bdsim.block_types import GraphicsBlock, ContinuousBlock
|
|
10
|
+
|
|
11
|
+
from roboticstoolbox import mobile
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# ------------------------------------------------------------------------ #
|
|
15
|
+
class Bicycle(ContinuousBlock):
|
|
16
|
+
r"""
|
|
17
|
+
:blockname:`BICYCLE`
|
|
18
|
+
|
|
19
|
+
Vehicle model with Bicycle kinematics.
|
|
20
|
+
|
|
21
|
+
:inputs: 2
|
|
22
|
+
:outputs: 1
|
|
23
|
+
:states: 3
|
|
24
|
+
|
|
25
|
+
.. list-table::
|
|
26
|
+
:header-rows: 1
|
|
27
|
+
|
|
28
|
+
* - Port type
|
|
29
|
+
- Port number
|
|
30
|
+
- Types
|
|
31
|
+
- Description
|
|
32
|
+
* - Input
|
|
33
|
+
- 0
|
|
34
|
+
- float
|
|
35
|
+
- :math:`v`, longitudinal velocity
|
|
36
|
+
* - Input
|
|
37
|
+
- 1
|
|
38
|
+
- float
|
|
39
|
+
- :math:`\gamma`, steer angle
|
|
40
|
+
* - Output
|
|
41
|
+
- 0
|
|
42
|
+
- ndarray(3)
|
|
43
|
+
- :math:`\mathit{q} = (x, y, \theta)`, vehicle configuration
|
|
44
|
+
|
|
45
|
+
Bicycle kinematic model with velocity and steering inputs and vehicle configuration
|
|
46
|
+
as output.
|
|
47
|
+
|
|
48
|
+
Various limits are applied to the inputs:
|
|
49
|
+
|
|
50
|
+
* velocity limit ``speed_max``
|
|
51
|
+
* acceleration limit ``accel_max``
|
|
52
|
+
* steering limit ``steer_max``
|
|
53
|
+
|
|
54
|
+
:seealso: :class:`~roboticstoolbox.mobile.Vehicle.Bicycle` :class:`Unicycle` :class:`DiffSteer`
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
nin = 2
|
|
58
|
+
nout = 1
|
|
59
|
+
inlabels = ("v", "γ")
|
|
60
|
+
outlabels = ("q",)
|
|
61
|
+
|
|
62
|
+
def __init__(
|
|
63
|
+
self,
|
|
64
|
+
L=1,
|
|
65
|
+
speed_max=np.inf,
|
|
66
|
+
accel_max=np.inf,
|
|
67
|
+
steer_max=0.45 * pi,
|
|
68
|
+
x0=None,
|
|
69
|
+
**blockargs,
|
|
70
|
+
):
|
|
71
|
+
r"""
|
|
72
|
+
:param L: Wheelbase, defaults to 1
|
|
73
|
+
:type L: float, optional
|
|
74
|
+
:param speed_max: Velocity limit, defaults to math.inf
|
|
75
|
+
:type speed_max: float, optional
|
|
76
|
+
:param accel_max: maximum acceleration, defaults to math.inf
|
|
77
|
+
:type accel_max: float, optional
|
|
78
|
+
:param steer_max: maximum steered wheel angle, defaults to math.pi*0.45
|
|
79
|
+
:type steer_max: float, optional
|
|
80
|
+
:param x0: Initial state, defaults to [0,0,0]
|
|
81
|
+
:type x0: array_like(3), optional
|
|
82
|
+
:param blockargs: |BlockOptions|
|
|
83
|
+
:type blockargs: dict
|
|
84
|
+
"""
|
|
85
|
+
# TODO: add option to model the effect of steering arms, responds to
|
|
86
|
+
# gamma dot
|
|
87
|
+
|
|
88
|
+
super().__init__(nstates=3, **blockargs)
|
|
89
|
+
self.type = "bicycle"
|
|
90
|
+
|
|
91
|
+
self.vehicle = mobile.Bicycle(
|
|
92
|
+
L=L, steer_max=steer_max, speed_max=speed_max, accel_max=accel_max
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
if x0 is None:
|
|
96
|
+
self._x0 = np.zeros((self.nstates,))
|
|
97
|
+
else:
|
|
98
|
+
assert len(x0) == self.nstates, "x0 is {:d} long, should be {:d}".format(
|
|
99
|
+
len(x0), self.nstates
|
|
100
|
+
)
|
|
101
|
+
self._x0 = x0
|
|
102
|
+
|
|
103
|
+
self.inport_names(("v", r"$\gamma$"))
|
|
104
|
+
self.outport_names(("q",))
|
|
105
|
+
self.state_names(("x", "y", r"$\theta$"))
|
|
106
|
+
|
|
107
|
+
def output(self, t, inports, x):
|
|
108
|
+
return [x] # one output which is ndarray(3)
|
|
109
|
+
|
|
110
|
+
def deriv(self, t, inports, x):
|
|
111
|
+
return self.vehicle.deriv(x, inports)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
# ------------------------------------------------------------------------ #
|
|
115
|
+
class Unicycle(ContinuousBlock):
|
|
116
|
+
r"""
|
|
117
|
+
:blockname:`UNICYCLE`
|
|
118
|
+
|
|
119
|
+
Vehicle model with Unicycle kinematics.
|
|
120
|
+
|
|
121
|
+
:inputs: 2
|
|
122
|
+
:outputs: 1
|
|
123
|
+
:states: 3
|
|
124
|
+
|
|
125
|
+
.. list-table::
|
|
126
|
+
:header-rows: 1
|
|
127
|
+
|
|
128
|
+
* - Port type
|
|
129
|
+
- Port number
|
|
130
|
+
- Types
|
|
131
|
+
- Description
|
|
132
|
+
* - Input
|
|
133
|
+
- 0
|
|
134
|
+
- float
|
|
135
|
+
- :math:`v`, longitudinal velocity
|
|
136
|
+
* - Input
|
|
137
|
+
- 1
|
|
138
|
+
- float
|
|
139
|
+
- :math:`\omega`, turn rate
|
|
140
|
+
* - Output
|
|
141
|
+
- 0
|
|
142
|
+
- ndarray(3)
|
|
143
|
+
- :math:`\mathit{q} = (x, y, \theta)`, vehicle configuration
|
|
144
|
+
|
|
145
|
+
Unicycle kinematic model with velocity and steering inputs and vehicle configuration
|
|
146
|
+
as output.
|
|
147
|
+
|
|
148
|
+
Various limits are applied to the inputs:
|
|
149
|
+
|
|
150
|
+
* velocity limit ``speed_max``
|
|
151
|
+
* acceleration limit ``accel_max``
|
|
152
|
+
* steering limit ``steer_max``
|
|
153
|
+
|
|
154
|
+
:seealso: :class:`~roboticstoolbox.mobile.Vehicle.Unicycle` :class:`Bicycle` :class:`DiffSteer`
|
|
155
|
+
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
nin = 2
|
|
159
|
+
nout = 1
|
|
160
|
+
inlabels = ("v", "ω")
|
|
161
|
+
outlabels = ("q",)
|
|
162
|
+
|
|
163
|
+
def __init__(
|
|
164
|
+
self,
|
|
165
|
+
w=1,
|
|
166
|
+
speed_max=np.inf,
|
|
167
|
+
accel_max=np.inf,
|
|
168
|
+
steer_max=np.inf,
|
|
169
|
+
# a=0, implement this, RVC2 p111, change output and deriv
|
|
170
|
+
x0=None,
|
|
171
|
+
**blockargs,
|
|
172
|
+
):
|
|
173
|
+
r"""
|
|
174
|
+
|
|
175
|
+
:param w: vehicle width, defaults to 1
|
|
176
|
+
:type w: float, optional
|
|
177
|
+
:param speed_max: Velocity limit, defaults to math.inf
|
|
178
|
+
:type speed_max: float, optional
|
|
179
|
+
:param accel_max: maximum acceleration, defaults to math.inf
|
|
180
|
+
:type accel_max: float, optional
|
|
181
|
+
:param steer_max: maximum turn rate :math:`\omega`, defaults to math.inf
|
|
182
|
+
:type steer_max: float, optional
|
|
183
|
+
:param x0: Inital state, defaults to [0,0,0]
|
|
184
|
+
:type x0: array_like(3), optional
|
|
185
|
+
:param blockargs: |BlockOptions|
|
|
186
|
+
:type blockargs: dict
|
|
187
|
+
"""
|
|
188
|
+
super().__init__(nstates=3, **blockargs)
|
|
189
|
+
self.type = "unicycle"
|
|
190
|
+
|
|
191
|
+
if x0 is None:
|
|
192
|
+
self._x0 = np.zeros((self.nstates,))
|
|
193
|
+
else:
|
|
194
|
+
assert len(x0) == self.nstates, "x0 is {:d} long, should be {:d}".format(
|
|
195
|
+
len(x0), self.nstates
|
|
196
|
+
)
|
|
197
|
+
self._x0 = x0
|
|
198
|
+
|
|
199
|
+
self.vehicle = mobile.Unicycle(
|
|
200
|
+
W=w, steer_max=steer_max, speed_max=speed_max, accel_max=accel_max
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
# TODO, add support for origin shift
|
|
204
|
+
# If ``a`` is non-zero then the planar velocity of that point $x=a$
|
|
205
|
+
# can be controlled by
|
|
206
|
+
|
|
207
|
+
# .. math::
|
|
208
|
+
|
|
209
|
+
# \begin{pmatrix} v \\ \omega \end{pmatrix} =
|
|
210
|
+
# \begin{pmatrix}
|
|
211
|
+
# \cos \theta & \sin \theta \\
|
|
212
|
+
# -\frac{1}{a}\sin \theta & \frac{1}{a}\cos \theta
|
|
213
|
+
# \end{pmatrix}\begin{pmatrix}
|
|
214
|
+
# \dot{x} \\ \dot{y}
|
|
215
|
+
# \end{pmatrix}
|
|
216
|
+
|
|
217
|
+
def output(self, t, inports, x):
|
|
218
|
+
return [x]
|
|
219
|
+
|
|
220
|
+
def deriv(self, t, inports, x):
|
|
221
|
+
return self.vehicle.deriv(x, inports)
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
# ------------------------------------------------------------------------ #
|
|
225
|
+
class DiffSteer(ContinuousBlock):
|
|
226
|
+
r"""
|
|
227
|
+
:blockname:`DIFFSTEER`
|
|
228
|
+
|
|
229
|
+
Differential steer vehicle model
|
|
230
|
+
|
|
231
|
+
:inputs: 2
|
|
232
|
+
:outputs: 1
|
|
233
|
+
:states: 3
|
|
234
|
+
|
|
235
|
+
.. list-table::
|
|
236
|
+
:header-rows: 1
|
|
237
|
+
|
|
238
|
+
* - Port type
|
|
239
|
+
- Port number
|
|
240
|
+
- Types
|
|
241
|
+
- Description
|
|
242
|
+
* - Input
|
|
243
|
+
- 0
|
|
244
|
+
- float
|
|
245
|
+
- :math:`\omega_L`, left-wheel angular velocity (radians/sec).
|
|
246
|
+
* - Input
|
|
247
|
+
- 1
|
|
248
|
+
- float
|
|
249
|
+
- :math:`\omega_R`, right-wheel angular velocity (radians/sec).
|
|
250
|
+
* - Output
|
|
251
|
+
- 0
|
|
252
|
+
- ndarray(3)
|
|
253
|
+
- :math:`\mathit{q} = (x, y, \theta)`, vehicle configuration
|
|
254
|
+
|
|
255
|
+
Differential steering kinematic model with wheel velocity inputs and vehicle
|
|
256
|
+
configuration as output.
|
|
257
|
+
|
|
258
|
+
Various limits are applied to the inputs:
|
|
259
|
+
|
|
260
|
+
* velocity limit ``speed_max``
|
|
261
|
+
* acceleration limit ``accel_max``
|
|
262
|
+
* steering limit ``steer_max``
|
|
263
|
+
|
|
264
|
+
.. note:: Wheel velocity is defined such that if both are positive the vehicle
|
|
265
|
+
moves forward.
|
|
266
|
+
|
|
267
|
+
:seealso: :class:`~roboticstoolbox.mobile.Vehicle.Diffsteer` :class:`Bicycle` :class:`Unicycle`
|
|
268
|
+
"""
|
|
269
|
+
|
|
270
|
+
nin = 2
|
|
271
|
+
nout = 1
|
|
272
|
+
|
|
273
|
+
inlabels = ("ωL", "ωR")
|
|
274
|
+
outlabels = ("q",)
|
|
275
|
+
|
|
276
|
+
def __init__(
|
|
277
|
+
self,
|
|
278
|
+
w=1,
|
|
279
|
+
R=1,
|
|
280
|
+
speed_max=np.inf,
|
|
281
|
+
accel_max=np.inf,
|
|
282
|
+
steer_max=None,
|
|
283
|
+
a=0,
|
|
284
|
+
x0=None,
|
|
285
|
+
**blockargs,
|
|
286
|
+
):
|
|
287
|
+
r"""
|
|
288
|
+
:param w: vehicle width, defaults to 1
|
|
289
|
+
:type w: float, optional
|
|
290
|
+
:param R: Wheel radius, defaults to 1
|
|
291
|
+
:type R: float, optional
|
|
292
|
+
:param speed_max: Velocity limit, defaults to 1
|
|
293
|
+
:type speed_max: float, optional
|
|
294
|
+
:param accel_max: maximum acceleration, defaults to math.inf
|
|
295
|
+
:type accel_max: float, optional
|
|
296
|
+
:param steer_max: maximum steering rate, defaults to 1
|
|
297
|
+
:type steer_max: float, optional
|
|
298
|
+
:param x0: Inital state, defaults to None
|
|
299
|
+
:type x0: array_like, optional
|
|
300
|
+
:param blockargs: |BlockOptions|
|
|
301
|
+
:type blockargs: dict
|
|
302
|
+
"""
|
|
303
|
+
super().__init__(nstates=3, **blockargs)
|
|
304
|
+
self.type = "diffsteer"
|
|
305
|
+
self.R = R
|
|
306
|
+
|
|
307
|
+
if x0 is None:
|
|
308
|
+
self._x0 = np.zeros((slef.nstates,))
|
|
309
|
+
else:
|
|
310
|
+
assert len(x0) == self.nstates, "x0 is {:d} long, should be {:d}".format(
|
|
311
|
+
len(x0), self.nstates
|
|
312
|
+
)
|
|
313
|
+
self._x0 = x0
|
|
314
|
+
|
|
315
|
+
self.vehicle = mobile.DiffSteer(
|
|
316
|
+
W=w, steer_max=steer_max, speed_max=speed_max, accel_max=accel_max
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
def output(self, t, inports, x):
|
|
320
|
+
return [x]
|
|
321
|
+
|
|
322
|
+
def deriv(self, t, inports, x):
|
|
323
|
+
return self.vehicle.deriv(x, inports)
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
# ------------------------------------------------------------------------ #
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
class VehiclePlot(GraphicsBlock):
|
|
330
|
+
r"""
|
|
331
|
+
:blockname:`VEHICLEPLOT`
|
|
332
|
+
|
|
333
|
+
Vehicle animation
|
|
334
|
+
|
|
335
|
+
:inputs: 1
|
|
336
|
+
:outputs: 0
|
|
337
|
+
:states: 0
|
|
338
|
+
|
|
339
|
+
.. list-table::
|
|
340
|
+
:header-rows: 1
|
|
341
|
+
|
|
342
|
+
* - Port type
|
|
343
|
+
- Port number
|
|
344
|
+
- Types
|
|
345
|
+
- Description
|
|
346
|
+
* - Input
|
|
347
|
+
- 0
|
|
348
|
+
- float
|
|
349
|
+
- :math:`\mathit{q} = (x, y, \theta)`, vehicle configuration
|
|
350
|
+
|
|
351
|
+
Create a vehicle animation similar to the figure below.
|
|
352
|
+
|
|
353
|
+
.. figure:: ../figs/rvc4_4.gif
|
|
354
|
+
:width: 500px
|
|
355
|
+
:alt: example of generated graphic
|
|
356
|
+
|
|
357
|
+
Example of vehicle display (animated). The label at the top is the
|
|
358
|
+
block name.
|
|
359
|
+
"""
|
|
360
|
+
|
|
361
|
+
nin = 1
|
|
362
|
+
nout = 0
|
|
363
|
+
AXES_POLICY = "subplot"
|
|
364
|
+
TIMESTAMP = True
|
|
365
|
+
|
|
366
|
+
inlabels = ("q",)
|
|
367
|
+
|
|
368
|
+
# TODO add ability to render an image instead of an outline
|
|
369
|
+
|
|
370
|
+
def __init__(
|
|
371
|
+
self,
|
|
372
|
+
animation=None,
|
|
373
|
+
path=None,
|
|
374
|
+
labels=["X", "Y"],
|
|
375
|
+
square=True,
|
|
376
|
+
init=None,
|
|
377
|
+
scale="auto",
|
|
378
|
+
shape="car",
|
|
379
|
+
size=None,
|
|
380
|
+
polyargs={},
|
|
381
|
+
**blockargs,
|
|
382
|
+
):
|
|
383
|
+
"""
|
|
384
|
+
:param animation: Graphical animation of vehicle, defaults to None
|
|
385
|
+
:type animation: VehicleAnimation subclass, optional
|
|
386
|
+
:param path: linestyle to plot path taken by vehicle, defaults to None
|
|
387
|
+
:type path: str or dict, optional
|
|
388
|
+
:param labels: axis labels (xlabel, ylabel), defaults to ["X","Y"]
|
|
389
|
+
:type labels: array_like(2) or list
|
|
390
|
+
:param square: Set aspect ratio to 1, defaults to True
|
|
391
|
+
:type square: bool, optional
|
|
392
|
+
:param init: function to initialize graphics, defaults to None
|
|
393
|
+
:type init: callable, optional
|
|
394
|
+
:param scale: scale of plot, defaults to "auto"
|
|
395
|
+
:type scale: list or str, optional
|
|
396
|
+
:param shape: shape of vehicle, passed to animation, defaults to None
|
|
397
|
+
:type shape: array_like, optional
|
|
398
|
+
:param size: size of vehicle, passed to animation, defaults to None
|
|
399
|
+
:type size: float or array_like, optional
|
|
400
|
+
:param polyargs: arguments passed to :meth:`Animation.Polygon`
|
|
401
|
+
:type polyargs: dict
|
|
402
|
+
:param blockargs: |BlockOptions|
|
|
403
|
+
:type blockargs: dict
|
|
404
|
+
|
|
405
|
+
.. note::
|
|
406
|
+
|
|
407
|
+
- The ``init`` function is called after the axes are initialized
|
|
408
|
+
and can be used to draw application specific detail on the
|
|
409
|
+
plot. In the example below, this is the dot and star.
|
|
410
|
+
- If an ``animation`` object is not provided then a default polygon animation is
|
|
411
|
+
created. It's size and shape can be set by the ``size`` and ``shape`` parameters, which are passed to the animation object,
|
|
412
|
+
or a dictionary of arguments ``polyargs`` which is passed to the default animation object.
|
|
413
|
+
- A dynamic trail, showing path to date can be animated if
|
|
414
|
+
the option ``path`` is set to a linestyle.
|
|
415
|
+
"""
|
|
416
|
+
super().__init__(**blockargs)
|
|
417
|
+
self.xdata = []
|
|
418
|
+
self.ydata = []
|
|
419
|
+
# self.type = "vehicleplot"
|
|
420
|
+
if init is not None:
|
|
421
|
+
assert callable(init), "graphics init function must be callable"
|
|
422
|
+
self.init = init
|
|
423
|
+
self.square = square
|
|
424
|
+
|
|
425
|
+
self.pathstyle = path
|
|
426
|
+
|
|
427
|
+
if scale != "auto":
|
|
428
|
+
if len(scale) == 2:
|
|
429
|
+
scale = scale * 2
|
|
430
|
+
self.scale = scale
|
|
431
|
+
self.labels = labels
|
|
432
|
+
|
|
433
|
+
polyargs.update(
|
|
434
|
+
{k: v for k, v in [("shape", shape), ("scale", size)] if v is not None}
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
if animation is None:
|
|
438
|
+
animation = mobile.VehiclePolygon(**polyargs)
|
|
439
|
+
elif not isinstance(animation, mobile.VehicleAnimationBase):
|
|
440
|
+
raise TypeError("animation object must be VehicleAnimationBase subclass")
|
|
441
|
+
|
|
442
|
+
self.animation = animation
|
|
443
|
+
|
|
444
|
+
def start(self, simstate):
|
|
445
|
+
super().start(simstate)
|
|
446
|
+
|
|
447
|
+
if not self._enabled:
|
|
448
|
+
return
|
|
449
|
+
|
|
450
|
+
# create the plot
|
|
451
|
+
# super().reset()
|
|
452
|
+
# create the figures
|
|
453
|
+
assert self.fig is not None and self.ax is not None
|
|
454
|
+
|
|
455
|
+
if self.square:
|
|
456
|
+
self.ax.set_aspect("equal")
|
|
457
|
+
print("done")
|
|
458
|
+
|
|
459
|
+
self.ax.set_axisbelow(True) # keeps grid beneath artists
|
|
460
|
+
self.ax.grid(True)
|
|
461
|
+
self.ax.set_xlabel(self.labels[0])
|
|
462
|
+
self.ax.set_ylabel(self.labels[1])
|
|
463
|
+
self.ax.set_title(self.name)
|
|
464
|
+
if self.scale != "auto":
|
|
465
|
+
self.ax.set_xlim(*self.scale[0:2])
|
|
466
|
+
self.ax.set_ylim(*self.scale[2:4])
|
|
467
|
+
if self.init is not None:
|
|
468
|
+
self.init(self.ax)
|
|
469
|
+
|
|
470
|
+
if isinstance(self.pathstyle, str):
|
|
471
|
+
(self.line,) = plt.plot(0, 0, self.pathstyle)
|
|
472
|
+
elif isinstance(self.pathstyle, dict):
|
|
473
|
+
(self.line,) = plt.plot(0, 0, **self.pathstyle)
|
|
474
|
+
|
|
475
|
+
self.animation.add()
|
|
476
|
+
|
|
477
|
+
# plt.draw()
|
|
478
|
+
# plt.show(block=False)
|
|
479
|
+
|
|
480
|
+
def step(self, t, inports):
|
|
481
|
+
if not self._enabled:
|
|
482
|
+
return
|
|
483
|
+
|
|
484
|
+
# inputs are set
|
|
485
|
+
xyt = inports[0]
|
|
486
|
+
|
|
487
|
+
# update the path line
|
|
488
|
+
self.xdata.append(xyt[0])
|
|
489
|
+
self.ydata.append(xyt[1])
|
|
490
|
+
# plt.figure(self.fig.number)
|
|
491
|
+
if self.pathstyle is not None:
|
|
492
|
+
self.line.set_data(self.xdata, self.ydata)
|
|
493
|
+
|
|
494
|
+
# update the vehicle pose
|
|
495
|
+
self.animation.update(xyt)
|
|
496
|
+
|
|
497
|
+
if isinstance(self.scale, str) and self.scale == "auto":
|
|
498
|
+
self.ax.relim()
|
|
499
|
+
self.ax.autoscale_view()
|
|
500
|
+
super().step(t, inports)
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# MDL_QUADCOPTER Dynamic parameters for a quadrotor.
|
|
2
|
+
#
|
|
3
|
+
# MDL_QUADCOPTER is a script creates the workspace variable quad which
|
|
4
|
+
# describes the dynamic characterstics of a quadrotor flying robot.
|
|
5
|
+
#
|
|
6
|
+
# Properties::
|
|
7
|
+
#
|
|
8
|
+
# This is a structure with the following elements:
|
|
9
|
+
#
|
|
10
|
+
# nrotors Number of rotors (1x1)
|
|
11
|
+
# J Flyer rotational inertia matrix (3x3)
|
|
12
|
+
# h Height of rotors above CoG (1x1)
|
|
13
|
+
# d Length of flyer arms (1x1)
|
|
14
|
+
# nb Number of blades per rotor (1x1)
|
|
15
|
+
# r Rotor radius (1x1)
|
|
16
|
+
# c Blade chord (1x1)
|
|
17
|
+
# e Flapping hinge offset (1x1)
|
|
18
|
+
# Mb Rotor blade mass (1x1)
|
|
19
|
+
# Mc Estimated hub clamp mass (1x1)
|
|
20
|
+
# ec Blade root clamp displacement (1x1)
|
|
21
|
+
# Ib Rotor blade rotational inertia (1x1)
|
|
22
|
+
# Ic Estimated root clamp inertia (1x1)
|
|
23
|
+
# mb Static blade moment (1x1)
|
|
24
|
+
# Ir Total rotor inertia (1x1)
|
|
25
|
+
# Ct Non-dim. thrust coefficient (1x1)
|
|
26
|
+
# Cq Non-dim. torque coefficient (1x1)
|
|
27
|
+
# sigma Rotor solidity ratio (1x1)
|
|
28
|
+
# thetat Blade tip angle (1x1)
|
|
29
|
+
# theta0 Blade root angle (1x1)
|
|
30
|
+
# theta1 Blade twist angle (1x1)
|
|
31
|
+
# theta75 3/4 blade angle (1x1)
|
|
32
|
+
# thetai Blade ideal root approximation (1x1)
|
|
33
|
+
# a Lift slope gradient (1x1)
|
|
34
|
+
# A Rotor disc area (1x1)
|
|
35
|
+
# gamma Lock number (1x1)
|
|
36
|
+
#
|
|
37
|
+
#
|
|
38
|
+
# Notes::
|
|
39
|
+
# - SI units are used.
|
|
40
|
+
#
|
|
41
|
+
# References::
|
|
42
|
+
# - Design, Construction and Control of a Large Quadrotor micro air vehicle.
|
|
43
|
+
# P.Pounds, PhD thesis,
|
|
44
|
+
# Australian National University, 2007.
|
|
45
|
+
# http://www.eng.yale.edu/pep5/P_Pounds_Thesis_2008.pdf
|
|
46
|
+
# - This is a heavy lift quadrotor
|
|
47
|
+
#
|
|
48
|
+
|
|
49
|
+
import numpy as np
|
|
50
|
+
from math import pi, sqrt, inf
|
|
51
|
+
|
|
52
|
+
quadrotor = {}
|
|
53
|
+
quadrotor["nrotors"] = 4 # 4 rotors
|
|
54
|
+
quadrotor["g"] = 9.81 # g Gravity
|
|
55
|
+
quadrotor["rho"] = 1.184 # rho Density of air
|
|
56
|
+
quadrotor["muv"] = 1.5e-5 # muv Viscosity of air
|
|
57
|
+
|
|
58
|
+
# Airframe
|
|
59
|
+
quadrotor["M"] = 4 # M Mass
|
|
60
|
+
Ixx = 0.082
|
|
61
|
+
Iyy = 0.082
|
|
62
|
+
Izz = 0.149 # 0.160
|
|
63
|
+
quadrotor["J"] = np.diag([Ixx, Iyy, Izz]) # I Flyer rotational inertia matrix 3x3
|
|
64
|
+
|
|
65
|
+
quadrotor["h"] = -0.007 # h Height of rotors above CoG
|
|
66
|
+
quadrotor["d"] = 0.315 # d Length of flyer arms
|
|
67
|
+
|
|
68
|
+
# Rotor
|
|
69
|
+
quadrotor["nb"] = 2 # b Number of blades per rotor
|
|
70
|
+
quadrotor["r"] = 0.165 # r Rotor radius
|
|
71
|
+
|
|
72
|
+
quadrotor["c"] = 0.018 # c Blade chord
|
|
73
|
+
|
|
74
|
+
quadrotor["e"] = 0.0 # e Flapping hinge offset
|
|
75
|
+
quadrotor["Mb"] = 0.005 # Mb Rotor blade mass
|
|
76
|
+
quadrotor["Mc"] = 0.010 # Mc Estimated hub clamp mass
|
|
77
|
+
quadrotor["ec"] = 0.004 # ec Blade root clamp displacement
|
|
78
|
+
quadrotor["Ib"] = (
|
|
79
|
+
quadrotor["Mb"] * (quadrotor["r"] - quadrotor["ec"]) ** 2 / 4
|
|
80
|
+
) # Ib Rotor blade rotational inertia
|
|
81
|
+
quadrotor["Ic"] = (
|
|
82
|
+
quadrotor["Mc"] * (quadrotor["ec"]) ** 2 / 4
|
|
83
|
+
) # Ic Estimated root clamp inertia
|
|
84
|
+
quadrotor["mb"] = quadrotor["g"] * (
|
|
85
|
+
quadrotor["Mc"] * quadrotor["ec"] / 2 + quadrotor["Mb"] * quadrotor["r"] / 2
|
|
86
|
+
) # mb Static blade moment
|
|
87
|
+
quadrotor["Ir"] = quadrotor["nb"] * (
|
|
88
|
+
quadrotor["Ib"] + quadrotor["Ic"]
|
|
89
|
+
) # Ir Total rotor inertia
|
|
90
|
+
|
|
91
|
+
quadrotor["Ct"] = 0.0048 # Ct Non-dim. thrust coefficient
|
|
92
|
+
quadrotor["Cq"] = quadrotor["Ct"] * sqrt(
|
|
93
|
+
quadrotor["Ct"] / 2
|
|
94
|
+
) # Cq Non-dim. torque coefficient
|
|
95
|
+
|
|
96
|
+
quadrotor["sigma"] = (
|
|
97
|
+
quadrotor["c"] * quadrotor["nb"] / (pi * quadrotor["r"])
|
|
98
|
+
) # sigma Rotor solidity ratio
|
|
99
|
+
quadrotor["thetat"] = 6.8 * (pi / 180) # thetat Blade tip angle
|
|
100
|
+
quadrotor["theta0"] = 14.6 * (pi / 180) # theta0 Blade root angle
|
|
101
|
+
quadrotor["theta1"] = (
|
|
102
|
+
quadrotor["thetat"] - quadrotor["theta0"]
|
|
103
|
+
) # theta1 Blade twist angle
|
|
104
|
+
quadrotor["theta75"] = (
|
|
105
|
+
quadrotor["theta0"] + 0.75 * quadrotor["theta1"]
|
|
106
|
+
) # theta76 3/4 blade angle
|
|
107
|
+
try:
|
|
108
|
+
quadrotor["thetai"] = quadrotor["thetat"] * (
|
|
109
|
+
quadrotor["r"] / quadrotor["e"]
|
|
110
|
+
) # thetai Blade ideal root approximation
|
|
111
|
+
except ZeroDivisionError:
|
|
112
|
+
quadrotor["thetai"] = inf
|
|
113
|
+
quadrotor["a"] = 5.5 # a Lift slope gradient
|
|
114
|
+
|
|
115
|
+
# derived constants
|
|
116
|
+
quadrotor["A"] = pi * quadrotor["r"] ** 2 # A Rotor disc area
|
|
117
|
+
quadrotor["gamma"] = (
|
|
118
|
+
quadrotor["rho"]
|
|
119
|
+
* quadrotor["a"]
|
|
120
|
+
* quadrotor["c"]
|
|
121
|
+
* quadrotor["r"] ** 4
|
|
122
|
+
/ (quadrotor["Ib"] + quadrotor["Ic"])
|
|
123
|
+
) # gamma Lock number
|
|
124
|
+
|
|
125
|
+
quadrotor["b"] = (
|
|
126
|
+
quadrotor["Ct"] * quadrotor["rho"] * quadrotor["A"] * quadrotor["r"] ** 2
|
|
127
|
+
) # T = b w^2
|
|
128
|
+
quadrotor["k"] = (
|
|
129
|
+
quadrotor["Cq"] * quadrotor["rho"] * quadrotor["A"] * quadrotor["r"] ** 3
|
|
130
|
+
) # Q = k w^2
|
|
131
|
+
|
|
132
|
+
quadrotor["verbose"] = False
|