FixTheRobot Explore Robotics / Perception / P7 / P7-L3

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

Perception · Multi-Object Tracking and Temporal Perception · P7-L3 · Intermediate

Investigate How Noisy Detections Affect Track Quality

The detector’s positions jitter by a few units from frame to frame. The tracker’s velocity estimate, which comes from those positions, jitters even more, and the planner brakes for no reason.

You will smooth with a gain, build the Kalman filter that chooses the gain itself, and tune it from the data it sees.

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 explores the smoothing and lag trade-off of a fixed gain. Stage 2 writes the constant-velocity Kalman filter. Stage 3 tunes the process noise using the normalised innovation squared. The measurements are simulated. Your code is graded on hidden sequences; ground truth is used only for the displayed errors in stage 1.

    Theory for this lab

    Multi-Object Tracking and Temporal Perception labs

    1. P7-L1: Track Moving Objects Across Simulated Frames
    2. P7-L2: Repair an Object-Association Algorithm
    3. P7-L3: Investigate How Noisy Detections Affect Track Quality: this lab.
    4. P7-L4: Recover from Temporary Occlusion

    Educational simplification: one dimension, a constant-velocity model, Gaussian noise of known variance and a velocity change at mid-sequence. Real trackers work in two or three dimensions with full covariance matrices, estimate noise, and often use several motion models. 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.