Automatic conversion from fault trees into behavior trees
Project description
Fault Tree to Behavior Tree Converter
Overview
This project focuses on the conversion of fault trees, represented in draw.io diagram XML files, into behavior tree XML files compatible with the BehaviorTree.CPP library. It enables users to transform their fault tree diagrams into actionable behavior trees, facilitating integration with systems that utilize the BehaviorTree.CPP framework for managing complex behaviors.
Installation
Install with PyPI:
pip install ft2bt
Usage
The tool is designed to convert fault trees from draw.io diagram XML files into behavior tree XML files compatible with the BehaviorTree.CPP library. Here's how to use it:
Preparing Your Fault Tree Diagram
- Create or Open Your Fault Tree Diagram in Draw.io:
- First, visit draw.io to create or edit your fault tree diagram. You may refer to their documentation for guidance on using the tool.
- Diagram Structure & Symbols:
- Hazards: Represent hazards using rectangles. This is a required element in your diagram.
- Events: Depict events using circles. These are also required elements.
- AND/OR Gates: Use the respective symbols for AND/OR gates in your diagram. These are required for depicting logical relationships in the fault tree.
- Probabilities: Use text below the events to indicate the correspondent probability. Example:
p = 0.1
. These elements are not required.
- Exporting the Diagram as XML:
- Once your fault tree diagram is ready, you need to export it in XML format. In draw.io, go to
File
>Export as
>XML
to save your diagram as an XML file.
- Once your fault tree diagram is ready, you need to export it in XML format. In draw.io, go to
Warning!: All fault tree elements, with the exception of text probabilities, should be connected by directional arrows. Ensure that each arrow is physically attached to its corresponding elements to maintain clarity and accuracy in the diagram.
Preparing Your Hazard Analysis and Risk Assessment (Opitonal)
Create a *.csv file with some required column names:
- Item_ID: Identificator of the Item analyzed.
- Hazard_ID: Identificator of the possible Hazard. The ID must match with the name of the correspondent Hazard in the Fault Tree.
- Operating_Scenario_ID: Identificator of the Operating Scenario.
- ASIL: Automotive Safety Integrity Level. Options: A, B, C, D
- Safety_State_ID: Identificator of the Safety State action.
Running the Conversion Tool
Run the conversion command:
ft2bt [-h] -f FTA_FILEPATH [-v] [-c] [-r] [-o OUTPUT_FOLDER] [-p] [-H HARA_FILEPATH]
Where:
- -f: (Required) Specifies the XML global filepath name of the draw.io diagram.
- -v: (Optional) Automatically shows and saves the renders. Defaults to false.
- -c: (Optional) Generate a cpp ROS node template for the behavior tree. Defaults to false.
- -r: (Optional) Replaces current code if previously generated and -c is set to True.
- -o: (Optional) Specifies the global folder path, where the behavior tree XML diagram is saved.
- -p: (Optional) Probabilities are considered to sort the behavior tree nodes.
- -H: (Optional) Specifies the CSV global file name of the Hazard Analysis and Risk Assessment (HARA).
Output Example: Behavior Tree Diagram
Below is an example of the behavior tree diagrams generated from the fault tree. The XML file is loaded using Groot:
The order of the events is randomly selected in this version of the software. Future versions will sort the events by probability of occurrence.
Contact Information and Acknowledgement
For further information regarding this project, please feel free to reach out to Carlos Conejo.
This project was developed at the Institut de Robòtica i Informàtica Industrial (IRI), a joint university research center of the Polytechnic University of Catalonia (UPC) and the Spanish National Research Council (CSIC).
Research partially funded by the Spanish State Research Agency (AEI) and the European Regional Development Fund (ERFD) through the SaCoAV project (ref. PID2020-114244RB-I00). Also funded by Renault Group through the Industrial Doctorate "Safety of Autonomous Vehicles" (ref. C12507).
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
File details
Details for the file ft2bt-0.2.3.tar.gz
.
File metadata
- Download URL: ft2bt-0.2.3.tar.gz
- Upload date:
- Size: 108.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e9184cf58f937d22ef394d5416b0c06256bd10edd30df8564f2eef482722b0f |
|
MD5 | 0a240ed315aabd4f086d391b365a6116 |
|
BLAKE2b-256 | 4071095177346e175c4fe8b9fb40ee3cd60056c7c9b1a055d26a1900f00b1ac6 |
File details
Details for the file ft2bt-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: ft2bt-0.2.3-py3-none-any.whl
- Upload date:
- Size: 32.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 156796253bedeea360097604b60160fee528f1e557a65552221902ed40fcf71e |
|
MD5 | 3f56357b78a480367b63a4f739f8f884 |
|
BLAKE2b-256 | 2c341d3910f6e2c05ad5ff1e701cf9acf40134e5d01488335a751605166bf03f |