A ground map from a driving car
A roof camera drives one loop of a parking lot. Each image becomes a bird’s-eye view and is placed on the map with the car’s RTK pose at that moment. Add one error at a time, a heading bias, late time stamps, a pitch error, or a forgotten lever arm, and learn what each one looks like.
Errors
Drive
One loop of a 70 m by 46 m lot, counterclockwise, 10 images a second. Camera 1.7 m up and 1.9 m ahead of base_link, which is the center of the rear axle.
The mosaic, north up, 20 cm per pixel. Pale areas: no image covered them.
Try this
- With no errors the stall lines, crosswalks, and arrow are sharp. That needs the calibration, the lever arm, and the clock all to be right.
- Set the time offset to 100 ms. The top and bottom aisles are driven in opposite directions, so they shift opposite ways and lines double where the views overlap. Then raise the speed.
- Reset and check Ignore the lever arm. RTK measures the antenna, 1 m ahead of base_link; the two long passes now disagree by 2 m.
- Reset and set the pitch error to 0.5°. Distance along the road stretches, worst at the far edge of each image: the weak direction from Lecture 12.
Notebook
Work with the same script in cells, like Jupyter, right here in the browser. Edit any cell and run it. Nothing is saved: Reset brings a cell back, and Download .ipynb keeps your edited version for VS Code or Jupyter.
The Python script: ground_mosaic.py
This is the script the page runs. Run it yourself with python3 ground_mosaic.py.