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.
Files changed (673) hide show
  1. roboticstoolbox/__init__.py +104 -0
  2. roboticstoolbox/backends/Connector.py +107 -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 +253 -0
  21. roboticstoolbox/backends/PyPlot/PyPlot.py +769 -0
  22. roboticstoolbox/backends/PyPlot/PyPlot2.py +526 -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 +26 -0
  31. roboticstoolbox/bin/__init__.py +0 -0
  32. roboticstoolbox/bin/rtbtool.py +307 -0
  33. roboticstoolbox/blocks/Icons/250x250/armplot.png +0 -0
  34. roboticstoolbox/blocks/Icons/250x250/bicycle.png +0 -0
  35. roboticstoolbox/blocks/Icons/250x250/camera.png +0 -0
  36. roboticstoolbox/blocks/Icons/250x250/circlepath.png +0 -0
  37. roboticstoolbox/blocks/Icons/250x250/coriolis.png +0 -0
  38. roboticstoolbox/blocks/Icons/250x250/ctraj.png +0 -0
  39. roboticstoolbox/blocks/Icons/250x250/delta2tr.png +0 -0
  40. roboticstoolbox/blocks/Icons/250x250/diffsteer.png +0 -0
  41. roboticstoolbox/blocks/Icons/250x250/fdyn.png +0 -0
  42. roboticstoolbox/blocks/Icons/250x250/fdynx.png +0 -0
  43. roboticstoolbox/blocks/Icons/250x250/fkine.png +0 -0
  44. roboticstoolbox/blocks/Icons/250x250/gravload.png +0 -0
  45. roboticstoolbox/blocks/Icons/250x250/idyn.png +0 -0
  46. roboticstoolbox/blocks/Icons/250x250/idynx.png +0 -0
  47. roboticstoolbox/blocks/Icons/250x250/ikine.png +0 -0
  48. roboticstoolbox/blocks/Icons/250x250/inertia.png +0 -0
  49. roboticstoolbox/blocks/Icons/250x250/jacobian.png +0 -0
  50. roboticstoolbox/blocks/Icons/250x250/jtraj.png +0 -0
  51. roboticstoolbox/blocks/Icons/250x250/lspb.png +0 -0
  52. roboticstoolbox/blocks/Icons/250x250/multirotor.png +0 -0
  53. roboticstoolbox/blocks/Icons/250x250/multirotormixer.png +0 -0
  54. roboticstoolbox/blocks/Icons/250x250/multirotorplot.png +0 -0
  55. roboticstoolbox/blocks/Icons/250x250/point2tr.png +0 -0
  56. roboticstoolbox/blocks/Icons/250x250/tr2delta.png +0 -0
  57. roboticstoolbox/blocks/Icons/250x250/tr2t.png +0 -0
  58. roboticstoolbox/blocks/Icons/250x250/unicycle.png +0 -0
  59. roboticstoolbox/blocks/Icons/250x250/vehicleplot.png +0 -0
  60. roboticstoolbox/blocks/Icons/50x50/armplot.png +0 -0
  61. roboticstoolbox/blocks/Icons/50x50/bicycle.png +0 -0
  62. roboticstoolbox/blocks/Icons/50x50/camera.png +0 -0
  63. roboticstoolbox/blocks/Icons/50x50/circlepath.png +0 -0
  64. roboticstoolbox/blocks/Icons/50x50/coriolis.png +0 -0
  65. roboticstoolbox/blocks/Icons/50x50/delta2tr.png +0 -0
  66. roboticstoolbox/blocks/Icons/50x50/diffsteer.png +0 -0
  67. roboticstoolbox/blocks/Icons/50x50/fdyn.png +0 -0
  68. roboticstoolbox/blocks/Icons/50x50/fdynx.png +0 -0
  69. roboticstoolbox/blocks/Icons/50x50/fkine.png +0 -0
  70. roboticstoolbox/blocks/Icons/50x50/gravload.png +0 -0
  71. roboticstoolbox/blocks/Icons/50x50/idyn.png +0 -0
  72. roboticstoolbox/blocks/Icons/50x50/idynx.png +0 -0
  73. roboticstoolbox/blocks/Icons/50x50/ikine.png +0 -0
  74. roboticstoolbox/blocks/Icons/50x50/inertia.png +0 -0
  75. roboticstoolbox/blocks/Icons/50x50/jacobian.png +0 -0
  76. roboticstoolbox/blocks/Icons/50x50/jtraj.png +0 -0
  77. roboticstoolbox/blocks/Icons/50x50/lspb.png +0 -0
  78. roboticstoolbox/blocks/Icons/50x50/multirotor.png +0 -0
  79. roboticstoolbox/blocks/Icons/50x50/multirotormixer.png +0 -0
  80. roboticstoolbox/blocks/Icons/50x50/multirotorplot.png +0 -0
  81. roboticstoolbox/blocks/Icons/50x50/point2tr.png +0 -0
  82. roboticstoolbox/blocks/Icons/50x50/tr2delta.png +0 -0
  83. roboticstoolbox/blocks/Icons/50x50/tr2t.png +0 -0
  84. roboticstoolbox/blocks/Icons/50x50/unicycle.png +0 -0
  85. roboticstoolbox/blocks/Icons/50x50/vehicleplot.png +0 -0
  86. roboticstoolbox/blocks/Icons/armplot.png +0 -0
  87. roboticstoolbox/blocks/Icons/bicycle.png +0 -0
  88. roboticstoolbox/blocks/Icons/camera.png +0 -0
  89. roboticstoolbox/blocks/Icons/circlepath.png +0 -0
  90. roboticstoolbox/blocks/Icons/coriolis.png +0 -0
  91. roboticstoolbox/blocks/Icons/ctraj.png +0 -0
  92. roboticstoolbox/blocks/Icons/delta2tr.png +0 -0
  93. roboticstoolbox/blocks/Icons/diffsteer.png +0 -0
  94. roboticstoolbox/blocks/Icons/fdyn.png +0 -0
  95. roboticstoolbox/blocks/Icons/fdynx.png +0 -0
  96. roboticstoolbox/blocks/Icons/fkine.png +0 -0
  97. roboticstoolbox/blocks/Icons/gravload.png +0 -0
  98. roboticstoolbox/blocks/Icons/idyn.png +0 -0
  99. roboticstoolbox/blocks/Icons/idynx.png +0 -0
  100. roboticstoolbox/blocks/Icons/ikine.png +0 -0
  101. roboticstoolbox/blocks/Icons/inertia.png +0 -0
  102. roboticstoolbox/blocks/Icons/jacobian.png +0 -0
  103. roboticstoolbox/blocks/Icons/jtraj.png +0 -0
  104. roboticstoolbox/blocks/Icons/lspb.png +0 -0
  105. roboticstoolbox/blocks/Icons/multirotor.png +0 -0
  106. roboticstoolbox/blocks/Icons/multirotormixer.png +0 -0
  107. roboticstoolbox/blocks/Icons/multirotorplot.png +0 -0
  108. roboticstoolbox/blocks/Icons/point2tr.png +0 -0
  109. roboticstoolbox/blocks/Icons/tr2delta.png +0 -0
  110. roboticstoolbox/blocks/Icons/tr2t.png +0 -0
  111. roboticstoolbox/blocks/Icons/unicycle.png +0 -0
  112. roboticstoolbox/blocks/Icons/vehicleplot.png +0 -0
  113. roboticstoolbox/blocks/README.md +43 -0
  114. roboticstoolbox/blocks/__init__.py +6 -0
  115. roboticstoolbox/blocks/arm.py +1587 -0
  116. roboticstoolbox/blocks/mobile.py +500 -0
  117. roboticstoolbox/blocks/quad_model.py +132 -0
  118. roboticstoolbox/blocks/spatial.py +245 -0
  119. roboticstoolbox/blocks/uav.py +949 -0
  120. roboticstoolbox/core/Eigen/Cholesky +45 -0
  121. roboticstoolbox/core/Eigen/CholmodSupport +48 -0
  122. roboticstoolbox/core/Eigen/Core +384 -0
  123. roboticstoolbox/core/Eigen/Dense +7 -0
  124. roboticstoolbox/core/Eigen/Eigen +2 -0
  125. roboticstoolbox/core/Eigen/Eigenvalues +60 -0
  126. roboticstoolbox/core/Eigen/Geometry +59 -0
  127. roboticstoolbox/core/Eigen/Householder +29 -0
  128. roboticstoolbox/core/Eigen/IterativeLinearSolvers +48 -0
  129. roboticstoolbox/core/Eigen/Jacobi +32 -0
  130. roboticstoolbox/core/Eigen/KLUSupport +41 -0
  131. roboticstoolbox/core/Eigen/LU +47 -0
  132. roboticstoolbox/core/Eigen/MetisSupport +35 -0
  133. roboticstoolbox/core/Eigen/OrderingMethods +70 -0
  134. roboticstoolbox/core/Eigen/PaStiXSupport +49 -0
  135. roboticstoolbox/core/Eigen/PardisoSupport +35 -0
  136. roboticstoolbox/core/Eigen/QR +50 -0
  137. roboticstoolbox/core/Eigen/QtAlignedMalloc +39 -0
  138. roboticstoolbox/core/Eigen/SPQRSupport +34 -0
  139. roboticstoolbox/core/Eigen/SVD +50 -0
  140. roboticstoolbox/core/Eigen/Sparse +34 -0
  141. roboticstoolbox/core/Eigen/SparseCholesky +37 -0
  142. roboticstoolbox/core/Eigen/SparseCore +69 -0
  143. roboticstoolbox/core/Eigen/SparseLU +50 -0
  144. roboticstoolbox/core/Eigen/SparseQR +36 -0
  145. roboticstoolbox/core/Eigen/StdDeque +27 -0
  146. roboticstoolbox/core/Eigen/StdList +26 -0
  147. roboticstoolbox/core/Eigen/StdVector +27 -0
  148. roboticstoolbox/core/Eigen/SuperLUSupport +64 -0
  149. roboticstoolbox/core/Eigen/UmfPackSupport +40 -0
  150. roboticstoolbox/core/Eigen/src/Cholesky/LDLT.h +688 -0
  151. roboticstoolbox/core/Eigen/src/Cholesky/LLT.h +558 -0
  152. roboticstoolbox/core/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  153. roboticstoolbox/core/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  154. roboticstoolbox/core/Eigen/src/Core/ArithmeticSequence.h +413 -0
  155. roboticstoolbox/core/Eigen/src/Core/Array.h +417 -0
  156. roboticstoolbox/core/Eigen/src/Core/ArrayBase.h +226 -0
  157. roboticstoolbox/core/Eigen/src/Core/ArrayWrapper.h +209 -0
  158. roboticstoolbox/core/Eigen/src/Core/Assign.h +90 -0
  159. roboticstoolbox/core/Eigen/src/Core/AssignEvaluator.h +1010 -0
  160. roboticstoolbox/core/Eigen/src/Core/Assign_MKL.h +178 -0
  161. roboticstoolbox/core/Eigen/src/Core/BandMatrix.h +353 -0
  162. roboticstoolbox/core/Eigen/src/Core/Block.h +448 -0
  163. roboticstoolbox/core/Eigen/src/Core/BooleanRedux.h +162 -0
  164. roboticstoolbox/core/Eigen/src/Core/CommaInitializer.h +164 -0
  165. roboticstoolbox/core/Eigen/src/Core/ConditionEstimator.h +175 -0
  166. roboticstoolbox/core/Eigen/src/Core/CoreEvaluators.h +1741 -0
  167. roboticstoolbox/core/Eigen/src/Core/CoreIterators.h +132 -0
  168. roboticstoolbox/core/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  169. roboticstoolbox/core/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  170. roboticstoolbox/core/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  171. roboticstoolbox/core/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  172. roboticstoolbox/core/Eigen/src/Core/CwiseUnaryView.h +132 -0
  173. roboticstoolbox/core/Eigen/src/Core/DenseBase.h +701 -0
  174. roboticstoolbox/core/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  175. roboticstoolbox/core/Eigen/src/Core/DenseStorage.h +652 -0
  176. roboticstoolbox/core/Eigen/src/Core/Diagonal.h +258 -0
  177. roboticstoolbox/core/Eigen/src/Core/DiagonalMatrix.h +391 -0
  178. roboticstoolbox/core/Eigen/src/Core/DiagonalProduct.h +28 -0
  179. roboticstoolbox/core/Eigen/src/Core/Dot.h +318 -0
  180. roboticstoolbox/core/Eigen/src/Core/EigenBase.h +160 -0
  181. roboticstoolbox/core/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  182. roboticstoolbox/core/Eigen/src/Core/Fuzzy.h +155 -0
  183. roboticstoolbox/core/Eigen/src/Core/GeneralProduct.h +465 -0
  184. roboticstoolbox/core/Eigen/src/Core/GenericPacketMath.h +1040 -0
  185. roboticstoolbox/core/Eigen/src/Core/GlobalFunctions.h +194 -0
  186. roboticstoolbox/core/Eigen/src/Core/IO.h +258 -0
  187. roboticstoolbox/core/Eigen/src/Core/IndexedView.h +237 -0
  188. roboticstoolbox/core/Eigen/src/Core/Inverse.h +117 -0
  189. roboticstoolbox/core/Eigen/src/Core/Map.h +171 -0
  190. roboticstoolbox/core/Eigen/src/Core/MapBase.h +310 -0
  191. roboticstoolbox/core/Eigen/src/Core/MathFunctions.h +2057 -0
  192. roboticstoolbox/core/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  193. roboticstoolbox/core/Eigen/src/Core/Matrix.h +565 -0
  194. roboticstoolbox/core/Eigen/src/Core/MatrixBase.h +547 -0
  195. roboticstoolbox/core/Eigen/src/Core/NestByValue.h +85 -0
  196. roboticstoolbox/core/Eigen/src/Core/NoAlias.h +109 -0
  197. roboticstoolbox/core/Eigen/src/Core/NumTraits.h +335 -0
  198. roboticstoolbox/core/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  199. roboticstoolbox/core/Eigen/src/Core/PermutationMatrix.h +605 -0
  200. roboticstoolbox/core/Eigen/src/Core/PlainObjectBase.h +1128 -0
  201. roboticstoolbox/core/Eigen/src/Core/Product.h +191 -0
  202. roboticstoolbox/core/Eigen/src/Core/ProductEvaluators.h +1179 -0
  203. roboticstoolbox/core/Eigen/src/Core/Random.h +218 -0
  204. roboticstoolbox/core/Eigen/src/Core/Redux.h +515 -0
  205. roboticstoolbox/core/Eigen/src/Core/Ref.h +381 -0
  206. roboticstoolbox/core/Eigen/src/Core/Replicate.h +142 -0
  207. roboticstoolbox/core/Eigen/src/Core/Reshaped.h +454 -0
  208. roboticstoolbox/core/Eigen/src/Core/ReturnByValue.h +119 -0
  209. roboticstoolbox/core/Eigen/src/Core/Reverse.h +217 -0
  210. roboticstoolbox/core/Eigen/src/Core/Select.h +164 -0
  211. roboticstoolbox/core/Eigen/src/Core/SelfAdjointView.h +365 -0
  212. roboticstoolbox/core/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  213. roboticstoolbox/core/Eigen/src/Core/Solve.h +188 -0
  214. roboticstoolbox/core/Eigen/src/Core/SolveTriangular.h +235 -0
  215. roboticstoolbox/core/Eigen/src/Core/SolverBase.h +168 -0
  216. roboticstoolbox/core/Eigen/src/Core/StableNorm.h +251 -0
  217. roboticstoolbox/core/Eigen/src/Core/StlIterators.h +463 -0
  218. roboticstoolbox/core/Eigen/src/Core/Stride.h +116 -0
  219. roboticstoolbox/core/Eigen/src/Core/Swap.h +68 -0
  220. roboticstoolbox/core/Eigen/src/Core/Transpose.h +464 -0
  221. roboticstoolbox/core/Eigen/src/Core/Transpositions.h +386 -0
  222. roboticstoolbox/core/Eigen/src/Core/TriangularMatrix.h +1001 -0
  223. roboticstoolbox/core/Eigen/src/Core/VectorBlock.h +96 -0
  224. roboticstoolbox/core/Eigen/src/Core/VectorwiseOp.h +784 -0
  225. roboticstoolbox/core/Eigen/src/Core/Visitor.h +381 -0
  226. roboticstoolbox/core/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  227. roboticstoolbox/core/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  228. roboticstoolbox/core/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  229. roboticstoolbox/core/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  230. roboticstoolbox/core/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  231. roboticstoolbox/core/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  232. roboticstoolbox/core/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  233. roboticstoolbox/core/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  234. roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  235. roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  236. roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  237. roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  238. roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  239. roboticstoolbox/core/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  240. roboticstoolbox/core/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  241. roboticstoolbox/core/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  242. roboticstoolbox/core/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  243. roboticstoolbox/core/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  244. roboticstoolbox/core/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  245. roboticstoolbox/core/Eigen/src/Core/arch/Default/Half.h +942 -0
  246. roboticstoolbox/core/Eigen/src/Core/arch/Default/Settings.h +49 -0
  247. roboticstoolbox/core/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  248. roboticstoolbox/core/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  249. roboticstoolbox/core/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  250. roboticstoolbox/core/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  251. roboticstoolbox/core/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  252. roboticstoolbox/core/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  253. roboticstoolbox/core/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  254. roboticstoolbox/core/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  255. roboticstoolbox/core/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  256. roboticstoolbox/core/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  257. roboticstoolbox/core/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  258. roboticstoolbox/core/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  259. roboticstoolbox/core/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  260. roboticstoolbox/core/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  261. roboticstoolbox/core/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  262. roboticstoolbox/core/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  263. roboticstoolbox/core/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  264. roboticstoolbox/core/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  265. roboticstoolbox/core/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  266. roboticstoolbox/core/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  267. roboticstoolbox/core/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  268. roboticstoolbox/core/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  269. roboticstoolbox/core/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  270. roboticstoolbox/core/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  271. roboticstoolbox/core/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  272. roboticstoolbox/core/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  273. roboticstoolbox/core/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  274. roboticstoolbox/core/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  275. roboticstoolbox/core/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  276. roboticstoolbox/core/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  277. roboticstoolbox/core/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  278. roboticstoolbox/core/Eigen/src/Core/functors/StlFunctors.h +166 -0
  279. roboticstoolbox/core/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  280. roboticstoolbox/core/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  281. roboticstoolbox/core/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  282. roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  283. roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  284. roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  285. roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  286. roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  287. roboticstoolbox/core/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  288. roboticstoolbox/core/Eigen/src/Core/products/Parallelizer.h +180 -0
  289. roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  290. roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  291. roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  292. roboticstoolbox/core/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  293. roboticstoolbox/core/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  294. roboticstoolbox/core/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  295. roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  296. roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  297. roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  298. roboticstoolbox/core/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  299. roboticstoolbox/core/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  300. roboticstoolbox/core/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  301. roboticstoolbox/core/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  302. roboticstoolbox/core/Eigen/src/Core/util/BlasUtil.h +583 -0
  303. roboticstoolbox/core/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  304. roboticstoolbox/core/Eigen/src/Core/util/Constants.h +563 -0
  305. roboticstoolbox/core/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  306. roboticstoolbox/core/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  307. roboticstoolbox/core/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  308. roboticstoolbox/core/Eigen/src/Core/util/IntegralConstant.h +272 -0
  309. roboticstoolbox/core/Eigen/src/Core/util/MKL_support.h +137 -0
  310. roboticstoolbox/core/Eigen/src/Core/util/Macros.h +1464 -0
  311. roboticstoolbox/core/Eigen/src/Core/util/Memory.h +1163 -0
  312. roboticstoolbox/core/Eigen/src/Core/util/Meta.h +812 -0
  313. roboticstoolbox/core/Eigen/src/Core/util/NonMPL2.h +3 -0
  314. roboticstoolbox/core/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  315. roboticstoolbox/core/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  316. roboticstoolbox/core/Eigen/src/Core/util/StaticAssert.h +221 -0
  317. roboticstoolbox/core/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  318. roboticstoolbox/core/Eigen/src/Core/util/XprHelper.h +856 -0
  319. roboticstoolbox/core/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  320. roboticstoolbox/core/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  321. roboticstoolbox/core/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  322. roboticstoolbox/core/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  323. roboticstoolbox/core/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  324. roboticstoolbox/core/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  325. roboticstoolbox/core/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  326. roboticstoolbox/core/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  327. roboticstoolbox/core/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  328. roboticstoolbox/core/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  329. roboticstoolbox/core/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  330. roboticstoolbox/core/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  331. roboticstoolbox/core/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  332. roboticstoolbox/core/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  333. roboticstoolbox/core/Eigen/src/Geometry/AlignedBox.h +486 -0
  334. roboticstoolbox/core/Eigen/src/Geometry/AngleAxis.h +247 -0
  335. roboticstoolbox/core/Eigen/src/Geometry/EulerAngles.h +114 -0
  336. roboticstoolbox/core/Eigen/src/Geometry/Homogeneous.h +501 -0
  337. roboticstoolbox/core/Eigen/src/Geometry/Hyperplane.h +282 -0
  338. roboticstoolbox/core/Eigen/src/Geometry/OrthoMethods.h +235 -0
  339. roboticstoolbox/core/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  340. roboticstoolbox/core/Eigen/src/Geometry/Quaternion.h +870 -0
  341. roboticstoolbox/core/Eigen/src/Geometry/Rotation2D.h +199 -0
  342. roboticstoolbox/core/Eigen/src/Geometry/RotationBase.h +206 -0
  343. roboticstoolbox/core/Eigen/src/Geometry/Scaling.h +188 -0
  344. roboticstoolbox/core/Eigen/src/Geometry/Transform.h +1563 -0
  345. roboticstoolbox/core/Eigen/src/Geometry/Translation.h +202 -0
  346. roboticstoolbox/core/Eigen/src/Geometry/Umeyama.h +166 -0
  347. roboticstoolbox/core/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  348. roboticstoolbox/core/Eigen/src/Householder/BlockHouseholder.h +110 -0
  349. roboticstoolbox/core/Eigen/src/Householder/Householder.h +176 -0
  350. roboticstoolbox/core/Eigen/src/Householder/HouseholderSequence.h +545 -0
  351. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  352. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  353. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  354. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  355. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  356. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  357. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  358. roboticstoolbox/core/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  359. roboticstoolbox/core/Eigen/src/Jacobi/Jacobi.h +483 -0
  360. roboticstoolbox/core/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  361. roboticstoolbox/core/Eigen/src/LU/Determinant.h +117 -0
  362. roboticstoolbox/core/Eigen/src/LU/FullPivLU.h +877 -0
  363. roboticstoolbox/core/Eigen/src/LU/InverseImpl.h +432 -0
  364. roboticstoolbox/core/Eigen/src/LU/PartialPivLU.h +624 -0
  365. roboticstoolbox/core/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  366. roboticstoolbox/core/Eigen/src/LU/arch/InverseSize4.h +351 -0
  367. roboticstoolbox/core/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  368. roboticstoolbox/core/Eigen/src/OrderingMethods/Amd.h +435 -0
  369. roboticstoolbox/core/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  370. roboticstoolbox/core/Eigen/src/OrderingMethods/Ordering.h +153 -0
  371. roboticstoolbox/core/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  372. roboticstoolbox/core/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  373. roboticstoolbox/core/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  374. roboticstoolbox/core/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  375. roboticstoolbox/core/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  376. roboticstoolbox/core/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  377. roboticstoolbox/core/Eigen/src/QR/HouseholderQR.h +434 -0
  378. roboticstoolbox/core/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  379. roboticstoolbox/core/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  380. roboticstoolbox/core/Eigen/src/SVD/BDCSVD.h +1366 -0
  381. roboticstoolbox/core/Eigen/src/SVD/JacobiSVD.h +812 -0
  382. roboticstoolbox/core/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  383. roboticstoolbox/core/Eigen/src/SVD/SVDBase.h +376 -0
  384. roboticstoolbox/core/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  385. roboticstoolbox/core/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  386. roboticstoolbox/core/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  387. roboticstoolbox/core/Eigen/src/SparseCore/AmbiVector.h +378 -0
  388. roboticstoolbox/core/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  389. roboticstoolbox/core/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  390. roboticstoolbox/core/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  391. roboticstoolbox/core/Eigen/src/SparseCore/SparseAssign.h +270 -0
  392. roboticstoolbox/core/Eigen/src/SparseCore/SparseBlock.h +571 -0
  393. roboticstoolbox/core/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  394. roboticstoolbox/core/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  395. roboticstoolbox/core/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  396. roboticstoolbox/core/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  397. roboticstoolbox/core/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  398. roboticstoolbox/core/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  399. roboticstoolbox/core/Eigen/src/SparseCore/SparseDot.h +98 -0
  400. roboticstoolbox/core/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  401. roboticstoolbox/core/Eigen/src/SparseCore/SparseMap.h +305 -0
  402. roboticstoolbox/core/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  403. roboticstoolbox/core/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  404. roboticstoolbox/core/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  405. roboticstoolbox/core/Eigen/src/SparseCore/SparseProduct.h +181 -0
  406. roboticstoolbox/core/Eigen/src/SparseCore/SparseRedux.h +49 -0
  407. roboticstoolbox/core/Eigen/src/SparseCore/SparseRef.h +397 -0
  408. roboticstoolbox/core/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  409. roboticstoolbox/core/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  410. roboticstoolbox/core/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  411. roboticstoolbox/core/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  412. roboticstoolbox/core/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  413. roboticstoolbox/core/Eigen/src/SparseCore/SparseUtil.h +186 -0
  414. roboticstoolbox/core/Eigen/src/SparseCore/SparseVector.h +478 -0
  415. roboticstoolbox/core/Eigen/src/SparseCore/SparseView.h +254 -0
  416. roboticstoolbox/core/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  417. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU.h +923 -0
  418. roboticstoolbox/core/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  419. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  420. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  421. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  422. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  423. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  424. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  425. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  426. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  427. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  428. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  429. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  430. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  431. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  432. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  433. roboticstoolbox/core/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  434. roboticstoolbox/core/Eigen/src/SparseQR/SparseQR.h +758 -0
  435. roboticstoolbox/core/Eigen/src/StlSupport/StdDeque.h +116 -0
  436. roboticstoolbox/core/Eigen/src/StlSupport/StdList.h +106 -0
  437. roboticstoolbox/core/Eigen/src/StlSupport/StdVector.h +131 -0
  438. roboticstoolbox/core/Eigen/src/StlSupport/details.h +84 -0
  439. roboticstoolbox/core/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  440. roboticstoolbox/core/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  441. roboticstoolbox/core/Eigen/src/misc/Image.h +82 -0
  442. roboticstoolbox/core/Eigen/src/misc/Kernel.h +79 -0
  443. roboticstoolbox/core/Eigen/src/misc/RealSvd2x2.h +55 -0
  444. roboticstoolbox/core/Eigen/src/misc/blas.h +440 -0
  445. roboticstoolbox/core/Eigen/src/misc/lapack.h +152 -0
  446. roboticstoolbox/core/Eigen/src/misc/lapacke.h +16292 -0
  447. roboticstoolbox/core/Eigen/src/misc/lapacke_mangling.h +17 -0
  448. roboticstoolbox/core/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  449. roboticstoolbox/core/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  450. roboticstoolbox/core/Eigen/src/plugins/BlockMethods.h +1442 -0
  451. roboticstoolbox/core/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  452. roboticstoolbox/core/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  453. roboticstoolbox/core/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  454. roboticstoolbox/core/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  455. roboticstoolbox/core/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  456. roboticstoolbox/core/Eigen/src/plugins/ReshapedMethods.h +149 -0
  457. roboticstoolbox/core/fknm.cpp +1557 -0
  458. roboticstoolbox/core/fknm.h +55 -0
  459. roboticstoolbox/core/frne.c +351 -0
  460. roboticstoolbox/core/frne.h +96 -0
  461. roboticstoolbox/core/ik.cpp +301 -0
  462. roboticstoolbox/core/ik.h +59 -0
  463. roboticstoolbox/core/linalg.cpp +316 -0
  464. roboticstoolbox/core/linalg.h +64 -0
  465. roboticstoolbox/core/methods.cpp +372 -0
  466. roboticstoolbox/core/methods.h +32 -0
  467. roboticstoolbox/core/ne.c +493 -0
  468. roboticstoolbox/core/structs.cpp +24 -0
  469. roboticstoolbox/core/structs.h +62 -0
  470. roboticstoolbox/core/vmath.c +163 -0
  471. roboticstoolbox/core/vmath.h +32 -0
  472. roboticstoolbox/fknm.cp313-win_amd64.pyd +0 -0
  473. roboticstoolbox/frne.cp313-win_amd64.pyd +0 -0
  474. roboticstoolbox/mobile/Animations.py +485 -0
  475. roboticstoolbox/mobile/Bug2.py +455 -0
  476. roboticstoolbox/mobile/CurvaturePolyPlanner.py +179 -0
  477. roboticstoolbox/mobile/DistanceTransformPlanner.py +395 -0
  478. roboticstoolbox/mobile/DstarPlanner.py +591 -0
  479. roboticstoolbox/mobile/DubinsPlanner.py +474 -0
  480. roboticstoolbox/mobile/EKF.py +1617 -0
  481. roboticstoolbox/mobile/LatticePlanner.py +419 -0
  482. roboticstoolbox/mobile/OccGrid.py +613 -0
  483. roboticstoolbox/mobile/PRMPlanner.py +348 -0
  484. roboticstoolbox/mobile/ParticleFilter.py +706 -0
  485. roboticstoolbox/mobile/PlannerBase.py +1009 -0
  486. roboticstoolbox/mobile/PoseGraph.py +544 -0
  487. roboticstoolbox/mobile/QuinticPolyPlanner.py +349 -0
  488. roboticstoolbox/mobile/RRTPlanner.py +359 -0
  489. roboticstoolbox/mobile/ReedsSheppPlanner.py +545 -0
  490. roboticstoolbox/mobile/Vehicle.py +1909 -0
  491. roboticstoolbox/mobile/__init__.py +193 -0
  492. roboticstoolbox/mobile/drivers.py +390 -0
  493. roboticstoolbox/mobile/landmarkmap.py +181 -0
  494. roboticstoolbox/mobile/sensors.py +771 -0
  495. roboticstoolbox/models/DH/AL5D.py +121 -0
  496. roboticstoolbox/models/DH/Ball.py +87 -0
  497. roboticstoolbox/models/DH/Baxter.py +91 -0
  498. roboticstoolbox/models/DH/Cobra600.py +63 -0
  499. roboticstoolbox/models/DH/Coil.py +80 -0
  500. roboticstoolbox/models/DH/Hyper.py +83 -0
  501. roboticstoolbox/models/DH/Hyper3d.py +85 -0
  502. roboticstoolbox/models/DH/IRB140.py +159 -0
  503. roboticstoolbox/models/DH/Jaco.py +102 -0
  504. roboticstoolbox/models/DH/KR5.py +112 -0
  505. roboticstoolbox/models/DH/LWR4.py +85 -0
  506. roboticstoolbox/models/DH/Mico.py +102 -0
  507. roboticstoolbox/models/DH/Orion5.py +91 -0
  508. roboticstoolbox/models/DH/P8.py +80 -0
  509. roboticstoolbox/models/DH/Panda.py +178 -0
  510. roboticstoolbox/models/DH/Planar2.py +69 -0
  511. roboticstoolbox/models/DH/Planar3.py +51 -0
  512. roboticstoolbox/models/DH/Puma560.py +326 -0
  513. roboticstoolbox/models/DH/README.md +216 -0
  514. roboticstoolbox/models/DH/Sawyer.py +85 -0
  515. roboticstoolbox/models/DH/Stanford.py +147 -0
  516. roboticstoolbox/models/DH/TwoLink.py +109 -0
  517. roboticstoolbox/models/DH/UR10.py +124 -0
  518. roboticstoolbox/models/DH/UR3.py +98 -0
  519. roboticstoolbox/models/DH/UR5.py +98 -0
  520. roboticstoolbox/models/DH/Uprighttl.py +24 -0
  521. roboticstoolbox/models/DH/__init__.py +52 -0
  522. roboticstoolbox/models/ETS/Frankie.py +90 -0
  523. roboticstoolbox/models/ETS/GenericSeven.py +54 -0
  524. roboticstoolbox/models/ETS/Omni.py +74 -0
  525. roboticstoolbox/models/ETS/Panda.py +69 -0
  526. roboticstoolbox/models/ETS/Planar2.py +49 -0
  527. roboticstoolbox/models/ETS/Planar_Y.py +65 -0
  528. roboticstoolbox/models/ETS/Puma560.py +69 -0
  529. roboticstoolbox/models/ETS/XYPanda.py +84 -0
  530. roboticstoolbox/models/ETS/__init__.py +20 -0
  531. roboticstoolbox/models/README.md +9 -0
  532. roboticstoolbox/models/URDF/AL5D.py +54 -0
  533. roboticstoolbox/models/URDF/Fetch.py +70 -0
  534. roboticstoolbox/models/URDF/FetchCamera.py +71 -0
  535. roboticstoolbox/models/URDF/Frankie.py +75 -0
  536. roboticstoolbox/models/URDF/FrankieOmni.py +94 -0
  537. roboticstoolbox/models/URDF/KinovaGen3.py +71 -0
  538. roboticstoolbox/models/URDF/LBR.py +59 -0
  539. roboticstoolbox/models/URDF/Mico.py +68 -0
  540. roboticstoolbox/models/URDF/PR2.py +64 -0
  541. roboticstoolbox/models/URDF/Panda.py +67 -0
  542. roboticstoolbox/models/URDF/Puma560.py +97 -0
  543. roboticstoolbox/models/URDF/UR10.py +53 -0
  544. roboticstoolbox/models/URDF/UR3.py +53 -0
  545. roboticstoolbox/models/URDF/UR5.py +74 -0
  546. roboticstoolbox/models/URDF/Valkyrie.py +84 -0
  547. roboticstoolbox/models/URDF/YuMi.py +109 -0
  548. roboticstoolbox/models/URDF/__init__.py +53 -0
  549. roboticstoolbox/models/URDF/px100.py +56 -0
  550. roboticstoolbox/models/URDF/px150.py +56 -0
  551. roboticstoolbox/models/URDF/rx150.py +56 -0
  552. roboticstoolbox/models/URDF/rx200.py +56 -0
  553. roboticstoolbox/models/URDF/vx300.py +56 -0
  554. roboticstoolbox/models/URDF/vx300s.py +56 -0
  555. roboticstoolbox/models/URDF/wx200.py +56 -0
  556. roboticstoolbox/models/URDF/wx250.py +56 -0
  557. roboticstoolbox/models/URDF/wx250s.py +56 -0
  558. roboticstoolbox/models/__init__.py +7 -0
  559. roboticstoolbox/models/list.py +119 -0
  560. roboticstoolbox/robot/BaseRobot.py +3133 -0
  561. roboticstoolbox/robot/DHFactor.py +522 -0
  562. roboticstoolbox/robot/DHLink.py +981 -0
  563. roboticstoolbox/robot/DHRobot.py +2520 -0
  564. roboticstoolbox/robot/Dynamics.py +1620 -0
  565. roboticstoolbox/robot/ELink.py +23 -0
  566. roboticstoolbox/robot/ERobot.py +25 -0
  567. roboticstoolbox/robot/ET.py +1097 -0
  568. roboticstoolbox/robot/ETS.py +3542 -0
  569. roboticstoolbox/robot/Gripper.py +282 -0
  570. roboticstoolbox/robot/IK.py +1522 -0
  571. roboticstoolbox/robot/Link.py +1698 -0
  572. roboticstoolbox/robot/PoERobot.py +348 -0
  573. roboticstoolbox/robot/Robot.py +2100 -0
  574. roboticstoolbox/robot/RobotKinematics.py +1725 -0
  575. roboticstoolbox/robot/RobotProto.py +92 -0
  576. roboticstoolbox/robot/__init__.py +54 -0
  577. roboticstoolbox/tools/DHFactor.py +375 -0
  578. roboticstoolbox/tools/Ticker.py +53 -0
  579. roboticstoolbox/tools/__init__.py +54 -0
  580. roboticstoolbox/tools/data.py +187 -0
  581. roboticstoolbox/tools/jsingu.py +51 -0
  582. roboticstoolbox/tools/null.py +48 -0
  583. roboticstoolbox/tools/numerical.py +96 -0
  584. roboticstoolbox/tools/p_servo.py +106 -0
  585. roboticstoolbox/tools/params.py +11 -0
  586. roboticstoolbox/tools/plot.py +109 -0
  587. roboticstoolbox/tools/trajectory.py +1152 -0
  588. roboticstoolbox/tools/types.py +13 -0
  589. roboticstoolbox/tools/urdf/__init__.py +45 -0
  590. roboticstoolbox/tools/urdf/tests/data/ur5.urdf +341 -0
  591. roboticstoolbox/tools/urdf/tests/test_urdf.py +116 -0
  592. roboticstoolbox/tools/urdf/urdf.py +1976 -0
  593. roboticstoolbox/tools/urdf/utils.py +50 -0
  594. roboticstoolbox/tools/xacro/__init__.py +1148 -0
  595. roboticstoolbox/tools/xacro/cli.py +128 -0
  596. roboticstoolbox/tools/xacro/color.py +66 -0
  597. roboticstoolbox/tools/xacro/tests/CMakeLists.txt +4 -0
  598. roboticstoolbox/tools/xacro/tests/broken.xacro +1 -0
  599. roboticstoolbox/tools/xacro/tests/emoji.xacro +5 -0
  600. roboticstoolbox/tools/xacro/tests/include1.xacro +4 -0
  601. roboticstoolbox/tools/xacro/tests/include1.xml +1 -0
  602. roboticstoolbox/tools/xacro/tests/include2.xacro +4 -0
  603. roboticstoolbox/tools/xacro/tests/include2.xml +1 -0
  604. roboticstoolbox/tools/xacro/tests/robots/README +4 -0
  605. roboticstoolbox/tools/xacro/tests/robots/pr2/base_v0/base.gazebo.xacro +59 -0
  606. roboticstoolbox/tools/xacro/tests/robots/pr2/base_v0/base.transmission.xacro +24 -0
  607. roboticstoolbox/tools/xacro/tests/robots/pr2/base_v0/base.urdf.xacro +264 -0
  608. roboticstoolbox/tools/xacro/tests/robots/pr2/common.xacro +71 -0
  609. roboticstoolbox/tools/xacro/tests/robots/pr2/forearm_v0/forearm.gazebo.xacro +36 -0
  610. roboticstoolbox/tools/xacro/tests/robots/pr2/forearm_v0/forearm.transmission.xacro +20 -0
  611. roboticstoolbox/tools/xacro/tests/robots/pr2/forearm_v0/forearm.urdf.xacro +130 -0
  612. roboticstoolbox/tools/xacro/tests/robots/pr2/gazebo/gazebo.urdf.xacro +24 -0
  613. roboticstoolbox/tools/xacro/tests/robots/pr2/gripper_v0/gripper.gazebo.xacro +288 -0
  614. roboticstoolbox/tools/xacro/tests/robots/pr2/gripper_v0/gripper.transmission.xacro +50 -0
  615. roboticstoolbox/tools/xacro/tests/robots/pr2/gripper_v0/gripper.urdf.xacro +374 -0
  616. roboticstoolbox/tools/xacro/tests/robots/pr2/head_v0/head.gazebo.xacro +16 -0
  617. roboticstoolbox/tools/xacro/tests/robots/pr2/head_v0/head.transmission.xacro +34 -0
  618. roboticstoolbox/tools/xacro/tests/robots/pr2/head_v0/head.urdf.xacro +147 -0
  619. roboticstoolbox/tools/xacro/tests/robots/pr2/materials.urdf.xacro +52 -0
  620. roboticstoolbox/tools/xacro/tests/robots/pr2/pr2.urdf.xacro +157 -0
  621. roboticstoolbox/tools/xacro/tests/robots/pr2/pr2_1.11.4.xml +3781 -0
  622. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/double_stereo_camera.gazebo.xacro +16 -0
  623. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/double_stereo_camera.urdf.xacro +61 -0
  624. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/head_sensor_package.gazebo.xacro +20 -0
  625. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/head_sensor_package.urdf.xacro +63 -0
  626. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/hokuyo_lx30_laser.gazebo.xacro +39 -0
  627. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/hokuyo_lx30_laser.urdf.xacro +27 -0
  628. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_camera.gazebo.xacro +87 -0
  629. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_camera.urdf.xacro +55 -0
  630. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_prosilica_camera.gazebo.xacro +193 -0
  631. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/kinect_prosilica_camera.urdf.xacro +181 -0
  632. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/microstrain_3dmgx2_imu.gazebo.xacro +20 -0
  633. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/microstrain_3dmgx2_imu.urdf.xacro +25 -0
  634. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/projector_wg6802418.gazebo.xacro +31 -0
  635. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/projector_wg6802418.urdf.xacro +42 -0
  636. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/prosilica_gc2450_camera.gazebo.xacro +43 -0
  637. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/prosilica_gc2450_camera.urdf.xacro +49 -0
  638. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/stereo_camera.gazebo.xacro +23 -0
  639. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/stereo_camera.urdf.xacro +71 -0
  640. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/wge100_camera.gazebo.xacro +46 -0
  641. roboticstoolbox/tools/xacro/tests/robots/pr2/sensors/wge100_camera.urdf.xacro +47 -0
  642. roboticstoolbox/tools/xacro/tests/robots/pr2/shoulder_v0/shoulder.gazebo.xacro +40 -0
  643. roboticstoolbox/tools/xacro/tests/robots/pr2/shoulder_v0/shoulder.transmission.xacro +35 -0
  644. roboticstoolbox/tools/xacro/tests/robots/pr2/shoulder_v0/shoulder.urdf.xacro +167 -0
  645. roboticstoolbox/tools/xacro/tests/robots/pr2/tilting_laser_v0/tilting_laser.gazebo.xacro +11 -0
  646. roboticstoolbox/tools/xacro/tests/robots/pr2/tilting_laser_v0/tilting_laser.transmission.xacro +14 -0
  647. roboticstoolbox/tools/xacro/tests/robots/pr2/tilting_laser_v0/tilting_laser.urdf.xacro +60 -0
  648. roboticstoolbox/tools/xacro/tests/robots/pr2/torso_v0/torso.gazebo.xacro +37 -0
  649. roboticstoolbox/tools/xacro/tests/robots/pr2/torso_v0/torso.transmission.xacro +22 -0
  650. roboticstoolbox/tools/xacro/tests/robots/pr2/torso_v0/torso.urdf.xacro +122 -0
  651. roboticstoolbox/tools/xacro/tests/robots/pr2/upper_arm_v0/upper_arm.gazebo.xacro +39 -0
  652. roboticstoolbox/tools/xacro/tests/robots/pr2/upper_arm_v0/upper_arm.transmission.xacro +28 -0
  653. roboticstoolbox/tools/xacro/tests/robots/pr2/upper_arm_v0/upper_arm.urdf.xacro +173 -0
  654. roboticstoolbox/tools/xacro/tests/settings.yaml +9 -0
  655. roboticstoolbox/tools/xacro/tests/subdir/foo.xacro +3 -0
  656. roboticstoolbox/tools/xacro/tests/subdir/include-recursive.xacro +5 -0
  657. roboticstoolbox/tools/xacro/tests/subdir/include1.xml +1 -0
  658. roboticstoolbox/tools/xacro/tests/test_xacro.py +1418 -0
  659. roboticstoolbox/tools/xacro/xmlutils.py +152 -0
  660. roboticstoolbox_python-1.3.0.dist-info/METADATA +552 -0
  661. roboticstoolbox_python-1.3.0.dist-info/RECORD +673 -0
  662. roboticstoolbox_python-1.3.0.dist-info/WHEEL +5 -0
  663. roboticstoolbox_python-1.3.0.dist-info/entry_points.txt +6 -0
  664. roboticstoolbox_python-1.3.0.dist-info/licenses/LICENSE +21 -0
  665. spatialgeometry/__init__.py +32 -0
  666. spatialgeometry/geom/CollisionShape.py +419 -0
  667. spatialgeometry/geom/SceneGroup.py +26 -0
  668. spatialgeometry/geom/SceneNode.py +315 -0
  669. spatialgeometry/geom/Shape.py +420 -0
  670. spatialgeometry/geom/__init__.py +26 -0
  671. spatialgeometry/scene.py +107 -0
  672. spatialgeometry/tools/__init__.py +0 -0
  673. spatialgeometry/tools/stdout_supress.py +302 -0
@@ -0,0 +1,1097 @@
1
+ #!/usr/bin/env python3
2
+
3
+ """
4
+ @author: Jesse Haviland
5
+ """
6
+
7
+ from numpy import array, ndarray, deg2rad, eye, pi
8
+ from numpy.linalg import inv as npinv
9
+ import roboticstoolbox as rtb
10
+ from spatialmath.base import (
11
+ trotx,
12
+ troty,
13
+ trotz,
14
+ issymbol,
15
+ tr2rpy,
16
+ trot2,
17
+ transl2,
18
+ tr2xyt,
19
+ )
20
+ from copy import deepcopy
21
+ from roboticstoolbox.fknm import ET_T, ET_init, ET_update
22
+ from spatialmath.base import getvector
23
+ from spatialmath import SE3, SE2
24
+ from typing import Optional, Callable, Union, TYPE_CHECKING
25
+
26
+ # from spatialmath.base.types import ArrayLike
27
+ from roboticstoolbox.tools.types import ArrayLike, NDArray
28
+
29
+ if TYPE_CHECKING: # pragma: nocover
30
+ import sympy
31
+
32
+ Sym = sympy.core.symbol.Symbol # type: ignore
33
+ else: # pragma: nocover
34
+ Sym = None
35
+
36
+
37
+ class BaseET:
38
+ def __init__(
39
+ self,
40
+ axis: str,
41
+ eta: Union[float, Sym, None] = None,
42
+ axis_func: Optional[Callable[[Union[float, Sym]], ndarray]] = None,
43
+ T: Optional[ndarray] = None,
44
+ jindex: Optional[int] = None,
45
+ unit: str = "rad",
46
+ flip: bool = False,
47
+ qlim: Optional[ArrayLike] = None,
48
+ ):
49
+ self._axis = axis
50
+
51
+ # A flag to check if the ET is a static joint with a symbolic value
52
+ # Defaults to False as is set to True if eta is a symbol below
53
+ self._isstaticsym = False
54
+
55
+ if eta is None:
56
+ self._eta = None
57
+ else:
58
+ if axis[0] == "R" and unit.lower().startswith("deg"):
59
+ if not issymbol(eta):
60
+ self.eta = deg2rad(float(eta))
61
+ else:
62
+ self.eta = eta
63
+
64
+ self._axis_func = axis_func
65
+ self._flip = flip
66
+ self._jindex = jindex
67
+
68
+ if qlim is not None:
69
+ self._qlim: Union[NDArray, None] = getvector(qlim, 2, out="array")
70
+ else:
71
+ self._qlim: Union[NDArray, None] = None
72
+
73
+ if self.eta is None:
74
+ if T is None:
75
+ self._joint = True
76
+ self._T = eye(4).copy(order="F")
77
+ if axis_func is None:
78
+ raise TypeError("For a variable joint, axis_func must be specified")
79
+ else:
80
+ self._joint = False
81
+ self._T = T.copy(order="F")
82
+ else:
83
+ # This is a static joint
84
+ if issymbol(eta):
85
+ self._isstaticsym = True
86
+
87
+ self._joint = False
88
+ if axis_func is not None:
89
+ self._T = axis_func(self.eta).copy(order="F")
90
+ else:
91
+ raise TypeError(
92
+ "For a static joint either both `eta` and `axis_func` "
93
+ "must be specified otherwise `T` must be supplied"
94
+ )
95
+
96
+ # Initialise the C object which holds ET data
97
+ # This returns a reference to said C data
98
+ self.__fknm = self.__init_c()
99
+
100
+ def __init_c(self):
101
+ """
102
+ Super Private method which initialises a C object to hold ET Data
103
+ """
104
+ if self.jindex is None:
105
+ jindex = 0
106
+ else:
107
+ jindex = self.jindex
108
+
109
+ if self.qlim is None:
110
+ if self.axis[0] == "R":
111
+ qlim = array([-pi, pi])
112
+ else:
113
+ qlim = array([0, 1])
114
+ else:
115
+ qlim = self.qlim
116
+
117
+ return ET_init(
118
+ self._isstaticsym,
119
+ self.isjoint,
120
+ self.isflip,
121
+ jindex,
122
+ self.__axis_to_number(self.axis),
123
+ self._T,
124
+ qlim,
125
+ )
126
+
127
+ def __update_c(self):
128
+ """
129
+ Super Private method which updates the C object which holds ET Data
130
+ """
131
+ if self.jindex is None:
132
+ jindex = 0
133
+ else:
134
+ jindex = self.jindex
135
+
136
+ if self.qlim is None:
137
+ if self.axis[0] == "R":
138
+ qlim = array([-pi, pi])
139
+ else:
140
+ qlim = array([0, 1])
141
+ else:
142
+ qlim = self.qlim
143
+
144
+ ET_update(
145
+ self.fknm,
146
+ self._isstaticsym,
147
+ self.isjoint,
148
+ self.isflip,
149
+ jindex,
150
+ self.__axis_to_number(self.axis),
151
+ self._T,
152
+ qlim,
153
+ )
154
+
155
+ def __str__(self):
156
+ eta_str = ""
157
+
158
+ if self.isjoint:
159
+ if self.jindex is None:
160
+ eta_str = "q"
161
+ else:
162
+ eta_str = f"q{self.jindex}"
163
+ elif issymbol(self.eta):
164
+ # Check if symbolic
165
+ eta_str = f"{self.eta}"
166
+ elif self.isrotation and self.eta is not None:
167
+ eta_str = f"{self.eta * (180.0 / pi):.4g}°"
168
+ elif not self.iselementary:
169
+ if isinstance(self, ET):
170
+ T = self.A()
171
+ rpy = tr2rpy(T) * 180.0 / pi
172
+ if T[:3, -1].any() and rpy.any():
173
+ eta_str = (
174
+ f"{T[0, -1]:.4g}, {T[1, -1]:.4g}, {T[2, -1]:.4g};"
175
+ f" {rpy[0]:.4g}°, {rpy[1]:.4g}°, {rpy[2]:.4g}°"
176
+ )
177
+ elif T[:3, -1].any():
178
+ eta_str = f"{T[0, -1]:.4g}, {T[1, -1]:.4g}, {T[2, -1]:.4g}"
179
+ elif rpy.any():
180
+ eta_str = f"{rpy[0]:.4g}°, {rpy[1]:.4g}°, {rpy[2]:.4g}°"
181
+ else:
182
+ eta_str = "" # pragma: nocover
183
+ elif isinstance(self, ET2):
184
+ T = self.A()
185
+ xyt = tr2xyt(T)
186
+ xyt[2] *= 180 / pi
187
+ eta_str = f"{xyt[0]:.4g}, {xyt[1]:.4g}; {xyt[2]:.4g}°"
188
+
189
+ else:
190
+ eta_str = f"{self.eta:.4g}"
191
+
192
+ return f"{self.axis}({eta_str})"
193
+
194
+ def __repr__(self):
195
+ s_eta = "" if self.eta is None else f"eta={self.eta}"
196
+ s_T = (
197
+ f"T={repr(self._T)}"
198
+ if (self.eta is None and self.axis_func is None)
199
+ else ""
200
+ )
201
+ s_flip = "" if not self.isflip else f"flip={self.isflip}"
202
+ s_qlim = "" if self.qlim is None else f"qlim={repr(self.qlim)}"
203
+ s_jindex = "" if self.jindex is None else f"jindex={self.jindex}"
204
+
205
+ kwargs = [s_eta, s_T, s_jindex, s_flip, s_qlim]
206
+ s_kwargs = ", ".join(filter(None, kwargs))
207
+
208
+ start = "ET" if isinstance(self, ET) else "ET2"
209
+
210
+ return f"{start}.{self.axis}({s_kwargs})"
211
+
212
+ def _repr_pretty_(self, p, cycle):
213
+ """
214
+ Pretty string for IPython
215
+
216
+ :param p: pretty printer handle (ignored)
217
+ :param cycle: pretty printer flag (ignored)
218
+
219
+ Print stringified version when variable is displayed in IPython, ie. on
220
+ a line by itself.
221
+
222
+ Example::
223
+
224
+ [In [1]: e
225
+ Out [1]: tx(1)
226
+ """
227
+ p.text(str(self)) # pragma: nocover
228
+
229
+ def __deepcopy__(self, memo):
230
+ cls = self.__class__
231
+ result = cls.__new__(cls)
232
+ memo[id(self)] = result
233
+
234
+ for k, v in self.__dict__.items():
235
+ if k != "_BaseET__fknm":
236
+ setattr(result, k, deepcopy(v, memo))
237
+
238
+ result.__fknm = result.__init_c()
239
+ return result
240
+
241
+ def __eq__(self, other):
242
+ return repr(self) == repr(other)
243
+
244
+ def __axis_to_number(self, axis: str) -> int:
245
+ """
246
+ Private convenience function which converts the axis string to an
247
+ integer for faster processing in the C extensions
248
+ """
249
+ if isinstance(self, ET2):
250
+ return 0
251
+
252
+ if axis[0] == "R":
253
+ if axis[1] == "x":
254
+ return 0
255
+ elif axis[1] == "y":
256
+ return 1
257
+ elif axis[1] == "z":
258
+ return 2
259
+ elif axis[0] == "t":
260
+ if axis[1] == "x":
261
+ return 3
262
+ elif axis[1] == "y":
263
+ return 4
264
+ elif axis[1] == "z":
265
+ return 5
266
+ return 0
267
+
268
+ @property
269
+ def fknm(self):
270
+ return self.__fknm
271
+
272
+ @property
273
+ def eta(self) -> Union[float, Sym, None]:
274
+ """
275
+ Get the transform constant
276
+
277
+ Returns
278
+ -------
279
+ ets
280
+ The constant η if set
281
+
282
+ Examples
283
+ --------
284
+ .. runblock:: pycon
285
+ >>> from roboticstoolbox import ET
286
+ >>> e = ET.tx(1)
287
+ >>> e.eta
288
+ >>> e = ET.Rx(90, 'deg')
289
+ >>> e.eta
290
+ >>> e = ET.ty()
291
+ >>> e.eta
292
+
293
+ Notes
294
+ -----
295
+ - If the value was given in degrees it will be converted and
296
+ stored internally in radians
297
+ """
298
+ return self._eta
299
+
300
+ @eta.setter
301
+ def eta(self, value: Union[float, Sym]) -> None:
302
+ """
303
+ Set the transform constant
304
+
305
+ Parameters
306
+ ----------
307
+ value
308
+ The transform constant η
309
+
310
+ Notes
311
+ -----
312
+ - No unit conversions are applied, it is assumed to be in
313
+ radians.
314
+ """
315
+ self._eta = value if issymbol(value) else float(value)
316
+
317
+ @property
318
+ def axis_func(
319
+ self,
320
+ ) -> Union[Callable[[Union[float, Sym]], ndarray], None]:
321
+ return self._axis_func
322
+
323
+ @property
324
+ def axis(self) -> str:
325
+ """
326
+ The transform type and axis
327
+
328
+ Returns
329
+ -------
330
+ axis
331
+ The transform type and axis
332
+
333
+ Examples
334
+ --------
335
+ .. runblock:: pycon
336
+ >>> from roboticstoolbox import ET
337
+ >>> e = ET.tx(1)
338
+ >>> e.axis
339
+ >>> e = ET.Rx(90, 'deg')
340
+ >>> e.axis
341
+
342
+ """
343
+ return self._axis
344
+
345
+ @property
346
+ def isjoint(self) -> bool:
347
+ """
348
+ Test if ET is a joint
349
+
350
+ Returns
351
+ -------
352
+ isjoint
353
+ True if a joint
354
+
355
+ Examples
356
+ --------
357
+ .. runblock:: pycon
358
+ >>> from roboticstoolbox import ET
359
+ >>> e = ET.tx(1)
360
+ >>> e.isjoint
361
+ >>> e = ET.tx()
362
+ >>> e.isjoint
363
+
364
+ """
365
+ return self._joint
366
+
367
+ @property
368
+ def isflip(self) -> bool:
369
+ """
370
+ Test if ET joint is flipped
371
+
372
+ A flipped joint uses the negative of the joint variable, ie. it rotates
373
+ or moves in the opposite direction.
374
+
375
+ Returns
376
+ -------
377
+ isflip
378
+ True if joint is flipped
379
+
380
+ Examples
381
+ --------
382
+ .. runblock:: pycon
383
+ >>> from roboticstoolbox import ET
384
+ >>> e = ET.tx()
385
+ >>> e.T(1)
386
+ >>> eflip = ET.tx(flip=True)
387
+ >>> eflip.T(1)
388
+
389
+ """
390
+
391
+ return self._flip
392
+
393
+ @property
394
+ def isrotation(self) -> bool:
395
+ """
396
+ Test if ET is a rotation
397
+
398
+ Returns
399
+ -------
400
+ isrotation
401
+ True if a rotation
402
+
403
+ Examples
404
+ --------
405
+ .. runblock:: pycon
406
+ >>> from roboticstoolbox import ET
407
+ >>> e = ET.tx(1)
408
+ >>> e.isrotation
409
+ >>> e = ET.rx()
410
+ >>> e.isrotation
411
+
412
+ """
413
+
414
+ return self.axis[0] == "R"
415
+
416
+ @property
417
+ def istranslation(self) -> bool:
418
+ """
419
+ Test if ET is a translation
420
+
421
+ Returns
422
+ -------
423
+ istranslation
424
+ True if a translation
425
+
426
+ Examples
427
+ --------
428
+ .. runblock:: pycon
429
+ >>> from roboticstoolbox import ET
430
+ >>> e = ET.tx(1)
431
+ >>> e.istranslation
432
+ >>> e = ET.rx()
433
+ >>> e.istranslation
434
+
435
+ """
436
+
437
+ return self.axis[0] == "t"
438
+
439
+ @property
440
+ def qlim(self) -> Union[ndarray, None]:
441
+ return self._qlim
442
+
443
+ @qlim.setter
444
+ def qlim(self, qlim_new: Union[ArrayLike, None]) -> None:
445
+ if qlim_new is not None:
446
+ qlim_new = getvector(qlim_new, 2, out="array")
447
+ self._qlim = qlim_new
448
+ self.__update_c()
449
+
450
+ @property
451
+ def jindex(self) -> Union[int, None]:
452
+ """
453
+ Get ET joint index
454
+
455
+ Returns
456
+ -------
457
+ jindex
458
+ The assigmed joint index
459
+
460
+ Allows an ET to be associated with a numbered joint in a robot.
461
+
462
+ Examples
463
+ --------
464
+ .. runblock:: pycon
465
+ >>> from roboticstoolbox import ET
466
+ >>> e = ET.tx()
467
+ >>> print(e)
468
+ >>> e = ET.tx(j=3)
469
+ >>> print(e)
470
+ >>> print(e.jindex)
471
+
472
+ """
473
+
474
+ return self._jindex
475
+
476
+ @jindex.setter
477
+ def jindex(self, j):
478
+ if not isinstance(j, int) or j < 0:
479
+ raise ValueError(f"jindex is {j}, must be an int >= 0")
480
+ self._jindex = j
481
+ self.__update_c()
482
+
483
+ @property
484
+ def iselementary(self) -> bool:
485
+ """
486
+ Test if ET is an elementary transform
487
+
488
+ Returns
489
+ -------
490
+ iselementary
491
+ True if an elementary transform
492
+
493
+ Notes
494
+ -----
495
+ - ET's may not actually be "elementary", it can be a complex
496
+ mix of rotations and translations.
497
+
498
+ See Also
499
+ --------
500
+ :func:`compile`
501
+
502
+ """
503
+
504
+ return self.axis[0] != "S"
505
+
506
+ def inv(self):
507
+ r"""
508
+ Inverse of ET
509
+
510
+ The inverse of a given ET.
511
+
512
+ Returns
513
+ -------
514
+ inv
515
+ Inverse of the ET
516
+
517
+ Examples
518
+ --------
519
+ .. runblock:: pycon
520
+ >>> from roboticstoolbox import ET
521
+ >>> e = ET.Rz(2.5)
522
+ >>> print(e)
523
+ >>> print(e.inv())
524
+
525
+ """ # noqa
526
+
527
+ inv = deepcopy(self)
528
+
529
+ if inv.isjoint:
530
+ inv._flip ^= True
531
+ elif not inv.iselementary:
532
+ inv._T = npinv(inv._T).copy(order="F")
533
+ elif inv._eta is not None:
534
+ inv._T = npinv(inv._T).copy(order="F")
535
+ inv._eta = -inv._eta
536
+
537
+ inv.__update_c()
538
+
539
+ return inv
540
+
541
+ def A(self, q: Union[float, Sym] = 0.0) -> ndarray:
542
+ """
543
+ Evaluate an elementary transformation
544
+
545
+ Parameters
546
+ ----------
547
+ q
548
+ Is used if this ET is variable (a joint)
549
+
550
+ Returns
551
+ -------
552
+ T
553
+ The SE(3) or SE(2) matrix value of the ET
554
+
555
+ Examples
556
+ --------
557
+ .. runblock:: pycon
558
+ >>> from roboticstoolbox import ET
559
+ >>> e = ET.tx(1)
560
+ >>> e.A()
561
+ >>> e = ET.tx()
562
+ >>> e.A(0.7)
563
+
564
+ """
565
+ try:
566
+ # Try and use the C implementation, flip is handled in C
567
+ return ET_T(self.__fknm, q)
568
+ except TypeError:
569
+ # We can't use the fast version, lets use Python instead
570
+ if self.isjoint:
571
+ if self.isflip:
572
+ q = -q # type: ignore
573
+
574
+ if self.axis_func is not None:
575
+ return self.axis_func(q)
576
+ else: # pragma: no cover
577
+ raise TypeError("axis_func not defined")
578
+ else: # pragma: no cover
579
+ return self._T
580
+
581
+
582
+ class ET(BaseET):
583
+ def __init__(self, **kwargs):
584
+ super().__init__(**kwargs)
585
+
586
+ def __mul__(self, other: "ET") -> "rtb.ETS":
587
+ return rtb.ETS([self, other])
588
+
589
+ def __add__(self, other: "ET") -> "rtb.ETS":
590
+ return self.__mul__(other)
591
+
592
+ @property
593
+ def s(self) -> ndarray: # pragma: nocover
594
+ if self.axis[1] == "x":
595
+ if self.axis[0] == "R":
596
+ return array([0, 0, 0, 1, 0, 0])
597
+ else:
598
+ return array([1, 0, 0, 0, 0, 0])
599
+ elif self.axis[1] == "y":
600
+ if self.axis[0] == "R":
601
+ return array([0, 0, 0, 0, 1, 0])
602
+ else:
603
+ return array([0, 1, 0, 0, 0, 0])
604
+ else:
605
+ if self.axis[0] == "R":
606
+ return array([0, 0, 0, 0, 0, 1])
607
+ else:
608
+ return array([0, 0, 1, 0, 0, 0])
609
+
610
+ @classmethod
611
+ def Rx(
612
+ cls, eta: Union[float, Sym, None] = None, unit: str = "rad", **kwargs
613
+ ) -> "ET":
614
+ """
615
+ Pure rotation about the x-axis
616
+
617
+ - ``ET.Rx(η)`` is an elementary rotation about the x-axis by a
618
+ constant angle η
619
+ - ``ET.Rx()`` is an elementary rotation about the x-axis by a variable
620
+ angle, i.e. a revolute robot joint. ``j`` or ``flip`` can be set in
621
+ this case.
622
+
623
+ Parameters
624
+ ----------
625
+ η
626
+ rotation about the x-axis
627
+ unit
628
+ angular unit, "rad" [default] or "deg"
629
+ j
630
+ Explicit joint number within the robot
631
+ flip
632
+ Joint moves in opposite direction
633
+
634
+ Returns
635
+ -------
636
+ Rx
637
+ An elementary transform
638
+
639
+ See Also
640
+ --------
641
+ :func:`ET`
642
+ :func:`isrotation`
643
+
644
+ :SymPy: supported
645
+ """
646
+
647
+ return cls(axis="Rx", eta=eta, axis_func=trotx, unit=unit, **kwargs)
648
+
649
+ @classmethod
650
+ def Ry(
651
+ cls, eta: Union[float, Sym, None] = None, unit: str = "rad", **kwargs
652
+ ) -> "ET":
653
+ """
654
+ Pure rotation about the y-axis
655
+
656
+ - ``ET.Ry(η)`` is an elementary rotation about the y-axis by a
657
+ constant angle η
658
+ - ``ET.Ry()`` is an elementary rotation about the y-axis by a variable
659
+ angle, i.e. a revolute robot joint. ``j`` or ``flip`` can be set in
660
+ this case.
661
+
662
+ Parameters
663
+ ----------
664
+ η
665
+ rotation about the y-axis
666
+ unit
667
+ angular unit, "rad" [default] or "deg"
668
+ j
669
+ Explicit joint number within the robot
670
+ flip
671
+ Joint moves in opposite direction
672
+
673
+ Returns
674
+ -------
675
+ Ry
676
+ An elementary transform
677
+
678
+ See Also
679
+ --------
680
+ :func:`ET`
681
+ :func:`isrotation`
682
+
683
+ :SymPy: supported
684
+ """
685
+ return cls(axis="Ry", eta=eta, axis_func=troty, unit=unit, **kwargs)
686
+
687
+ @classmethod
688
+ def Rz(
689
+ cls, eta: Union[float, Sym, None] = None, unit: str = "rad", **kwargs
690
+ ) -> "ET":
691
+ """
692
+ Pure rotation about the z-axis
693
+
694
+ - ``ET.Rz(η)`` is an elementary rotation about the z-axis by a
695
+ constant angle η
696
+ - ``ET.Rz()`` is an elementary rotation about the z-axis by a variable
697
+ angle, i.e. a revolute robot joint. ``j`` or ``flip`` can be set in
698
+ this case.
699
+
700
+ Parameters
701
+ ----------
702
+ η
703
+ rotation about the z-axis
704
+ unit
705
+ angular unit, "rad" [default] or "deg"
706
+ j
707
+ Explicit joint number within the robot
708
+ flip
709
+ Joint moves in opposite direction
710
+
711
+ Returns
712
+ -------
713
+ Rz
714
+ An elementary transform
715
+
716
+ See Also
717
+ --------
718
+ :func:`ET`
719
+ :func:`isrotation`
720
+
721
+ :SymPy: supported
722
+ """
723
+ return cls(axis="Rz", eta=eta, axis_func=trotz, unit=unit, **kwargs)
724
+
725
+ @classmethod
726
+ def tx(cls, eta: Union[float, Sym, None] = None, **kwargs) -> "ET":
727
+ """
728
+ Pure translation along the x-axis
729
+
730
+ - ``ET.tx(η)`` is an elementary translation along the x-axis by a
731
+ distance constant η
732
+ - ``ET.tx()`` is an elementary translation along the x-axis by a
733
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
734
+ can be set in this case.
735
+
736
+ Parameters
737
+ ----------
738
+ η
739
+ translation distance along the z-axis
740
+ j
741
+ Explicit joint number within the robot
742
+ flip
743
+ Joint moves in opposite direction
744
+
745
+ Returns
746
+ -------
747
+ tx
748
+ An elementary transform
749
+
750
+ See Also
751
+ --------
752
+ :func:`ET`
753
+ :func:`istranslation`
754
+
755
+ :SymPy: supported
756
+ """
757
+
758
+ # this method is 3x faster than using lambda x: transl(x, 0, 0)
759
+ def axis_func(eta):
760
+ # fmt: off
761
+ return array([
762
+ [1, 0, 0, eta],
763
+ [0, 1, 0, 0],
764
+ [0, 0, 1, 0],
765
+ [0, 0, 0, 1]
766
+ ])
767
+ # fmt: on
768
+
769
+ return cls(axis="tx", axis_func=axis_func, eta=eta, **kwargs)
770
+
771
+ @classmethod
772
+ def ty(cls, eta: Union[float, Sym, None] = None, **kwargs) -> "ET":
773
+ """
774
+ Pure translation along the y-axis
775
+
776
+ - ``ET.ty(η)`` is an elementary translation along the y-axis by a
777
+ distance constant η
778
+ - ``ET.ty()`` is an elementary translation along the y-axis by a
779
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
780
+ can be set in this case.
781
+
782
+ Parameters
783
+ ----------
784
+ η
785
+ translation distance along the y-axis
786
+ j
787
+ Explicit joint number within the robot
788
+ flip
789
+ Joint moves in opposite direction
790
+
791
+ Returns
792
+ -------
793
+ ty
794
+ An elementary transform
795
+
796
+ See Also
797
+ --------
798
+ :func:`ET`
799
+ :func:`istranslation`
800
+
801
+ :SymPy: supported
802
+ """
803
+
804
+ def axis_func(eta):
805
+ # fmt: off
806
+ return array([
807
+ [1, 0, 0, 0],
808
+ [0, 1, 0, eta],
809
+ [0, 0, 1, 0],
810
+ [0, 0, 0, 1]
811
+ ])
812
+ # fmt: on
813
+
814
+ return cls(axis="ty", eta=eta, axis_func=axis_func, **kwargs)
815
+
816
+ @classmethod
817
+ def tz(cls, eta: Union[float, Sym, None] = None, **kwargs) -> "ET":
818
+ """
819
+ Pure translation along the z-axis
820
+
821
+ - ``ET.tz(η)`` is an elementary translation along the z-axis by a
822
+ distance constant η
823
+ - ``ET.tz()`` is an elementary translation along the z-axis by a
824
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
825
+ can be set in this case.
826
+
827
+ Parameters
828
+ ----------
829
+ η
830
+ translation distance along the z-axis
831
+ j
832
+ Explicit joint number within the robot
833
+ flip
834
+ Joint moves in opposite direction
835
+
836
+ Returns
837
+ -------
838
+ tz
839
+ An elementary transform
840
+
841
+ See Also
842
+ --------
843
+ :func:`ET`
844
+ func:`istranslation`
845
+
846
+ :SymPy: supported
847
+ """
848
+
849
+ def axis_func(eta):
850
+ # fmt: off
851
+ return array([
852
+ [1, 0, 0, 0],
853
+ [0, 1, 0, 0],
854
+ [0, 0, 1, eta],
855
+ [0, 0, 0, 1]
856
+ ])
857
+ # fmt: on
858
+
859
+ return cls(axis="tz", axis_func=axis_func, eta=eta, **kwargs)
860
+
861
+ @classmethod
862
+ def SE3(cls, T: Union[ndarray, SE3], **kwargs) -> "ET":
863
+ """
864
+ A static SE3
865
+
866
+ - ``ET.T(η)`` is an elementary translation along the z-axis by a
867
+ distance constant η
868
+ - ``ET.tz()`` is an elementary translation along the z-axis by a
869
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
870
+ can be set in this case.
871
+
872
+ Parameters
873
+ ----------
874
+ T
875
+ The SE3 trnasformation matrix
876
+
877
+ Returns
878
+ -------
879
+ SE3
880
+ An elementary transform
881
+
882
+ See Also
883
+ --------
884
+ :func:`ET`
885
+ :func:`istranslation`
886
+
887
+ :SymPy: supported
888
+ """
889
+
890
+ trans = T.A if isinstance(T, SE3) else T
891
+
892
+ return cls(axis="SE3", T=trans, **kwargs)
893
+
894
+
895
+ class ET2(BaseET):
896
+ def __init__(self, **kwargs):
897
+ super().__init__(**kwargs)
898
+
899
+ def __mul__(self, other: "ET2") -> "rtb.ETS2":
900
+ return rtb.ETS2([self, other])
901
+
902
+ def __add__(self, other: "ET2") -> "rtb.ETS2":
903
+ return self.__mul__(other)
904
+
905
+ @property
906
+ def s(self) -> ndarray: # pragma: nocover
907
+ if self.axis[0] == "R":
908
+ return array([0, 0, 0, 1])
909
+ if self.axis[1] == "x":
910
+ return array([1, 0, 0, 0])
911
+ elif self.axis[1] == "y":
912
+ return array([0, 1, 0, 0])
913
+ else:
914
+ return array([0, 0, 1, 0])
915
+
916
+ @classmethod
917
+ def R(
918
+ cls, eta: Union[float, Sym, None] = None, unit: str = "rad", **kwargs
919
+ ) -> "ET2":
920
+ """
921
+ Pure rotation
922
+
923
+ - ``ET2.R(η)`` is an elementary rotation by a constant angle η
924
+ - ``ET2.R()`` is an elementary rotation by a variable angle, i.e. a
925
+ revolute robot joint. ``j`` or ``flip`` can be set in
926
+ this case.
927
+
928
+ Parameters
929
+ ----------
930
+ η
931
+ rotation angle
932
+ unit
933
+ angular unit, "rad" [default] or "deg"
934
+ j
935
+ Explicit joint number within the robot
936
+ flip
937
+ Joint moves in opposite direction
938
+
939
+ Returns
940
+ -------
941
+ R
942
+ An elementary transform
943
+
944
+ Notes
945
+ -----
946
+ - In the 2D case this is rotation around the normal to the
947
+ xy-plane.
948
+
949
+ See Also
950
+ --------
951
+ :func:`ET2`, :func:`isrotation`
952
+
953
+ """
954
+
955
+ return cls(
956
+ axis="R", eta=eta, axis_func=lambda theta: trot2(theta), unit=unit, **kwargs
957
+ )
958
+
959
+ @classmethod
960
+ def tx(
961
+ cls, eta: Union[float, Sym, None] = None, unit: str = "rad", **kwargs
962
+ ) -> "ET2":
963
+ """
964
+ Pure translation along the x-axis
965
+
966
+ - ``ET2.tx(η)`` is an elementary translation along the x-axis by a
967
+ distance constant η
968
+ - ``ET2.tx()`` is an elementary translation along the x-axis by a
969
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
970
+ can be set in this case.
971
+
972
+ Parameters
973
+ ----------
974
+ η
975
+ translation distance along the x-axis
976
+ j
977
+ Explicit joint number within the robot
978
+ flip
979
+ Joint moves in opposite direction
980
+
981
+ Returns
982
+ -------
983
+ tx
984
+ An elementary transform
985
+
986
+ See Also
987
+ --------
988
+ :func:`ET2`
989
+ :func:`istranslation`
990
+
991
+ """
992
+
993
+ return cls(axis="tx", eta=eta, axis_func=lambda x: transl2(x, 0), **kwargs)
994
+
995
+ @classmethod
996
+ def ty(
997
+ cls, eta: Union[float, Sym, None] = None, unit: str = "rad", **kwargs
998
+ ) -> "ET2":
999
+ """
1000
+ Pure translation along the y-axis
1001
+
1002
+ - ``ET2.tx(η)`` is an elementary translation along the y-axis by a
1003
+ distance constant η
1004
+ - ``ET2.tx()`` is an elementary translation along the y-axis by a
1005
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
1006
+ can be set in this case.
1007
+
1008
+ Parameters
1009
+ ----------
1010
+ η
1011
+ translation distance along the y-axis
1012
+ j
1013
+ Explicit joint number within the robot
1014
+ flip
1015
+ Joint moves in opposite direction
1016
+
1017
+ Returns
1018
+ -------
1019
+ ty
1020
+ An elementary transform
1021
+
1022
+ See Also
1023
+ --------
1024
+ :func:`ET2`
1025
+
1026
+ """
1027
+
1028
+ return cls(axis="ty", eta=eta, axis_func=lambda y: transl2(0, y), **kwargs)
1029
+
1030
+ @classmethod
1031
+ def SE2(cls, T: Union[ndarray, SE2], **kwargs) -> "ET2":
1032
+ """
1033
+ A static SE2
1034
+
1035
+ - ``ET2.T(η)`` is an elementary translation along the z-axis by a
1036
+ distance constant η
1037
+ - ``ET2.tz()`` is an elementary translation along the z-axis by a
1038
+ variable distance, i.e. a prismatic robot joint. ``j`` or ``flip``
1039
+ can be set in this case.
1040
+
1041
+ Parameters
1042
+ ----------
1043
+ T
1044
+ The SE2 trnasformation matrix
1045
+
1046
+ Returns
1047
+ -------
1048
+ SE2
1049
+ An elementary transform
1050
+
1051
+ See Also
1052
+ --------
1053
+ :func:`ET2`
1054
+ :func:`istranslation`
1055
+
1056
+ :SymPy: supported
1057
+ """
1058
+
1059
+ trans = T.A if isinstance(T, SE2) else T
1060
+
1061
+ return cls(axis="SE2", T=trans, **kwargs)
1062
+
1063
+ def A(self, q: Union[float, Sym] = 0.0) -> ndarray:
1064
+ """
1065
+ Evaluate an elementary transformation
1066
+
1067
+ Parameters
1068
+ ----------
1069
+ q
1070
+ Is used if this ET2 is variable (a joint)
1071
+
1072
+ Returns
1073
+ -------
1074
+ T
1075
+ The SE(2) matrix value of the ET2
1076
+
1077
+ Examples
1078
+ --------
1079
+ .. runblock:: pycon
1080
+ >>> from roboticstoolbox import ET2
1081
+ >>> e = ET2.tx(1)
1082
+ >>> e.A()
1083
+ >>> e = ET2.tx()
1084
+ >>> e.A(0.7)
1085
+
1086
+ """
1087
+
1088
+ if self.isjoint:
1089
+ if self.isflip:
1090
+ q = -1.0 * q
1091
+
1092
+ if self.axis_func is not None:
1093
+ return self.axis_func(q)
1094
+ else: # pragma: no cover
1095
+ raise TypeError("axis_func not defined")
1096
+ else: # pragma: no cover
1097
+ return self._T