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.3.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.3-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.3-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.3-cp311-cp311-manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

kompass_core-0.8.3-cp310-cp310-manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

kompass_core-0.8.3-cp39-cp39-manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

kompass_core-0.8.3-cp38-cp38-manylinux_2_28_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

kompass_core-0.8.3-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.3.tar.gz.

File metadata

  • Download URL: kompass_core-0.8.3.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.3.tar.gz
Algorithm Hash digest
SHA256 b6a8e77c24f9ec2c5b002cb700be92fd20c8950e8cba83ed5bc610eddaa80ea4
MD5 539931e609dd0c6ec8c9a47296860eca
BLAKE2b-256 b202a352fada079a5e29383cce64b59b9f171d9047f0bd721e00abd4f8870f9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a1f523605e29b3f340aef101a8af24a8a7287e885750971a045991778b5521d
MD5 188df292bbe7507380a65e4e3aca4282
BLAKE2b-256 069a62144a2322c65da11c44f35979069c5663d07e9a6c5299a0e6856ebdb821

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp312-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bcbb2d4ef985a5365c5c26ebd61f38c7e20ed9eb4a2e8f7b3d7ed1d9059a9823
MD5 013c8115bfdc38cd4e715a5306ffcae7
BLAKE2b-256 ae117cb503e8d526f179e087fa5076ff87b7223f22c676609fc860422718da42

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fab4ca0e2ee8dc371eae643ca101e5e8f6d7db9270a7e94a7c9cde8b770d1f0e
MD5 464c3e3b7de06d5a70ed798ff9a40e20
BLAKE2b-256 ce78a2e35409c9f3f7c4631457b202ecd8653c795850494492eeafab55aa3fb5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 70d03db07290fdaf64a8366feffec36042099fd871df6087dd09b6926c8b43a3
MD5 51794f1a20d198ba6a55c21dc067ecd8
BLAKE2b-256 537110c088f0f629e9a23d59c91d33ff10a581959693515a80ad82625bbb564f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6fc69b26c5a81577abbd2bec63e9b51f7c8156914a65a1ecc9acf7aad1c31a9f
MD5 1da1a64548d435f79982f6d0c0fdab68
BLAKE2b-256 56e10c1fd1a87353660c8bf1d178a13271b008da5c11bab4b39d9c2620784565

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 629b20a4d124e088ac1bf619bf81cea8f561882da9a3cf3cb1f0e33fd7f1fde7
MD5 22a6a103e341427f1fc20d70e25dd798
BLAKE2b-256 03c9b8f35ec086845cd0195049e3cee38514533176cd24baaeea073a582b711b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d242d4d469fd5fd7af002bd7b8e3e0a3e3f3f1748dab078ef33ba8399a7e49b
MD5 5748a7b566ebab326c59d7b02e619019
BLAKE2b-256 7cebc630e4a77b81ce8a5498dea33a120d00519267f222a0a1b9b77ba9cb7c18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 20647cb90440d8d44e02d2336de4a01e6f339c931027e54bd4f66c335e029582
MD5 7b595005950e002bc3f3e2d5651dacd1
BLAKE2b-256 e42247320535b86ec8c626d216f64849918fda4e662a2ae4939ccefaf2d5883b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 41d9e596909ff5b4da351fb62b749601cf9d10efb2058452d641962a545148de
MD5 d63a1125ad73f239733ebcec10d0d89b
BLAKE2b-256 835715f2c87b6ad49445d61af44523d1f6aca5dbf1dd171690754fa8d6633878

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.3-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 feb4ec9a3849e29010bf34f26e237d6cde4dfab477f3443a3617ac21549f1cdb
MD5 1f620cead523c3544d3243246332fbef
BLAKE2b-256 af7930010b58216dc7a71acdd13b08ce402f6651a2890add1886b0c6d513b7d1

See more details on using hashes here.

Provenance

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

This release

0.8.3 This release

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

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