This repository contains the state machine package for ros2 (python).
The state machine has for each discipline a separate FSM that are all contained in one top level state machine.
- Start = while being in the startbox and waiting for it to open
- Driving = while driving around the track
The different states in the obstacle avoidance more
- Start = while being in the startbox and waiting for it to open
- Driving = while driving normally without any specific scenario
- Parking = while being in parking area
- No-Passing Zone = while being in the no-passing zone
- Expressway = while being in the expressway
- Pedestrian Crossing = when a pedestrian crossing is detected until it is passed
- Intersection = when an intersection is detected until it is passed (can be divided down into the different intersection types)
- Overtaking = when an obstacle is detected until it is fully passed
- Barred Area = when in front of a barred area until it is passed
For the potential error where a long outdatet package 'nose' is used: File "/home/smartrollerz/.pyenv/versions/default/lib/python3.12/site-packages/nose/importer.py", line 12, in from imp import find_module, load_module, acquire_lock, release_lock ModuleNotFoundError: No module named 'imp'
pip uninstall nose
fixed it for me
config/
: All configurations (most of the time yaml files)launch/
: Contains all launch files. Launch files can start multiple nodes with yaml-configurationsresource/
: Contains the package name (required to build with colcon)state_machine
: Contains all nodes and sources for the ros packagetest/
: Contains all testspackage.xml
: Contains metadata about the packagesetup.py
: Used for Python package configurationsetup.cfg
: Additional configuration for the packagerequirements.txt
: Python dependencies
Thank you for considering contributing to this repository! Here are a few guidelines to get you started:
- Fork the repository and clone it locally.
- Create a new branch for your contribution.
- Make your changes and ensure they are properly tested.
- Commit your changes and push them to your forked repository.
- Submit a pull request with a clear description of your changes.
We appreciate your contributions and look forward to reviewing them!
This repository is licensed under the MIT license. See LICENSE for details.