SkillAgentSearch skills...

Kompass

Kompass is an event-driven navigation stack designed with an easy-to-use Python API. It implements blazzingly fast, GPU powered, versions of the most cutting edge algorithms for all parts of the navigation stack.

Install / Use

/learn @automatika-robotics/Kompass
About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/_static/Kompass_dark.png"> <source media="(prefers-color-scheme: light)" srcset="docs/_static/Kompass_light.png"> <img alt="Kompass Logo" src="docs/_static/Kompass_light.png" width="600"> </picture> <br/>

Part of the EMOS ecosystem

License: MIT Python ROS2 Discord

High-Performance, Event-Driven Navigation Stack for ROS2

EMOS Documentation | Developer Docs | Discord

🇨🇳 简体中文 | 🇯🇵 日本語

</div>

What is Kompass?

Kompass is the navigation layer of EMOS (Embodied Operating System) and a framework for building robust, event-driven navigation stacks for autonomous mobile robots. It is built to be customizable, extendable and hardware-agnostic.

Kompass includes highly optimized, GPU-powered navigation algorithms in C++ that make full use of available hardware resources. It supports multi-process parallelism on CPUs and highly parallelized execution on any GPU (Nvidia, AMD, etc.) without vendor lock-in. And most importantly, Kompass makes it straightforward to create and deploy sophisticated navigation capabilities for any mobile robot within a single Python script, without sacrificing performance or flexibility.

For full documentation, tutorials, and recipes, visit emos.automatikarobotics.com.


Key Features

  • Adaptive Event-Driven Design: Responsive to real-world events, robot state changes, and task updates. Define event-action pairs to reconfigure the navigation stack at runtime, or seamlessly switch planning or control strategies based on environment context.

  • Engineered for Speed: All core algorithms are written in modern C++ (kompass-core). First navigation framework to explicitly support GPU-based execution via GPGPU, unlocking high performance on any hardware without vendor lock-in.

  • ML Models as First-Class Citizens: External events can be driven by ML model outputs interpreting sensor data or user commands. The entire stack becomes reconfigurable based on ML inference, going beyond well-established visual navigation scenarios.

  • Pythonic API with Native Speed: While the heavy lifting is done in optimized C++, Kompass provides an intuitive Python API. Prototype quickly and deploy high-performance systems without rewriting code.


Components

Kompass is divided into several interacting components, each responsible for a navigation subtask:

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/_static/images/diagrams/system_components_dark.png"> <source media="(prefers-color-scheme: light)" srcset="docs/_static/images/diagrams/system_components_light.png"> <img alt="Kompass Components" src="docs/_static/images/diagrams/system_components_dark.png" width="100%"> </picture> </div>

Each component runs as a ROS 2 lifecycle node and communicates using topics, services, or action servers:

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/_static/images/diagrams/system_graph_dark.png"> <source media="(prefers-color-scheme: light)" srcset="docs/_static/images/diagrams/system_graph_light.png"> <img alt="System Diagram" src="docs/_static/images/diagrams/system_graph_dark.png" width="100%"> </picture> </div>

Learn more about each component in the EMOS Documentation: Planner | Controller | Local Mapper | Map Server | Drive Manager | Motion Server


Installation

For detailed installation instructions, see the EMOS Documentation.

Install kompass-core

With GPU support (recommended):

curl -sSL https://raw.githubusercontent.com/automatika-robotics/kompass-core/refs/heads/main/build_dependencies/install_gpu.sh | bash

With pip (CPU only):

sudo apt-get install -y libompl-dev libfcl-dev libpcl-dev && pip install kompass-core

Install Kompass

Quick install (Ubuntu/Debian, ROS 2 Humble+ or Jazzy+):

sudo apt install ros-$ROS_DISTRO-kompass

From source (for contributors):

mkdir -p kompass_ws/src && cd kompass_ws/src
git clone https://github.com/automatika-robotics/sugarcoat
git clone https://github.com/automatika-robotics/kompass
rosdep update && rosdep install -y --from-paths . --ignore-src
cd .. && colcon build

Benchmarking Results

The plots below compare CPU vs. GPU performance across navigation components. See the benchmarking details for methodology.

Logarithmic Scale (CPU vs GPU)

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/automatika-robotics/kompass-core/main/docs/benchmark_log_dark.png"> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/automatika-robotics/kompass-core/main/docs/benchmark_log_light.png"> <img alt="Logarithmic Benchmark Results" src="https://raw.githubusercontent.com/automatika-robotics/kompass-core/main/docs/benchmark_log_light.png" width="60%"> </picture> </div>

Power Consumption & Efficiency

Efficiency = Operations per Joule (Throughput / Watts). Higher is better.

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/automatika-robotics/kompass-core/main/docs/benchmark_power_dark.png"> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/automatika-robotics/kompass-core/main/docs/benchmark_power_light.png"> <img alt="Power Benchmark Results" src="https://raw.githubusercontent.com/automatika-robotics/kompass-core/main/docs/benchmark_power_light.png" width="60%"> </picture> </div>

Dynamic Web UI

Every Kompass recipe generates a fully dynamic Web UI automatically. Built with FastHTML on the underlying Sugarcoat framework, it provides instant control and visualization without writing frontend code.

<div align="center"> <picture> <img alt="Kompass UI" src="./docs/_static/gif/ui_navigation.gif" width="60%"> </picture> </div>

Robot Plugins

Write portable automation recipes that run on any robot without code changes. Robot Plugins act as a translation layer between your application and robot-specific ROS 2 interfaces.


Part of the EMOS Ecosystem

Kompass is one of three core open-source components in EMOS (Embodied Operating System) the unified orchestration layer for Physical AI:

  • EmbodiedAgents: Intelligence and manipulation. ML model graphs with semantic memory and adaptive reconfiguration.
  • Kompass: Navigation. GPU-accelerated planning and control.
  • Sugarcoat: Robust & Event-driven system design for ROS 2.

Write a recipe once. Deploy it on any robot. No code changes.


Resources

Copyright & Contributions

Kompass is a collaboration between Automatika Robotics and Inria.

The code is available under the MIT License. See LICENSE for details. Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

View on GitHub
GitHub Stars37
CategoryDesign
Updated1d ago
Forks0

Languages

Python

Security Score

95/100

Audited on Mar 20, 2026

No findings