Examples
Example code and tutorials for EmbodiK.
Core Guides
- Basic IK Example — Minimal
solve_position_step()IK bring-up - Multi-Task Multi-Constraints IK Example — Hierarchical tasks with CoM support-polygon constraint
- Collision-Aware IK Example — Self-collision avoidance with velocity-damper constraints
- CoM Constraint Example Overview — Support-polygon inequality constraints and visualization
- Dual-Arm ECTS Example Overview — Coordinated bimanual control modes and constraints
Script Catalog
Interactive IK
01_basic_ik_simple.py— Minimal fixed-base IK loop with interactive target02_collision_aware_IK.py— Collision-aware IK with optional GPU mode03_teleop_ik.py— Minimal teleop input adapter into EmbodiK IK08_com_constraint_example.py— CoM support-polygon constraint demo in Viser09_dual_arm_ects.py— Dual-arm ECTS/Orthogonal coordination with collision handling12_ai_worker_constraint_teleop.py— Dual-arm ROBOTIS AI Worker constraint teleop with CoM and collision handling
GPU and Batch
04_gpu_batch_ik.py— GPU batched velocity IK benchmark05_gpu_collision_batch.py— GPU batch collision detection benchmark06_gpu_solver_demo.py— CPU vs GPU solver scaling demo07_parallel_trajectory_tracking.py— 100+ robots tracking trajectories in parallel
Utilities and Visualization
robot_model_example.py— RobotModel API walkthrough (FK/Jacobians/CoM)visualization_example.py— Visualization and interactive marker usage
Running Examples
For pip-installed users (recommended)
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
unset LD_LIBRARY_PATH CMAKE_PREFIX_PATH pinocchio_DIR
pip install pin scikit-build-core nanobind cmake ninja
export CMAKE_PREFIX_PATH=$(python3 -c "import pinocchio, pathlib; print(pathlib.Path(pinocchio.__file__).resolve().parents[4])")
pip install --no-build-isolation embodik
pip install "embodik[examples]"
embodik-examples --copy
cd embodik_examples
python3 01_basic_ik_simple.py
Examples default to the Panda preset; use --robot <key> to switch models.
For developers (from repository)
pixi run install
pixi run python examples/01_basic_ik_simple.py
pixi run python examples/03_teleop_ik.py
pixi run demo-advanced-ik # clone-only advanced/dev IK surface
Pass --robot <key> when you want a non-default robot preset.
Clone-only advanced surfaces live in dev_examples/ and are intentionally not
part of the pip-facing embodik-examples --copy workflow.
Example Helpers
The examples/example_helpers/ directory contains reusable utilities:
ik_common.py— Shared defaults and small IK/collision helper functionsteleop_ik_backend.py— Reusable stepping IK backend for the teleop exampledual_arm_ik_helper.py— Dual-arm IK utilitieslimit_profiles/— Joint limit profile configurations