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

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.8.1.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.1-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.1-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.1-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.1-cp311-cp311-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

kompass_core-0.8.1-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.1-cp310-cp310-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

kompass_core-0.8.1-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.1-cp39-cp39-manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

kompass_core-0.8.1-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.1-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.1.tar.gz.

File metadata

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

File hashes

Hashes for kompass_core-0.8.1.tar.gz
Algorithm Hash digest
SHA256 0d08d9e7b843d00c8ca059e27969a7d760474e5af928d51f14da9dd98d7fe118
MD5 a413261cea525d16c42e100d533d1548
BLAKE2b-256 d7dbd45aaa48d5e80f019e492f1772be8aeef253245a902b8f8b1cd92ac3dd6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e7642f12130865b33b3964e27a344f7636b95bf01877b5097ae2527defc1bfe
MD5 7cf704a696295ef98a79273ce7926bfb
BLAKE2b-256 6a3bc2e2cefeeefc1e4e936b36f1e282cba61ba66f59dfa20c6d48e621aebd53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp312-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ab6dd1019a39ba4407d0fb02eb03466f5e069d405ebd2dd8d9424b8e974e6473
MD5 1e44c4c5f1432e0e02d26d21d135f858
BLAKE2b-256 12b86b5facf104967e031ec7f59780e2067ab68bb54443b56c70fd60a2cff2f3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62c9233e701a66e47f62e4b598cf093c231821b6345c8cc7e625c3e2b8ba8f67
MD5 059ffbb03db7c10c237cbbedeca2fb52
BLAKE2b-256 f0d9b1715e94d2a0ed42be54a717678f0c9f6282a1d93ab837c6565ee25b37ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 12a959050653901b7a7e83948c1316f53ab31f4ba56d7c49a0ace6584ab3a61d
MD5 1ce96e2a98aee5b4c49940d26b703959
BLAKE2b-256 44e2de20812b5829986a2a584b6cb9ba08e03a6ddea0a26ea65ee48185e1e879

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e4ca096d0a3c48848ebd9dfa49ff9c0963a22f2490fd4a93b4cdb03e1937b70e
MD5 976b55fe3ad0824a8a977c77597e06ea
BLAKE2b-256 3f8733b3eb0f269af4df5ccecd4105f987aa775e39747cc17197d95e2aca7478

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df191c613e2384873175d5cabefc723e079df85665cc45d3c6bf3b633f414b1d
MD5 623b0d63b85f9487dcdead0b2ef92519
BLAKE2b-256 d369e29207f9b789c058dc411e72211368b33d4c4631249a1511c21bc30417b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ab35d5d174b84b7e7e40ad03d521ec85c78d7cb0d4865d0c30d1c1d6e83af42
MD5 10fbb6d41decb19a70f4b03f157a2c47
BLAKE2b-256 8b2f1b7a5d036dcb04681d57ea9112d8056448c6b0fc2f92b60f25a652f95a38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7ca5b805db5b2559c9a0d4295ba76e7b90c77999a9eaebcb29a0457137a26c40
MD5 8909e1dcf205615f93792e16476c2212
BLAKE2b-256 af6b99bdf7730e1794f57f11585f00716ca7d65ebbeeb046e6cab01c5bf9eef5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd1b883e5bbf4eea29ce739145b92af7f82a38a1ce59eebeca4f6d3445448b63
MD5 4b5cdbbd9796335ed5deb52f5fd891d3
BLAKE2b-256 be0a6c605502f4b13f23fa5d259d9085b244a8d2ea336ea7a86085853e5a5882

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for kompass_core-0.8.1-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1dfe0d304ec83eaa3cff9fcaeb498d4dfaec26157b24b32e3179fd629b666cfe
MD5 cd168977be403f93ac4d9a9a0146c118
BLAKE2b-256 d95c843bc594c65cccb27eed4064ef44521e1fe5e4305f13b7f04efbdaf8ba57

See more details on using hashes here.

Provenance

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

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