eProsima/Integration-Service

Struct redefinition error with ROS2_SH and FastDDS_SH

cedricmelancon opened this issue · 1 comments

I'm trying to run the integration-service (from main branch taken 2 weeks ago) by configuring a ros2_dynamic SH and a fastdds SH.

My config YAML file is as follow:

systems:
    dds: { type: fastdds }
    ros2: {
        type: ros2_dynamic,
        namespace: "/",
        node_name: "ros2sh_node",
        domain: 0,
        using: [sensor_msgs]
    }

routes:
    ros2_to_dds: {
        from: ros2,
        to: dds
    }
    dds_to_ros2: {
        from: dds,
        to: ros2
    }

topics:
    camera_depth: {
        type: "sensor_msgs/Image",
        route: ros2_to_dds
    }

When I launch the following command:
integration-service ros2_mqtt.yaml

Then I get the following log:

[Integration Service][WARN] [is::sh::FastDDS] Participant not provided in configuration file. A participant using the default transport locators and Domain ID 0 will be created.
[Integration Service][INFO] [is::sh::FastDDS::Participant] Created Fast DDS participant 'default_IS-FastDDS-SH_participant' with default QoS attributes and Domain ID: 0
[Integration Service][INFO] [is::sh::FastDDS] Configured!
[Integration Service][INFO] [is::sh::ROS2_Dynamic] Adding types to Type Registry for ROS 2 Dynamic SystemHandle
terminate called after throwing an instance of 'eprosima::xtypes::idl::Parser::exception'
  what():  Parser exception (<no file>:95:5): Struct "Vector3" redefinition.
Aborted

Is it an issue or I'm doing something wrong for the configuration?

Note that I'm implementing a new SystemHandler and got the same issue with ROS2_SH.

I tried to change the ROS2 SH from dynamic to static and I get a different error:

[Integration Service][WARN] [is::sh::FastDDS] Participant not provided in configuration file. A participant using the default transport locators and Domain ID 0 will be created.
[Integration Service][INFO] [is::sh::FastDDS::Participant] Created Fast DDS participant 'default_IS-FastDDS-SH_participant' with default QoS attributes and Domain ID: 0
[Integration Service][INFO] [is::sh::FastDDS] Configured!
[Integration Service][INFO] [is::sh::ROS2] Created node '/is_ros2_node_1804289383' with Domain ID: 18446744073709551615
[Integration Service][INFO] [is::sh::ROS2] Configured!
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted