Skip to content
Back to skills

Digital Twin

ASecurity

"Guides the real Go2 LowState to Jetson to Isaac Sim twinbot

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
toolsgogit

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill digital-twin --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Digital Twin?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Digital Twin
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-digital-twin/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-digital-twin)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: digital-twin
description: "Guides the real Go2 LowState to Jetson to Isaac Sim twinbot
  bridge, DDS discovery, IMU/joint mapping, and kinematic playback diagnosis."
disable-model-invocation: true
metadata:
  disco-role: operating
license: BSD 2-Clause
---

# Digital twin

Use this route when a physical Go2 should drive a simulated Go2, when
`/real_dog/joint_states` or `/real_dog/odom` is missing, or when the simulated
robot has incorrect joint pose/orientation. The sim-side launch is the bundled
simulation adapter with `--twinbot`; do not rely on an unbundled source launcher.

## Topology

The bridge has two operator-controlled processes: a CycloneDDS reader on the
Jetson subscribes to Unitree `/lowstate`; a FastDDS publisher forwards standard
`JointState` and `Odometry` messages to the Isaac host. The Isaac process then
uses `TwinbotSubscriber` to overwrite joint state and root pose after each
physics step. The bridge and sim must be diagnosed as separate sides.

## Safe workflow

1. Read [`references/twinbot-workflow.md`](references/twinbot-workflow.md) and
   confirm the Jetson ROS 2 Humble/Unitree SDK environment, Ethernet interface,
   Wi-Fi discovery, RMW choices, and operator permissions.
2. Run the bundled bridge helper without `--run` first; its default is a
   configuration-only dry run. Use `--run` only on the Jetson with the required
   packages and robot-side authorization.
3. Confirm `/real_dog/joint_states` and `/real_dog/odom` before starting the sim
   with `--twinbot`.
4. If joints are wrong, use the exact motor order and name mapping in
   [`references/message-mapping.md`](references/message-mapping.md). If the body
   flips or is half-blended, check IMU odometry and the post-step kinematic
   override before changing gains.

Read [`references/troubleshooting.md`](references/troubleshooting.md) for DDS,
queue, message, quaternion, and stale-data failures. This route never performs
SSH, changes network configuration, or sends commands to a real robot by itself.

## Limits and verification

Twinbot is visual real-to-sim playback, not a claimed learned Sim-to-Real loop.
The current implementation pins sim XY/Z at spawn because IMU data has no
absolute position. IsaacLab 0.54.3 and the Jetson runtime were unavailable
when this skill was built; no live bridge or full sim verification is claimed.

Files in this skill

  • SKILL.md2.3 KB
  • references/message-mapping.md1.2 KB
  • references/troubleshooting.md1.6 KB
  • references/twinbot-workflow.md1.8 KB
  • scripts/twinbot_bridge.py5.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.