Skip to main content

🤖 Dexmate Robot Motion Planning API

Python

📦 Installation

pip install dexmotion

📚 Usage

🚀 API Usage Guide

Basic Setup

from dexmotion.motion_manager import MotionManager

# Initialize MotionManager
mm = MotionManager()

# Initialize with specific robot type
mm = MotionManager(robot_type="vega_1")

# Initialize with locked joint regions
mm = MotionManager(
    robot_type="vega_1",
    joint_regions_to_lock=["BASE", "HEAD", "LEFT_HAND", "RIGHT_HAND"],
)

# Set robot joints (locked or unlocked) before using active joints
initial_config = {
    "L_arm_j1": 0.064,
    "L_arm_j7": 0.03,
    "R_arm_j1": -0.064,
    "torso_j1": 0.42,
    "torso_j2": 0.14,
    "torso_j3": -0.6,
    "head_j1": 0.4,
}
mm = MotionManager(
    robot_type="vega_1",
    initial_joint_configuration_dict=initial_config,
)

# Setting custom target frames for dexmotion
mm.target_frames = ["L_ee", "R_arm_j7", "head_l1"]

Available Robot Types

Dexmotion supports multiple Vega robot variants with different configurations:

No End Effector:

  • vega_1 - Full body robot (arms, torso, base, head)
  • vega_1u - Upper body only (arms, head, no torso/base)
  • vega_1p - Full body robot variant (arms, torso, base, head)

Gripper End Effector:

  • vega_1_gripper - Full body with gripper hands
  • vega_1u_gripper - Upper body with gripper hands
  • vega_1p_gripper - Full body variant with gripper hands

F5D6 Hand End Effector:

  • vega_1_f5d6 - Full body with F5D6 dexterous hands
  • vega_1u_f5d6 - Upper body with F5D6 dexterous hands
  • vega_1p_f5d6 - Full body variant with F5D6 dexterous hands
# Example: Initialize with F5D6 hands
mm = MotionManager(robot_type="vega_1_f5d6")

# Example: Initialize upper body variant with grippers
mm = MotionManager(robot_type="vega_1u_gripper")

Joint Control

# Get current joint positions
joint_pos_dict = mm.get_joint_pos_dict()

# Set joint positions
new_positions = {"L_arm_j1": 0.5, "R_arm_j1": -0.5}
mm.set_joint_pos(new_positions)

# Set joint poses at component level
mm.right_arm.set_joint_pos([-2.5, -0.3, 0.0, 0.0, 0.0, 0.0, 0.0])
mm.torso.set_joint_pos([0.42, 0.14, -0.6])
mm.head.set_joint_pos([0.4, 0.0, 0.0])

# Read full body pose
joint_pos_dict = mm.get_joint_pos_dict()

# Read component pose
updated_head_pos = mm.head.get_joint_pos()

Forward Kinematics

# Get end-effector poses
poses = mm.fk(["L_ee", "R_ee"])

# Get poses for specific configuration
poses = mm.fk(["L_ee", "R_ee"], qpos=solution)

End effector control

# Move chosen frame to absolute or realtive pose
mm.right_arm.set_ee_pose(
    right_target_pos, right_target_rot, target_frame="R_arm_j4", relative=True
)

# Move chosen EE about cartesian space
mm.left_arm.move_ee_xyz(np.array([0.0, 0.0, 0.5]))
mm.right_arm.move_ee_rpy(np.array([np.pi / 4, 0.0, 0.0]))

Inverse Kinematics

# Relative movement IK
solution, collision_status, limits_status = mm.ik(
    target_pos={"L_ee": [0.05, 0.0, 0.02]}, relative=True, type="pink"
)

Inverse Kinematics with External Obstacle Avoidance

# IK with obstacle avoidance using pink_ext
from dexmotion.configs.ik import LocalPinkExtIKConfig

# Configure external obstacles
obstacle_config = LocalPinkExtIKConfig(
    external_obstacles=[
        {
            "urdf_path": "/path/to/obstacle.urdf",
            "position": [0.5, 0.0, 0.5],
            "orientation": [1.0, 0.0, 0.0, 0.0],
        }
    ]
)

# Initialize with pink_ext solver
mm = MotionManager(
    local_ik_solver_type="pink_ext", custom_local_ik_config=obstacle_config
)

# Solve IK avoiding obstacles
solution, collision_status, limits_status = mm.ik(
    target_pos={"L_ee": [0.05, 0.0, 0.02]}, relative=True, type="pink_ext"
)

Global IK

# Absolute positioning with quaternions
target_configuration_dict, is_in_collision, is_joints_within_limits = mm.global_ik(
    target_pos={"L_ee": [0.4, 0.2, 1.0]},
    target_rot={"L_ee": [1.0, 0.0, 0.0, 0.0]},  # Quaternion [w,x,y,z], RPY [r,p,y]
    type="hybrid",  # "pink", "casadi", or "hybrid"
)

Motion Planning

# Plan to configuration
waypoints = mm.plan(
    goal_config=goal_config,
    planner_type="ompl",  # "ompl" or "interpolation"
)

# Plan to poses
waypoints = mm.plan(
    goal_pos={"L_ee": [0.1, 0.0, 0.1]},
    target_rot={"L_ee": [3.14, 0.0, 0.0]},
    planner_type="interpolation",
)

### Trajectory Smoothing
smooth_trajectory = mm.smooth_trajectory(
    waypoints=waypoints_qpos,
    method="gaussian",  # "gaussian", "toppra", "ruckig"
    control_frequency=100.0,
)

# Extract smoothed data
positions = smooth_trajectory["positions"]
velocities = smooth_trajectory.get("velocities")

Visualization

# Visualize motion plan
mm.visualize_motion_plan(waypoints, duration=3.0)

🤝 Ready to build amazing robots?

📧 Contact Us •

Release files for dexmotion 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for dexmotion 0.4.3
File
dexmotion-0.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
dexmotion-0.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
dexmotion-0.4.3-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details
dexmotion-0.4.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
dexmotion-0.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
dexmotion-0.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
dexmotion-0.4.3-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
dexmotion-0.4.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
dexmotion-0.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
dexmotion-0.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
dexmotion-0.4.3-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
dexmotion-0.4.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
dexmotion-0.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
dexmotion-0.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
dexmotion-0.4.3-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
dexmotion-0.4.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 19.7 MB

Release files / dexmotion-0.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL dexmotion-0.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a412c64bc461c75209224a3aaee0c3d4e4a049892f21f76856c3990e2e63ecd3
BLAKE2b-256 checksum
How to use checksums
7660c568074b917c63f8732ca590c769c5c9f1bfa514f8d549a9c82902961e2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL dexmotion-0.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ed885ac9bb71fc76a76915cb07717776d5abded4c9479f4c6bd241bda36bf93b
BLAKE2b-256 checksum
How to use checksums
8ec8e25c7a3e09bceeb41d9cadeccbb00a78a7a67ea5900b5f0e70bf46f1c72e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp313-cp313-macosx_11_0_x86_64.whl

Download URL dexmotion-0.4.3-cp313-cp313-macosx_11_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
0828da0e53d31c582d5078a28430f513035cb5c5b975fee5a93642e3f3981da9
BLAKE2b-256 checksum
How to use checksums
fa9d11585f1405a7055b0a116ae8a927118aace4a6726694482a5b15656fb3d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL dexmotion-0.4.3-cp313-cp313-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
03ad4e331537a575b41b1586ddb9aa99cae19bd1721a03ae235de2f3bb0d6e96
BLAKE2b-256 checksum
How to use checksums
6b9233e94a7438463f105b98cce1df29798b6b2346fbe94c33e39f137d261b9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL dexmotion-0.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
34a32a273b66211441c89d9762bedf4d3978cbfbed1c35d9a94efe6fcdfdef29
BLAKE2b-256 checksum
How to use checksums
74e81ee6c6ec872465df0181078e173d95a9f531830ed5a9803537a5e2a87e2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL dexmotion-0.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fd4d3617313c67ad0739e8ed9ab25ee144974602681f6b776aa962bbb4772857
BLAKE2b-256 checksum
How to use checksums
ae33c80a02b4e52bbe884d40b7e5896d1fb9325f54df3fd985ebba2062daed77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp312-cp312-macosx_11_0_x86_64.whl

Download URL dexmotion-0.4.3-cp312-cp312-macosx_11_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
ae0cb7e2cb67d711e4d5305fabf7f027a856eb4624d2184487683b257fe08319
BLAKE2b-256 checksum
How to use checksums
fd50a7ba4d1cef7730de980c9e6f206fd756f7cb4d79f8b510fb44296bab2714
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL dexmotion-0.4.3-cp312-cp312-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8b6bb5705672343f186d92b0d66c3ada33d4177ad0dd2eb6dcdae9458e6a6e68
BLAKE2b-256 checksum
How to use checksums
f8ddc12004ed87307f21d273553032461dd6df1d685ad7b0bb01f1a5d778f112
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL dexmotion-0.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
75bd84e3469e3b6c615daeefc02a51665cdac40992d5530b3487de747848f10d
BLAKE2b-256 checksum
How to use checksums
4bdd91c04dc34ec6ce97f81ea20b5109a63a80ecbbc82c4875c3de6c8d41f549
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL dexmotion-0.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fd3a5f509f424b29f68f097e639d6354be34a42c5c363e9dceccc2718a9d32e7
BLAKE2b-256 checksum
How to use checksums
54f2f7e429a9d8f6e1bed14a4dac9ad5de7904d2061d4218822b40b5456fd015
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp311-cp311-macosx_11_0_x86_64.whl

Download URL dexmotion-0.4.3-cp311-cp311-macosx_11_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
c63d0b72c1d300bbbd78e1764df11af7f0b596f7c2448144d0bb4f6c99bdd8e3
BLAKE2b-256 checksum
How to use checksums
a777c366246a6ff9228084d1d526c7e252a663b3d1d09fdf920733bc1ea8999f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL dexmotion-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4ca506c2cf20e99f83dd2e930c40182b78893ce69b04fb1acc86ceb8cd0fc5e1
BLAKE2b-256 checksum
How to use checksums
0d0bae4764b07b921c525d4d7d4896a73169e2345c183c4ef2160b101087a87b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL dexmotion-0.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5f9e5f13512d454a52e5ff9e99842e6ed63f294842ee8f4caca3f91c817e245f
BLAKE2b-256 checksum
How to use checksums
2cfc138ba19a787a36459306be7d9a31cdc783b2e26fe755ba041f2ff308dbad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL dexmotion-0.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
51e87c53129c1895f4677432ce8d3c9948cd6c0606192f7d47f511f1bfb0ff9b
BLAKE2b-256 checksum
How to use checksums
a0a31442070fdd732414d2ff4e751fd91e1dec5ef4684f2badc27b7e8a7b0950
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp310-cp310-macosx_11_0_x86_64.whl

Download URL dexmotion-0.4.3-cp310-cp310-macosx_11_0_x86_64.whl
Size 1.0 MB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
910cb6199c9ca9b73d0113b0ee3312f5e13b3d2896e716ebadc6c3c64cca3af6
BLAKE2b-256 checksum
How to use checksums
b674b7cf78af86160a1f451207396a7d668de520f48f306dc260715d7355e942
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / dexmotion-0.4.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL dexmotion-0.4.3-cp310-cp310-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7a3bc784e2e36987c7b709bddb2837aaeac80ca085a34f3208f8cc28a73bf5b
BLAKE2b-256 checksum
How to use checksums
0419a1f09350811bf0dd1bc928a7a23facb86683aab13aa4ecc06ead3f1268d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

This release

0.4.3 This release

16 release files

0.4.2

16 release files

0.4.0

8 release files

0.3.2

8 release files

0.3.1

8 release files

0.3.0

8 release files

0.2.1

8 release files

0.2.0

8 release files

0.1.2

8 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page