# **Project Overview** This repository contains the container and supporting files used by the LENA autonomous vehicle project. It packages the Exwayz 3D Mapping / SLAM executables into a Docker image that can run as part of the vehicle microservices stack. **Repository Contents** - **`exwayz_test.dockerfile`**: Dockerfile used to build the container image for testing and integration. - **`src/**`: all code that we have written which runs on the container. - **`tmp/data/`**: sample data including `exwayz_sample_data_slam_01.bag` used for demonstrations and tests. Download this from the link to their google drive on [the Exwayz docs site](https://exwayz.notion.site/Exwayz-3D-Mapping-v1-latest-1ea57c917367810ea1e9f8bf83e2e9d4) - **`media/`**: screenshots and demos (GIFs) used in documentation. - **`licenses/`**: licensing information for included components. **Contributing** Please open issues or PRs for fixes and improvements. If you work on vehicle deployment or CI, include small, testable changes and document any required secrets or hardware assumptions. # **Quick Start** Build the image (from the repository root): ```powershell docker build -f exwayz_test.dockerfile -t exwayz_test:latest . ``` Run the container (example; adjust mounts and environment for your platform): ```powershell # Example (PowerShell on systems with X11 forwarding available) docker run -it --rm \ --env="DISPLAY=$env:DISPLAY" \ --env="QT_X11_NO_MITSHM=1" \ --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ -v "${PWD}:/app" \ exwayz_test:latest ``` On POSIX shells use `$DISPLAY` and `$(pwd)` as usual. Run the Exwayz SLAM pipeline against the sample bag inside the container (example): ```bash exwayz_slam --bag tmp/data/exwayz_sample_data_slam_01.bag \ --bag-hesai /hesai/pandar_packets \ --hesai-model PandarXT-32 \ --d-write 0.1 -o ./slam_session_tutorial --no-date ``` Adjust paths and model names to match your sensor and bag file layout. # **Status** - Docker image: mostly working for local testing. - Secrets: currently not included in the image; build-time and runtime secrets need secure handling (see TODOs). - Target: this repo should evolve into the deploy-and-run repo for vehicle microservices. # **Todos** - [x] **Prototype Docker Image**: Get a prototype docker image working and run their demos. - [x] **Refine README**: polish documentation and examples (in progress). - [ ] **Secrets Handling**: implement secure secret injection for builds and runtime (Docker BuildKit, secret manager, or CI secrets). - [ ] **Standardized Scripts**: add `build_image.ps1` and `run_container.ps1` (and POSIX equivalents) to standardize workflows. - [ ] **CI Build**: add GitHub Actions workflow equivalent to Gitea to build (and optionally scan) images on push/PR. - [ ] **Vehicle Deployment Guide**: document runtime flags, service templates, and health-checks for deployment on the vehicle. - [ ] **Integration Test**: add tests that run the pipeline against `tmp/data/exwayz_sample_data_slam_01.bag` to detect regressions.