roboticstoolbox-python 1.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. roboticstoolbox/__init__.py +107 -0
  2. roboticstoolbox/backends/Connector.py +113 -0
  3. roboticstoolbox/backends/Dynamixel/README.md +9 -0
  4. roboticstoolbox/backends/Dynamixel/dynamixel.json +581 -0
  5. roboticstoolbox/backends/Dynamixel/dynamixel_io.py +450 -0
  6. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/LICENSE +201 -0
  7. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/README.md +28 -0
  8. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/ReleaseNote.md +181 -0
  9. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/__init__.py +27 -0
  10. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_bulk_read.py +163 -0
  11. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_bulk_write.py +109 -0
  12. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_sync_read.py +166 -0
  13. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/group_sync_write.py +99 -0
  14. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/packet_handler.py +33 -0
  15. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/port_handler.py +155 -0
  16. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/protocol1_packet_handler.py +548 -0
  17. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/protocol2_packet_handler.py +1080 -0
  18. roboticstoolbox/backends/Dynamixel/dynamixel_sdk/robotis_def.py +75 -0
  19. roboticstoolbox/backends/Dynamixel/dyndata.py +121 -0
  20. roboticstoolbox/backends/PyPlot/EllipsePlot.py +256 -0
  21. roboticstoolbox/backends/PyPlot/PyPlot.py +778 -0
  22. roboticstoolbox/backends/PyPlot/PyPlot2.py +537 -0
  23. roboticstoolbox/backends/PyPlot/README.md +67 -0
  24. roboticstoolbox/backends/PyPlot/RobotPlot.py +247 -0
  25. roboticstoolbox/backends/PyPlot/RobotPlot2.py +123 -0
  26. roboticstoolbox/backends/PyPlot/__init__.py +4 -0
  27. roboticstoolbox/backends/ROS/ROS.py +129 -0
  28. roboticstoolbox/backends/ROS/__init__.py +3 -0
  29. roboticstoolbox/backends/__init__.py +39 -0
  30. roboticstoolbox/backends/swift/__init__.py +165 -0
  31. roboticstoolbox/bin/__init__.py +0 -0
  32. roboticstoolbox/bin/_bintools.py +61 -0
  33. roboticstoolbox/bin/rtbtool.py +404 -0
  34. roboticstoolbox/blocks/Icons/250x250/armplot.png +0 -0
  35. roboticstoolbox/blocks/Icons/250x250/bicycle.png +0 -0
  36. roboticstoolbox/blocks/Icons/250x250/camera.png +0 -0
  37. roboticstoolbox/blocks/Icons/250x250/circlepath.png +0 -0
  38. roboticstoolbox/blocks/Icons/250x250/coriolis.png +0 -0
  39. roboticstoolbox/blocks/Icons/250x250/ctraj.png +0 -0
  40. roboticstoolbox/blocks/Icons/250x250/delta2tr.png +0 -0
  41. roboticstoolbox/blocks/Icons/250x250/diffsteer.png +0 -0
  42. roboticstoolbox/blocks/Icons/250x250/fdyn.png +0 -0
  43. roboticstoolbox/blocks/Icons/250x250/fdynx.png +0 -0
  44. roboticstoolbox/blocks/Icons/250x250/fkine.png +0 -0
  45. roboticstoolbox/blocks/Icons/250x250/gravload.png +0 -0
  46. roboticstoolbox/blocks/Icons/250x250/idyn.png +0 -0
  47. roboticstoolbox/blocks/Icons/250x250/idynx.png +0 -0
  48. roboticstoolbox/blocks/Icons/250x250/ikine.png +0 -0
  49. roboticstoolbox/blocks/Icons/250x250/inertia.png +0 -0
  50. roboticstoolbox/blocks/Icons/250x250/jacobian.png +0 -0
  51. roboticstoolbox/blocks/Icons/250x250/jtraj.png +0 -0
  52. roboticstoolbox/blocks/Icons/250x250/lspb.png +0 -0
  53. roboticstoolbox/blocks/Icons/250x250/multirotor.png +0 -0
  54. roboticstoolbox/blocks/Icons/250x250/multirotormixer.png +0 -0
  55. roboticstoolbox/blocks/Icons/250x250/multirotorplot.png +0 -0
  56. roboticstoolbox/blocks/Icons/250x250/point2tr.png +0 -0
  57. roboticstoolbox/blocks/Icons/250x250/tr2delta.png +0 -0
  58. roboticstoolbox/blocks/Icons/250x250/tr2t.png +0 -0
  59. roboticstoolbox/blocks/Icons/250x250/unicycle.png +0 -0
  60. roboticstoolbox/blocks/Icons/250x250/vehicleplot.png +0 -0
  61. roboticstoolbox/blocks/Icons/50x50/armplot.png +0 -0
  62. roboticstoolbox/blocks/Icons/50x50/bicycle.png +0 -0
  63. roboticstoolbox/blocks/Icons/50x50/camera.png +0 -0
  64. roboticstoolbox/blocks/Icons/50x50/circlepath.png +0 -0
  65. roboticstoolbox/blocks/Icons/50x50/coriolis.png +0 -0
  66. roboticstoolbox/blocks/Icons/50x50/delta2tr.png +0 -0
  67. roboticstoolbox/blocks/Icons/50x50/diffsteer.png +0 -0
  68. roboticstoolbox/blocks/Icons/50x50/fdyn.png +0 -0
  69. roboticstoolbox/blocks/Icons/50x50/fdynx.png +0 -0
  70. roboticstoolbox/blocks/Icons/50x50/fkine.png +0 -0
  71. roboticstoolbox/blocks/Icons/50x50/gravload.png +0 -0
  72. roboticstoolbox/blocks/Icons/50x50/idyn.png +0 -0
  73. roboticstoolbox/blocks/Icons/50x50/idynx.png +0 -0
  74. roboticstoolbox/blocks/Icons/50x50/ikine.png +0 -0
  75. roboticstoolbox/blocks/Icons/50x50/inertia.png +0 -0
  76. roboticstoolbox/blocks/Icons/50x50/jacobian.png +0 -0
  77. roboticstoolbox/blocks/Icons/50x50/jtraj.png +0 -0
  78. roboticstoolbox/blocks/Icons/50x50/lspb.png +0 -0
  79. roboticstoolbox/blocks/Icons/50x50/multirotor.png +0 -0
  80. roboticstoolbox/blocks/Icons/50x50/multirotormixer.png +0 -0
  81. roboticstoolbox/blocks/Icons/50x50/multirotorplot.png +0 -0
  82. roboticstoolbox/blocks/Icons/50x50/point2tr.png +0 -0
  83. roboticstoolbox/blocks/Icons/50x50/tr2delta.png +0 -0
  84. roboticstoolbox/blocks/Icons/50x50/tr2t.png +0 -0
  85. roboticstoolbox/blocks/Icons/50x50/unicycle.png +0 -0
  86. roboticstoolbox/blocks/Icons/50x50/vehicleplot.png +0 -0
  87. roboticstoolbox/blocks/Icons/armplot.png +0 -0
  88. roboticstoolbox/blocks/Icons/bicycle.png +0 -0
  89. roboticstoolbox/blocks/Icons/camera.png +0 -0
  90. roboticstoolbox/blocks/Icons/circlepath.png +0 -0
  91. roboticstoolbox/blocks/Icons/coriolis.png +0 -0
  92. roboticstoolbox/blocks/Icons/ctraj.png +0 -0
  93. roboticstoolbox/blocks/Icons/delta2tr.png +0 -0
  94. roboticstoolbox/blocks/Icons/diffsteer.png +0 -0
  95. roboticstoolbox/blocks/Icons/fdyn.png +0 -0
  96. roboticstoolbox/blocks/Icons/fdynx.png +0 -0
  97. roboticstoolbox/blocks/Icons/fkine.png +0 -0
  98. roboticstoolbox/blocks/Icons/gravload.png +0 -0
  99. roboticstoolbox/blocks/Icons/idyn.png +0 -0
  100. roboticstoolbox/blocks/Icons/idynx.png +0 -0
  101. roboticstoolbox/blocks/Icons/ikine.png +0 -0
  102. roboticstoolbox/blocks/Icons/inertia.png +0 -0
  103. roboticstoolbox/blocks/Icons/jacobian.png +0 -0
  104. roboticstoolbox/blocks/Icons/jtraj.png +0 -0
  105. roboticstoolbox/blocks/Icons/lspb.png +0 -0
  106. roboticstoolbox/blocks/Icons/multirotor.png +0 -0
  107. roboticstoolbox/blocks/Icons/multirotormixer.png +0 -0
  108. roboticstoolbox/blocks/Icons/multirotorplot.png +0 -0
  109. roboticstoolbox/blocks/Icons/point2tr.png +0 -0
  110. roboticstoolbox/blocks/Icons/tr2delta.png +0 -0
  111. roboticstoolbox/blocks/Icons/tr2t.png +0 -0
  112. roboticstoolbox/blocks/Icons/unicycle.png +0 -0
  113. roboticstoolbox/blocks/Icons/vehicleplot.png +0 -0
  114. roboticstoolbox/blocks/README.md +43 -0
  115. roboticstoolbox/blocks/__init__.py +6 -0
  116. roboticstoolbox/blocks/arm.py +1591 -0
  117. roboticstoolbox/blocks/mobile.py +522 -0
  118. roboticstoolbox/blocks/quad_model.py +132 -0
  119. roboticstoolbox/blocks/spatial.py +245 -0
  120. roboticstoolbox/blocks/uav.py +949 -0
  121. roboticstoolbox/demo/__init__.py +0 -0
  122. roboticstoolbox/demo/eigdemo.py +112 -0
  123. roboticstoolbox/demo/tripleangledemo.py +239 -0
  124. roboticstoolbox/demo/twistdemo.py +175 -0
  125. roboticstoolbox/ets/ET.py +439 -0
  126. roboticstoolbox/ets/ET2.py +179 -0
  127. roboticstoolbox/ets/ETS.py +2013 -0
  128. roboticstoolbox/ets/ETS2.py +449 -0
  129. roboticstoolbox/ets/_ET.py +668 -0
  130. roboticstoolbox/ets/_ETS.py +781 -0
  131. roboticstoolbox/ets/__init__.py +11 -0
  132. roboticstoolbox/ets/cpp-extensions/Eigen/Cholesky +45 -0
  133. roboticstoolbox/ets/cpp-extensions/Eigen/CholmodSupport +48 -0
  134. roboticstoolbox/ets/cpp-extensions/Eigen/Core +384 -0
  135. roboticstoolbox/ets/cpp-extensions/Eigen/Dense +7 -0
  136. roboticstoolbox/ets/cpp-extensions/Eigen/Eigen +2 -0
  137. roboticstoolbox/ets/cpp-extensions/Eigen/Eigenvalues +60 -0
  138. roboticstoolbox/ets/cpp-extensions/Eigen/Geometry +59 -0
  139. roboticstoolbox/ets/cpp-extensions/Eigen/Householder +29 -0
  140. roboticstoolbox/ets/cpp-extensions/Eigen/IterativeLinearSolvers +48 -0
  141. roboticstoolbox/ets/cpp-extensions/Eigen/Jacobi +32 -0
  142. roboticstoolbox/ets/cpp-extensions/Eigen/KLUSupport +41 -0
  143. roboticstoolbox/ets/cpp-extensions/Eigen/LU +47 -0
  144. roboticstoolbox/ets/cpp-extensions/Eigen/MetisSupport +35 -0
  145. roboticstoolbox/ets/cpp-extensions/Eigen/OrderingMethods +70 -0
  146. roboticstoolbox/ets/cpp-extensions/Eigen/PaStiXSupport +49 -0
  147. roboticstoolbox/ets/cpp-extensions/Eigen/PardisoSupport +35 -0
  148. roboticstoolbox/ets/cpp-extensions/Eigen/QR +50 -0
  149. roboticstoolbox/ets/cpp-extensions/Eigen/QtAlignedMalloc +39 -0
  150. roboticstoolbox/ets/cpp-extensions/Eigen/SPQRSupport +34 -0
  151. roboticstoolbox/ets/cpp-extensions/Eigen/SVD +50 -0
  152. roboticstoolbox/ets/cpp-extensions/Eigen/Sparse +34 -0
  153. roboticstoolbox/ets/cpp-extensions/Eigen/SparseCholesky +37 -0
  154. roboticstoolbox/ets/cpp-extensions/Eigen/SparseCore +69 -0
  155. roboticstoolbox/ets/cpp-extensions/Eigen/SparseLU +50 -0
  156. roboticstoolbox/ets/cpp-extensions/Eigen/SparseQR +36 -0
  157. roboticstoolbox/ets/cpp-extensions/Eigen/StdDeque +27 -0
  158. roboticstoolbox/ets/cpp-extensions/Eigen/StdList +26 -0
  159. roboticstoolbox/ets/cpp-extensions/Eigen/StdVector +27 -0
  160. roboticstoolbox/ets/cpp-extensions/Eigen/SuperLUSupport +64 -0
  161. roboticstoolbox/ets/cpp-extensions/Eigen/UmfPackSupport +40 -0
  162. roboticstoolbox/ets/cpp-extensions/Eigen/src/Cholesky/LDLT.h +688 -0
  163. roboticstoolbox/ets/cpp-extensions/Eigen/src/Cholesky/LLT.h +558 -0
  164. roboticstoolbox/ets/cpp-extensions/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  165. roboticstoolbox/ets/cpp-extensions/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  166. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ArithmeticSequence.h +413 -0
  167. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Array.h +417 -0
  168. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ArrayBase.h +226 -0
  169. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ArrayWrapper.h +209 -0
  170. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Assign.h +90 -0
  171. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/AssignEvaluator.h +1010 -0
  172. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Assign_MKL.h +178 -0
  173. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/BandMatrix.h +353 -0
  174. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Block.h +448 -0
  175. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/BooleanRedux.h +162 -0
  176. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CommaInitializer.h +164 -0
  177. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ConditionEstimator.h +175 -0
  178. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CoreEvaluators.h +1741 -0
  179. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CoreIterators.h +132 -0
  180. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  181. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  182. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  183. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  184. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/CwiseUnaryView.h +132 -0
  185. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DenseBase.h +701 -0
  186. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  187. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DenseStorage.h +652 -0
  188. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Diagonal.h +258 -0
  189. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DiagonalMatrix.h +391 -0
  190. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/DiagonalProduct.h +28 -0
  191. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Dot.h +318 -0
  192. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/EigenBase.h +160 -0
  193. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  194. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Fuzzy.h +155 -0
  195. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/GeneralProduct.h +465 -0
  196. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/GenericPacketMath.h +1040 -0
  197. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/GlobalFunctions.h +194 -0
  198. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/IO.h +258 -0
  199. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/IndexedView.h +237 -0
  200. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Inverse.h +117 -0
  201. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Map.h +171 -0
  202. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MapBase.h +310 -0
  203. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MathFunctions.h +2057 -0
  204. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  205. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Matrix.h +565 -0
  206. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/MatrixBase.h +547 -0
  207. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/NestByValue.h +85 -0
  208. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/NoAlias.h +109 -0
  209. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/NumTraits.h +335 -0
  210. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  211. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/PermutationMatrix.h +605 -0
  212. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/PlainObjectBase.h +1128 -0
  213. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Product.h +191 -0
  214. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ProductEvaluators.h +1179 -0
  215. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Random.h +218 -0
  216. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Redux.h +515 -0
  217. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Ref.h +381 -0
  218. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Replicate.h +142 -0
  219. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Reshaped.h +454 -0
  220. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/ReturnByValue.h +119 -0
  221. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Reverse.h +217 -0
  222. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Select.h +164 -0
  223. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SelfAdjointView.h +365 -0
  224. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  225. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Solve.h +188 -0
  226. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SolveTriangular.h +235 -0
  227. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/SolverBase.h +168 -0
  228. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/StableNorm.h +251 -0
  229. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/StlIterators.h +463 -0
  230. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Stride.h +116 -0
  231. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Swap.h +68 -0
  232. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Transpose.h +464 -0
  233. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Transpositions.h +386 -0
  234. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/TriangularMatrix.h +1001 -0
  235. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/VectorBlock.h +96 -0
  236. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/VectorwiseOp.h +784 -0
  237. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/Visitor.h +381 -0
  238. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  239. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  240. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  241. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  242. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  243. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  244. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  245. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  246. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  247. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  248. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  249. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  250. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  251. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  252. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  253. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  254. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  255. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  256. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  257. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/Half.h +942 -0
  258. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/Settings.h +49 -0
  259. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  260. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  261. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  262. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  263. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  264. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  265. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  266. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  267. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  268. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  269. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  270. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  271. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  272. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  273. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  274. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  275. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  276. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  277. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  278. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  279. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  280. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  281. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  282. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  283. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  284. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  285. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  286. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  287. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  288. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  289. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  290. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/StlFunctors.h +166 -0
  291. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  292. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  293. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  294. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  295. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  296. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  297. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  298. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  299. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  300. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/Parallelizer.h +180 -0
  301. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  302. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  303. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  304. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  305. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  306. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  307. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  308. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  309. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  310. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  311. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  312. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  313. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  314. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/BlasUtil.h +583 -0
  315. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  316. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Constants.h +563 -0
  317. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  318. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  319. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  320. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/IntegralConstant.h +272 -0
  321. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/MKL_support.h +137 -0
  322. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Macros.h +1464 -0
  323. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Memory.h +1163 -0
  324. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/Meta.h +812 -0
  325. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/NonMPL2.h +3 -0
  326. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  327. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  328. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/StaticAssert.h +221 -0
  329. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  330. roboticstoolbox/ets/cpp-extensions/Eigen/src/Core/util/XprHelper.h +856 -0
  331. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  332. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  333. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  334. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  335. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  336. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  337. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  338. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  339. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  340. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  341. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  342. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  343. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  344. roboticstoolbox/ets/cpp-extensions/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  345. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/AlignedBox.h +486 -0
  346. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/AngleAxis.h +247 -0
  347. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/EulerAngles.h +114 -0
  348. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Homogeneous.h +501 -0
  349. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Hyperplane.h +282 -0
  350. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/OrthoMethods.h +235 -0
  351. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  352. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Quaternion.h +870 -0
  353. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Rotation2D.h +199 -0
  354. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/RotationBase.h +206 -0
  355. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Scaling.h +188 -0
  356. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Transform.h +1563 -0
  357. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Translation.h +202 -0
  358. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/Umeyama.h +166 -0
  359. roboticstoolbox/ets/cpp-extensions/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  360. roboticstoolbox/ets/cpp-extensions/Eigen/src/Householder/BlockHouseholder.h +110 -0
  361. roboticstoolbox/ets/cpp-extensions/Eigen/src/Householder/Householder.h +176 -0
  362. roboticstoolbox/ets/cpp-extensions/Eigen/src/Householder/HouseholderSequence.h +545 -0
  363. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  364. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  365. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  366. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  367. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  368. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  369. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  370. roboticstoolbox/ets/cpp-extensions/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  371. roboticstoolbox/ets/cpp-extensions/Eigen/src/Jacobi/Jacobi.h +483 -0
  372. roboticstoolbox/ets/cpp-extensions/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  373. roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/Determinant.h +117 -0
  374. roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/FullPivLU.h +877 -0
  375. roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/InverseImpl.h +432 -0
  376. roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/PartialPivLU.h +624 -0
  377. roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  378. roboticstoolbox/ets/cpp-extensions/Eigen/src/LU/arch/InverseSize4.h +351 -0
  379. roboticstoolbox/ets/cpp-extensions/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  380. roboticstoolbox/ets/cpp-extensions/Eigen/src/OrderingMethods/Amd.h +435 -0
  381. roboticstoolbox/ets/cpp-extensions/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  382. roboticstoolbox/ets/cpp-extensions/Eigen/src/OrderingMethods/Ordering.h +153 -0
  383. roboticstoolbox/ets/cpp-extensions/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  384. roboticstoolbox/ets/cpp-extensions/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  385. roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  386. roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  387. roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  388. roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  389. roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/HouseholderQR.h +434 -0
  390. roboticstoolbox/ets/cpp-extensions/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  391. roboticstoolbox/ets/cpp-extensions/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  392. roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/BDCSVD.h +1366 -0
  393. roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/JacobiSVD.h +812 -0
  394. roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  395. roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/SVDBase.h +376 -0
  396. roboticstoolbox/ets/cpp-extensions/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  397. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  398. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  399. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/AmbiVector.h +378 -0
  400. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  401. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  402. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  403. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseAssign.h +270 -0
  404. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseBlock.h +571 -0
  405. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  406. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  407. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  408. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  409. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  410. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  411. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseDot.h +98 -0
  412. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  413. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseMap.h +305 -0
  414. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  415. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  416. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  417. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseProduct.h +181 -0
  418. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseRedux.h +49 -0
  419. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseRef.h +397 -0
  420. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  421. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  422. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  423. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  424. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  425. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseUtil.h +186 -0
  426. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseVector.h +478 -0
  427. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/SparseView.h +254 -0
  428. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  429. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU.h +923 -0
  430. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  431. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  432. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  433. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  434. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  435. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  436. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  437. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  438. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  439. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  440. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  441. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  442. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  443. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  444. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  445. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  446. roboticstoolbox/ets/cpp-extensions/Eigen/src/SparseQR/SparseQR.h +758 -0
  447. roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/StdDeque.h +116 -0
  448. roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/StdList.h +106 -0
  449. roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/StdVector.h +131 -0
  450. roboticstoolbox/ets/cpp-extensions/Eigen/src/StlSupport/details.h +84 -0
  451. roboticstoolbox/ets/cpp-extensions/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  452. roboticstoolbox/ets/cpp-extensions/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  453. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/Image.h +82 -0
  454. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/Kernel.h +79 -0
  455. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/RealSvd2x2.h +55 -0
  456. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/blas.h +440 -0
  457. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/lapack.h +152 -0
  458. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/lapacke.h +16292 -0
  459. roboticstoolbox/ets/cpp-extensions/Eigen/src/misc/lapacke_mangling.h +17 -0
  460. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  461. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  462. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/BlockMethods.h +1442 -0
  463. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  464. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  465. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  466. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  467. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  468. roboticstoolbox/ets/cpp-extensions/Eigen/src/plugins/ReshapedMethods.h +149 -0
  469. roboticstoolbox/ets/cpp-extensions/README.md +73 -0
  470. roboticstoolbox/ets/cpp-extensions/fknm_nb.cpp +534 -0
  471. roboticstoolbox/ets/cpp-extensions/ik.cpp +301 -0
  472. roboticstoolbox/ets/cpp-extensions/ik.h +59 -0
  473. roboticstoolbox/ets/cpp-extensions/linalg.cpp +316 -0
  474. roboticstoolbox/ets/cpp-extensions/linalg.h +64 -0
  475. roboticstoolbox/ets/cpp-extensions/methods.cpp +372 -0
  476. roboticstoolbox/ets/cpp-extensions/methods.h +32 -0
  477. roboticstoolbox/ets/cpp-extensions/structs.cpp +24 -0
  478. roboticstoolbox/ets/cpp-extensions/structs.h +62 -0
  479. roboticstoolbox/ets/fknm.py +366 -0
  480. roboticstoolbox/mobile/Animations.py +485 -0
  481. roboticstoolbox/mobile/Bug2.py +455 -0
  482. roboticstoolbox/mobile/CurvaturePolyPlanner.py +179 -0
  483. roboticstoolbox/mobile/DistanceTransformPlanner.py +395 -0
  484. roboticstoolbox/mobile/DstarPlanner.py +591 -0
  485. roboticstoolbox/mobile/DubinsPlanner.py +474 -0
  486. roboticstoolbox/mobile/EKF.py +1617 -0
  487. roboticstoolbox/mobile/LatticePlanner.py +419 -0
  488. roboticstoolbox/mobile/OccGrid.py +613 -0
  489. roboticstoolbox/mobile/PRMPlanner.py +348 -0
  490. roboticstoolbox/mobile/ParticleFilter.py +706 -0
  491. roboticstoolbox/mobile/PlannerBase.py +1009 -0
  492. roboticstoolbox/mobile/PoseGraph.py +544 -0
  493. roboticstoolbox/mobile/QuinticPolyPlanner.py +349 -0
  494. roboticstoolbox/mobile/RRTPlanner.py +359 -0
  495. roboticstoolbox/mobile/ReedsSheppPlanner.py +545 -0
  496. roboticstoolbox/mobile/Vehicle.py +1909 -0
  497. roboticstoolbox/mobile/__init__.py +194 -0
  498. roboticstoolbox/mobile/drivers.py +397 -0
  499. roboticstoolbox/mobile/landmarkmap.py +181 -0
  500. roboticstoolbox/mobile/sensors.py +789 -0
  501. roboticstoolbox/models/DH/AL5D.py +121 -0
  502. roboticstoolbox/models/DH/Ball.py +87 -0
  503. roboticstoolbox/models/DH/Baxter.py +91 -0
  504. roboticstoolbox/models/DH/Cobra600.py +63 -0
  505. roboticstoolbox/models/DH/Coil.py +80 -0
  506. roboticstoolbox/models/DH/Hyper.py +81 -0
  507. roboticstoolbox/models/DH/Hyper3d.py +83 -0
  508. roboticstoolbox/models/DH/IRB140.py +159 -0
  509. roboticstoolbox/models/DH/Jaco.py +102 -0
  510. roboticstoolbox/models/DH/KR5.py +112 -0
  511. roboticstoolbox/models/DH/LWR4.py +80 -0
  512. roboticstoolbox/models/DH/Mico.py +102 -0
  513. roboticstoolbox/models/DH/Orion5.py +91 -0
  514. roboticstoolbox/models/DH/P8.py +80 -0
  515. roboticstoolbox/models/DH/Panda.py +213 -0
  516. roboticstoolbox/models/DH/Planar2.py +69 -0
  517. roboticstoolbox/models/DH/Planar3.py +51 -0
  518. roboticstoolbox/models/DH/Puma560.py +326 -0
  519. roboticstoolbox/models/DH/README.md +216 -0
  520. roboticstoolbox/models/DH/Sawyer.py +85 -0
  521. roboticstoolbox/models/DH/Stanford.py +147 -0
  522. roboticstoolbox/models/DH/TwoLink.py +153 -0
  523. roboticstoolbox/models/DH/UR10.py +124 -0
  524. roboticstoolbox/models/DH/UR3.py +98 -0
  525. roboticstoolbox/models/DH/UR5.py +98 -0
  526. roboticstoolbox/models/DH/Uprighttl.py +24 -0
  527. roboticstoolbox/models/DH/__init__.py +52 -0
  528. roboticstoolbox/models/ETS/Frankie.py +90 -0
  529. roboticstoolbox/models/ETS/GenericSeven.py +54 -0
  530. roboticstoolbox/models/ETS/Omni.py +74 -0
  531. roboticstoolbox/models/ETS/Panda.py +69 -0
  532. roboticstoolbox/models/ETS/Planar2.py +49 -0
  533. roboticstoolbox/models/ETS/Planar_Y.py +65 -0
  534. roboticstoolbox/models/ETS/Puma560.py +70 -0
  535. roboticstoolbox/models/ETS/XYPanda.py +84 -0
  536. roboticstoolbox/models/ETS/__init__.py +20 -0
  537. roboticstoolbox/models/README.md +9 -0
  538. roboticstoolbox/models/URDF/AL5D.py +45 -0
  539. roboticstoolbox/models/URDF/Fetch.py +96 -0
  540. roboticstoolbox/models/URDF/Frankie.py +67 -0
  541. roboticstoolbox/models/URDF/FrankieOmni.py +94 -0
  542. roboticstoolbox/models/URDF/Jaco.py +49 -0
  543. roboticstoolbox/models/URDF/KinovaGen3.py +63 -0
  544. roboticstoolbox/models/URDF/LBR.py +57 -0
  545. roboticstoolbox/models/URDF/PR2.py +66 -0
  546. roboticstoolbox/models/URDF/Panda.py +60 -0
  547. roboticstoolbox/models/URDF/Puma560.py +90 -0
  548. roboticstoolbox/models/URDF/UR10.py +43 -0
  549. roboticstoolbox/models/URDF/UR3.py +43 -0
  550. roboticstoolbox/models/URDF/UR5.py +64 -0
  551. roboticstoolbox/models/URDF/URDFRobot.py +402 -0
  552. roboticstoolbox/models/URDF/Valkyrie.py +110 -0
  553. roboticstoolbox/models/URDF/YuMi.py +107 -0
  554. roboticstoolbox/models/URDF/__init__.py +51 -0
  555. roboticstoolbox/models/URDF/px100.py +48 -0
  556. roboticstoolbox/models/URDF/px150.py +48 -0
  557. roboticstoolbox/models/URDF/rx150.py +48 -0
  558. roboticstoolbox/models/URDF/rx200.py +48 -0
  559. roboticstoolbox/models/URDF/vx300.py +48 -0
  560. roboticstoolbox/models/URDF/vx300s.py +48 -0
  561. roboticstoolbox/models/URDF/wx200.py +48 -0
  562. roboticstoolbox/models/URDF/wx250.py +48 -0
  563. roboticstoolbox/models/URDF/wx250s.py +48 -0
  564. roboticstoolbox/models/__init__.py +7 -0
  565. roboticstoolbox/models/catalog.py +226 -0
  566. roboticstoolbox/robot/BaseRobot.py +2589 -0
  567. roboticstoolbox/robot/DHFactor.py +522 -0
  568. roboticstoolbox/robot/DHLink.py +949 -0
  569. roboticstoolbox/robot/DHRobot.py +2591 -0
  570. roboticstoolbox/robot/Dynamics.py +1537 -0
  571. roboticstoolbox/robot/ELink.py +23 -0
  572. roboticstoolbox/robot/ERobot.py +25 -0
  573. roboticstoolbox/robot/Gripper.py +242 -0
  574. roboticstoolbox/robot/IK.py +1378 -0
  575. roboticstoolbox/robot/Link.py +1557 -0
  576. roboticstoolbox/robot/PoERobot.py +352 -0
  577. roboticstoolbox/robot/Robot.py +2157 -0
  578. roboticstoolbox/robot/RobotKinematics.py +1505 -0
  579. roboticstoolbox/robot/RobotPlottingMPL.py +355 -0
  580. roboticstoolbox/robot/RobotProto.py +156 -0
  581. roboticstoolbox/robot/__init__.py +57 -0
  582. roboticstoolbox/robot/cpp-extensions/README.md +29 -0
  583. roboticstoolbox/robot/cpp-extensions/frne.h +96 -0
  584. roboticstoolbox/robot/cpp-extensions/frne_nb.cpp +237 -0
  585. roboticstoolbox/robot/cpp-extensions/ne.c +495 -0
  586. roboticstoolbox/robot/cpp-extensions/vmath.c +163 -0
  587. roboticstoolbox/robot/cpp-extensions/vmath.h +32 -0
  588. roboticstoolbox/robot/frne.py +51 -0
  589. roboticstoolbox/tools/DHFactor.py +375 -0
  590. roboticstoolbox/tools/Ticker.py +53 -0
  591. roboticstoolbox/tools/__init__.py +54 -0
  592. roboticstoolbox/tools/data.py +187 -0
  593. roboticstoolbox/tools/jsingu.py +51 -0
  594. roboticstoolbox/tools/null.py +48 -0
  595. roboticstoolbox/tools/numerical.py +96 -0
  596. roboticstoolbox/tools/p_servo.py +108 -0
  597. roboticstoolbox/tools/params.py +11 -0
  598. roboticstoolbox/tools/plot.py +109 -0
  599. roboticstoolbox/tools/trajectory.py +1152 -0
  600. roboticstoolbox/tools/types.py +13 -0
  601. roboticstoolbox/tools/urdf/__init__.py +45 -0
  602. roboticstoolbox/tools/urdf/tests/data/ur5.urdf +341 -0
  603. roboticstoolbox/tools/urdf/tests/test_urdf.py +116 -0
  604. roboticstoolbox/tools/urdf/urdf.py +1930 -0
  605. roboticstoolbox/tools/urdf/utils.py +50 -0
  606. roboticstoolbox_python-1.4.0.dist-info/METADATA +664 -0
  607. roboticstoolbox_python-1.4.0.dist-info/RECORD +610 -0
  608. roboticstoolbox_python-1.4.0.dist-info/WHEEL +5 -0
  609. roboticstoolbox_python-1.4.0.dist-info/entry_points.txt +6 -0
  610. roboticstoolbox_python-1.4.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,355 @@
1
+ """
2
+ MPL-specific plotting methods for robot objects.
3
+
4
+ This mixin is mixed into BaseRobot. All matplotlib / PyPlot imports are
5
+ deferred to the first call so that importing ``roboticstoolbox`` in a
6
+ headless or browser environment (Pyodide / JupyterLite) does not pull in
7
+ matplotlib.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from typing import TYPE_CHECKING, Any, Literal as L
13
+
14
+ if TYPE_CHECKING: # pragma: nocover
15
+ from roboticstoolbox.backends.PyPlot import PyPlot
16
+ from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
17
+ from roboticstoolbox.tools.types import ArrayLike
18
+
19
+
20
+ class RobotPlottingMPLMixin:
21
+ """Mixin that adds MPL-specific visualisation to BaseRobot subclasses."""
22
+
23
+ # ------------------------------------------------------------------
24
+ # Colour helpers
25
+ # ------------------------------------------------------------------
26
+
27
+ def linkcolormap(self, linkcolors: list[Any] | str = "viridis"):
28
+ """
29
+ Create a colormap for robot joints.
30
+
31
+ :param linkcolors: list of colors or colormap name, defaults to ``"viridis"``
32
+ :returns: the color map
33
+
34
+ - ``cm = robot.linkcolormap()`` is an n-element colormap that gives a
35
+ unique color for every link. The RGBA colors for link ``j`` are
36
+ ``cm(j)``.
37
+ - ``cm = robot.linkcolormap(cmap)`` as above but ``cmap`` is the name
38
+ of a valid matplotlib colormap. The default, example above, is the
39
+ ``viridis`` colormap.
40
+ - ``cm = robot.linkcolormap(list of colors)`` as above but a
41
+ colormap is created from a list of n color names given as strings,
42
+ tuples or hexstrings.
43
+
44
+ .. runblock:: pycon
45
+
46
+ >>> import roboticstoolbox as rtb
47
+ >>> robot = rtb.models.DH.Puma560()
48
+ >>> cm = robot.linkcolormap("inferno")
49
+ >>> print(cm(range(6))) # cm(i) is 3rd color in colormap
50
+ >>> cm = robot.linkcolormap(
51
+ ... ['red', 'g', (0,0.5,0), '#0f8040', 'yellow', 'cyan'])
52
+ >>> print(cm(range(6)))
53
+
54
+ .. rubric:: Notes
55
+
56
+ - Colormaps have 4-elements: red, green, blue, alpha (RGBA)
57
+ - Names of supported colors and colormaps are defined in the
58
+ matplotlib documentation.
59
+
60
+ - `Specifying colors <https://matplotlib.org/3.1.0/tutorials/colors/colors.html>`_
61
+ - `Colormaps <https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html>`_
62
+
63
+ """
64
+
65
+ from matplotlib import cm, colors
66
+
67
+ if isinstance(linkcolors, list) and len(linkcolors) == self.n: # type: ignore[attr-defined] # pragma: nocover
68
+ return colors.ListedColormap(linkcolors)
69
+ else: # pragma: nocover
70
+ return cm.get_cmap(linkcolors, 6) # type: ignore[arg-type]
71
+
72
+ # ------------------------------------------------------------------
73
+ # Ellipse creation
74
+ # ------------------------------------------------------------------
75
+
76
+ def fellipse(
77
+ self,
78
+ q: ArrayLike,
79
+ opt: L["trans", "rot"] = "trans",
80
+ unit: L["rad", "deg"] = "rad",
81
+ centre: L["ee"] | ArrayLike = "ee",
82
+ add: bool = True,
83
+ ) -> EllipsePlot:
84
+ """
85
+ Create a force ellipsoid object for plotting with PyPlot.
86
+
87
+ :param q: the joint configuration of the robot
88
+ :param opt: ``'trans'`` or ``'rot'`` — plot the translational or
89
+ rotational force ellipsoid
90
+ :param unit: ``'rad'`` or ``'deg'``
91
+ :param centre: centre of the ellipsoid — ``'ee'`` for the
92
+ end-effector or a 3-vector ``[x, y, z]`` in the world frame
93
+ :param add: if ``True``, add the ellipsoid to the active plot environment
94
+ :returns: an EllipsePlot object
95
+ :rtype: EllipsePlot
96
+
97
+ ``robot.fellipse(q)`` creates a force ellipsoid for the robot at
98
+ pose ``q``. By default the ellipsoid is centered at the end-effector.
99
+
100
+ .. rubric:: Notes
101
+
102
+ - By default the ellipsoid related to translational motion is
103
+ drawn. Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
104
+ - By default the ellipsoid is drawn at the end-effector. The option
105
+ ``centre`` allows its origin to be set to the specified 3-vector,
106
+ or the string ``"ee"`` ensures it is drawn at the end-effector position.
107
+ """
108
+ import roboticstoolbox as rtb
109
+ from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
110
+ from spatialmath.base.argcheck import getunit
111
+
112
+ if isinstance(self, rtb.ERobot): # pragma: nocover
113
+ raise NotImplementedError("ERobot fellipse not implemented yet")
114
+
115
+ q = getunit(q, unit) # type: ignore[assignment]
116
+ ell = EllipsePlot(self, q, "f", opt, centre=centre)
117
+
118
+ if add:
119
+ self._maybe_add_ellipse_to_active_env(ell)
120
+
121
+ return ell
122
+
123
+ def vellipse(
124
+ self,
125
+ q: ArrayLike,
126
+ opt: L["trans", "rot"] = "trans",
127
+ unit: L["rad", "deg"] = "rad",
128
+ centre: L["ee"] | ArrayLike = "ee",
129
+ scale: float = 0.1,
130
+ add: bool = True,
131
+ ) -> EllipsePlot:
132
+ """
133
+ Create a velocity ellipsoid object for plotting with PyPlot.
134
+
135
+ :param q: the joint configuration of the robot
136
+ :param opt: ``'trans'`` or ``'rot'`` — plot the translational or
137
+ rotational velocity ellipsoid
138
+ :param unit: ``'rad'`` or ``'deg'``
139
+ :param centre: centre of the ellipsoid — ``'ee'`` for the
140
+ end-effector or a 3-vector ``[x, y, z]`` in the world frame
141
+ :param scale: scale factor for the ellipsoid
142
+ :param add: if ``True``, add the ellipsoid to the active plot environment
143
+ :returns: an EllipsePlot object
144
+ :rtype: EllipsePlot
145
+
146
+ ``robot.vellipse(q)`` creates a velocity ellipsoid for the robot at
147
+ pose ``q``. By default the ellipsoid is centered at the end-effector.
148
+
149
+ .. rubric:: Notes
150
+
151
+ - By default the ellipsoid related to translational motion is
152
+ drawn. Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
153
+ - By default the ellipsoid is drawn at the end-effector. The option
154
+ ``centre`` allows its origin to be set to the specified 3-vector,
155
+ or the string ``"ee"`` ensures it is drawn at the end-effector position.
156
+ """
157
+ import roboticstoolbox as rtb
158
+ from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
159
+ from spatialmath.base.argcheck import getunit
160
+
161
+ if isinstance(self, rtb.ERobot): # pragma: nocover
162
+ raise NotImplementedError("ERobot vellipse not implemented yet")
163
+
164
+ q = getunit(q, unit) # type: ignore[assignment]
165
+ ell = EllipsePlot(self, q, "v", opt, centre=centre, scale=scale)
166
+
167
+ if add:
168
+ self._maybe_add_ellipse_to_active_env(ell)
169
+
170
+ return ell
171
+
172
+ def _maybe_add_ellipse_to_active_env(self, ellipse: EllipsePlot) -> None:
173
+ """Add ellipse to the most recently active PyPlot environment, if available."""
174
+ env = self._active_plot_env # type: ignore[attr-defined]
175
+ if env is None:
176
+ return
177
+
178
+ if not getattr(env, "supports_ellipse", False):
179
+ return
180
+
181
+ try:
182
+ env.add(ellipse)
183
+ except Exception:
184
+ pass
185
+
186
+ # ------------------------------------------------------------------
187
+ # Ellipse plotting
188
+ # ------------------------------------------------------------------
189
+
190
+ def plot_ellipse(
191
+ self,
192
+ ellipse: EllipsePlot,
193
+ block: bool = True,
194
+ limits: ArrayLike | None = None,
195
+ jointaxes: bool = True,
196
+ eeframe: bool = True,
197
+ shadow: bool = True,
198
+ name: bool = True,
199
+ ) -> PyPlot:
200
+ """
201
+ Plot an ellipsoid.
202
+
203
+ :param ellipse: the ellipsoid to plot
204
+ :param block: block operation of the code and keep the figure open
205
+ :param limits: custom view limits ``[x1, x2, y1, y2, z1, z2]``; autoscales if not supplied
206
+ :param jointaxes: plot an arrow indicating the joint axis
207
+ :param eeframe: plot the end-effector coordinate frame
208
+ :param shadow: plot a shadow of the robot in the x-y plane
209
+ :param name: plot the name of the robot near its base
210
+ :returns: a reference to the PyPlot object controlling the matplotlib figure
211
+ :rtype: PyPlot
212
+
213
+ ``robot.plot_ellipse(ellipsoid)`` displays the ellipsoid.
214
+ """
215
+ from roboticstoolbox.backends.PyPlot import PyPlot
216
+ from roboticstoolbox.backends.PyPlot.EllipsePlot import EllipsePlot
217
+
218
+ if not isinstance(ellipse, EllipsePlot): # pragma: nocover
219
+ raise TypeError(
220
+ "ellipse must be of type roboticstoolbox.backend.PyPlot.EllipsePlot"
221
+ )
222
+
223
+ env = PyPlot()
224
+
225
+ env.launch(ellipse.robot.name + " " + ellipse.name, limits=limits)
226
+ env.add(ellipse, jointaxes=jointaxes, eeframe=eeframe, shadow=shadow, name=name)
227
+
228
+ if block: # pragma: nocover
229
+ env.hold()
230
+
231
+ return env
232
+
233
+ def plot_fellipse(
234
+ self,
235
+ q: ArrayLike | None,
236
+ block: bool = True,
237
+ fellipse: EllipsePlot | None = None,
238
+ limits: ArrayLike | None = None,
239
+ opt: L["trans", "rot"] = "trans",
240
+ centre: L["ee"] | ArrayLike = "ee",
241
+ jointaxes: bool = True,
242
+ eeframe: bool = True,
243
+ shadow: bool = True,
244
+ name: bool = True,
245
+ ) -> PyPlot:
246
+ """
247
+ Plot the force ellipsoid for a manipulator.
248
+
249
+ :param q: the joint configuration of the robot
250
+ :param block: block operation of the code and keep the figure open
251
+ :param fellipse: a pre-built force ellipsoid to plot
252
+ :param limits: custom view limits ``[x1, x2, y1, y2, z1, z2]``; autoscales if not supplied
253
+ :param opt: ``'trans'`` or ``'rot'`` — plot the translational or rotational force ellipsoid
254
+ :param centre: coordinates to plot the ellipse — ``[x, y, z]`` or ``"ee"``
255
+ :param jointaxes: plot an arrow indicating the joint axis
256
+ :param eeframe: plot the end-effector coordinate frame
257
+ :param shadow: plot a shadow of the robot in the x-y plane
258
+ :param name: plot the name of the robot near its base
259
+ :raises ValueError: if neither ``q`` nor ``fellipse`` is supplied
260
+ :returns: a reference to the PyPlot object controlling the matplotlib figure
261
+ :rtype: PyPlot
262
+
263
+ ``robot.plot_fellipse(q)`` displays the force ellipsoid for the robot
264
+ at pose ``q``. The plot will autoscale with an aspect ratio of 1.
265
+
266
+ ``robot.plot_fellipse(vellipse=ell)`` uses a pre-built ellipse object.
267
+
268
+ .. rubric:: Notes
269
+
270
+ - By default the ellipsoid related to translational motion is drawn.
271
+ Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
272
+ - By default the ellipsoid is drawn at the origin. Use ``centre``
273
+ to specify a 3-vector, or ``"ee"`` to draw at the end-effector.
274
+ """
275
+ import roboticstoolbox as rtb
276
+
277
+ if isinstance(self, rtb.ERobot): # pragma: nocover
278
+ raise NotImplementedError("Ellipse Plotting of ERobot's not implemented yet")
279
+
280
+ if fellipse is None and q is not None:
281
+ fellipse = self.fellipse(q, opt=opt, centre=centre, add=False)
282
+ elif fellipse is None:
283
+ raise ValueError("Must specify either q or fellipse") # pragma: nocover
284
+
285
+ return self.plot_ellipse(
286
+ fellipse,
287
+ block=block,
288
+ limits=limits,
289
+ jointaxes=jointaxes,
290
+ eeframe=eeframe,
291
+ shadow=shadow,
292
+ name=name,
293
+ )
294
+
295
+ def plot_vellipse(
296
+ self,
297
+ q: ArrayLike | None,
298
+ block: bool = True,
299
+ vellipse: EllipsePlot | None = None,
300
+ limits: ArrayLike | None = None,
301
+ opt: L["trans", "rot"] = "trans",
302
+ centre: L["ee"] | ArrayLike = "ee",
303
+ jointaxes: bool = True,
304
+ eeframe: bool = True,
305
+ shadow: bool = True,
306
+ name: bool = True,
307
+ ) -> PyPlot:
308
+ """
309
+ Plot the velocity ellipsoid for a manipulator.
310
+
311
+ :param q: the joint configuration of the robot
312
+ :param block: block operation of the code and keep the figure open
313
+ :param vellipse: a pre-built velocity ellipsoid to plot
314
+ :param limits: custom view limits ``[x1, x2, y1, y2, z1, z2]``; autoscales if not supplied
315
+ :param opt: ``'trans'`` or ``'rot'`` — plot the translational or rotational velocity ellipsoid
316
+ :param centre: coordinates to plot the ellipse — ``[x, y, z]`` or ``"ee"``
317
+ :param jointaxes: plot an arrow indicating the joint axis
318
+ :param eeframe: plot the end-effector coordinate frame
319
+ :param shadow: plot a shadow of the robot in the x-y plane
320
+ :param name: plot the name of the robot near its base
321
+ :raises ValueError: if neither ``q`` nor ``vellipse`` is supplied
322
+ :returns: a reference to the PyPlot object controlling the matplotlib figure
323
+ :rtype: PyPlot
324
+
325
+ ``robot.plot_vellipse(q)`` displays the velocity ellipsoid for the robot
326
+ at pose ``q``. The plot will autoscale with an aspect ratio of 1.
327
+
328
+ ``robot.plot_vellipse(vellipse=ell)`` uses a pre-built ellipse object.
329
+
330
+ .. rubric:: Notes
331
+
332
+ - By default the ellipsoid related to translational motion is drawn.
333
+ Use ``opt='rot'`` to draw the rotational velocity ellipsoid.
334
+ - By default the ellipsoid is drawn at the origin. Use ``centre``
335
+ to specify a 3-vector, or ``"ee"`` to draw at the end-effector.
336
+ """
337
+ import roboticstoolbox as rtb
338
+
339
+ if isinstance(self, rtb.ERobot): # pragma: nocover
340
+ raise NotImplementedError("Ellipse Plotting of ERobot's not implemented yet")
341
+
342
+ if vellipse is None and q is not None:
343
+ vellipse = self.vellipse(q=q, opt=opt, centre=centre, add=False)
344
+ elif vellipse is None:
345
+ raise ValueError("Must specify either q or vellipse") # pragma: nocover
346
+
347
+ return self.plot_ellipse(
348
+ vellipse,
349
+ block=block,
350
+ limits=limits,
351
+ jointaxes=jointaxes,
352
+ eeframe=eeframe,
353
+ shadow=shadow,
354
+ name=name,
355
+ )
@@ -0,0 +1,156 @@
1
+ from roboticstoolbox.tools.types import ArrayLike, NDArray
2
+ from typing import Any, Callable, Literal
3
+ from typing_extensions import Protocol, Self
4
+
5
+ from roboticstoolbox.robot.Link import Link, BaseLink
6
+ from roboticstoolbox.robot.Gripper import Gripper
7
+ from roboticstoolbox.ets.ETS import ETS
8
+ from spatialmath import SE3
9
+
10
+
11
+ class KinematicsProtocol(Protocol):
12
+ """Structural type contract for the RobotKinematics mixin.
13
+
14
+ Declares the attributes that mixin methods access on ``self``. This avoids
15
+ circular imports while allowing type checkers to validate mixin usage.
16
+ """
17
+
18
+ @property
19
+ def _T(self) -> NDArray: ...
20
+
21
+ def ets(
22
+ self,
23
+ start: Link | Gripper | str | None = None,
24
+ end: Link | Gripper | str | None = None,
25
+ ) -> ETS: ...
26
+
27
+
28
+ class RobotProto(Protocol):
29
+ """Structural type contract for the Dynamics mixin.
30
+
31
+ Declares every attribute that Dynamics mixin methods access on ``self``,
32
+ including methods defined within the mixin itself (which must be listed here
33
+ so the type checker knows they exist on ``self`` when called cross-method).
34
+ """
35
+
36
+ # ------------------------------------------------------------------
37
+ # Core robot properties
38
+ # ------------------------------------------------------------------
39
+
40
+ @property
41
+ def links(self) -> list[BaseLink]: ...
42
+
43
+ @property
44
+ def n(self) -> int: ...
45
+
46
+ @property
47
+ def q(self) -> NDArray: ...
48
+
49
+ @property
50
+ def name(self) -> str: ...
51
+
52
+ @name.setter
53
+ def name(self, new_name: str): ...
54
+
55
+ @property
56
+ def gravity(self) -> NDArray: ...
57
+
58
+ # ------------------------------------------------------------------
59
+ # Kinematics (called by dynamics methods)
60
+ # ------------------------------------------------------------------
61
+
62
+ def jacobe(
63
+ self,
64
+ q: ArrayLike,
65
+ end: str | BaseLink | Gripper | None = None,
66
+ start: str | BaseLink | Gripper | None = None,
67
+ tool: NDArray | SE3 | None = None,
68
+ ) -> NDArray: ...
69
+
70
+ def jacob0(
71
+ self,
72
+ q: ArrayLike,
73
+ end: str | BaseLink | Gripper | None = None,
74
+ start: str | BaseLink | Gripper | None = None,
75
+ tool: NDArray | SE3 | None = None,
76
+ ) -> NDArray: ...
77
+
78
+ def jacob0_analytical(
79
+ self,
80
+ q: ArrayLike,
81
+ representation: Literal["rpy/xyz", "rpy/zyx", "eul", "exp"] = "rpy/xyz",
82
+ end: str | BaseLink | Gripper | None = None,
83
+ start: str | BaseLink | Gripper | None = None,
84
+ tool: NDArray | SE3 | None = None,
85
+ ) -> NDArray: ...
86
+
87
+ def jacob0_dot(
88
+ self,
89
+ q: ArrayLike,
90
+ qd: ArrayLike,
91
+ J0: NDArray | None = None,
92
+ representation: Literal["rpy/xyz", "rpy/zyx", "eul", "exp"] | None = None,
93
+ ) -> NDArray: ...
94
+
95
+ # ------------------------------------------------------------------
96
+ # Dynamics methods (cross-called within the Dynamics mixin)
97
+ # ------------------------------------------------------------------
98
+
99
+ def dynchanged(self) -> None: ...
100
+
101
+ def rne(
102
+ self,
103
+ q: NDArray,
104
+ qd: NDArray,
105
+ qdd: NDArray,
106
+ symbolic: bool = False,
107
+ gravity: ArrayLike | None = None,
108
+ ) -> NDArray: ...
109
+
110
+ def inertia(self, q: NDArray) -> NDArray: ...
111
+
112
+ def inertia_x(
113
+ self,
114
+ q: ArrayLike | None = None,
115
+ pinv: bool = False,
116
+ representation: Literal["rpy/xyz", "rpy/zyx", "eul", "exp"] = "rpy/xyz",
117
+ Ji: NDArray | None = None,
118
+ ) -> NDArray: ...
119
+
120
+ def coriolis(self, q: ArrayLike, qd: ArrayLike) -> NDArray: ...
121
+
122
+ def gravload(
123
+ self,
124
+ q: ArrayLike | None = None,
125
+ gravity: ArrayLike | None = None,
126
+ ) -> NDArray: ...
127
+
128
+ def accel(
129
+ self,
130
+ q: ArrayLike,
131
+ qd: ArrayLike,
132
+ torque: ArrayLike,
133
+ gravity: ArrayLike | None = None,
134
+ ) -> NDArray: ...
135
+
136
+ def pay(
137
+ self,
138
+ W: ArrayLike,
139
+ q: NDArray | None = None,
140
+ J: NDArray | None = None,
141
+ frame: int = 1,
142
+ ) -> NDArray: ...
143
+
144
+ def nofriction(self, coulomb: bool = True, viscous: bool = False) -> Self: ...
145
+
146
+ def copy(self) -> Self: ...
147
+
148
+ def _fdyn(
149
+ self,
150
+ t: float,
151
+ x: NDArray,
152
+ torqfun: Callable[[Any], NDArray],
153
+ targs: dict,
154
+ ) -> NDArray: ...
155
+
156
+ def delete_rne(self) -> None: ...
@@ -0,0 +1,57 @@
1
+ from roboticstoolbox.robot.Robot import BaseRobot, Robot, Robot2
2
+ from roboticstoolbox.robot.Link import Link, Link2
3
+ from roboticstoolbox.robot.DHRobot import SerialLink, DHRobot
4
+ from roboticstoolbox.robot.DHLink import (
5
+ DHLink,
6
+ RevoluteDH,
7
+ PrismaticDH,
8
+ RevoluteMDH,
9
+ PrismaticMDH,
10
+ )
11
+ from roboticstoolbox.robot.PoERobot import PoELink, PoERobot, PoERevolute, PoEPrismatic
12
+ from roboticstoolbox.robot.ERobot import ERobot, ERobot2
13
+
14
+ from roboticstoolbox.robot.ELink import ELink, ELink2
15
+ from roboticstoolbox.ets import ET, ET2, ETS, ETS2
16
+ from roboticstoolbox.robot.Gripper import Gripper
17
+
18
+
19
+ from roboticstoolbox.robot.IK import IKSolution, IKSolver, IK_LM, IK_NR, IK_GN, IK_QP
20
+
21
+ __all__ = [
22
+ "Robot",
23
+ "Robot2",
24
+ "SerialLink",
25
+ "DHRobot",
26
+ "Link",
27
+ "DHLink",
28
+ "RevoluteDH",
29
+ "PrismaticDH",
30
+ "RevoluteMDH",
31
+ "PrismaticMDH",
32
+ "BaseRobot",
33
+ "ELink",
34
+ "ELink2",
35
+ "Link",
36
+ "Link2",
37
+ "ERobot",
38
+ "ERobot2",
39
+ "ETS",
40
+ "ETS2",
41
+ "Gripper",
42
+ "PoERobot",
43
+ "PoELink",
44
+ "PoEPrismatic",
45
+ "PoERevolute",
46
+ "ET",
47
+ "ET2",
48
+ "IKSolution",
49
+ "IKSolver",
50
+ "IK_LM",
51
+ "IK_NR",
52
+ "IK_GN",
53
+ "IK_QP",
54
+ # "URDFRobot",
55
+ # "URDF_str",
56
+ # "URDF_file"
57
+ ]
@@ -0,0 +1,29 @@
1
+ # Fast recursive Newton-Euler (frne)
2
+
3
+ ## Synopsis
4
+
5
+ nanobind C++/C extension that accelerates `DHRobot.rne()`: recursive
6
+ Newton-Euler inverse dynamics. These files were developed for a "MEX
7
+ version" of robot dynamics in the MATLAB version of the Robotics Toolbox
8
+ — `ne.c` is virtually unchanged.
9
+
10
+ This is one of two such extensions in the codebase — the other, **fknm**
11
+ (`_fknm_c`, ETS forward kinematics/Jacobians/Hessians/IK), lives at
12
+ `ets/cpp-extensions/` since it's an ETS concern, not a dynamics one. See
13
+ that directory's README for the architecture patterns shared by both
14
+ extensions (build/install mechanics, the Python facade + pure-Python
15
+ fallback pattern, lazy serialization into the C++ mirror object).
16
+
17
+ It's optional: `robot/frne.py` is a pure-Python facade that tries to
18
+ import the compiled extension and transparently falls back to an
19
+ equivalent pure-Python implementation when it's unavailable.
20
+
21
+ # Files
22
+
23
+ | File | Purpose |
24
+ | ---- | ------- |
25
+ | frne_nb.cpp | nanobind glue for `_frne_c` — binds `init`/`frne`/`delete` |
26
+ | frne.h | struct/function declarations shared with `ne.c` |
27
+ | ne.c | implementation of the RNE algorithm |
28
+ | vmath.c | Simple vector/matrix library |
29
+ | vmath.h | Simple vector/matrix library |
@@ -0,0 +1,96 @@
1
+ /**
2
+ * \file frne.h
3
+ * \author Peter Corke
4
+ * \author Jesse Haviland
5
+ * \brief Definitions for c file
6
+ *
7
+ */
8
+
9
+ #ifndef _rne_h_
10
+ #define _rne_h_
11
+
12
+ #include <math.h>
13
+ #include "vmath.h"
14
+
15
+ #define TRUE 1
16
+ #define FALSE 0
17
+
18
+ /*
19
+ * Accessing information within a MATLAB structure is inconvenient and slow.
20
+ * To get around this we build our own robot and link data structures, and
21
+ * copy the information from the MATLAB objects once per call. If the call
22
+ * is for multiple states values then our efficiency becomes very high.
23
+ */
24
+
25
+ /* Robot kinematic convention */
26
+ typedef
27
+ enum _dhtype {
28
+ STANDARD,
29
+ MODIFIED
30
+ } DHType;
31
+
32
+ /* Link joint type */
33
+ typedef
34
+ enum _axistype {
35
+ REVOLUTE ,
36
+ PRISMATIC
37
+ } Sigma;
38
+
39
+ /* A robot link structure */
40
+ typedef struct _link {
41
+ /**********************************************************
42
+ *************** kinematic parameters *********************
43
+ **********************************************************/
44
+ double alpha; /* link twist */
45
+ double A; /* link offset */
46
+ double D; /* link length */
47
+ double theta; /* link rotation angle */
48
+ double offset; /* link coordinate offset */
49
+ Sigma jointtype; /* axis type; revolute ('R') or prismatic ('P') */
50
+
51
+ /**********************************************************
52
+ ***************** dynamic parameters *********************
53
+ **********************************************************/
54
+
55
+ /**************** of links ********************************/
56
+ Vect *rbar; /* centre of mass of link wrt link origin */
57
+ double m; /* mass of link */
58
+ double *I; /* inertia tensor of link wrt link origin */
59
+
60
+ /**************** of actuators *****************************/
61
+ /* these parameters are motor referenced */
62
+ double Jm; /* actuator inertia */
63
+ double G; /* gear ratio */
64
+ double B; /* actuator friction damping coefficient */
65
+ double *Tc; /* actuator Coulomb friction coeffient */
66
+
67
+ /**********************************************************
68
+ **************** intermediate variables ******************
69
+ **********************************************************/
70
+ Vect r; /* distance of ith origin from i-1th wrt ith */
71
+ Rot R; /* link rotation matrix */
72
+ Vect omega; /* angular velocity */
73
+ Vect omega_d; /* angular acceleration */
74
+ Vect acc; /* acceleration */
75
+ Vect abar; /* acceleration of centre of mass */
76
+ Vect f; /* inter-link force */
77
+ Vect n; /* inter-link moment */
78
+ } Link;
79
+
80
+ /* A robot */
81
+ typedef struct _robot {
82
+ int njoints; /* number of joints */
83
+ Vect *gravity; /* gravity vector */
84
+ DHType dhtype; /* kinematic convention */
85
+ Link *links; /* the links */
86
+ } Robot;
87
+
88
+ void newton_euler (
89
+ Robot *robot, /*!< robot object */
90
+ double *tau, /*!< returned joint torques */
91
+ double *qd, /*!< joint velocities */
92
+ double *qdd, /*!< joint accelerations */
93
+ double *fext, /*!< wrench applied to end-effector */
94
+ int stride /*!< indexing stride for qd, qdd */
95
+ );
96
+ #endif