2.2K Views
September 26, 24
スライド概要
TIER IV AWF Japan Meetup 2024 09 / 24 / 2024 The Past and Future of Autoware Open AD Kit
TIER IV Yutaka Kondo aka @youtalk Business work Private work • • • • • • 2024/04~ TIER IV Engineer 2021/11~ Preferred Robotics EM & PjM 2018/05~ Preferred Networks Engineer 2013/04~ Kawada Robotics Lead Engineer 2013/03 Ph.D. • • • • Book author「ROS 2ではじめよう 次世代ロボットプログラミング」2nd ROSCon Program Committee ROSCon JP Execution Committee ROS Japan Users Group Ex-organizer NVIDIA-certified Jetson Influencer 2
TIER IV SOAFEE & Open AD Kit 01 3
SOAFEE (Scalable Open Architecture For Embedded Edge) An industry initiative to extend cloud-native software experience to automotive workloads, incorporating a Special Interest Group (SIG) A software architecture which enables cloud technologies to be combined with automotive functional safety and real-time requirements for the first time An open-source reference software implementation, enabling prototyping and early development, starting now Visit SOAFEE repository - https://gitlab.com/soafee/
Open AD Kit Blueprint (The First SOAFEE Blueprint) Autoware Full stack and open-source autonomous driving software Autoware running on containerized workloads (essential to SOAFEE’s SDV vision) EWAOL is the SOAFEE reference implementation, which is a custom Linux distribution via the Yocto Project, enabling virtualization container engine and orchestration Third-party applications connect the Open AD Kit blueprint with various applications (e.g., IVI, V2X, OTA, maps) Visit EWAOL repository - https://gitlab.com/soafee/ewaol/meta-ewaol
TIER IV The Uniqueness of Autoware 100K+ LoC 400+ Total lines of source code Total ROS 2 packages AMD64 / ARM64 w/ or w/o CUDA CPU architecture GPU configuration Apache 2 Software license 6
TIER IV The Past to the Present of Autoware Open AD Kit 02 7
TIER IV From Single-stage Build to Multi-stage Build (1/6) https://github.com/autowarefoundation/autoware /blob/main/docker/README.md 8
TIER IV From Single-stage Build to Multi-stage Build (2/6) Dependency package generation by “rosdep install” rosdep-depend https://github.com/autowarefoundation/autoware /blob/main/docker/README.md 9
TIER IV From Single-stage Build to Multi-stage Build (3/6) Splitting the build image https://github.com/autowarefoundation/autoware /blob/main/docker/README.md 10
TIER IV From Single-stage Build to Multi-stage Build (4/6) Resplitting the build image https://github.com/autowarefoundation/autoware /blob/main/docker/README.md 11
TIER IV From Single-stage Build to Multi-stage Build (5/6) Development container of sensing/perception Runtime container of sensing/perception https://github.com/autowarefoundation/autoware /blob/main/docker/README.md 12
TIER IV From Single-stage Build to Multi-stage Build (6/6) Development containers Runtime containers https://github.com/autowarefoundation/autoware 13 /blob/main/docker/README.md
TIER IV Development Container and Runtime Container For more details, visit the TIER IV booth at ROSCon JP 2024 tomorrow! Debugging with development containers Real vehicle testing with runtime containers 14
TIER IV Improvements toward Multi-stage Build and Multi-containerization 02 15
TIER IV https://autowarefoundation.github.io/ autoware-ci-metrics/ Autoware Container Build using GitHub-hosted Runner 2.5 hours 40 mins 5 mins 16
TIER IV Container Image Sizes of Autoware 9.3GB https://autowarefoundation.github.io/ autoware-ci-metrics/ w/ CUDA drivers 4.9GB w/o CUDA drivers 4.2GB 2.1GB 17
TIER IV Enabiling Docker Build Cache on GitHub Actions • https://docs.docker.com/build/cache/ backends/registry/ • Store the docker build cache to the GHCR • Both the main branch and the PR branch can be specified for “cachefrom” • Specify “mode=max” for “cache-to” to cache all stages https://docs.docker.com/build/cache/ より転載 18
TIER IV Ccache caching with GitHub Actions Cache • https://github.com/reprodu cible-containers/buildkitcache-dance • Extracting and restoring cache from files in the image on GitHub Runner • Useful when long execution times are needed for a single RUN command, such as building Autoware https://github.com/autowarefoundation/autoware/blob/ main/.github/actions/docker-build-and-push/action.yaml 19
TIER IV Improving cache retention for ”rosdep” • Generate dependency package lists in advance in an independent stage • Copy only the dependency package list and install it in the build stage • Additionally, reuse downloaded APT packages with cache mounting Dependency package list generation stage “colcon build” stage https://github.com/autowarefoundation/autoware/blob/main/docker/Dockerfile 20
TIER IV Lightweight Optimization of Source Code Build • Bind mount only the necessary parts of the source code for each stage • Copy only final artifacts (/opt/autoware) to the runtime container • Delete intermediate artifacts (/autoware/build) on the spot https://github.com/autowarefoundation/autoware/blob/main/docker/Dockerfile Build stage of development container Build stage of runtime container 21
TIER IV Minimization of Runtime Container Sizes • Install only the “exec_depend” packages • Thoroughly remove header files and unnecessary development files • Copy only the final artifacts from the development container 22
TIER IV The Future of Autoware and Pilot.Auto Pilot.Auto Cargo Cargo feat. Pilot.Auto feat. Pilot.Auto Autoware Debug tools Demo feat. Bus feat. Race Car feat. Race Car Pilot.Auto Bus 23
TIER IV AWF Japan Meetup 2024 09 / 24 / 2024 The Past and Future of Autoware Open AD Kit