dimensionalOS / dimensionalOS/dimos
Visual Servoing with hand in eye
Open
@mustafab0 is already working on this.
Since Jan 28, 2026.
good trial issue
manipulation
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 808
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 233
Description
Summary
Implement visual servoing with eye-in-hand camera for dynamic marker tracking and manipulation. Build on the work in the ruthwik_dynamic_tracking branch, which has ArUco tracking and Pinocchio IK but needs to be synced with current main, fully calibrated, and integrated with the RealSense module and manipulation coordinator.
Context
The ruthwik_dynamic_tracking branch has an initial implementation:
- ArUco tracker (
dimos/manipulation/dynamic_tracking/aruco_tracker.py) — detects ArUco markers, estimates camera-to-marker pose, publishes transforms, visualizes in Rerun - Pinocchio IK (
dimos/manipulation/pinocchio/pin_kinematics.py) — forward/inverse kinematics for servo-rate control - Joint stream task (
dimos/control/tasks/joint_stream_task.py) — joint-level servo streaming to the coordinator - Static calibration (
dimos/hardware/sensors/camera/realsense/handeyeout_xarm6/calibration.json) — a single EEF→RealSense extrinsic transform
The branch is out of sync with main and the pieces aren't fully wired together through the coordinator and TF tree.
Key pointers
| What | Where |
|---|---|
| ArUco tracker (stale branch) | ruthwik_dynamic_tracking — dimos/manipulation/dynamic_tracking/aruco_tracker.py |
| Pinocchio IK (stale branch) | ruthwik_dynamic_tracking — dimos/manipulation/pinocchio/pin_kinematics.py |
| RealSense camera module | dimos/hardware/sensors/camera/realsense/camera.py |
| Static calibration data | dimos/hardware/sensors/camera/realsense/handeyeout_xarm6/calibration.json |
| Control coordinator | dimos/control/coordinator.py |
| Cartesian IK task | dimos/control/tasks/cartesian_ik_task.py |
| Servo task | dimos/control/tasks/servo_task.py |
| Existing blueprints (stale branch) | ruthwik_dynamic_tracking — dimos/manipulation/dynamic_tracking/dt_blueprint.py |
Deliverables
- Rebase the
ruthwik_dynamic_trackingwork onto currentmain - Complete eye-in-hand calibration pipeline (EEF → camera transform) with a calibration tool/script
- Full TF tree: base → joints → EEF → camera → marker, so any frame can be looked up relative to any other
- ArUco marker detection and pose estimation integrated with the RealSense module (color + depth)
- Visual servoing control loop: marker pose error → Cartesian velocity → IK → joint commands, running through the
ControlCoordinator - Blueprint that wires RealSense + ArUco tracker + coordinator for at least one arm (e.g. xArm6)
- One line run command to test
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.