Skip to content

Repository files navigation

hybraut_nav

TODO: NEED TO UPDATE THIS README

hybraut_nav is a ROS 2 framework for implementing formal-method hybrid automata.
It supports a multi-hierarchical architecture, allowing you to define and customize automaton elements—such as states, modes, transitions, guards, resets, and dynamics—without heavy low-level coding.

This design makes it both flexible and high-performance, enabling advanced control logic for autonomous systems while preserving maintainability and modularity.

NOTE: for the full extensive documentation of this project, go to this page: [](https://www.notion.so/Automaton-Framework-2326804d21c580faa721edd1a8d4a914#2326804d21c580b99ac4eb5cdcc1966b)

Table of Contents

Installation

pre-requisites:

  • Must be within an instance of ubuntu using a version of ROS2 with version greater than humble.
  • pip must be installed and configured

installation steps:

mkdir -p ~/ros2_ws/src && git clone {} && git clone {} && cd hybraut_ros2 && pip install -r requirements.txt && cd ~/ros2_ws && colcon build --packages-select hybraut_interfaces hybraut_ros2 && . install/setup.bash 

assuming everything worked as expected this bash script should setup the hybraut_ros2 system in a ros2 environment and make it ready to use.

NOTE: the strategy layer runs a global planner for generating global waypoints, however the local planner is kind of like a combination

of both the tactical and controller layer, where tactical is hybrid automaton and controller is a high level ideal velcotiy/yaw rate

computation unit which output the low level controller can generate a small trajectory using the sample desired yaw rate a velocity,

combination of both these layers is what deals with dynamic obstacles

Structure

The structure of the hybraut_ros2 project is as follows:

hybraut_ros2
├── example_hybraut_ros2_amdls
├── hybraut_aci
├── hybraut_common_behaviours
├── hybraut_execution_engine
├── hybraut_factory
├── hybraut_lifecycle
├── hybraut_models
├── hybrid-automaton.dockerfile
├── launch
├── LICENSE
├── package.xml
├── README.md
├── requirements.txt
├── resource
├── run_tests.sh
├── setup.cfg
├── setup.py
├── tests
└── utils

the objective of this project structure is to segment the different components of hybraut_ros2 into seperate packages based on their system operational phase. discussed in the architecture of the project.

Usage

examples implementation and demostration of this package in use can be found !()[]

License

colav_hybrid_eval is distributed under the terms of the MIT license.

About

HybrautNav a three layer navigation stack consisting of Strategy, Tactical and Controller Layers.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Used by

Contributors

Languages