Week 17 · Coding Period

Cameras next to the LiDAR

Until now the dashboard showed the LiDAR and its detections, but not what the scene actually looked like. This week the two camera views join the same screen, right beside the radar, so you can see the detected boxes and the real road at the same moment.

TL;DR  The AGL HMI now renders three panels at once: the top-down LiDAR view with the perception boxes, plus a forward camera and a top-down aerial camera. All three arrive over the same rosbridge the app already used, so there is no new service. The cameras are sent as compressed JPEG so they stay in step with the LiDAR instead of lagging behind. I also started the packaging work to get the demo auto-starting inside the built AGL image, which surfaced a couple of upstream fixes.

1. Why put the cameras on the screen

A LiDAR box says "there is something here." It does not say what. Putting the camera views next to the detections turns the dashboard into something you can actually sanity-check: the radar draws a box, and you can glance across and confirm there really is a car there. The recording already carried two cameras, a forward-facing one and a top-down aerial one mounted above the car, so the data was waiting; this week was about getting it onto the glass.

The AGL dashboard, live: the LiDAR radar with green detection boxes on the left, and the forward and aerial camera feeds on the right. Everything updates together, in sync, from a single recording replayed over rosbridge. The chips read the point count, the object count, the update rate, and the LIVE link indicator.

2. How it is wired, and what it reuses

The important design choice was to add nothing new. The app already speaks to rosbridge for the point cloud and the detections, so the cameras ride the very same WebSocket. The app opens one connection and subscribes to four topics: the cloud, the detections, and the two camera streams. Each camera frame is decoded and drawn in its own panel.

3. Toward the built image

Running the app during development is one thing; having it ship inside the AGL system image and launch from a home-screen tile is another. This week I worked with the maintainers on that second half, and it surfaced two concrete pieces of work.

The full image build itself is running on the maintainer side; my part was getting the recipe correct and self-starting.

4. Where it stands, and what is next

Status: the dashboard now fuses LiDAR detections with two live camera views in one AGL screen, over a single rosbridge, in sync. The recipe is fixed for the current build tree and the demo backend now auto-starts via systemd.

Links

← Week 16
Home →