Skip to content

DHBW-Smart-Rollerz/state_machine

Repository files navigation

State Machine Package

Build Test

This repository contains the state machine package for ros2 (python).

State Machine Concept

The state machine has for each discipline a separate FSM that are all contained in one top level state machine.

Free Drive

States

  • Start = while being in the startbox and waiting for it to open
  • Driving = while driving around the track

Obstacle Avoidance

States

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

Installation

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

Structure

  • config/: All configurations (most of the time yaml files)
  • launch/: Contains all launch files. Launch files can start multiple nodes with yaml-configurations
  • resource/: Contains the package name (required to build with colcon)
  • state_machine: Contains all nodes and sources for the ros package
  • test/: Contains all tests
  • package.xml: Contains metadata about the package
  • setup.py: Used for Python package configuration
  • setup.cfg: Additional configuration for the package
  • requirements.txt: Python dependencies

Contributing

Thank you for considering contributing to this repository! Here are a few guidelines to get you started:

  1. Fork the repository and clone it locally.
  2. Create a new branch for your contribution.
  3. Make your changes and ensure they are properly tested.
  4. Commit your changes and push them to your forked repository.
  5. Submit a pull request with a clear description of your changes.

We appreciate your contributions and look forward to reviewing them!

License

This repository is licensed under the MIT license. See LICENSE for details.

About

The state machine for the smarty project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •