Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/MRRP-lab/arm-demos/llms.txt

Use this file to discover all available pages before exploring further.

This guide takes you from a bare Linux machine to a running demo in as few steps as possible. All ROS 2 and Python dependencies — including MoveIt 2, DepthAI, and MediaPipe — are managed by Pixi, so you do not need a pre-installed ROS environment.
The hand tracking demo requires the hand_landmarker.task MediaPipe model file in your working directory before you launch. Step 5 explains how to download it.
1

Clone the repository

Clone the arm-demos repository and enter the project directory.
git clone https://github.com/MRRP-lab/arm-demos.git && cd arm-demos
2

Install Pixi

Pixi is the package manager used to install all ROS 2 and Python dependencies in a self-contained environment. If you have not installed it yet, follow the Pixi installation guide.Verify the installation:
pixi --version
3

Build the workspace

Build all colcon packages with symlink installs so that Python source changes take effect without rebuilding.
pixi run build
This runs colcon build --symlink-install inside the Pixi environment. Build outputs go to install/ and build/. Subsequent runs skip unchanged packages.
4

Run the simulation demo

Launch the UR3e driver against mock hardware (no physical robot required). This brings up the full ros2_control stack with use_mock_hardware:=true.
pixi run sim
RViz opens and shows the robot model. You can inspect joint states and test MoveIt 2 planning without connecting to a real arm.
5

Download the MediaPipe hand landmark model

The hand tracking demo requires the hand_landmarker.task model file at runtime. Download it to the current directory with:
pixi run download-mediapipe-model
This fetches hand_landmarker.task (float16, latest) from Google’s MediaPipe model storage and saves it to the current directory. The arm_demo node expects the file at the path hand_landmarker.task relative to the working directory where you launch the node.
6

Run the hand tracking demo (real robot)

With the hand_landmarker.task model present and the UR3e reachable on the LAN, start the hand tracking demo:
pixi run arm-demo
This is an alias for:
ros2 launch arm_demo arm_demo.launch.py gripper_type:=vacuum use_camera:=false
The OAK-D camera is accessed directly through the DepthAI SDK (not via a ROS camera node), so use_camera:=false disables the separate camera launch. Once running, hold your hand in front of the camera — the arm tracks your index fingertip position in real time. Press q in the OpenCV window or Ctrl+C to stop.
The real robot is expected at IP 192.168.56.101 on the lab LAN. Ensure the UR3e is powered on and reachable before running this command. Running against the wrong IP or with the robot in an unexpected state can cause uncontrolled motion.
7

Run the pick-and-place demo (real robot)

To run the vision-guided pick-and-place demo with the vacuum gripper:
pixi run demo-gripper
This is an alias for:
ros2 launch colman_motion pick_and_place.launch.py gripper_type:=vacuum
The arm moves to a scanning pose, detects an AprilTag marker on the target object via the OAK-D camera, plans a collision-free pick trajectory with MoveIt 2, activates the vacuum gripper, and deposits the object at a fixed drop-off point. The loop repeats until you call ros2 service call /stop std_srvs/srv/Trigger or press Ctrl+C.

Quick reference: Pixi tasks

TaskCommandDescription
buildpixi run buildBuild all packages with colcon --symlink-install
simpixi run simLaunch UR3e driver with mock hardware
arm-demopixi run arm-demoHand tracking demo (real robot)
demo-gripperpixi run demo-gripperPick-and-place demo (real robot)
download-mediapipe-modelpixi run download-mediapipe-modelDownload hand_landmarker.task model file
cleanpixi run cleanRemove build/, install/, and log/ directories

Next steps

Environment setup

Detailed instructions for configuring your development machine and the Pixi environment.

Hardware setup

Connect and verify the UR3e, OAK-D Pro camera, and vacuum gripper.

Hand tracking demo

Deep dive into how the MediaPipe and MoveIt 2 pipeline works.

Pick and place demo

Learn how AprilTag detection drives autonomous pick-and-place cycles.

Build docs developers (and LLMs) love