Skip to main content

Kompass Core

中文版本 ドキュメント-日本語 PyPI MIT licensed Python Version

Kompass Core is a high-performance, GPU-accelerated library for motion planning, mapping, and control in robot navigation systems. The core algorithms are implemented in C++ with seamless Python bindings. It also implements third party integrations with OMPL and FCL. The Kompass philosophy is to be blazzingly fast and highly reliable, by implementing GPGPU supported parallelized algorithms which are agnostic to underlying hardware. Thus Kompass Core can be run on CPUs or GPUs from a wide variety of vendors, making it easy for robot hardware manufacturers to switch underlying compute architecture without overhauling their software stack.

This package is developed to be used with Kompass for creating navigation stacks in ROS2. For detailed usage documentation, check Kompass docs.

Installation

Install with GPU Support (Recommended)

  • To install kompass-core with GPU support, on any Ubuntu 20+ (including Jetpack) based machine, you can simply run the following:
curl -sSL https://raw.githubusercontent.com/automatika-robotics/kompass-core/refs/heads/main/build_dependencies/install_gpu.sh | bash

This script will install all relevant dependencies, including AdaptiveCPP and install the latest version of kompass-core from source. It is good practice to read the script first.

Installing with pip (CPU only)

pip install kompass-core

Wheels are available on Pypi for linux x86_64 and aarch64 architectures. Please note that the version available on Pypi does not support GPU acceleration yet.

Installation Contents

The following three packages will become available once kompass-core is installed.

  • kompass_cpp: Core C++ library for control, collision checking, and mapping algorithms.
  • kompass_core: Python bindings for Kompass core C++ library with front-end classes for configuration and high-level logic.
  • omplpy: Bespoke python bindings for the Open Motion Planning Library (OMPL).

Package Overview

The package includes modules for mapping, control, trajectory planning, and vision-based tracking algorithms, with GPU acceleration support and Python bindings via nanobind.

Control Module

  • Includes a rich set of optimized C++ control strategies implementations and their python wrappers.
  • Supports GPU-accelerated trajectory sampling and cost evaluation with customizable weights for sampling based controllers.
  • Internally implements feature-based bounding box tracking and depth detection for enhanced vision-based tracking control.
Algorithm Description
DWA (Dynamic Window Approach) Velocity-space sampling and optimization
Pure Pursuit Path tracking with obstacle avoidance
Stanley Path tracking with robust convergence
DVZ Reactive obstacle avoidance using deformable zones
VisionRGBFollower Follow visual targets using RGB images
VisionRGBDFollower Follow visual targets using RGBD (depth) images

Mapping Module

  • Implements efficient local mapping and occupancy grid generation algorithms, with configuration support for various scan models and grid resolution settings.
  • Supports GPU-accelerated mapping for real-time performance.
  • Fuses point clouds from multiple 3D sensors into a single occupancy grid with per-sensor free-space carving.

Utilities Module

  • Provides collision checking utilities and critical zone detection to ensure safe navigation, including both CPU and GPU implementations. Critical zone checking fuses point clouds from multiple 3D sensors into one safety decision (minimum factor across sensors).
  • Logger utilities for runtime diagnostics.
  • Linear state-space Kalman filter implementation for state estimation (C++).
  • Spline interpolation utilities for path control.

Data Types and Models Modules

  • Rich set of data types to represent paths, trajectories, controls, velocities, bounding boxes and various sensor data.
  • Strongly-typed parameters and configuration classes to enable flexible tuning.
  • Robot models and motion kinematics, supporting differential, omni-directional, and Ackermann robots. Along with geometry definitions, control limits and simulation-ready state representations.

Third Party Modules

Includes wrappers and integrations with external planning and collision libraries:

  • FCL (Flexible Collision Library)

  • OMPL (Open Motion Planning Library)

Benchmarking Results

The plots below visualize the performance differences across platforms for various components of the navigation stack. The Logarithmic Scale plot is essential for comparing CPU vs. GPU performance where differences can be orders of magnitude large. See the benchmarking details for how these plots were generated and what tasks were measured.

1. Performance (Logarithmic Scale)

Note: This chart excludes runs where power monitoring was active to ensure timing accuracy.

Logarithmic Benchmark Results

2. Power Consumption & Efficiency

Note: Efficiency is calculated as Operations per Joule (Throughput / Watts). Higher is better.

Power Efficiency Results

Copyright

The code in this distribution is Copyright (c) 2024 Automatika Robotics unless explicitly indicated otherwise.

Kompass Core is made available under the MIT license. Details can be found in the LICENSE file.

Contributions

Kompass Core has been developed in collaboration between Automatika Robotics and Inria. Contributions from the community are most welcome.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kompass_core-0.8.4.tar.gz (3.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kompass_core-0.8.4-cp312-abi3-manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.28+ x86-64

kompass_core-0.8.4-cp312-abi3-manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.28+ ARM64

kompass_core-0.8.4-cp311-cp311-manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

kompass_core-0.8.4-cp311-cp311-manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

kompass_core-0.8.4-cp310-cp310-manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

kompass_core-0.8.4-cp310-cp310-manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

kompass_core-0.8.4-cp39-cp39-manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

kompass_core-0.8.4-cp39-cp39-manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

kompass_core-0.8.4-cp38-cp38-manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

kompass_core-0.8.4-cp38-cp38-manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

File details

Details for the file kompass_core-0.8.4.tar.gz.

File metadata

  • Download URL: kompass_core-0.8.4.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for kompass_core-0.8.4.tar.gz
Algorithm Hash digest
SHA256 a96cec052626daf4812208ddfc094d74fdc88209eb4fab322cd45e9de921f31b
MD5 aaa0cf4526dc8bd8b36b1bcd73b039b7
BLAKE2b-256 0344b5e56deee69ae03bc7030bb733d799550ff4269783cb5a57812d7eb2313f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4.tar.gz:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp312-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b52d65ad48f3c48b0858785eaf7285ca513c466d627686df7438419144ee1adb
MD5 0a56f1f10c24df416d174d5080ef68d1
BLAKE2b-256 9ec40e12a778a5d508e41fdf969d6effe673f0ec940fc7fea93b2d065bc3ffff

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp312-abi3-manylinux_2_28_x86_64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp312-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp312-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dff3bfd28a146d91d88370ba2746f014d85f26a41e1a5e9eb6f226dc1ae0ac6d
MD5 52579a0b8270745da462a687cebd7248
BLAKE2b-256 b13fd7705944d8cf33bef3e2fef6990f3ff142d1c848f6df57ef239aa314d5b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp312-abi3-manylinux_2_28_aarch64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49a35e5da7d12eeed393a5adea324404765503415f0688dfb6f05e4b80d2332a
MD5 1dd1e7f9fde0711ee8ee95afcb04974b
BLAKE2b-256 e9b2e234e0a7c1b78513668045802c17c6525c9cf95c7cc79d15782b5af5db22

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9021afc6426c3bf1657327889b92a78365d70b253a4571d25073b03f7c001af8
MD5 61cdb50351f26552f1a582bfbdcdf1a0
BLAKE2b-256 4538f09c35bf002f9e043e384d2f862bd555e2c4166aaa312689e7f75971e21a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0c6697340db972ce9402d344ec2aba83ffdce1692be7197b0a95abd4523c413
MD5 8094be683cca1cbaa66f37ac8c380e77
BLAKE2b-256 171f7786e5c59b75a18dfbdef9b5555a924c359b6a703b35306c26702060c28d

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 474e6a1955193bd9626f1fd2a75d90e4112f4665c26f76857b6a803295d8e93d
MD5 030fd951e2058aea266178d26ea3aaf9
BLAKE2b-256 443f9922760b08bdcbabd9d3b9ba36e6a017c236cfa49712f5f04bd1726e4c8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eff652bf6dfdc5f6fed88d53f1aff94ab536ecaf4b7efe35dbc73be08bc12c58
MD5 47ff50084a0b33db82ffa85963ff797c
BLAKE2b-256 afbc68fe890c15d698a375be29aaa2a41fc1ddb64211e2c5a6e4a2fc86d49209

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2ba21b6d193befea51be57769f4ee7357032bcfffa7975ab9d0c1946f9528311
MD5 dc7b30e046f018adea66a7e42785b61c
BLAKE2b-256 1c24904f69ed4476543f67077222f598f6de77ef6069fd0554910ffd37c1cef4

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7398f50bb462c7860375d3bffb129e274a8104c77ff2c5465362c64f7ebd6840
MD5 797756b245f583870056c7256f2234ac
BLAKE2b-256 65471e7785bdf036a1fde3048f4d1e44adb105077524ba10b1239153a1d9f8b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kompass_core-0.8.4-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.4-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 19d672959a7b6a12db9db342fb1c3be84632999bff350b3e4693a48c101b7970
MD5 7db687c701a456f5538fadb2b4b26b07
BLAKE2b-256 b1d8c1ac1623add2f68fe9f9df187017f8e92e4af13ab6f7c1ede9b33d8ff03a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.4-cp38-cp38-manylinux_2_28_aarch64.whl:

Publisher: build_and_deploy.yml on automatika-robotics/kompass-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.8.4 This release

11 files

0.8.3

11 files

0.8.2

11 files

0.8.1

11 files

0.7.0

11 files

0.6.1

11 files

0.6.0

11 files

0.5.0

11 files

0.4.2

11 files

0.4.1

11 files

0.4.0

11 files

0.3.0

11 files

0.2.2

11 files

0.2.0

10 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page