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
can0exists. - 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:
- Existence: Is the topic published?
- Type: Does the message type match the configuration?
- 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
/tfand/tf_staticfor 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.yamlto reduce noise.
Release Process
To release a new version to PyPI:
- Run the release helper script:
python release_helper.py - Enter the new version number when prompted.
- Select the target repository (TestPyPI or PyPI).
- Provide credentials when requested.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1124e9453126f6f25403ea337afbd3831d7388b991520fe15f3a4e3cbdfe98dd
|
|
| MD5 |
3d4566c3be8db86df4f37dd8f78b8037
|
|
| BLAKE2b-256 |
cbf001dd7ee8b0ba5b0842822486f6232d420a8f6bf2f2dd78a36430b9c39dc4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e3a5c770520964237dcf1f615d09644ccee808d80dacddd2d3822c1a56e245a
|
|
| MD5 |
49e2a5b0d7e42a9e61d7a6b2078477b6
|
|
| BLAKE2b-256 |
f3d71565725b45ab41fa09e68025601b3e88c18729cd2894292ae3b2f9ea1156
|