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.

Utilities Module

  • Provides collision checking utilities and critical zone detection to ensure safe navigation, including both CPU and GPU implementations.
  • 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.2.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.2-cp312-abi3-manylinux_2_28_x86_64.whl (6.6 MB view details)

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

kompass_core-0.8.2-cp312-abi3-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.28+ ARM64

kompass_core-0.8.2-cp311-cp311-manylinux_2_28_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

kompass_core-0.8.2-cp311-cp311-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

kompass_core-0.8.2-cp310-cp310-manylinux_2_28_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

kompass_core-0.8.2-cp310-cp310-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

kompass_core-0.8.2-cp39-cp39-manylinux_2_28_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

kompass_core-0.8.2-cp39-cp39-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

kompass_core-0.8.2-cp38-cp38-manylinux_2_28_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

kompass_core-0.8.2-cp38-cp38-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

File details

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

File metadata

  • Download URL: kompass_core-0.8.2.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.2.tar.gz
Algorithm Hash digest
SHA256 05a3ed6d20286282f72b85447d610c28f7b7b81ad94b34018035f2196af47b55
MD5 63a9fe6b198f3a2b8c98d67aaac8ffb6
BLAKE2b-256 34bdd510feb348c137989ef86441d8a7c290e851a0ea17418904c5524d35532e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2.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.2-cp312-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30dd25f4afdb66413797adc5e97408d3d7fec55cf2d1520a2d8b8944c046cd85
MD5 94003cc2c5349ada79c252e410801ca9
BLAKE2b-256 bace3c8f8d4538b4b261ce0d89bd375f56766a89b586cb0763c74cc6f38a8eb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp312-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp312-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d0cba870f0f566d97f729e7b821190d01bca2797782ec6f65c56dbf9590e4a31
MD5 16858b25779cadfe92ca904748b5796f
BLAKE2b-256 d574a33c616b519eb1ee25a0625e65a5e7d432a706ae8131377c92f398667fbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ac8613111b70fa3fa3a7da4f2bc8d238e68f8a2da5d0d3bf04e6ac49a41a546
MD5 b307da34dc0185a3e2303164cd5d7962
BLAKE2b-256 b387c1d8591dd7068a9aa5950ba91d88827443c68031ba5110c6dd7a20517f3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 092aa01c6374c6b4439636916e7d6b8c38b0b9d9517c3251e8f8e0e42b15a4d6
MD5 6ffd7091399f3d052149f41fc176d2d8
BLAKE2b-256 c085216b998b17c54c0fc88cfa6d34249ccee81e3daf1dd96027ffb33fa77e73

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4affab46385da086f6f19b3f89bc4a6ba16d03bf500599d2262fe1acc98837b8
MD5 cc34315c9c099d3f98295593643958b3
BLAKE2b-256 62b5856ce1441393e0ff664edbbcf0ed5e42b2cee5ca3876638e5f1e6eede5ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a45f80f9f178b8aa9a0042a46409aae9163849e8cb26b0d3a06e8062e53c7430
MD5 d391b55d5cd103a05c0037c1f52065a2
BLAKE2b-256 787bb54b10da2678b4421d3c237b02723434e0fde2f96bc02f5332b7025a4abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0879ea818041aa068a1b358a71b0b42c14ce17c4d3f0a25b06a07c372bccc79c
MD5 18c6b12e38f273ce9cb37c749fabc170
BLAKE2b-256 415f0f377d163991386b0357c100bfd0203d69a02b5bb803f64b2ad745c8d38c

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8ae1743ef5788cbc8369a0def3f8cc44b93104b4b9b1ceebf056758182a47861
MD5 e7c56e66286172a521268d89ef9589d2
BLAKE2b-256 6d6c14366146a6ddc3decbdf56f339cf3af38cf41123fd3f12288211763a6d23

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e6137d49a605b5b0d38ca19ccd05c47a4e007e7a2d83b78310a5f17b7eb8bc2
MD5 28f96c37d0334cf6c3df0e618004168c
BLAKE2b-256 2d0512b681037469f9995dd2cf77c9022657c31ceefc19c7d7d16559a134d725

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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.2-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.8.2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 635200293d8412646cd8267aab7331c6732ca1e9714f62a498ed673dfd2149ab
MD5 38227c20514ec3178041b95ff832d16d
BLAKE2b-256 d2c1fb7eda04b221a260b8c9fc88d1a0e2666e5495098b8a17e3910d8b7fc6c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.8.2-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

0.8.4

11 files

0.8.3

11 files

This release

0.8.2 This release

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

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page