Skip to main content

Navigation Algorithms Library for Kompass

Project description

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, while the Linear Scale plot is useful for comparing performance within similar hardware classes. See the benchmarking details for how these plots were generated and what tasks were measured.

Logarithmic Scale (CPU vs GPU Comparison)

Logarithmic Benchmark Results

Linear Scale (Absolute Time)

Linear Benchmark 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.

Project details


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.7.0.tar.gz (2.3 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.7.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

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

kompass_core-0.7.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

kompass_core-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

kompass_core-0.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

kompass_core-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

kompass_core-0.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

kompass_core-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

kompass_core-0.7.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

kompass_core-0.7.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

kompass_core-0.7.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

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

File metadata

  • Download URL: kompass_core-0.7.0.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kompass_core-0.7.0.tar.gz
Algorithm Hash digest
SHA256 e7a148e91ffd3939d853f6a7089f16f800dc6f7f11fbd89d20f20cc5b7f31507
MD5 f983f6b73a5f691c270c91eb92646f0b
BLAKE2b-256 33f6f3499cb71c62ae59e87ba98b4d490bb2f3f5193aa98b3a8ed37795c69358

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3e84ce8b99fe9f2ab3ee2b05f8060e1420aead526c442857cb6354c9f1632aca
MD5 830fe2d5f6380b35fab16ad5acaef202
BLAKE2b-256 a88a89d33d43985ddd0a85076f99cb8db13d0beb206f32bb238796fbd1d2d888

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp312-abi3-manylinux_2_27_x86_64.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.7.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bda692e485cce4f9d351113acff21e166a896175ae6acb82e15c21d5f20f597a
MD5 bbe3de5a3f4cff9e20e2fd5b04d3d68b
BLAKE2b-256 09721ed8264e64a6d5318214387e9ec4f0958c2e6c9123f368e2bbb467a0ccea

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp312-abi3-manylinux_2_27_aarch64.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.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64bac199ff28e8c98ecececb37b594e90298fb5090fec5d9b734126370d875f8
MD5 d2674262cc8ba12f0f722528e335e44c
BLAKE2b-256 d697ec57c1c155ba164dee43cb305282e318391e0418bbf59910d903e4168e65

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp311-cp311-manylinux_2_27_x86_64.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.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba1051401ee1b1216030463de0952a63528e715193c8c954f38ca24573fdf6e3
MD5 4bf925cb5c56756687228f4592aff467
BLAKE2b-256 0fcbbb36b5de03909a8b79cb25694b5227693f3789dc1e98573f6517a522bccd

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp311-cp311-manylinux_2_27_aarch64.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.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1bf198ca232bafe8924a9f22bcde6d19e0770cfa07d5d2b8fefc9bd484576c20
MD5 ebeb976ebf2e9584e02932417e2a477d
BLAKE2b-256 a112b8b521dbdf5fd8c6b192dbf52d813c58e223084a108e885c9c31f573fc4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp310-cp310-manylinux_2_27_x86_64.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.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c63271371b51f00223b61582d919ff8d5656af98de78a2dc0080a4b0ee4a48f4
MD5 10f1422276d0e3d3b2e8701aaa0d7038
BLAKE2b-256 043a9da7336bc88065d2e4caa8bb40826768337a6bd7c7a3f26a7e6530495025

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp310-cp310-manylinux_2_27_aarch64.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.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3e64bea77b0cebde70c768d74e1f7794f2ea8a74193c6851086a35eacd60e05b
MD5 a3b17dcef3c91c8ea4e747e5e7951693
BLAKE2b-256 0d97dd4c7635f64148599df68e602acaa09bbca65464f9583e886da6b967673a

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp39-cp39-manylinux_2_27_x86_64.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.7.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d9d9b9a0dfcee30f866a96c669ed44c9699affb80f2077900026c2d1f6ddfd8
MD5 f0efcf58162e45a0a34030375cd5b826
BLAKE2b-256 01612c30c263b89bd16961f3e4d7ab27ef1d351f821b5ef44c370fcdb0670694

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp39-cp39-manylinux_2_27_aarch64.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.7.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf75ac76d142c46a5628afdbdb1329fd5654dfd8911b24dd39bb7625c1807fa9
MD5 0e0da13e05f705c4124060fd11fa9305
BLAKE2b-256 146ac7e90137fa0e921a4a12e17cacefab0f3430247ecde21f0069880c3e75d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp38-cp38-manylinux_2_27_x86_64.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.7.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kompass_core-0.7.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8935059a721b756a31076c2094a200a72ea2dfbe8369782baa1d9d0a2ced5c19
MD5 be4ec1a5328770c57cc5ad246088ecca
BLAKE2b-256 f3d84bbcd9ea18ddfd0ed62450dc605ec8a93cce0691261137084db4ed91a3b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for kompass_core-0.7.0-cp38-cp38-manylinux_2_27_aarch64.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.

Supported by

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