Files
WAR_exwayz3dm/README.md

3.2 KiB

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
  • 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):

docker build -f exwayz_test.dockerfile -t exwayz_test:latest .

Run the container (example; adjust mounts and environment for your platform):

# 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):

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.

You should see something like this: Gif of demo

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

  • Prototype Docker Image: Get a prototype docker image working and run their demos.
  • Refine README: polish documentation and examples (in progress).
  • Fix Cross Compiling: Cross compiling failing for aarch64.
  • 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.