Skip to main content
Mantis is a pair of handheld rigs for collecting Cartesian demonstrations without moving the robot. Each rig carries the same gripper Axol uses, with an analog trigger that drives the jaws proportionally and a mount for a pose tracker — a Meta Quest controller, a VIVE Tracker 3.0, or a VIVE Ultimate Tracker. A demonstrator holds one rig in each hand; the SDK tracks both, runs Axol’s IK against the rigs’ poses, and records the same dataset schema a robot-collected episode produces. Mantis is a second device in the SDK next to Axol: it has its own settings, connection tile, and CAN interfaces, and the control panel’s Axol / Mantis selection decides which one every operation runs on. Teleoperation and data collection support Mantis; the other operations are Axol-only.

Overview

A Mantis kit consists of:
  • 2× Mantis rigs — left and right. Each carries the same gripper as Axol, the trigger, and the tracker mount.
  • 1× Mantis Hub — the link between the rigs and the host. L and R are etched on the case to mark the left and right gripper connections, an XT30(2+2) lead feeds out from each to plug into its rig, and a USB cable connects the hub to the ZED Box.
  • A pose source — one of the three tracking systems described in Mantis Tracking: Quest controllers (no extra hardware), VIVE Tracker 3.0 with 1–2 SteamVR base stations, or VIVE Ultimate Trackers with their wireless dongle.
  • (Optional) wrist cameras — up to two ZED cameras assigned to the Left Mantis / Right Mantis slots, stored separately from the Axol camera layout.
The rigs have no arms: the seven arm joints per side are virtual and echo the IK solution, while the gripper is real and observed from motor feedback. The trigger is a continuous squeeze, not a switch — 0.0 fully released (open) to 1.0 fully squeezed (closed) — and the trigger node self-calibrates at power-on, so there is nothing to calibrate host-side.

Tracker mounts

The kit includes the mount for the pose source you purchased — Quest, Lighthouse (VIVE Tracker 3.0), or Ultimate.

Installation

Setting up a Mantis kit on a robot host that already has Axol installed.

Connecting the hub

1

Cable the rigs to the hub

L and R are etched on the hub’s case to mark the left and right gripper connections; an XT30(2+2) lead feeds out from each — plug the left rig into L and the right rig into R. The mapping is logical and can be swapped in software later, but wiring it this way matches the defaults so nothing needs to change.
2

Connect the hub to the ZED Box

Plug the USB cable from the Mantis Hub into the ZED Box — this is how the host communicates with the grippers — and power both rigs. The host discovers the hub alongside the Axol Hub: it works out which side is which rig, assigns the persistent left/right interface names, and installs a udev rule and hotplug unit so a replug brings the interfaces back up on its own.
3

Let the control panel identify it

Open the control panel and connect the Axol Host. When the panel comes online it inventories the host’s CAN interfaces; a new hub that still shows as anonymous can0 / can1 is identified automatically as long as the rigs are powered. If the probe cannot prove the role (unpowered rig, ambiguous hub), power the hardware and press Retry CAN identification, or run axol can.setup in a terminal as the interactive fallback.
axol can.setup is a disruptive link reset for every attached adapter — Axol arms, cart, and Mantis pair — so run it while nothing is driving the robot.

Selecting and connecting Mantis

1

Select Mantis

Press Select on the Mantis tile. This is the system-wide device choice: teleoperation and data collection now run on the rigs, the idle link auto-connects to them, and the Axol-only operations are hidden until Axol is selected again. The selection is stored with the host’s shared settings, so every operator sees the same choice.
2

Connect

With Mantis selected and detected, the panel connects it automatically; otherwise press Connect on the tile. The tile then shows the two grippers’ CAN health at 1 Hz — a red square is an unreachable or faulted gripper and blocks Mantis operations until fixed.
3

Check the side mapping

Click the Mantis tile’s title to open Mantis settings, then CAN. The left and right fields must be non-empty and different (defaults can_mantis_l / can_mantis_r). If squeezing the physical left trigger moves the reported right input, swap the two values, save, and reconnect — the gripper and its trigger reader move together, so no cables need to change.

Testing the triggers and grippers

Before setting up cameras or tracking, prove that each trigger drives its own gripper. Mantis teleop is exactly this check — it needs only CAN and never uses tracking, cameras, headset, or transforms: with Mantis selected, pick Teleoperation and press Start, and the run drives the grippers straight from the rig triggers. (Tracked Mantis runs belong to data collection, once Mantis Tracking is set up.) From the CLI:
Keep hands and objects clear: once both triggers read live and released, each gripper opens fully to find its hard stop, then squeezing a trigger closes its matching gripper proportionally. Stop / Ctrl-C disables both grippers, and a lost trigger stream stops the run rather than holding a stale command.

Mounting the cameras

Mantis records wrist views only. Mount up to two ZED cameras on the rigs — mounting is the same as on the Axol gripper — and connect each camera to the ZED Box with its GMSL2 cable. Note each camera’s serial (QR code on the back) and which rig it is on, then assign them under Mantis settings → Cameras as Left Mantis / Right Mantis. The Mantis layout is stored separately from Axol’s overhead / left arm / right arm layout, so changing one never overwrites the other. At least one Mantis camera must have Record enabled before data collection can start; see Cameras for the stream/record controls.

Next steps

Mantis Tracking

Set up Quest, Lighthouse, or Ultimate tracking for the rigs.

Teleoperation

Validate the rigs live before recording.