Skip to content

Quik Start

System Requirements

  • Using Noitom motion capture device: Windows system, Axis Studio 3 and Foxglove Studio need to be run.

  • Using Meta Quest 3 VR device: No system requirements, Foxglove Studio needs to be run.


Preparation

Start the Adam-U according to the standard Boot Process. Please confirm that the user computer and the robot are on the same network segment. Refer to Network Connection.

  1. Connect to the robot NUC

    ssh pnd-humanoid@192.168.XX.XX # Replace XX.XX with the actual IP address located on the back of the remote control handle; initial password: pndxyz
    
  2. Install Teleoperation Program (Internet access is required. Please skip if already installed)

    curl -fsSL https://raw.githubusercontent.com/pndbotics/pnd_teleoperation/refs/heads/main/install.sh | bash
    

Run Teleoperation Program

source /opt/pnd/pnd_teleop/setup_cli.bash

Select

# Execute one of the following commands depending on the robot model:
spteleop teleop adam_pro noitom pinocchio # or
spteleop teleop adam_sp noitom pinocchio # or
spteleop teleop adam_u noitom pinocchio

Install the VR system dependency Caddy (Please skip if already installed)

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Run the teleoperation program:

# Same command for all models
spteleop teleop adam_u webvr mink

Motion Capture Device Setup

Select

Refer to the Noitom official tutorial to download Axis Studio 3 and wear the mocap suit.

Connect the user computer and the mocap device via Ethernet. Configure the corresponding network interface on the user computer to the same subnet as the mocap device:

10.42.0.xxx , subnet mask 255.255.255.0.

noitom_ip

Configure Axis Studio:

Axis设置

In Device → Network, select the IP within the same subnet as the mocap device: 10.42.0.XXX.

Axis网络

Click the green icon to connect sensors:

Axis网络

Enable BVH data broadcast and send motion data to the robot via UDP.

Configuration:

  • Local Address: user computer WiFi IP 192.168.XX.XX
  • Target Address: robot IP 192.168.XX.XX

Axis广播配置

Steps:

  1. Wear the device according to the Meta Quest 3 official guide.
  2. Connect the headset to the same network as the robot and open a browser to visit
    https://192.168.XX.XX/webvr (replace with the robot IP).
  3. Click "Start Controller Tracking" to start tracking and calibration.

Calibration Pose:

VR标定姿势

Calibration Procedure:

  1. Hold the right controller Meta button for 3 seconds to reset position.
  2. Maintain the calibration pose and press A on the right controller.
  3. The Adam robot model in Foxglove will start following the VR motion.
  4. Press B on the right controller to disconnect teleoperation.

Notes

  • Keep both feet fixed after calibration.
  • If you need to move, disconnect teleoperation and recalibrate.

WebVR Controller Buttons:

Controllers Map

  1. Trigger buttons
  2. Y, X, A and B buttons
  3. Thumbstick
  4. Grip buttons
  5. Menu buttons
  6. Meta buttons

WebVR Controller → Robot Hand Mapping:

  • Right controller A: calibration
  • Right controller B: disconnect teleoperation
  • Right controller Meta: reset VR position
  • Right controller A touch: right thumb rotation
  • Left controller X touch: left thumb rotation
  • Right Trigger: right thumb/index finger open/close
  • Left Trigger: left thumb/index finger open/close
  • Right Grip: right middle/ring/little finger open/close
  • Left Grip: left middle/ring/little finger open/close

Foxglove Visualization

  1. Install and launch Foxglove Studio on your PC.
  2. After signing in, click "Open Connection".
  3. Connect to the robot via WebSocket: ws://localhost:8765 (replace localhost with the robot IP).
  4. Enter the 3D visualization panel and open settings:

三维面板配置 5. Copy the configuration code below into the settings panel and click "Apply". After successful configuration, you can observe the real‑time motion mapping of the robot.

Click to expand configuration code
{
  "layers": {
    "845139cb-26bc-40b3-8161-8ab60af4baf5": {
      "visible": true,
      "frameLocked": true,
      "label": "Grid",
      "instanceId": "845139cb-26bc-40b3-8161-8ab60af4baf5",
      "layerId": "foxglove.Grid",
      "size": 10,
      "divisions": 10,
      "lineWidth": 1,
      "color": "#248eff",
      "position": [
        0,
        0,
        0
      ],
      "rotation": [
        0,
        0,
        0
      ],
      "order": 1
    }
  },
  "cameraState": {
    "perspective": true,
    "distance": 8.362406704377788,
    "phi": 74.10829292531537,
    "thetaOffset": 13.624928863620116,
    "targetOffset": [
      1.3462285617160472,
      3.872395794634993,
      -4.022926534191149e-17
    ],
    "target": [
      0,
      0,
      0
    ],
    "targetOrientation": [
      0,
      0,
      0,
      1
    ],
    "fovy": 45,
    "near": 0.5,
    "far": 5000
  },
  "followMode": "follow-pose",
  "followTf": "world",
  "scene": {
    "meshUpAxis": "z_up",
    "transforms": {
      "showLabel": false,
      "enablePreloading": true,
      "axisSize": 0
    },
    "ignoreColladaUpAxis": true
  },
  "transforms": {},
  "topics": {
    "/robot_description": {
      "visible": true
    }
  },
  "publish": {
    "type": "point",
    "poseTopic": "/move_base_simple/goal",
    "pointTopic": "/clicked_point",
    "poseEstimateTopic": "/initialpose",
    "poseEstimateXDeviation": 0.5,
    "poseEstimateYDeviation": 0.5,
    "poseEstimateThetaDeviation": 0.26179939
  },
  "imageMode": {}
}

Real Robot Operation

Safety Warning

  • Real robot operation involves risk. Ensure a 3‑meter clear area around the robot.
  • Only connect to the real robot after pnd_teleoperation runs normally and preview is correct.
  • Confirm that the preview joint positions match the robot pose before enabling control.
  • Do not switch to other modes (walking, running demos, etc.) during teleoperation.
  • In emergencies perform:

    1. LT + B: enter damping mode
    2. LB + RB: power off actuators

xbox

Real

Start adam_demo (The program has started automatically and can be skipped.)

Open a new terminal

```sh
ssh pnd-humanoid@192.168.XX.XX
cd /home/pnd-humanoid/Documents/adam_demo/bin
sh run.sh
```
  • Zero position mode (Press A)
  • Standing mode (Press X)
  • In Standing Mode, press D‑pad Right to connect teleoperation
  • In Standing Mode, press D‑pad Left to disconnect teleoperation

1. Start pnd_service_dds (The program has started automatically and can be skipped.)

ssh pnd-humanoid@192.168.41.xx
cd ~/Documents/adam_u_deploy/pnd_service_dds
sudo ./run.sh

✅ When [DDS] Starting publish loop (400 Hz)... appears, the service started successfully.

2. Start pnd_adam_dds (The program has started automatically and can be skipped.)

Open a new terminal

ssh pnd-humanoid@192.168.41.xx
cd ~/Documents/adam_u_deploy/pnd_adam_dds
sudo ./run.sh

✅ When FSM start! appears, the service started successfully. The robot starts in damping mode.

  • Zero position mode (Press A)
  • Motion mode (Press X)
  • In Motion Mode, press D‑pad Right to connect teleoperation
  • In Motion Mode, press D‑pad Left to disconnect teleoperation

FAQ

If an SSL certificate warning appears in Foxglove, click "Load unsafe scripts" to continue using the page.

ssl异常


Last updated: 2026-04-17