Kompass¶
Robust, event-driven navigation stacks for autonomous mobile robots.
Built to be customizable, extendable, and hardware-agnostic. Create sophisticated navigation capabilities within a single Python script with blazzingly fast performance.
Get Started • Why Kompass? • View on GitHub
Hardware-Agnostic GPU Acceleration - Kompass includes highly optimized, GPU powered, versions of the most cutting edge navigation algorithms in C++ that make full use of available hardware resources. It supports multi-threaded execution on CPUs and can run on ANY GPU (Nvidia, AMD, etc.) without vendor lock-in, making it suitable for both development and deployment across diverse hardware setups.
Universal Recipes (Apps) - Kompass provides an intuitive Python API making it straightforward to create and deploy sophisticated navigation capabilities within a single Python script, to run across different robots without sacrificing performance or flexibility.
Event-Driven Architecture - Built on top of Sugarcoat, Kompass components are adaptive and resilient. The system can dynamically reconfigure itself and perform custom actions based on environmental changes or internal status events.
Explore Kompass¶
Install Kompass on your system
Get your robot moving in minutes
Why we built Kompass
Learn how to create custom navigation capabilities
See performance across hardware (CPUs & GPUs)
Explore the Zero-Code Dynamic Web UI
Port automation recipes across different hardware
Explore the core design concepts
Get the llms.txt for your coding-agent and let it write the recipes
Architecture¶
Kompass has a Modular Event-Driven Architecture. It is divided into several interacting components each responsible for one of the navigation subtasks.
Learn more on Kompass design concepts
Kompass has a dynamic orchestration layer that monitors data streams in real-time. Using the Pythonic API you can define Events to injects logic into the components without changing their code, allowing you to define complex and dynamic behaviors directly in your recipes.
Each component in Kompass is responsible of one of the main navigation sub-tasks. Unlike a standard ROS2 node, a Component manages its own lifecycle, validates its own configuration, and reports its own health status to the central system monitor.
The main pillars of Kompass navigation stack.¶
Each of the previous components runs as a ROS2 lifecycle node and communicates with the other components using ROS2 topics, services or action servers
Components in a point-navigation system¶
Components Reference¶
Learn more about configuring your robot and explore the functionalities and configuration of each component in the dedicated documentation page:
Contributions¶
Kompass has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.