Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROCm-Oxide Robotics Lab

rocm-oxide-robotics-lab is an experimental AMD-native robotics simulation workbench built on rocm-oxide-sim and ROCm-Oxide. It focuses first on sensor simulation, synthetic data generation, and scenario orchestration.

It is the application/workbench layer. rocm-oxide-sim owns reusable simulation, sensor, scenario, dataset, and validation APIs. ROCm-Oxide owns the Rust-first AMD GPU SDK/runtime/toolchain. This repo should orchestrate those layers, not copy their internals.

What It Is Not

This is not an Isaac Sim clone. The first shell does not implement physics, ROS2, URDF, OpenUSD, mesh/BVH rendering, robot articulation, a full GUI editor, zero-copy Vulkan/HIP interop, cloud orchestration, multi-GPU scheduling, or a custom GPU runtime.

Workspace

crates/lab-project            Project/session JSON and path resolution
crates/lab-scenarios          Built-in scenario catalog and scenario loading
crates/lab-runner             Scenario inspection, backend-aware runs, batch jobs, validation, doctor
crates/lab-report             JSON/text/Markdown report helpers
crates/lab-ui-placeholder     Future UI status only, no GUI dependency
crates/lab-ros2-placeholder   Future ROS2 status only, no ROS2 dependency
apps/robotics_lab             Main CLI app
examples/projects/            Example lab project configs

Local Dependency Layout

The intended temporary local layout is:

workspace-root/
  ROCm-Oxide/
  rocm-oxide-sim/
  rocm-oxide-robotics-lab/

This checkout currently uses the case-sensitive sibling directory ../ROCm-Oxide-Sim, so Cargo path dependencies point at that local folder. This is temporary until the simulator crates are published.

Quick Commands

cargo run -p robotics_lab -- list-scenarios
cargo run -p robotics_lab -- inspect-scenario --scenario basic_sensor_rig
cargo run -p robotics_lab -- render-one --scenario basic_sensor_rig --backend cpu-preview --out target/lab_render --overwrite
cargo run -p robotics_lab -- dataset --scenario randomized_boxes_rig --frames 8 --backend cpu-preview --out target/lab_dataset --overwrite
cargo run -p robotics_lab -- validate --dataset target/lab_dataset
cargo run -p robotics_lab -- doctor

Live preview is available through the simulator viewer:

cargo run -p robotics_lab -- preview --scenario basic_sensor_rig --backend rocm --dry-run
cargo run -p robotics_lab --features rocm -- preview --scenario basic_sensor_rig --backend rocm --frames 4 --mode rgb

Project files can inspect and run ordered render, dataset, and validation jobs:

cargo run -p robotics_lab -- project inspect --project examples/projects/basic_lab_project.json
cargo run -p robotics_lab -- project list-jobs --project examples/projects/basic_lab_project.json
cargo run -p robotics_lab -- project dry-run --project examples/projects/basic_lab_project.json
cargo run -p robotics_lab -- project run --project examples/projects/basic_lab_project.json --overwrite
cargo run -p robotics_lab -- project preview --project examples/projects/basic_lab_project.json --backend rocm --dry-run
cargo run -p robotics_lab -- robot list --project examples/projects/robot_sensor_project.json
cargo run -p robotics_lab -- robot inspect --project examples/projects/robot_sensor_project.json --robot demo_rover
cargo run -p robotics_lab -- project materialize-scenario --project examples/projects/robot_sensor_project.json --out target/materialized_scenario.json --overwrite
cargo run -p robotics_lab -- preview --scenario-path target/materialized_scenario.json --backend rocm --dry-run

examples/projects/robot_sensor_project.json demonstrates robot placeholders and scenario materialization. It mounts the upstream front_rig sensor rig on a demo_rover base transform, reports robot-aware sensor poses, and can write a simulator-compatible scenario JSON with composed sensor transforms. Robot bodies are metadata only; they are not rendered, simulated, articulated, imported from URDF/OpenUSD, or published through ROS2.

The project commands are documented in:

  • docs/project_files.md
  • docs/robot_placeholders.md
  • docs/scenario_materialization.md
  • docs/batch_jobs.md
  • docs/backend_selection.md
  • docs/live_preview.md
  • docs/testing.md

Explicit scenario paths are supported:

cargo run -p robotics_lab -- inspect-scenario --scenario-path ../ROCm-Oxide-Sim/examples/scenarios/basic_sensor_rig.json
cargo run -p robotics_lab -- dataset --scenario-path target/materialized_scenario.json --frames 4 --backend cpu-preview --out target/materialized_dataset --overwrite

CPU-Only Behavior

Default builds do not require ROCm. These commands work CPU-only:

  • list-scenarios
  • inspect-scenario
  • doctor
  • render-one, using deterministic CPU preview outputs
  • dataset, using deterministic CPU preview outputs
  • validate
  • project inspect, project list-jobs, project dry-run, and project run with the cpu-preview backend
  • robot list and robot inspect for placeholder robot metadata
  • project materialize-scenario and direct --scenario-path render/dataset commands
  • preview --dry-run and project preview --dry-run
  • cargo test

The --backend selector accepts cpu-preview and rocm. Default builds reject rocm unless the lab is built with the rocm feature and a compatible local ROCm/HIP device is available.

ROCm builds use the simulator's ROCm renderer path:

cargo check -p robotics_lab --features rocm
cargo run -p robotics_lab --features rocm -- render-one --scenario basic_sensor_rig --backend rocm --out target/lab_render_rocm --overwrite
cargo run -p robotics_lab --features rocm -- dataset --scenario randomized_boxes_rig --frames 4 --backend rocm --out target/lab_dataset_rocm --overwrite
cargo run -p robotics_lab --features rocm -- preview --scenario basic_sensor_rig --backend rocm --frames 4 --mode rgb

There is no silent fallback from rocm to cpu-preview.

Built-In Scenarios

The scenario catalog maps:

  • basic_sensor_rig -> ../ROCm-Oxide-Sim/examples/scenarios/basic_sensor_rig.json
  • randomized_boxes_rig -> ../ROCm-Oxide-Sim/examples/scenarios/randomized_boxes_rig.json

Current Limitations

The lab writes preview datasets and reports, but it does not simulate dynamics, import robot descriptions, launch ROS2 nodes, edit scenes graphically, or add new simulator primitives. Those belong to later milestones or lower layers.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages