mink 0.0.6__tar.gz → 0.0.7__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.
- {mink-0.0.6 → mink-0.0.7}/PKG-INFO +3 -2
- {mink-0.0.6 → mink-0.0.7}/mink/contrib/keyboard_teleop/teleop_mocap.py +22 -23
- {mink-0.0.6 → mink-0.0.7}/mink/lie/se3.py +1 -4
- {mink-0.0.6 → mink-0.0.7}/mink/lie/so3.py +2 -2
- {mink-0.0.6 → mink-0.0.7}/mink/limits/collision_avoidance_limit.py +3 -3
- {mink-0.0.6 → mink-0.0.7}/mink/limits/configuration_limit.py +3 -1
- {mink-0.0.6 → mink-0.0.7}/mink/limits/velocity_limit.py +5 -5
- {mink-0.0.6 → mink-0.0.7}/mink/solve_ik.py +4 -4
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/equality_constraint_task.py +3 -3
- {mink-0.0.6 → mink-0.0.7}/mink/utils.py +12 -12
- {mink-0.0.6 → mink-0.0.7}/pyproject.toml +3 -2
- {mink-0.0.6 → mink-0.0.7}/LICENSE +0 -0
- {mink-0.0.6 → mink-0.0.7}/README.md +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/.gitignore +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/@plugins_snapshot.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/__future__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/__future__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_ast.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_ast.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_codecs.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_codecs.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_collections_abc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_collections_abc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_ctypes.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_ctypes.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_thread.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_thread.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_typeshed/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_typeshed/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_warnings.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/_warnings.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/abc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/abc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/array.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/array.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/ast.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/ast.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/builtins.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/builtins.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/codecs.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/codecs.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/collections/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/collections/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/collections/abc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/collections/abc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/contextlib.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/contextlib.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/ctypes/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/ctypes/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/dataclasses.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/dataclasses.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/datetime.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/datetime.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/charset.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/charset.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/contentmanager.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/contentmanager.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/errors.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/errors.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/header.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/header.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/message.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/message.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/policy.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/email/policy.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/enum.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/enum.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/genericpath.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/genericpath.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/abc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/abc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/machinery.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/machinery.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/metadata/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/metadata/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/metadata/_meta.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/metadata/_meta.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/readers.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/readers.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/resources/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/resources/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/resources/abc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/importlib/resources/abc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/io.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/io.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/logging/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/logging/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/math.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/math.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/mink/limits/limit.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/mink/limits/limit.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/mmap.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/mmap.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_pytesttester.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_pytesttester.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_add_docstring.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_add_docstring.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_array_like.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_array_like.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_callable.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_callable.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_char_codes.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_char_codes.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_dtype_like.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_dtype_like.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_extended_precision.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_extended_precision.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_nbit.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_nbit.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_nested_sequence.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_nested_sequence.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_scalars.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_scalars.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_shape.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_shape.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_ufunc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_typing/_ufunc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_utils/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_utils/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_utils/_convertions.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/_utils/_convertions.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_asarray.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_asarray.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_internal.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_internal.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_type_aliases.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_type_aliases.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_ufunc_config.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/_ufunc_config.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/arrayprint.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/arrayprint.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/defchararray.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/defchararray.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/einsumfunc.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/einsumfunc.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/fromnumeric.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/fromnumeric.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/function_base.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/function_base.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/multiarray.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/multiarray.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/numeric.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/numeric.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/numerictypes.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/numerictypes.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/records.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/records.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/shape_base.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/shape_base.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/umath.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/core/umath.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ctypeslib.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ctypeslib.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/dtypes.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/dtypes.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/exceptions.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/exceptions.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/fft/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/fft/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/fft/_pocketfft.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/fft/_pocketfft.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/fft/helper.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/fft/helper.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/_version.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/_version.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/arraypad.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/arraypad.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/arraysetops.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/arraysetops.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/arrayterator.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/arrayterator.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/format.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/format.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/function_base.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/function_base.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/histograms.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/histograms.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/index_tricks.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/index_tricks.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/mixins.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/mixins.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/nanfunctions.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/nanfunctions.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/npyio.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/npyio.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/polynomial.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/polynomial.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/scimath.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/scimath.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/shape_base.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/shape_base.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/stride_tricks.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/stride_tricks.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/twodim_base.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/twodim_base.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/type_check.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/type_check.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/ufunclike.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/ufunclike.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/utils.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/lib/utils.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/linalg/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/linalg/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/linalg/linalg.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/linalg/linalg.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/core.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/core.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/extras.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/extras.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/mrecords.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/ma/mrecords.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/matrixlib/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/matrixlib/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/matrixlib/defmatrix.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/matrixlib/defmatrix.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/_polybase.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/_polybase.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/chebyshev.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/chebyshev.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/hermite.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/hermite.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/hermite_e.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/hermite_e.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/laguerre.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/laguerre.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/legendre.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/legendre.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/polynomial.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/polynomial.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/polyutils.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/polynomial/polyutils.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_generator.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_generator.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_mt19937.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_mt19937.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_pcg64.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_pcg64.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_philox.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_philox.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_sfc64.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/_sfc64.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/bit_generator.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/bit_generator.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/mtrand.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/random/mtrand.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/testing/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/testing/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/testing/_private/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/testing/_private/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/testing/_private/utils.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/testing/_private/utils.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/typing/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/typing/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/version.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/numpy/version.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/os/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/os/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/os/path.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/os/path.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/pathlib.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/pathlib.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/posixpath.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/posixpath.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/re.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/re.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sre_compile.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sre_compile.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sre_constants.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sre_constants.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sre_parse.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sre_parse.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/string.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/string.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/subprocess.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/subprocess.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sys/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sys/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sys/_monitoring.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/sys/_monitoring.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/textwrap.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/textwrap.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/threading.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/threading.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/time.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/time.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/types.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/types.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/typing.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/typing.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/typing_extensions.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/typing_extensions.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/__init__.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/__init__.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/_log.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/_log.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/async_case.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/async_case.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/case.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/case.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/loader.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/loader.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/main.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/main.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/result.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/result.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/runner.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/runner.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/signals.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/signals.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/suite.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/unittest/suite.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/warnings.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/warnings.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/zipfile.data.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/3.12/zipfile.meta.json +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/.mypy_cache/CACHEDIR.TAG +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/__init__.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/configuration.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/constants.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/contrib/__init__.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/contrib/keyboard_teleop/KEYBOARD.md +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/contrib/keyboard_teleop/__init__.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/contrib/keyboard_teleop/keycodes.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/exceptions.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/lie/__init__.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/lie/base.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/lie/utils.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/limits/__init__.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/limits/exceptions.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/limits/limit.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/py.typed +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/__init__.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/com_task.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/damping_task.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/exceptions.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/frame_task.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/posture_task.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/relative_frame_task.py +0 -0
- {mink-0.0.6 → mink-0.0.7}/mink/tasks/task.py +0 -0
@@ -1,16 +1,17 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mink
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.7
|
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.
|
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
|
@@ -112,10 +112,7 @@ class TeleopMocap:
|
|
112
112
|
"""
|
113
113
|
|
114
114
|
q = self.data.mocap_quat[self.mocap_idx].copy()
|
115
|
-
|
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
|
-
|
130
|
-
|
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
|
-
|
138
|
+
self.data.mocap_quat[self.mocap_idx] = result
|
139
|
+
|
140
|
+
def unit_vec_from_quat(self, q, axis):
|
134
141
|
"""
|
135
|
-
|
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
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
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
|
-
|
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
|
@@ -54,10 +54,7 @@ class SE3(MatrixLieGroup):
|
|
54
54
|
@classmethod
|
55
55
|
def from_rotation(cls, rotation: SO3) -> SE3:
|
56
56
|
return SE3.from_rotation_and_translation(
|
57
|
-
rotation=rotation,
|
58
|
-
translation=np.zeros(
|
59
|
-
SE3.space_dim,
|
60
|
-
),
|
57
|
+
rotation=rotation, translation=np.zeros(SE3.space_dim)
|
61
58
|
)
|
62
59
|
|
63
60
|
@classmethod
|
@@ -79,7 +79,7 @@ class SO3(MatrixLieGroup):
|
|
79
79
|
@classmethod
|
80
80
|
def from_matrix(cls, matrix: np.ndarray) -> SO3:
|
81
81
|
assert matrix.shape == (SO3.matrix_dim, SO3.matrix_dim)
|
82
|
-
wxyz = np.
|
82
|
+
wxyz = np.empty(SO3.parameters_dim, dtype=np.float64)
|
83
83
|
mujoco.mju_mat2Quat(wxyz, matrix.ravel())
|
84
84
|
return SO3(wxyz=wxyz)
|
85
85
|
|
@@ -109,7 +109,7 @@ class SO3(MatrixLieGroup):
|
|
109
109
|
|
110
110
|
# Eq. 138.
|
111
111
|
def as_matrix(self) -> np.ndarray:
|
112
|
-
mat = np.
|
112
|
+
mat = np.empty(9, dtype=np.float64)
|
113
113
|
mujoco.mju_quat2Mat(mat, self.wxyz)
|
114
114
|
return mat.reshape(3, 3)
|
115
115
|
|
@@ -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 =
|
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:
|
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:
|
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:
|
46
|
-
index_list:
|
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
|
-
) ->
|
27
|
+
) -> Tuple[Optional[np.ndarray], Optional[np.ndarray]]:
|
28
28
|
if limits is None:
|
29
29
|
limits = [ConfigurationLimit(configuration.model)]
|
30
|
-
G_list:
|
31
|
-
h_list:
|
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:
|
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) ->
|
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:
|
49
|
-
v_ids:
|
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) ->
|
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
|
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) ->
|
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
|
126
|
+
A List containing all subtree body ids.
|
127
127
|
"""
|
128
|
-
body_ids:
|
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) ->
|
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) ->
|
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:
|
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.
|
7
|
+
version = "0.0.7"
|
8
8
|
readme = "README.md"
|
9
9
|
authors = [
|
10
10
|
{name = "Kevin Zakka", email = "zakka@berkeley.edu"},
|
11
11
|
]
|
12
|
-
requires-python = ">=3.
|
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",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|