A CUDA-focused robotics portfolio project for one practical question:
How do we turn raw pointclouds into useful robot-learning features fast enough to matter?
This repo is built to be interview-friendly. It does not stop at "I wrote a CUDA kernel." It shows why the kernel exists, what robotics problem it serves, how it is benchmarked, and how to explain the engineering tradeoff.
Your background is already close to this problem:
- pointcloud processing
- industrial perception
- geometric heuristics
- robot-learning observation design
So this repo takes the shortest path from your past projects into CUDA:
- rasterize pointclouds into BEV feature maps
- compute height, density, and roughness statistics per cell
- score the cells for grasping or terrain observation
- benchmark a custom CUDA path against a plain reference implementation
That is much more credible than a generic CUDA toy project.
csrc/pointcloud_ops.cpp: PyTorch extension bindingscsrc/pointcloud_ops_kernel.cu: custom CUDA rasterization kernelsrc/robot_pointcloud_cuda_lab/ops.py: high-level BEV APIsrc/robot_pointcloud_cuda_lab/reference.py: pure reference implementationsrc/robot_pointcloud_cuda_lab/grasp.py: grasp-cell scoring logic inspired by real pointcloud workflowssrc/robot_pointcloud_cuda_lab/synthetic.py: synthetic pointcloud generators for demos and benchmarkssrc/robot_pointcloud_cuda_lab/benchmark.py: repeatable benchmark helpersscripts/build_extension.py: compile the CUDA extension through PyTorch JITscripts/run_bev_benchmark.py: export local benchmark resultsscripts/run_grasp_demo.py: generate a grasp-score heatmap and summarydocs/learning_path.md: fast learning path for CUDA beginnersresults/: benchmark tables and demo artifacts
Pointcloud BEV features are a practical bridge between perception and control:
- for manipulation, they make grasp scoring easier to explain and debug
- for locomotion, they are a reasonable terrain observation format
- for sim-to-real work, they are easier to stabilize than raw pointcloud policies
That makes this repo a good companion to a locomotion portfolio.
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e .[dev]
python scripts/build_extension.py
pytest
python scripts/run_bev_benchmark.py
python scripts/run_grasp_demo.py- I translated pointcloud intuition into a custom GPU preprocessing path.
- I kept a plain reference implementation for correctness checks.
- I benchmarked the kernel instead of stopping at successful compilation.
- I framed the output around robot-learning observations and grasp selection, not just raw throughput.
results/bev_benchmark.md: local benchmark table for the custom CUDA pathresults/bev_benchmark.csv: raw benchmark valuesresults/grasp_demo.md: grasp scoring summary on a synthetic pileresults/grasp_heatmap.png: heatmap for quick visual inspection
MIT