FixTheRobot Explore Robotics / Perception / P5 / P5-L3

This lab works on phones, but writing code is much easier on a laptop.

Perception · 3D Perception and Point Clouds · P5-L3 · Advanced

Debug a Failed 3D Detection Pipeline

A robot’s obstacle detector sees a clear box 22 metres ahead as five separate bits, merges two boxes next to it into a single object, and boxes a turned crate with a rectangle twice its size.

You will find out why the clustering radius cannot be a constant, write the range-dependent clustering, and fit boxes that follow the objects.

Your task

    Simulation
    solution.pyLoading Python…
    Ctrl+Enter runs
    What Python can I use?

    Plain Python with math (and slamkit for small matrix helpers: matmul, transpose, solve, inverse, identity). Images, point clouds and detections arrive as lists inside the dictionary D; an image is a list of rows, each row a list of pixels. There is no NumPy or OpenCV: you write the algorithm yourself, which is the point of the lab. Print with print().

    Hints

    What this lab teaches

    Stage 1 is an experiment on the clustering radius at different ranges. Stage 2 writes the range-adaptive clustering. Stage 3 fits oriented boxes and reports distance, size and heading. Your code is graded on hidden scenes; the simulator keeps the true object membership and the true visible extent private. It extends, and does not repeat, the Sensors obstacle-detection lab, which uses a constant clustering radius and axis-aligned boxes.

    Theory for this lab

    3D Perception and Point Clouds labs

    1. P5-L1: Estimate Surface Normals and Planarity
    2. P5-L2: Fit a Ground Plane Robustly
    3. P5-L3: Debug a Failed 3D Detection Pipeline: this lab.

    Educational simplification: obstacle points from a simulated 21-ring LiDAR with a 90° field of view and one-degree spacing, flat ground already removed, and four box obstacles at 5 to 24 m. Real scenes have people, vehicles, vegetation, partial returns and thousands of points. All data in this lab are simulated.

    Get the next lab

    Get notified when new robotics labs are released. One email per new lab, nothing else.