Skip to content

Getting Started

Robotics simulation and perception stack for the Unitree G1 humanoid robot. Start here if ROS, Isaac Sim, or Docker are new to you.

Develop software for a bipedal humanoid robot (Unitree G1) that walks, sees, and interacts with its environment. Two modes:

ModeWhat’s runningWhere
SimulationA virtual G1 in a physics simulatorWorkstation (RTX 3090)
Real robotPhysical G1 with cameras, IMU, motorsG1’s onboard Jetson Orin + workstation for heavy GPU tasks

Both modes use the same perception pipeline on the workstation.

Middleware framework for robotics. Programs (“nodes”) communicate by publishing and subscribing to named data channels (“topics”). A camera node publishes image data on /camera/image, a SLAM node subscribes to it.

  • Not an OS — a set of libraries and tools that run on Linux
  • DDS — transport layer. Nodes discover each other automatically over the network, no central server
  • Version: Jazzy (latest LTS)

NVIDIA’s robot simulator. Renders a 3D world with accurate physics (contacts, gravity, friction) and simulates sensors (cameras, IMU, lidar). The simulated G1 publishes the same ROS 2 topics as the real robot — downstream code doesn’t know the difference.

  • Runs on workstation GPU (RTX 3090)
  • Launched from a desktop session (needs a display)
  • Built-in ROS 2 bridge publishes sensor data

GPU-accelerated ROS 2 packages from NVIDIA for robot perception:

PackageWhat it does
cuVSLAMVisual SLAM — builds a map and tracks the robot’s position using cameras
AprilTagDetects fiducial markers in camera images
nvbloxBuilds a 3D occupancy map from depth cameras

Run inside a Docker container on the workstation, receiving sensor data from either Isaac Sim (simulation) or the real G1 (over the network).

All Isaac ROS packages run in a Docker container — an isolated Linux environment with its own libraries. Avoids version conflicts with the host system. Full GPU access via nvidia-container-toolkit.

Browser-based visualization tool. Connects to a WebSocket bridge (port 8765) in the Isaac ROS container to display camera feeds, 3D maps, robot state, and sensor data in real time. No install needed — just open a browser.

In simulation mode, Isaac Sim replaces the real robot. In real robot mode, the G1’s Jetson Orin publishes the same ROS 2 topics over Ethernet instead.

MethodUse caseDetails
MoonlightFull desktop (best for Isaac Sim GUI)Connect via Sunshine streaming server
SSHTerminal onlyssh workstation (via Tailscale)
FoxgloveView sensor data from any browserws://workstation:8765

All remote access works over Tailscale (mesh VPN) — no need to be on the same network.

  1. Architecture — detailed data flow diagrams for simulation and real robot modes
  2. Current Setup — exact software versions and configuration
  3. Isaac Sim — launching the simulator, ROS 2 bridge, troubleshooting
  4. Isaac ROS — the Docker container, what’s inside, how to use it
  5. Current Progress — what’s being worked on right now