https://github.com/dadananjesha/lifreader
LIFReader provides a streamlined way to understand and work with AGV systems. Whether you're an integrator, system designer, or researcher, LIFReader offers a valuable toolkit for navigating the world of automated vehicle layouts.
https://github.com/dadananjesha/lifreader
docker layout-interchange-format lif lifreader open-source published pypi-package robots vda5050 vdma
Last synced: 2 months ago
JSON representation
LIFReader provides a streamlined way to understand and work with AGV systems. Whether you're an integrator, system designer, or researcher, LIFReader offers a valuable toolkit for navigating the world of automated vehicle layouts.
- Host: GitHub
- URL: https://github.com/dadananjesha/lifreader
- Owner: DadaNanjesha
- License: mit
- Created: 2025-03-12T20:07:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-01T09:50:07.000Z (about 1 year ago)
- Last Synced: 2025-11-27T18:33:27.474Z (7 months ago)
- Topics: docker, layout-interchange-format, lif, lifreader, open-source, published, pypi-package, robots, vda5050, vdma
- Language: Python
- Homepage: https://pypi.org/project/LIFReader/
- Size: 185 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π LIFReader: Visualize and Understand AGV Layouts πΊοΈ
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://requires.io/github/your-username/LIFReader/requirements/?branch=main)
[](https://www.python.org/dev/peps/pep-0008/)
## β¨ Overview
LIFReader is a powerful Python tool designed to **parse, visualize, and analyze AGV (Automated Guided Vehicle) layouts** defined in the Layout Interchange Format (LIF). Imagine effortlessly transforming complex AGV track layouts into clear, insightful visualizations β that's what LIFReader empowers you to do!
Inspired by the VDA 5050 standard, LIFReader provides a streamlined way to understand and work with AGV systems. Whether you're an integrator, system designer, or researcher, LIFReader offers a valuable toolkit for navigating the world of automated vehicle layouts.
## π Key Features
* **Effortless LIF Parsing**: Seamlessly converts LIF files into a structured graph representation.
* **Stunning Visualizations**: Transforms AGV layouts into easily understandable visual maps using Matplotlib.
* **Fully Configurable**: Customize visualization settings (colors, nodes sizes, labels) via a simple `config.json` file.
* **Logging Support**: Track script activity with comprehensive logging for debugging and analysis.
* **Lightweight and Modular**: Easy to integrate into existing projects and workflows.
## π οΈ Installation
Get LIFReader up and running in a few simple steps:
1. **Clone the repository:**
```
git clone https://github.com/your-username/LIFReader.git
cd LIFReader
```
2. **Install the dependencies:**
```
pip install networkx matplotlib pydantic
```
## π Quick Start
Ready to visualize your AGV layout? Follow these steps:
1. **Configure `config.json`**:
* Update the `lif_file` path in `config.json` to point to your LIF file.
* Customize graph appearance in the `graph_settings` section.
2. **Run the script:**
```
python main.py
```
β¨ Voila! β¨ You'll see a Matplotlib window displaying your AGV layout. An image file is created by the script to the file path you provided in the filepaths section.
## βοΈ Configuration
The `config.json` file puts you in control! Here's a breakdown of the key settings:
* **`file_paths`**: Specify file locations.
* `lif_file`: Path to your LIF JSON file.
* `output_graph`: (Optional) Path to save the visualization as a PNG image.
* **`graph_settings`**: Customize the look and feel of the graph.
* `node_size`: Size of nodes.
* `node_color`: Color of nodes.
* `with_labels`: Show/hide node labels.
* `edge_color`: Color of edges.
* `edge_width`: Width of edges.
* `edge_alpha`: Edge transparency.
* `edge_style`: Edge line style ("solid", "dashed", etc.).
* `edge_connectionstyle`: Edge curvature ("-" for straight lines).
* **`logging`**: Configure logging behavior.
* `log_level`: Set the logging level ("INFO", "DEBUG", "WARNING", "ERROR").
* `log_file`: Specify the log file path.
* **`command_line_args`**: Enable or disable features.
* `lif`: Enable LIF parsing.
* `visualize`: Enable graph visualization.
## ποΈ Project Structure
LIFReader is thoughtfully organized for clarity and maintainability:
```
LIFReader/
βββ lif_reader/
β βββ init.py
β βββ json_reader.py
β βββ graph/
β β βββ init.py
β β βββ graph_renderer.py
β β βββ lif_graph.py
β βββ models/
β β βββ init.py
β β βββ action.py
β β βββ action_parameter.py
β β βββ control_point.py
β β βββ edge.py
β β βββ layout.py
β β βββ lif.py
β β βββ load_restriction.py
β β βββ meta_information.py
β β βββ node.py
β β βββ station.py
β β βββ trajectory.py
β β βββ vehicle_type_edge_property.py
β β βββ vehicle_type_node_property.py
β βββ utils/
β β βββ init.py
β β βββ config_loader.py
βββ files/
β βββ example2.json
βββ logs/
β βββ lif_reader.log
βββ config.json
βββ main.py
βββ requirements.txt
βββ setup.py
βββ LICENSE
βββ README.md
```
## π― Contributing
LIFReader thrives on community contributions! Whether you have bug fixes, new features, or documentation improvements, we welcome your input.
1. Fork the repository.
2. Create a feature branch (`git checkout -b feature/your-feature`).
3. Commit your changes (`git commit -am 'Add some feature'`).
4. Push to the branch (`git push origin feature/your-feature`).
5. Create a new Pull Request.
## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## π Acknowledgements
* This project was created according to VDMA.
* Thanks to the open-source community for providing valuable libraries and resources.
## βοΈ Support & Call-to-Action
If you find this project useful, please consider:
- **Starring** the repository βοΈ
- **Forking** the project to contribute enhancements
- **Following** for updates on future improvements
Your engagement helps increase visibility and encourages further collaboration!
---
Happy coding! πβ¨