mink 0.0.6__tar.gz → 0.0.8__tar.gz

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 (357) hide show
  1. {mink-0.0.6 → mink-0.0.8}/PKG-INFO +6 -4
  2. {mink-0.0.6 → mink-0.0.8}/mink/contrib/keyboard_teleop/teleop_mocap.py +22 -23
  3. {mink-0.0.6 → mink-0.0.8}/mink/lie/base.py +15 -0
  4. {mink-0.0.6 → mink-0.0.8}/mink/lie/se3.py +6 -4
  5. {mink-0.0.6 → mink-0.0.8}/mink/lie/so3.py +7 -2
  6. {mink-0.0.6 → mink-0.0.8}/mink/limits/collision_avoidance_limit.py +3 -3
  7. {mink-0.0.6 → mink-0.0.8}/mink/limits/configuration_limit.py +3 -1
  8. {mink-0.0.6 → mink-0.0.8}/mink/limits/velocity_limit.py +5 -5
  9. {mink-0.0.6 → mink-0.0.8}/mink/solve_ik.py +4 -4
  10. {mink-0.0.6 → mink-0.0.8}/mink/tasks/equality_constraint_task.py +3 -3
  11. {mink-0.0.6 → mink-0.0.8}/mink/utils.py +12 -12
  12. {mink-0.0.6 → mink-0.0.8}/pyproject.toml +6 -4
  13. {mink-0.0.6 → mink-0.0.8}/LICENSE +0 -0
  14. {mink-0.0.6 → mink-0.0.8}/README.md +0 -0
  15. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/.gitignore +0 -0
  16. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/@plugins_snapshot.json +0 -0
  17. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/__future__.data.json +0 -0
  18. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/__future__.meta.json +0 -0
  19. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_ast.data.json +0 -0
  20. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_ast.meta.json +0 -0
  21. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_codecs.data.json +0 -0
  22. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_codecs.meta.json +0 -0
  23. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_collections_abc.data.json +0 -0
  24. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_collections_abc.meta.json +0 -0
  25. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_ctypes.data.json +0 -0
  26. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_ctypes.meta.json +0 -0
  27. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_thread.data.json +0 -0
  28. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_thread.meta.json +0 -0
  29. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_typeshed/__init__.data.json +0 -0
  30. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_typeshed/__init__.meta.json +0 -0
  31. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_warnings.data.json +0 -0
  32. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/_warnings.meta.json +0 -0
  33. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/abc.data.json +0 -0
  34. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/abc.meta.json +0 -0
  35. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/array.data.json +0 -0
  36. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/array.meta.json +0 -0
  37. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/ast.data.json +0 -0
  38. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/ast.meta.json +0 -0
  39. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/builtins.data.json +0 -0
  40. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/builtins.meta.json +0 -0
  41. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/codecs.data.json +0 -0
  42. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/codecs.meta.json +0 -0
  43. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/collections/__init__.data.json +0 -0
  44. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/collections/__init__.meta.json +0 -0
  45. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/collections/abc.data.json +0 -0
  46. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/collections/abc.meta.json +0 -0
  47. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/contextlib.data.json +0 -0
  48. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/contextlib.meta.json +0 -0
  49. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/ctypes/__init__.data.json +0 -0
  50. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/ctypes/__init__.meta.json +0 -0
  51. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/dataclasses.data.json +0 -0
  52. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/dataclasses.meta.json +0 -0
  53. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/datetime.data.json +0 -0
  54. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/datetime.meta.json +0 -0
  55. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/__init__.data.json +0 -0
  56. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/__init__.meta.json +0 -0
  57. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/charset.data.json +0 -0
  58. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/charset.meta.json +0 -0
  59. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/contentmanager.data.json +0 -0
  60. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/contentmanager.meta.json +0 -0
  61. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/errors.data.json +0 -0
  62. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/errors.meta.json +0 -0
  63. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/header.data.json +0 -0
  64. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/header.meta.json +0 -0
  65. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/message.data.json +0 -0
  66. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/message.meta.json +0 -0
  67. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/policy.data.json +0 -0
  68. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/email/policy.meta.json +0 -0
  69. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/enum.data.json +0 -0
  70. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/enum.meta.json +0 -0
  71. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/genericpath.data.json +0 -0
  72. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/genericpath.meta.json +0 -0
  73. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/__init__.data.json +0 -0
  74. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/__init__.meta.json +0 -0
  75. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/abc.data.json +0 -0
  76. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/abc.meta.json +0 -0
  77. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/machinery.data.json +0 -0
  78. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/machinery.meta.json +0 -0
  79. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/metadata/__init__.data.json +0 -0
  80. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/metadata/__init__.meta.json +0 -0
  81. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/metadata/_meta.data.json +0 -0
  82. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/metadata/_meta.meta.json +0 -0
  83. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/readers.data.json +0 -0
  84. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/readers.meta.json +0 -0
  85. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/resources/__init__.data.json +0 -0
  86. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/resources/__init__.meta.json +0 -0
  87. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/resources/abc.data.json +0 -0
  88. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/importlib/resources/abc.meta.json +0 -0
  89. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/io.data.json +0 -0
  90. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/io.meta.json +0 -0
  91. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/logging/__init__.data.json +0 -0
  92. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/logging/__init__.meta.json +0 -0
  93. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/math.data.json +0 -0
  94. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/math.meta.json +0 -0
  95. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/mink/limits/limit.data.json +0 -0
  96. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/mink/limits/limit.meta.json +0 -0
  97. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/mmap.data.json +0 -0
  98. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/mmap.meta.json +0 -0
  99. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/__init__.data.json +0 -0
  100. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/__init__.meta.json +0 -0
  101. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_pytesttester.data.json +0 -0
  102. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_pytesttester.meta.json +0 -0
  103. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/__init__.data.json +0 -0
  104. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/__init__.meta.json +0 -0
  105. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_add_docstring.data.json +0 -0
  106. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_add_docstring.meta.json +0 -0
  107. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_array_like.data.json +0 -0
  108. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_array_like.meta.json +0 -0
  109. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_callable.data.json +0 -0
  110. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_callable.meta.json +0 -0
  111. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_char_codes.data.json +0 -0
  112. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_char_codes.meta.json +0 -0
  113. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_dtype_like.data.json +0 -0
  114. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_dtype_like.meta.json +0 -0
  115. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_extended_precision.data.json +0 -0
  116. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_extended_precision.meta.json +0 -0
  117. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_nbit.data.json +0 -0
  118. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_nbit.meta.json +0 -0
  119. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_nested_sequence.data.json +0 -0
  120. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_nested_sequence.meta.json +0 -0
  121. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_scalars.data.json +0 -0
  122. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_scalars.meta.json +0 -0
  123. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_shape.data.json +0 -0
  124. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_shape.meta.json +0 -0
  125. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_ufunc.data.json +0 -0
  126. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_typing/_ufunc.meta.json +0 -0
  127. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_utils/__init__.data.json +0 -0
  128. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_utils/__init__.meta.json +0 -0
  129. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_utils/_convertions.data.json +0 -0
  130. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/_utils/_convertions.meta.json +0 -0
  131. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/__init__.data.json +0 -0
  132. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/__init__.meta.json +0 -0
  133. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_asarray.data.json +0 -0
  134. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_asarray.meta.json +0 -0
  135. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_internal.data.json +0 -0
  136. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_internal.meta.json +0 -0
  137. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_type_aliases.data.json +0 -0
  138. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_type_aliases.meta.json +0 -0
  139. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_ufunc_config.data.json +0 -0
  140. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/_ufunc_config.meta.json +0 -0
  141. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/arrayprint.data.json +0 -0
  142. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/arrayprint.meta.json +0 -0
  143. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/defchararray.data.json +0 -0
  144. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/defchararray.meta.json +0 -0
  145. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/einsumfunc.data.json +0 -0
  146. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/einsumfunc.meta.json +0 -0
  147. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/fromnumeric.data.json +0 -0
  148. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/fromnumeric.meta.json +0 -0
  149. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/function_base.data.json +0 -0
  150. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/function_base.meta.json +0 -0
  151. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/multiarray.data.json +0 -0
  152. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/multiarray.meta.json +0 -0
  153. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/numeric.data.json +0 -0
  154. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/numeric.meta.json +0 -0
  155. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/numerictypes.data.json +0 -0
  156. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/numerictypes.meta.json +0 -0
  157. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/records.data.json +0 -0
  158. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/records.meta.json +0 -0
  159. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/shape_base.data.json +0 -0
  160. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/shape_base.meta.json +0 -0
  161. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/umath.data.json +0 -0
  162. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/core/umath.meta.json +0 -0
  163. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ctypeslib.data.json +0 -0
  164. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ctypeslib.meta.json +0 -0
  165. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/dtypes.data.json +0 -0
  166. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/dtypes.meta.json +0 -0
  167. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/exceptions.data.json +0 -0
  168. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/exceptions.meta.json +0 -0
  169. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/fft/__init__.data.json +0 -0
  170. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/fft/__init__.meta.json +0 -0
  171. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/fft/_pocketfft.data.json +0 -0
  172. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/fft/_pocketfft.meta.json +0 -0
  173. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/fft/helper.data.json +0 -0
  174. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/fft/helper.meta.json +0 -0
  175. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/__init__.data.json +0 -0
  176. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/__init__.meta.json +0 -0
  177. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/_version.data.json +0 -0
  178. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/_version.meta.json +0 -0
  179. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/arraypad.data.json +0 -0
  180. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/arraypad.meta.json +0 -0
  181. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/arraysetops.data.json +0 -0
  182. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/arraysetops.meta.json +0 -0
  183. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/arrayterator.data.json +0 -0
  184. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/arrayterator.meta.json +0 -0
  185. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/format.data.json +0 -0
  186. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/format.meta.json +0 -0
  187. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/function_base.data.json +0 -0
  188. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/function_base.meta.json +0 -0
  189. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/histograms.data.json +0 -0
  190. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/histograms.meta.json +0 -0
  191. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/index_tricks.data.json +0 -0
  192. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/index_tricks.meta.json +0 -0
  193. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/mixins.data.json +0 -0
  194. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/mixins.meta.json +0 -0
  195. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/nanfunctions.data.json +0 -0
  196. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/nanfunctions.meta.json +0 -0
  197. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/npyio.data.json +0 -0
  198. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/npyio.meta.json +0 -0
  199. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/polynomial.data.json +0 -0
  200. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/polynomial.meta.json +0 -0
  201. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/scimath.data.json +0 -0
  202. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/scimath.meta.json +0 -0
  203. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/shape_base.data.json +0 -0
  204. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/shape_base.meta.json +0 -0
  205. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/stride_tricks.data.json +0 -0
  206. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/stride_tricks.meta.json +0 -0
  207. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/twodim_base.data.json +0 -0
  208. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/twodim_base.meta.json +0 -0
  209. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/type_check.data.json +0 -0
  210. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/type_check.meta.json +0 -0
  211. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/ufunclike.data.json +0 -0
  212. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/ufunclike.meta.json +0 -0
  213. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/utils.data.json +0 -0
  214. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/lib/utils.meta.json +0 -0
  215. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/linalg/__init__.data.json +0 -0
  216. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/linalg/__init__.meta.json +0 -0
  217. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/linalg/linalg.data.json +0 -0
  218. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/linalg/linalg.meta.json +0 -0
  219. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/__init__.data.json +0 -0
  220. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/__init__.meta.json +0 -0
  221. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/core.data.json +0 -0
  222. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/core.meta.json +0 -0
  223. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/extras.data.json +0 -0
  224. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/extras.meta.json +0 -0
  225. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/mrecords.data.json +0 -0
  226. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/ma/mrecords.meta.json +0 -0
  227. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/matrixlib/__init__.data.json +0 -0
  228. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/matrixlib/__init__.meta.json +0 -0
  229. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/matrixlib/defmatrix.data.json +0 -0
  230. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/matrixlib/defmatrix.meta.json +0 -0
  231. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/__init__.data.json +0 -0
  232. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/__init__.meta.json +0 -0
  233. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/_polybase.data.json +0 -0
  234. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/_polybase.meta.json +0 -0
  235. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/chebyshev.data.json +0 -0
  236. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/chebyshev.meta.json +0 -0
  237. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/hermite.data.json +0 -0
  238. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/hermite.meta.json +0 -0
  239. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/hermite_e.data.json +0 -0
  240. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/hermite_e.meta.json +0 -0
  241. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/laguerre.data.json +0 -0
  242. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/laguerre.meta.json +0 -0
  243. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/legendre.data.json +0 -0
  244. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/legendre.meta.json +0 -0
  245. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/polynomial.data.json +0 -0
  246. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/polynomial.meta.json +0 -0
  247. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/polyutils.data.json +0 -0
  248. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/polynomial/polyutils.meta.json +0 -0
  249. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/__init__.data.json +0 -0
  250. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/__init__.meta.json +0 -0
  251. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_generator.data.json +0 -0
  252. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_generator.meta.json +0 -0
  253. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_mt19937.data.json +0 -0
  254. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_mt19937.meta.json +0 -0
  255. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_pcg64.data.json +0 -0
  256. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_pcg64.meta.json +0 -0
  257. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_philox.data.json +0 -0
  258. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_philox.meta.json +0 -0
  259. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_sfc64.data.json +0 -0
  260. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/_sfc64.meta.json +0 -0
  261. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/bit_generator.data.json +0 -0
  262. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/bit_generator.meta.json +0 -0
  263. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/mtrand.data.json +0 -0
  264. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/random/mtrand.meta.json +0 -0
  265. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/testing/__init__.data.json +0 -0
  266. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/testing/__init__.meta.json +0 -0
  267. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/testing/_private/__init__.data.json +0 -0
  268. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/testing/_private/__init__.meta.json +0 -0
  269. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/testing/_private/utils.data.json +0 -0
  270. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/testing/_private/utils.meta.json +0 -0
  271. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/typing/__init__.data.json +0 -0
  272. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/typing/__init__.meta.json +0 -0
  273. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/version.data.json +0 -0
  274. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/numpy/version.meta.json +0 -0
  275. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/os/__init__.data.json +0 -0
  276. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/os/__init__.meta.json +0 -0
  277. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/os/path.data.json +0 -0
  278. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/os/path.meta.json +0 -0
  279. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/pathlib.data.json +0 -0
  280. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/pathlib.meta.json +0 -0
  281. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/posixpath.data.json +0 -0
  282. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/posixpath.meta.json +0 -0
  283. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/re.data.json +0 -0
  284. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/re.meta.json +0 -0
  285. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sre_compile.data.json +0 -0
  286. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sre_compile.meta.json +0 -0
  287. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sre_constants.data.json +0 -0
  288. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sre_constants.meta.json +0 -0
  289. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sre_parse.data.json +0 -0
  290. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sre_parse.meta.json +0 -0
  291. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/string.data.json +0 -0
  292. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/string.meta.json +0 -0
  293. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/subprocess.data.json +0 -0
  294. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/subprocess.meta.json +0 -0
  295. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sys/__init__.data.json +0 -0
  296. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sys/__init__.meta.json +0 -0
  297. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sys/_monitoring.data.json +0 -0
  298. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/sys/_monitoring.meta.json +0 -0
  299. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/textwrap.data.json +0 -0
  300. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/textwrap.meta.json +0 -0
  301. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/threading.data.json +0 -0
  302. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/threading.meta.json +0 -0
  303. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/time.data.json +0 -0
  304. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/time.meta.json +0 -0
  305. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/types.data.json +0 -0
  306. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/types.meta.json +0 -0
  307. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/typing.data.json +0 -0
  308. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/typing.meta.json +0 -0
  309. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/typing_extensions.data.json +0 -0
  310. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/typing_extensions.meta.json +0 -0
  311. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/__init__.data.json +0 -0
  312. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/__init__.meta.json +0 -0
  313. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/_log.data.json +0 -0
  314. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/_log.meta.json +0 -0
  315. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/async_case.data.json +0 -0
  316. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/async_case.meta.json +0 -0
  317. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/case.data.json +0 -0
  318. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/case.meta.json +0 -0
  319. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/loader.data.json +0 -0
  320. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/loader.meta.json +0 -0
  321. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/main.data.json +0 -0
  322. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/main.meta.json +0 -0
  323. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/result.data.json +0 -0
  324. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/result.meta.json +0 -0
  325. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/runner.data.json +0 -0
  326. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/runner.meta.json +0 -0
  327. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/signals.data.json +0 -0
  328. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/signals.meta.json +0 -0
  329. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/suite.data.json +0 -0
  330. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/unittest/suite.meta.json +0 -0
  331. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/warnings.data.json +0 -0
  332. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/warnings.meta.json +0 -0
  333. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/zipfile.data.json +0 -0
  334. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/3.12/zipfile.meta.json +0 -0
  335. {mink-0.0.6 → mink-0.0.8}/mink/.mypy_cache/CACHEDIR.TAG +0 -0
  336. {mink-0.0.6 → mink-0.0.8}/mink/__init__.py +0 -0
  337. {mink-0.0.6 → mink-0.0.8}/mink/configuration.py +0 -0
  338. {mink-0.0.6 → mink-0.0.8}/mink/constants.py +0 -0
  339. {mink-0.0.6 → mink-0.0.8}/mink/contrib/__init__.py +0 -0
  340. {mink-0.0.6 → mink-0.0.8}/mink/contrib/keyboard_teleop/KEYBOARD.md +0 -0
  341. {mink-0.0.6 → mink-0.0.8}/mink/contrib/keyboard_teleop/__init__.py +0 -0
  342. {mink-0.0.6 → mink-0.0.8}/mink/contrib/keyboard_teleop/keycodes.py +0 -0
  343. {mink-0.0.6 → mink-0.0.8}/mink/exceptions.py +0 -0
  344. {mink-0.0.6 → mink-0.0.8}/mink/lie/__init__.py +0 -0
  345. {mink-0.0.6 → mink-0.0.8}/mink/lie/utils.py +0 -0
  346. {mink-0.0.6 → mink-0.0.8}/mink/limits/__init__.py +0 -0
  347. {mink-0.0.6 → mink-0.0.8}/mink/limits/exceptions.py +0 -0
  348. {mink-0.0.6 → mink-0.0.8}/mink/limits/limit.py +0 -0
  349. {mink-0.0.6 → mink-0.0.8}/mink/py.typed +0 -0
  350. {mink-0.0.6 → mink-0.0.8}/mink/tasks/__init__.py +0 -0
  351. {mink-0.0.6 → mink-0.0.8}/mink/tasks/com_task.py +0 -0
  352. {mink-0.0.6 → mink-0.0.8}/mink/tasks/damping_task.py +0 -0
  353. {mink-0.0.6 → mink-0.0.8}/mink/tasks/exceptions.py +0 -0
  354. {mink-0.0.6 → mink-0.0.8}/mink/tasks/frame_task.py +0 -0
  355. {mink-0.0.6 → mink-0.0.8}/mink/tasks/posture_task.py +0 -0
  356. {mink-0.0.6 → mink-0.0.8}/mink/tasks/relative_frame_task.py +0 -0
  357. {mink-0.0.6 → mink-0.0.8}/mink/tasks/task.py +0 -0
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mink
3
- Version: 0.0.6
3
+ Version: 0.0.8
4
4
  Summary: mink: MuJoCo inverse kinematics.
5
5
  Keywords: inverse,kinematics,mujoco
6
6
  Author-email: Kevin Zakka <zakka@berkeley.edu>
7
- Requires-Python: >=3.9
7
+ Requires-Python: >=3.8
8
8
  Description-Content-Type: text/markdown
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Framework :: Robot Framework :: Library
11
11
  Classifier: Intended Audience :: Developers
12
12
  Classifier: Intended Audience :: Science/Research
13
13
  Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Programming Language :: Python :: 3.8
14
15
  Classifier: Programming Language :: Python :: 3.9
15
16
  Classifier: Programming Language :: Python :: 3.10
16
17
  Classifier: Programming Language :: Python :: 3.11
@@ -18,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.12
18
19
  Classifier: Topic :: Scientific/Engineering
19
20
  License-File: LICENSE
20
21
  Requires-Dist: mujoco >= 3.1.6
21
- Requires-Dist: qpsolvers[quadprog] >= 4.3.1
22
+ Requires-Dist: qpsolvers[daqp] >= 4.3.1
22
23
  Requires-Dist: typing_extensions
23
24
  Requires-Dist: numpy < 2.0.0
24
25
  Requires-Dist: mink[examples, dev] ; extra == "all"
@@ -28,7 +29,8 @@ Requires-Dist: mypy ; extra == "dev"
28
29
  Requires-Dist: ruff ; extra == "dev"
29
30
  Requires-Dist: dm_control >= 1.0.20 ; extra == "examples"
30
31
  Requires-Dist: loop-rate-limiters >= 0.1.0 ; extra == "examples"
31
- Requires-Dist: qpsolvers[quadprog, osqp] >= 4.3.1 ; extra == "examples"
32
+ Requires-Dist: qpsolvers[daqp] >= 4.3.1 ; extra == "examples"
33
+ Requires-Dist: osqp >=0.6.2,<1 ; extra == "examples"
32
34
  Requires-Dist: absl-py ; extra == "test"
33
35
  Requires-Dist: coveralls ; extra == "test"
34
36
  Requires-Dist: pytest ; extra == "test"
@@ -112,10 +112,7 @@ class TeleopMocap:
112
112
  """
113
113
 
114
114
  q = self.data.mocap_quat[self.mocap_idx].copy()
115
- rot = np.zeros(shape=(9,), dtype=np.float64)
116
- mujoco.mju_quat2Mat(rot, q)
117
- rot = rot.reshape((3, 3))
118
- unit_vec = rot[:, axis]
115
+ unit_vec = self.unit_vec_from_quat(q, axis)
119
116
  step_size = self.m_step_size if self.manual else self.nm_step_size
120
117
  self.data.mocap_pos[self.mocap_idx] += direction * step_size * unit_vec
121
118
 
@@ -125,31 +122,33 @@ class TeleopMocap:
125
122
  based on the axis and step size.
126
123
  """
127
124
 
125
+ q = self.data.mocap_quat[self.mocap_idx].copy()
126
+ unit_vec = self.unit_vec_from_quat(q, axis)
127
+
128
+ # Rotate the quaternion by the specified angle around the axis.
129
+ quat_rot = np.zeros(shape=(4,), dtype=np.float64)
130
+ result = np.zeros(shape=(4,), dtype=np.float64)
128
131
  step_size = self.m_rotation_step if self.manual else self.nm_rotation_step
129
- self.data.mocap_quat[self.mocap_idx] = self.rotate_quaternion(
130
- self.data.mocap_quat[self.mocap_idx], axis, direction * step_size
131
- )
132
+ angle = direction * step_size
133
+ angle_rad = np.deg2rad(angle)
134
+ unit_vec = unit_vec / np.linalg.norm(unit_vec)
135
+ mujoco.mju_axisAngle2Quat(quat_rot, unit_vec, angle_rad)
136
+ mujoco.mju_mulQuat(result, quat_rot, q)
132
137
 
133
- def rotate_quaternion(self, quat, axis, angle):
138
+ self.data.mocap_quat[self.mocap_idx] = result
139
+
140
+ def unit_vec_from_quat(self, q, axis):
134
141
  """
135
- Rotate a quaternion by an angle around an axis.
142
+ Compute the unit vector corresponding to the specified axis
143
+ from the given quaternion.
136
144
  """
137
- rot = np.zeros(shape=(4,), dtype=np.float64)
138
- result = np.zeros(shape=(4,), dtype=np.float64)
139
145
 
140
- unit_axis = np.zeros(shape=(3,), dtype=np.float64)
141
- if axis == 0:
142
- unit_axis[0] = 1.0
143
- elif axis == 1:
144
- unit_axis[1] = 1.0
145
- elif axis == 2:
146
- unit_axis[2] = 1.0
146
+ rot = np.zeros(shape=(9,), dtype=np.float64)
147
+ mujoco.mju_quat2Mat(rot, q)
148
+ rot = rot.reshape((3, 3))
149
+ unit_vec = rot[:, axis]
147
150
 
148
- angle_rad = np.deg2rad(angle)
149
- unit_axis = unit_axis / np.linalg.norm(unit_axis)
150
- mujoco.mju_axisAngle2Quat(rot, unit_axis, angle_rad)
151
- mujoco.mju_mulQuat(result, rot, quat)
152
- return result
151
+ return unit_vec
153
152
 
154
153
  def toggle_on(self):
155
154
  self.on = not self.on
@@ -103,6 +103,21 @@ class MatrixLieGroup(abc.ABC):
103
103
  """Normalize/projects values and returns."""
104
104
  raise NotImplementedError
105
105
 
106
+ def interpolate(self, other: Self, alpha: float = 0.5) -> Self:
107
+ """Interpolate between two matrix Lie groups.
108
+
109
+ Args:
110
+ other: The other Lie group, which serves as the end point of interpolation.
111
+ alpha: The fraction of interpolation between [self, other]. This must
112
+ be within [0.0, 1.0]. 0.0 = self, 1.0 = other.
113
+
114
+ Returns:
115
+ The interpolated matrix Lie group.
116
+ """
117
+ if alpha < 0.0 or alpha > 1.0:
118
+ raise ValueError(f"Expected alpha within [0.0, 1.0] but received {alpha}")
119
+ return self @ self.exp(alpha * (self.inverse() @ other).log())
120
+
106
121
  # Plus and minus operators.
107
122
 
108
123
  # Eqn. 25.
@@ -32,6 +32,11 @@ class SE3(MatrixLieGroup):
32
32
  xyz = np.round(self.wxyz_xyz[4:], 5)
33
33
  return f"{self.__class__.__name__}(wxyz={quat}, xyz={xyz})"
34
34
 
35
+ def __eq__(self, other: object) -> bool:
36
+ if not isinstance(other, SE3):
37
+ return NotImplemented
38
+ return np.array_equal(self.wxyz_xyz, other.wxyz_xyz)
39
+
35
40
  def copy(self) -> SE3:
36
41
  return SE3(wxyz_xyz=np.array(self.wxyz_xyz))
37
42
 
@@ -54,10 +59,7 @@ class SE3(MatrixLieGroup):
54
59
  @classmethod
55
60
  def from_rotation(cls, rotation: SO3) -> SE3:
56
61
  return SE3.from_rotation_and_translation(
57
- rotation=rotation,
58
- translation=np.zeros(
59
- SE3.space_dim,
60
- ),
62
+ rotation=rotation, translation=np.zeros(SE3.space_dim)
61
63
  )
62
64
 
63
65
  @classmethod
@@ -45,6 +45,11 @@ class SO3(MatrixLieGroup):
45
45
  wxyz = np.round(self.wxyz, 5)
46
46
  return f"{self.__class__.__name__}(wxyz={wxyz})"
47
47
 
48
+ def __eq__(self, other: object) -> bool:
49
+ if not isinstance(other, SO3):
50
+ return NotImplemented
51
+ return np.array_equal(self.wxyz, other.wxyz)
52
+
48
53
  def parameters(self) -> np.ndarray:
49
54
  return self.wxyz
50
55
 
@@ -79,7 +84,7 @@ class SO3(MatrixLieGroup):
79
84
  @classmethod
80
85
  def from_matrix(cls, matrix: np.ndarray) -> SO3:
81
86
  assert matrix.shape == (SO3.matrix_dim, SO3.matrix_dim)
82
- wxyz = np.zeros(SO3.parameters_dim, dtype=np.float64)
87
+ wxyz = np.empty(SO3.parameters_dim, dtype=np.float64)
83
88
  mujoco.mju_mat2Quat(wxyz, matrix.ravel())
84
89
  return SO3(wxyz=wxyz)
85
90
 
@@ -109,7 +114,7 @@ class SO3(MatrixLieGroup):
109
114
 
110
115
  # Eq. 138.
111
116
  def as_matrix(self) -> np.ndarray:
112
- mat = np.zeros(9, dtype=np.float64)
117
+ mat = np.empty(9, dtype=np.float64)
113
118
  mujoco.mju_quat2Mat(mat, self.wxyz)
114
119
  return mat.reshape(3, 3)
115
120
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import itertools
4
4
  from dataclasses import dataclass
5
- from typing import List, Sequence, Union
5
+ from typing import List, Sequence, Tuple, Union
6
6
 
7
7
  import mujoco
8
8
  import numpy as np
@@ -13,7 +13,7 @@ from .limit import Constraint, Limit
13
13
  # Type aliases.
14
14
  Geom = Union[int, str]
15
15
  GeomSequence = Sequence[Geom]
16
- CollisionPair = tuple[GeomSequence, GeomSequence]
16
+ CollisionPair = Tuple[GeomSequence, GeomSequence]
17
17
  CollisionPairs = Sequence[CollisionPair]
18
18
 
19
19
 
@@ -231,7 +231,7 @@ class CollisionAvoidanceLimit(Limit):
231
231
  def _homogenize_geom_id_list(self, geom_list: GeomSequence) -> List[int]:
232
232
  """Take a heterogeneous list of geoms (specified via ID or name) and return
233
233
  a homogenous list of IDs (int)."""
234
- list_of_int: list[int] = []
234
+ list_of_int: List[int] = []
235
235
  for g in geom_list:
236
236
  if isinstance(g, int):
237
237
  list_of_int.append(g)
@@ -1,5 +1,7 @@
1
1
  """Joint position limit."""
2
2
 
3
+ from typing import List
4
+
3
5
  import mujoco
4
6
  import numpy as np
5
7
 
@@ -38,7 +40,7 @@ class ConfigurationLimit(Limit):
38
40
  f"{self.__class__.__name__} gain must be in the range (0, 1]"
39
41
  )
40
42
 
41
- index_list: list[int] = [] # DoF indices that are limited.
43
+ index_list: List[int] = [] # DoF indices that are limited.
42
44
  lower = np.full(model.nq, -mujoco.mjMAXVAL)
43
45
  upper = np.full(model.nq, mujoco.mjMAXVAL)
44
46
  for jnt in range(model.njnt):
@@ -1,6 +1,6 @@
1
1
  """Joint velocity limit."""
2
2
 
3
- from typing import Mapping
3
+ from typing import List, Mapping, Optional
4
4
 
5
5
  import mujoco
6
6
  import numpy as np
@@ -28,7 +28,7 @@ class VelocityLimit(Limit):
28
28
 
29
29
  indices: np.ndarray
30
30
  limit: np.ndarray
31
- projection_matrix: np.ndarray
31
+ projection_matrix: Optional[np.ndarray]
32
32
 
33
33
  def __init__(
34
34
  self,
@@ -42,8 +42,8 @@ class VelocityLimit(Limit):
42
42
  velocities: Dictionary mapping joint name to maximum allowed magnitude in
43
43
  [m]/[s] for slide joints and [rad]/[s] for hinge joints.
44
44
  """
45
- limit_list: list[float] = []
46
- index_list: list[int] = []
45
+ limit_list: List[float] = []
46
+ index_list: List[int] = []
47
47
  for joint_name, max_vel in velocities.items():
48
48
  jid = model.joint(joint_name).id
49
49
  jnt_type = model.jnt_type[jid]
@@ -58,7 +58,7 @@ class VelocityLimit(Limit):
58
58
  f"Got: {max_vel.shape}"
59
59
  )
60
60
  index_list.extend(range(vadr, vadr + vdim))
61
- limit_list.extend(max_vel.tolist())
61
+ limit_list.extend(max_vel.tolist()) # type: ignore
62
62
 
63
63
  self.indices = np.array(index_list)
64
64
  self.indices.setflags(write=False)
@@ -1,6 +1,6 @@
1
1
  """Build and solve the inverse kinematics problem."""
2
2
 
3
- from typing import Optional, Sequence
3
+ from typing import List, Optional, Sequence, Tuple
4
4
 
5
5
  import numpy as np
6
6
  import qpsolvers
@@ -24,11 +24,11 @@ def _compute_qp_objective(
24
24
 
25
25
  def _compute_qp_inequalities(
26
26
  configuration: Configuration, limits: Optional[Sequence[Limit]], dt: float
27
- ) -> tuple[Optional[np.ndarray], Optional[np.ndarray]]:
27
+ ) -> Tuple[Optional[np.ndarray], Optional[np.ndarray]]:
28
28
  if limits is None:
29
29
  limits = [ConfigurationLimit(configuration.model)]
30
- G_list: list[np.ndarray] = []
31
- h_list: list[np.ndarray] = []
30
+ G_list: List[np.ndarray] = []
31
+ h_list: List[np.ndarray] = []
32
32
  for limit in limits:
33
33
  inequality = limit.compute_qp_inequalities(configuration, dt)
34
34
  if not inequality.inactive:
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import logging
6
- from typing import Optional, Sequence
6
+ from typing import List, Optional, Sequence
7
7
 
8
8
  import mujoco
9
9
  import numpy as np
@@ -169,7 +169,7 @@ class EqualityConstraintTask(Task):
169
169
  def _resolve_equality_ids(
170
170
  self, model: mujoco.MjModel, equalities: Optional[Sequence[int | str]]
171
171
  ) -> np.ndarray:
172
- eq_ids: list[int] = []
172
+ eq_ids: List[int] = []
173
173
 
174
174
  if equalities is not None:
175
175
  for eq_id_or_name in equalities:
@@ -186,7 +186,7 @@ class EqualityConstraintTask(Task):
186
186
  eq_id = eq_id_or_name
187
187
  if eq_id < 0 or eq_id >= model.neq:
188
188
  raise InvalidConstraint(
189
- f"Equality constraint index {eq_id} out of range."
189
+ f"Equality constraint index {eq_id} out of range. "
190
190
  f"Must be in range [0, {model.neq})."
191
191
  )
192
192
  if not model.eq_active0[eq_id]:
@@ -1,4 +1,4 @@
1
- from typing import Optional
1
+ from typing import List, Optional, Tuple
2
2
 
3
3
  import mujoco
4
4
  import numpy as np
@@ -35,7 +35,7 @@ def move_mocap_to_frame(
35
35
  mujoco.mju_mat2Quat(data.mocap_quat[mocap_id], xmat)
36
36
 
37
37
 
38
- def get_freejoint_dims(model: mujoco.MjModel) -> tuple[list[int], list[int]]:
38
+ def get_freejoint_dims(model: mujoco.MjModel) -> Tuple[List[int], List[int]]:
39
39
  """Get all floating joint configuration and tangent indices.
40
40
 
41
41
  Args:
@@ -45,8 +45,8 @@ def get_freejoint_dims(model: mujoco.MjModel) -> tuple[list[int], list[int]]:
45
45
  A (q_ids, v_ids) pair containing all floating joint indices in the
46
46
  configuration and tangent spaces respectively.
47
47
  """
48
- q_ids: list[int] = []
49
- v_ids: list[int] = []
48
+ q_ids: List[int] = []
49
+ v_ids: List[int] = []
50
50
  for j in range(model.njnt):
51
51
  if model.jnt_type[j] == mujoco.mjtJoint.mjJNT_FREE:
52
52
  qadr = model.jnt_qposadr[j]
@@ -97,7 +97,7 @@ def custom_configuration_vector(
97
97
  return q
98
98
 
99
99
 
100
- def get_body_body_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
100
+ def get_body_body_ids(model: mujoco.MjModel, body_id: int) -> List[int]:
101
101
  """Get immediate children bodies belonging to a given body.
102
102
 
103
103
  Args:
@@ -105,7 +105,7 @@ def get_body_body_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
105
105
  body_id: ID of body.
106
106
 
107
107
  Returns:
108
- A list containing all child body ids.
108
+ A List containing all child body ids.
109
109
  """
110
110
  return [
111
111
  i
@@ -115,7 +115,7 @@ def get_body_body_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
115
115
  ]
116
116
 
117
117
 
118
- def get_subtree_body_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
118
+ def get_subtree_body_ids(model: mujoco.MjModel, body_id: int) -> List[int]:
119
119
  """Get all bodies belonging to subtree starting at a given body.
120
120
 
121
121
  Args:
@@ -123,9 +123,9 @@ def get_subtree_body_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
123
123
  body_id: ID of body where subtree starts.
124
124
 
125
125
  Returns:
126
- A list containing all subtree body ids.
126
+ A List containing all subtree body ids.
127
127
  """
128
- body_ids: list[int] = []
128
+ body_ids: List[int] = []
129
129
  stack = [body_id]
130
130
  while stack:
131
131
  body_id = stack.pop()
@@ -134,7 +134,7 @@ def get_subtree_body_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
134
134
  return body_ids
135
135
 
136
136
 
137
- def get_body_geom_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
137
+ def get_body_geom_ids(model: mujoco.MjModel, body_id: int) -> List[int]:
138
138
  """Get immediate geoms belonging to a given body.
139
139
 
140
140
  Here, immediate geoms are those directly attached to the body and not its
@@ -152,7 +152,7 @@ def get_body_geom_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
152
152
  return list(range(geom_start, geom_end))
153
153
 
154
154
 
155
- def get_subtree_geom_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
155
+ def get_subtree_geom_ids(model: mujoco.MjModel, body_id: int) -> List[int]:
156
156
  """Get all geoms belonging to subtree starting at a given body.
157
157
 
158
158
  Here, a subtree is defined as the kinematic tree starting at the body and including
@@ -165,7 +165,7 @@ def get_subtree_geom_ids(model: mujoco.MjModel, body_id: int) -> list[int]:
165
165
  Returns:
166
166
  A list containing all subtree geom ids.
167
167
  """
168
- geom_ids: list[int] = []
168
+ geom_ids: List[int] = []
169
169
  stack = [body_id]
170
170
  while stack:
171
171
  body_id = stack.pop()
@@ -4,12 +4,12 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "mink"
7
- version = "0.0.6"
7
+ version = "0.0.8"
8
8
  readme = "README.md"
9
9
  authors = [
10
10
  {name = "Kevin Zakka", email = "zakka@berkeley.edu"},
11
11
  ]
12
- requires-python = ">=3.9"
12
+ requires-python = ">=3.8"
13
13
  dynamic = ["description"]
14
14
  classifiers = [
15
15
  "Development Status :: 5 - Production/Stable",
@@ -17,6 +17,7 @@ classifiers = [
17
17
  "Intended Audience :: Developers",
18
18
  "Intended Audience :: Science/Research",
19
19
  "License :: OSI Approved :: Apache Software License",
20
+ "Programming Language :: Python :: 3.8",
20
21
  "Programming Language :: Python :: 3.9",
21
22
  "Programming Language :: Python :: 3.10",
22
23
  "Programming Language :: Python :: 3.11",
@@ -26,7 +27,7 @@ classifiers = [
26
27
  dependencies = [
27
28
  # 3.1.6 for mj_geomDistance.
28
29
  "mujoco >= 3.1.6",
29
- "qpsolvers[quadprog] >= 4.3.1",
30
+ "qpsolvers[daqp] >= 4.3.1",
30
31
  "typing_extensions",
31
32
  "numpy < 2.0.0",
32
33
  ]
@@ -36,7 +37,8 @@ keywords = ["inverse", "kinematics", "mujoco"]
36
37
  examples = [
37
38
  "dm_control >= 1.0.20",
38
39
  "loop-rate-limiters >= 0.1.0",
39
- "qpsolvers[quadprog,osqp] >= 4.3.1",
40
+ "qpsolvers[daqp] >= 4.3.1",
41
+ "osqp >=0.6.2,<1",
40
42
  ]
41
43
  test = [
42
44
  "absl-py",
File without changes
File without changes
File without changes