FixTheRobot Explore Robotics / Perception / P1 / P1-L1

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

Perception · Perception Foundations · P1-L1 · Beginner

Inspect and Interpret Sensor Observations

A robot looks down a room with a camera and a range sensor. The two sensors disagree about what is there: a dark box the camera sees is missing from the range image, a poster only the camera sees, a glass pane neither shows clearly.

You will read the observations, turn the range numbers into surfaces, and fix a decision rule that drives the robot into an obstacle it could not measure.

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 observation: the same simulated room seen through two sensors, with a light slider. Stage 2 asks you to write the first perception step, grouping measurements into surfaces. Stage 3 asks you to handle missing measurements correctly. Your code is graded on hidden rooms; the simulator keeps the true object list private and your code only sees the sensor readings.

    Theory for this lab

    Perception Foundations labs

    1. P1-L1: Inspect and Interpret Sensor Observations: this lab.
    2. P1-L2: Find the Misleading Measurements
    3. P1-L3: Build a First Perception Pipeline

    Educational simplification: a simulated 2D room, a planar range sensor with 61 directions over 70° and Gaussian noise of 2 cm, and a camera-like colour strip with brightness scaled by a light level. Real range sensors and cameras have many more failure modes (multipath, motion distortion, glare, lens effects). 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.