Skip to content

Master Thesis Project under the supervision of Dimos Dimarogonas, Victor Nan and Lefteris Vlahakis

Notifications You must be signed in to change notification settings

KTH-DHSG/LTL_CANOPIES_Synchronization_master_thesis

Repository files navigation

ltl_coordination

Overview

This metapackage provides an implementation of a LTL (Linear Temporal Logic) planner based on automaton graph. More information can be found in each package documentation. This package represent a ROS2 update of the ltl_automaton_core package for ROS2 with added functionalities for multi-robot coordination and synchronization.

Publication

D. Peron, V. Nan Ferdandez-Ayala, E. V. Vlahakis, and D. V. Dimarogonas, "Efficient Coordination and Synchronization of Multi-Robot Systems Under Recurring Linear Temporal Logic", TODO: ADDING DETAILS OF THE PUBLICATION ONCE AVAILABLE

The original ROS planner is detailed in the following publication:

R. Baran, X. Tan, P. Varnai, P. Yu, S. Ahlberg, M. Guo, W. Shaw Cortez, and D. V. Dimarogonas, "A ROS Package for Human-In-the-Loop Planning and Control under Linear Temporal Logic Tasks", presented at the IEEE 17th International Conference on Automation Science and Engineering (CASE), 2021. To cite this work:

@INPROCEEDINGS{9551648,
  author={Baran, Robin and Tan, Xiao and Varnai, Peter and Yu, Pian and Ahlberg, Sofie and Guo, Meng and Cortez, Wenceslao Shaw and Dimarogonas, Dimos V.},
  booktitle={2021 IEEE 17th International Conference on Automation Science and Engineering (CASE)}, 
  title={A ROS Package for Human-In-the-Loop Planning and Control under Linear Temporal Logic Tasks}, 
  year={2021},
  volume={},
  number={},
  pages={2182-2187},
  doi={10.1109/CASE49439.2021.9551648}}

Installation

Dependencies

In the following we will specify specifi version for the software used to guarantee compatibility among them

  • Robot Operating System 2 (ROS2), package tested on Humble distribution on Ubuntu 22.04

  • LTL2BA. ROS2 package wrapping for the LTL2BA software by Dennis Oddoux and Paul Gastin.

    • Clone the repository from Github in your ros workspace:
    cd ros2_ws/src
    git clone --branch ros2 https://github.com/KTH-DHSG/ros_ltl2ba.git
    
  • PLY (Python Lex-Yacc) (Version 3.11 Required)

    pip3 install ply==3.11
    
  • NetworkX. Software for complex networks analysis in Python (Version 2.4 Required).

    pip3 install networkx==2.4
    
  • PyYAML. (Version 5.4.1 Required).

    pip3 install pyyaml==5.4.1
    

Specific Dependencies for ltl_automaton_synchronization and synchronization_experiments

  • CasADi. Open-source tool for nonlinear optimization and algorithmic differentiation (Version 3.6.5 Required).

    pip3 install casadi==3.6.5
    
  • gurobipy. Optimization solver (Version 11.0.1 Required).

    pip3 install gurobipy==11.0.1
    
  • SciPy. Software used in the manipulation (Version 1.8.0 Required).

    pip3 install scipy==1.8.0
    
  • NumPy. (Version 1.21.5 Required).

    pip3 install numpy=1.21.5
    
  • Matplotlib. Software used to plot the results of experiments. (Version 3.5.1 Riquired).

    pip3 install matplotlib=3.5.1
    
  • CycloneDDS implementation for ROS2. Required for simulation with a high number of robots or experiments in the lab. It removes big comunication delays in the experimental setup and the use or more agents with reliable comunication in the simulations.

    sudo apt install ros-humble-rmw-cyclonedds-cpp
    

    and then export in each terminal window the user will start a node with:

    export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
    

    or equivalently add it to ~/.bashrc to run the command on evry new window opend with:

    echo 'export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp' >> ~/.bashrc
    
  • ros2_domain_bridge Bridge to allow the comunication between different ROS_DOMAIN_ID this is required in the manipulation since the code developed for that tas was not compatible with CycloneDDS and to avoid the delays it was necessary to use a different ROS_DOMAIN_ID for the robot that executes the manipulation.

    sudo apt install ros-humble-domain-bridge
    

    The configuration file for our specific scenario is avilable here. To run the bridge by itself use:

    ros2 run domain_bridge domain_bridge ~/ros2_ws/src/LTL_CANOPIES_Synchronization_master_thesis/synchronization_experiments/synchronization_experiments/launch/paper/bridge_config.yaml
    
  • motion_capture_system_r2 ROS2 version of the software required to use the Qualysis motion capture system in the lab. To install refer to the linked repository.

Building

To build the package, clone the current repository in your ros2 workspace and build it.

cd ros2_ws/src
git clone https://github.com/KTH-DHSG/LTL_CANOPIES_Synchronization_master_thesis.git

Build your workspace with colcon build

cd ...
colcon build

Usage

This package is not meant to be used on its own. It provides an LTL planner node that can be interfaced with an external agent package. Nevertheless an example launch file can be run using the following command:

ros2 launch ltl_automaton_planner ltl_planner_example_launch.py

It will launch a planner using the formula provided in the launch file ltl_automaton_planner/launch/ltl_planner_example_launch.py and using the transition system specified in ltl_automaton_planner/config/example_ts.

ltl_automaton_synchronization usage

For the details on how to use this specific package refere to the synchronization_experiments package.

Packages

This metapackage is composed of the following packages.

About

Master Thesis Project under the supervision of Dimos Dimarogonas, Victor Nan and Lefteris Vlahakis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published