Troubleshooting¶
Environment Variable Errors¶
This kind of error occurs, if the user did not setup the host environment properly e.g. via the setup guideline or manually by setting the host environment variables in the .env file
accordingly, e.g. like shown below.
# [REQUIRED]
# The users ROS 2 base installation path share directory that contains all standard interfaces including their .msg files.
# This directory has to be be mounted in the ROSie container to be able to lookup all standard types.
# Default: /opt/ros/humble
USER_ROS2_INSTALLATION_PATH=/opt/ros/humble
# [OPTIONAL]
# The user directory where the optionally needed custom interface is installed, e.g. /home/user/ros2_ws/install
USER_ROS2_INTERFACE_INSTALLATION_PATH=/home/user/ros2_ws/install
# [REQUIRED]
# The current directory where this .env file and the whole provided ROSie workspace is located
USER_ROSIE_WORKSPACE_PATH=/home/user/rosie_ws
USER_ROSIE_WORKSPACE_PATH¶
The USER_ROSIE_WORKSPACE_PATH
environment variable defines the path to your actual ROSie workspace. Here, the input
and output
directories as well as the docker-compose.yaml
and .env
files should be located.
⚠️ Variable Not Defined¶
If you did not define the ROSie workspace, where the input/output directories are located, the following error will be displayed:
$ rosie -c example_config.yaml
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:49:48 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Environment variable <USER_ROSIE_WORKSPACE_PATH> is not declared.
⚠️ Wrong Workspace¶
If you provided a workspace path, that is not existing, the following error should be displayed:
$ rosie -c example_config.yaml
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:50:24 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Environment variable path </home/user/non_existing_path> does not exist.
✔️ Possible Solution¶
As a solution, the install script scripts/install_rosie_environment.sh
can be executed, or the environment variable USER_ROSIE_WORKSPACE_PATH
(.env file) can be set manually.
USER_ROS2_INSTALLATION_PATH¶
If you are using standard ROS 2 interface configurations e.g. geometry_msgs/msg/Twist, the USER_ROS2_INSTALLATION_PATH
environment variable is crucial for ROSie to locate your standard ROS 2 installation directory.
This variable should point to the root directory of the ROS 2 installation, where all .msg definitions are located.
⚠️ Variable Not Defined¶
If the USER_ROS2_INSTALLATION_PATH
environment variable is not defined, ROSie will not be able to find necessary standard ROS 2 message definitions, leading to errors during gathering all data type information.
The following error message will be displayed:
$ rosie -c example_config.yaml
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:51:23 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Gathering ROS 2 message types information ...
Environment variable <USER_ROS2_INSTALLATION_PATH> is not declared.
⚠️ Wrong ROS 2 Installation Path¶
If the provided USER_ROS2_INSTALLATION_PATH
points to a directory, which does not exist, the output should look like the following:
$ rosie -c example_config.yaml
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:52:45 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Gathering ROS 2 message types information ...
Environment variable path </home/user/non_existing_ros2_install_path> does not exist.
✔️ Possible Solution¶
You can solve those issues by either running the install script scripts/install_rosie_environment.sh
or manually setting the environment variable USER_ROS2_INSTALLATION_PATH
.
With the manual step, the USER_ROS2_INSTALLATION_PATH
variable needs to point to the correct path of your ROS 2 installation. This can be a standard ROS 2 installation like /opt/ros/humble
or a custom installation such as /home/user/custom_ros2/install
.
Note that the naming extension .../install
is important if you are using a custom ROS 2 installation.
USER_ROS2_INTERFACE_INSTALLATION_PATH¶
In addition to standard ROS 2 message types, you can define and provide custom .msg definitions to ROSie.
Therefore, the environment variable USER_ROS2_INTERFACE_INSTALLATION_PATH
has to be set to provide the path to your custom ROS 2 interface installation directory e.g. /home/user/ros2_ws/install
.
⚠️ Type Not Found¶
If you defined custom ROS 2 .msg definitions and the USER_ROS2_INTERFACE_INSTALLATION_PATH
environment variable is not defined, ROSie will not be able to find the corresponding custom ROS 2 message definitions, leading to errors during the gathering of all data type information.
An output like the following will be displayed:
$ rosie -c custom_config.yaml
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:53:36 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Gathering ROS 2 message types information ...
Could not find ROS 2 type file <custom_msgs/msg/CustomType.msg>. Make sure the ENV variable <USER_ROS2_INTERFACE_INSTALLATION_PATH> is set if you provided a custom ROS 2 interface in the YAML config.
✔️ Possible Solution¶
You can solve those issues by either running the install script scripts/install_rosie_environment.sh
or manually setting the environment variable USER_ROS2_INTERFACE_INSTALLATION_PATH
.
Usage Errors¶
As ROSie is a command line tool, errors can occur easily and therefore, the following common errors can occur.
Ownership of start-rosie
Script¶
It could occur that the start-rosie
script in /usr/local/bin
has a problem with the ownership when using the binary installer.
$ start-rosie
/bin/bash: /usr/local/bin/start-rosie: Permission denied
✔️ Possible Solution¶
You can fix it changing the ownership of the script:
sudo chown $USER:$USER /usr/local/bin/start-rosie
No Configuration File¶
⚠️ ROSie is used with the --config [-c]
parameter but without the required YAML configuration file name.
$ rosie -c
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:54:01 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Invalid option provided: missing argument for -c
✔️ Provide the exact name of the YAML configuration file that your want to use and which is placed in the input directory
of your ROSie workspace.
Wrong Configuration File Name¶
⚠️ ROSie is used with the --config [-c]
parameter and a non-existing YAML configuration file.
$ rosie -c non_existing_config.yaml
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:54:51 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
YAML configuration file <non_existing_config.yaml> does not exist in workspace input directory.
✔️ Provide the name of a YAML configuration file name, which file exists in the ROSie workspace input directory
.
No PSC File¶
⚠️ ROSie is used with a valid YAML configuration file as well as the --psc_file [-t]
parameter, but without a corresponding .psc file name.
$ rosie -c example_config.yaml -t
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:55:27 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Invalid option provided: missing argument for -t
✔️ Provide a .psc file, that exists in the ROSie workspace input directory
.
Note that this parameter combination only makes sense with the use of the --non_interactive [-y] flag to go through the whole generation process without user interaction.
Wrong PSC File Name¶
⚠️ ROSie is used with a valid non-interactive parameter combination but with providing a .psc file name, that either does not exist in the input directory or is spelled wrong.
$ rosie -y -c example_config.yaml -t non_existing_project.psc
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:57:11 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
TIA project .psc file <non_existing_project.psc> does not exist in workspace input directory.
✔️ Provide a .psc file, that exists in the ROSie workspace input directory
or is spelled correct.
Missing PSC File in Non-Interactive Mode¶
⚠️ ROSie is used in non-interactive mode (-y), which requires the .psc file an additional argument.
$ rosie -c example_config.yaml -y
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:58:54 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
The argument --psc_file [t] and .psc file name must be set in non-interactive mode.
✔️ Extend the command with the parameter --psc_file
or -t
plus the name of the .psc file you want to use and which is placed in the ROSie workspace input directory
.
Wrong PSC File For Provided YAML Configuration¶
⚠️ ROSie is used in non-interactive mode with a YAML configuration, that does not match the provided .psc file. Therefore the ROSie API code fails to compile.
$ rosie -y -c project_1.yaml -t project_2.psc
##################################### ROSie #####################################
# Version: 0.2.0 #
# Date: 08.05.2025 #
# Time: 15:59:28 #
# Copyright © Siemens AG, 2025, and licensors. All rights reserved. #
# Portions include Open Source Software. See ReadMe_OSS_0.2.0.html for details. #
# The usage for safety-related applications is not intended. #
###################################################################################
Gathering ROS 2 message types information ...
Generating PLC code ...
Generating ROSie API library and ROS 2 package ...
Could not generate ROSie API code.
✔️ Provide a .psc file, that was previously generated with the same YAML configuration based PLC code.