SIMATIC ROS Connector - ROSie¶
ROSie is a command-line-based code generation tool designed to facilitate the integration of ROS 2 with SIMATIC Software PLC connections based on shared memory (RIB). It operates based on a YAML configuration file to generate the required code.
⚠️ Disclaimer: The usage of this software for safety-related applications is not intended.
Table of Contents¶
Requirements¶
To utilize ROSie there are two systems involved:
- Engineering System: Used to run the ROSie generator (e.g., an engineering machine with a Linux operating system).
- Runtime System: Used to execute the generated code (e.g., a SIMATIC Industrial OS system with RIB and Software PLC).
1. Engineering System Requirements¶
Hardware¶
- Any x86/x64 based system with at least 1 GB of free disk space
Software (all of the listed)¶
- Linux operating system (e.g. SIMATIC Industrial OS, Ubuntu, Debian)
- ROS 2 Humble / Jazzy
- Docker (+ Docker Compose plugin) >= v20.x.y
- TIA Portal v19
2. Runtime System Requirements¶
Hardware (one of the listed)¶
All of the listed devices have been tested and verified to work with ROSie generated code.
This list is non-exhaustive and other devices might work with ROSie too as long as they fulfil the following software requirements.
Software (all of the listed)¶
- SIMATIC Industrial OS = v3.4.2
- Realtime Information Backbone (RIB) = v2.1.1
- SIMATIC S7-1500 Software Controller = v30.1 (CPU 1505SP (F) pre-installed on the Open Controller; CPU 1507S - (F), CPU 1508S - (F) are independent products that need to be bought in addition to an IPC)
- ROS 2 Humble / Jazzy environment to run the generated ROS 2 package (native or dockerized)
Setup¶
Detailed setup instructions are available in the setup instructions. The setup process describes the ROSie workspace configuration via a provided installation script.
Usage¶
Once the setup is complete, you can enter the ROSie generator environment by executing:
start-rosie
This command launches the ROSie
container. Inside the container, you can use the start-rosie
command with the appropriate arguments as described in the command-line interface guide.
Example command using the valid_config_example.yaml
file in the input
directory (see the ROSie YAML syntax documentation):
rosie -c valid_config_example.yaml
For a detailed walkthrough of the generation process, refer to the detailed usage guide.
Limitations¶
⚠️ ROSie relies on the Software PLC and RIB as underlying protocol for data exchange, which impose certain limitations on memory usage, data types, and generated source code. These limitations are detailed in the limitations section.
Troubleshooting¶
For known issues and their resolutions, refer to the troubleshooting section.