Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.cyberwave.com/llms.txt

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

What is a Digital Twin?

A digital twin is a virtual replica of a physical robot that mirrors its behavior, capabilities, and environment in real-time. It serves as a bridge between the physical and digital worlds, enabling you to simulate, test, and optimize your robots before deploying them.

Key Components

  • 3D Model: Accurate geometric representation of your robot
  • Physics Simulation: Realistic movement and interaction dynamics
  • Sensor Integration: Virtual sensors that match your physical setup
  • Real-time Sync: Bidirectional communication with physical robots

Why Use Digital Twins?

Digital twins provide numerous benefits that accelerate development and reduce costs in robotics projects.

Risk-Free Testing

Test dangerous or complex scenarios without risking physical hardware

Faster Development

Iterate and optimize algorithms in simulation before deployment

Performance Analytics

Monitor and analyze robot performance with detailed metrics

Remote Monitoring

Monitor and control robots from anywhere in the world

Cost Reduction

Reduce physical prototyping and testing costs significantly

Scalable Solutions

Test fleet behaviors and multi-robot coordination

Common Use Cases

Algorithm Testing

Test path planning, navigation, and control algorithms

Safety Validation

Validate safety protocols and emergency procedures

Performance Optimization

Optimize robot performance and energy efficiency

Capabilities map (what unlocks what)

Twin behavior in Cyberwave is capability-driven. The platform computes capabilities from each twin’s universal_schema, and those values control which UI panels, controls, and SDK behaviors are available.

Core capabilities

Capability fieldTypeWhat it represents
can_locomotebooleanTwin can move through the environment (navigation/locomotion).
can_flybooleanTwin supports aerial movement.
can_gripbooleanTwin has a gripper/end-effector for grasping.
can_actuatebooleanTwin has actuators that can be commanded (for example joints).
has_jointsbooleanTwin has controllable joints.
has_wheelsbooleanTwin has wheel-based locomotion hardware.
has_legsbooleanTwin has legged locomotion hardware.
manipulator_countnumberNumber of manipulators/end-effectors.
payload_capacity_kgnumberMax payload supported by manipulation system (kg).
power_sourceenumPower source (battery, tethered, rails, fuel, solar, hybrid).
power_capacity_whnumberPower capacity in Wh (-1 can mean unknown / not applicable).
navigation_autonomy_levelenumNavigation autonomy mode (manual, waypoint, path_following, semi_autonomous, fully_autonomous, none).
navigation_obstacle_avoidancebooleanWhether built-in obstacle avoidance is available.
locomotion_modeenumLocomotion type (stationary, wheeled, tracked, legged, aerial, surface, subsea, hybrid).
locomotion_configobjectOptional locomotion limits/config (for example max linear/angular velocity, DOF).
sensorsarraySensor definitions attached to the twin.

What is a sensor capability?

sensors is an array of sensor entries inside capabilities.
If a twin has one or more sensor entries, sensor-driven features become available in both UI and SDK flows.
Each sensor entry can include:
Sensor fieldTypeDescription
idstringStable sensor identifier (for example wrist_camera).
typeenumSensor type (rgb, depth, lidar_2d, lidar_3d, lidar_4d, map).
modelstringOptional hardware/model label.
offset.positionobjectPosition offset from twin origin (x, y, z).
offset.rotationobjectRotation offset quaternion (x, y, z, w).
fov_degreesnumberOptional camera FOV override.
width, heightnumberOptional image resolution (camera sensors).
min_range, max_rangenumberOptional range values (depth/lidar sensors).
fov_horizontal, fov_verticalnumberOptional horizontal/vertical FOV values.
points_per_secondnumberOptional lidar density/throughput hint.
velocity_sensingbooleanOptional 4D lidar velocity support flag.
update_ratenumberOptional update frequency (Hz).

Feature-to-capability matrix (UI + API)

FeatureCapability conditionNotes
Actuation: joint movement + joint editingcan_actuate = true (typically with has_joints = true)Right-panel actuation controls are shown only for actuated twins.
Actuation: “Re-calibrate driver” action (Live mode)can_actuate = trueRecalibration action is only available in Live mode for actuated twins.
Missions editor/simulationcan_locomote = trueMissions are enabled only for locomotion-capable twins.
Sensor windows on right panel (Live + Simulate)sensors.length > 0Real-time/live sensor cards and simulate sensor views require sensor capability.
Point cloud tools/renderingSensor type includes depth or lidar_*Advanced point-cloud controls appear for depth/lidar-capable twins.
Controller policy UIhas_joints OR can_locomote OR can_actuate OR can_gripControl-policy attachment is shown for controllable twins.
Edge connection status card (Live mode)sensors.length > 0 OR controllable twinLive edge status appears for sensor twins or controllable twins.
Python SDK twin class selectionCombination of can_locomote, can_fly, can_grip, and sensorscw.twin(...) returns the most specific twin class based on capabilities.
Python SDK camera streaming methodssensors includes camera sensors (rgb/depth)Camera-enabled twins expose streaming helpers (camera/depth camera twin classes).
canHaveMissions currently maps to can_locomote, and “controllable twin” maps to: has_joints OR can_locomote OR can_actuate OR can_grip.

Pairing a twin with physical hardware

STUB SECTION: This section will be expanded with screenshots and a deeper troubleshooting guide in a future update.
A twin is just a model until it is paired with a physical device. Cyberwave supports two pairing paths depending on where the driver runs.

Edge-device pairing (CLI)

Run cyberwave edge install on the host that is physically wired to your hardware (Raspberry Pi, Jetson, industrial PC, laptop). The CLI authenticates, downloads the matching driver, and starts streaming.

Mobile pairing (QR code)

For hardware that runs through an Android phone tethered to a controller — e.g. a DJI drone with the DJI RC2 — open the twin page, click Pair mobile device, and scan the QR with the phone’s camera.

Path A — SSH into your edge device and run the CLI

Use this when the driver runs on a Linux host that is wired to your hardware.
  1. Provision the edge host. Follow the platform-specific guide for the box you have:
  2. SSH into the edge host and run cyberwave edge install. The CLI prompts for the twin you want to pair (or pass --twin-uuid <uuid> non-interactively), pulls the right driver from the catalog, and writes a local .env so subsequent restarts come up automatically.
  3. Start streaming with cyberwave edge start. The driver registers with the cloud over MQTT and the twin’s edge-device card on the twin page flips to Connected.
For platform-specific quick starts, jump straight to the relevant guide:

Raspberry Pi

Pre-built SD card image with SSH, Docker, and Wi-Fi onboarding ready to go.

SO101 arms

USB-tethered 6-DOF manipulators for teleop and imitation learning.

UGV Beast

Tracked rover, Pi + ESP32 dual-controller, ROS 2 stack.

Unitree Go2

4D LiDAR quadruped with autonomous navigation.

Other hardware

Generic flow for any device with an API, serial, or network interface.

All hardware guides

Browse the full catalog of supported devices and platform-specific guides.

Path B — Pair from the twin page with a QR code

Use this when the driver runs on an Android phone tethered to a controller — currently the DJI Mini 4 Pro via the DJI RC2 / RC-N2.
  1. On the twin page, open the Edge device card and click Pair mobile device.
  2. The dialog mints a fresh, workspace-scoped API token (so a screenshotted QR loses its key on the next dialog open) and renders a QR that encodes the API token, the twin slug, and the backend URL.
  3. Open the Android phone’s stock camera and aim at the QR. The verified Android App Link hands the URL straight to the Cyberwave Edge for DJI app, which writes the credentials into encrypted storage and starts streaming. If the app isn’t installed yet, the camera opens an install page that points at the latest APK.
  4. The credentials never reach the Cyberwave servers — the QR carries them in the URL fragment, which browsers do not transmit. There is nothing to copy or paste manually.
The Pair mobile device button only appears for twins whose asset declares an Android driver (metadata.drivers.android). Twins that run through cyberwave edge install on a Linux host show only the CLI affordance.

Ready to Get Started?

Creating your first digital twin is easy with Cyberwave. Follow our guides to set up your robot and start simulating.

Quick Start Guide

Get up and running with Cyberwave in minutes

Register Your Robot

Learn how to register and configure your robot

Browse Robot Catalog

Explore our collection of pre-built robots