eProsima/Integration-Service

soss-ros2 extension for that message type by calling soss_rosidl_mix(PACKAGES <package> MIDDLEWARES ros2) in your build system! Failed to load middlewares!

Closed this issue · 5 comments

When I running the sample file:
systems:
dds:
type: dds
dynamic types:
struct std_msgs__String:
string: "data"

ros2:
  type: ros2

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

topics:
hello_ros2: {type: "std_msgs/String", route: dds_to_ros2}
hello_dds: {type: "std_msgs/String", route: ros2_to_dds}

I will get the following error:

[soss-dds]: participant not provided in configuration file. UDP default participant will be created.
[soss-dds]: configured!
soss-ros2 could not find .mix file for message type: std_msgs/String
-- Make sure that you have generated the soss-ros2 extension for that message type by calling soss_rosidl_mix(PACKAGES MIDDLEWARES ros2) in your build system!
Failed to load middlewares!

refer to this link

Hi @golizheh,

Possibly the referenced link has solved your issue, if not, and the purpose for testing the enviroment with std_msgs/String, you can compile in the workspace soss-ros2-test. This will create automatically the conversion for this kind of message.

Hi
I still have this problem.
@friendsocket I have read the link but still same error.
@lemunozm I do not understand your comment, could you please explain a little more?

Thanks in advacnce

Hi @golizheh,
soss-ros2-test use std_msgs/String type internally, and will generate a .mix for its use. For that, as a workaround, if you can compile soss-ros2-test in your colcon workspace, you can use the .mix generated.