Skip to main content

CLI tool for testing Hydrakon packages

Project description

Hydrakon CLI

Hydrakon CLI is a diagnostic and validation tool designed for autonomous racing systems. It provides a suite of utilities to verify system health, validate ROS 2 topics against strict configurations, and visualize coordinate transform (TF) trees in real-time.

This tool simplifies the pre-race check procedure by automating the verification of hardware interfaces, sensor data streams, and software states.

Installation

From PyPI

To install the latest stable version:

pip install hydrakon

From Source (Development)

For active development or deployment on specific hardware (e.g., NVIDIA Jetson):

git clone https://github.com/Atlas-Racing/Hydrakon-CLI.git
cd Hydrakon-CLI
pip install -e .

Configuration

Hydrakon uses a hydrakon.yaml file in the working directory to define expected system states.

Structure

topics:
  - name: /scan
    type: sensor_msgs/msg/LaserScan
    hz: 10
    tolerance: 0.1  # Allow +/- 10% deviation

  - name: /odometry/filtered
    exists: true    # Only check if topic is active

frames:
  - name: map
  - name: odom
  - name: base_link

Commands

Interface Testing

Checks for the presence and operational state of specific hardware interfaces.

Command:

hdk test can0

Behavior:

  • Verifies if the network interface can0 exists.
  • Checks if the interface state is UP.
  • Returns an error code if the interface is missing or down.

Topic Validation

Validates active ROS 2 topics against the hydrakon.yaml configuration.

Command:

hdk test topics

Options:

  • --all: Lists all active topics on the system, highlighting those that are present but not configured in the YAML file.
  • --config <path>: Specify a custom configuration file path (default: hydrakon.yaml).

Checks Performed:

  1. Existence: Is the topic published?
  2. Type: Does the message type match the configuration?
  3. Frequency (Hz): Is the publishing rate within the specified tolerance?

TF Visualization

Captures and displays the Transform (TF) tree structure directly in the terminal.

Command:

hdk show tfs

Options:

  • --all: Displays the entire TF tree found on the system, ignoring filters.
  • --duration <seconds>: Sets the listening duration (default: 5.0s).
  • --debug: Prints raw capture data and parsing logs for troubleshooting.

Behavior:

  • Listens to /tf and /tf_static for the specified duration.
  • Parses the transform hierarchy.
  • Renders an ASCII tree view of the coordinate frames.
  • By default, filters the view to show only frames listed in hydrakon.yaml to reduce noise.

Release Process

To release a new version to PyPI:

  1. Run the release helper script:
    python release_helper.py
    
  2. Enter the new version number when prompted.
  3. Select the target repository (TestPyPI or PyPI).
  4. Provide credentials when requested.

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

hydrakon-0.1.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

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

hydrakon-0.1.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file hydrakon-0.1.0.tar.gz.

File metadata

  • Download URL: hydrakon-0.1.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for hydrakon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1124e9453126f6f25403ea337afbd3831d7388b991520fe15f3a4e3cbdfe98dd
MD5 3d4566c3be8db86df4f37dd8f78b8037
BLAKE2b-256 cbf001dd7ee8b0ba5b0842822486f6232d420a8f6bf2f2dd78a36430b9c39dc4

See more details on using hashes here.

File details

Details for the file hydrakon-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hydrakon-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for hydrakon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e3a5c770520964237dcf1f615d09644ccee808d80dacddd2d3822c1a56e245a
MD5 49e2a5b0d7e42a9e61d7a6b2078477b6
BLAKE2b-256 f3d71565725b45ab41fa09e68025601b3e88c18729cd2894292ae3b2f9ea1156

See more details on using hashes here.

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