Page 1 of 2

Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 20 Jan 2023, 12:37
by formica
Hi all,
how can I interface a docker image of Ros2 (humble) with CoppeliaSim 4.4.0 on Ubuntu 22.10?
I see that libsimExtRos2.so is already in the main directory of CoppeliaSim... so, should I compile something?

Regards
formica

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 20 Jan 2023, 15:54
by fferri
No, normally you don't need to compile anything (unless you need to add support for more ROS 2 interfaces).

You should only take care of getting the two boxes to talk with each other (e.g. by configuring network, supplying a configuration for your ROS middleware of choice, etc...).

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 23 Jan 2023, 12:38
by formica
I don't have two containers. Ros2 is in a container while CoppeliaSim is on my host machine. So I suppose to expose ros2 to my ubuntu machine.
Any hint?

At this moment, after launching the ros2/osrf container, I obtain this error:
[CoppeliaSim:loadinfo] plugin 'ROS2': loading...
error: library ( /home/formica/CoppeliaSim/CoppeliaSim_Edu_V4_4_0_rev0_Ubuntu20_04/libsimExtROS2.so ) load: "Cannot load library /home/formica/CoppeliaSim/CoppeliaSim_Edu_V4_4_0_rev0_Ubuntu20_04/libsimExtROS2.so: (libstd_srvs__rosidl_typesupport_cpp.so: cannot open shared object file: No such file or directory)"
[CoppeliaSim:error] plugin 'ROS2': load failed (could not load). The plugin probably couldn't load dependency libraries. For additional infos, modify the script 'libLoadErrorCheck.sh', run it and inspect the output.

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 23 Jan 2023, 12:48
by fferri
Before the command executing coppeliaSim you need to source ROS 2 environment (e.g. source /opt/ros/...)

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 23 Jan 2023, 14:39
by Valenorf

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 26 Jan 2023, 15:47
by formica
Using Giulio Turrisi git repo I'm not able to load the ROS2 plugin interface

This is the error:

Code: Select all

[CoppeliaSim:error]   plugin 'ROS2Interface': load failed (could not load). The plugin probably couldn't load dependency libraries. For additional infos, modify the script 'libLoadErrorCheck.sh', run it and inspect the output.
Using libLoadErrorCheck.sh all dependencies seems to be satisfied.

Any idea?

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 30 Jan 2023, 10:24
by coppelia
That is strange, it should load in that case. Are you sure that you have sourced the ROS environment?

Cheers

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 02 Feb 2023, 16:47
by formica
Yes, it's sourced.
No way.

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 03 Feb 2023, 13:58
by coppelia
Using libLoadErrorCheck.sh all dependencies seems to be satisfied.
Did you appropriately modify the file libLoadErrorCheck.sh? If yes, that is starting to sound like a mystery to me...
Cheers

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Posted: 07 Feb 2023, 11:51
by formica
This is the output for 'ldd libsimExtROS2Interface.so.
Every lib seems to be satisfied:

Code: Select all

	linux-vdso.so.1 (0x00007ffef03ac000)
	libstd_srvs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libstd_srvs__rosidl_typesupport_cpp.so (0x000014a7a7c0e000)
	libexample_interfaces__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libexample_interfaces__rosidl_typesupport_cpp.so (0x000014a7a7bfe000)
	libimage_transport.so => /opt/ros/humble/lib/x86_64-linux-gnu/libimage_transport.so (0x000014a7a7b27000)
	librclcpp.so => /opt/ros/humble/lib/librclcpp.so (0x000014a7a720d000)
	libsensor_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libsensor_msgs__rosidl_typesupport_cpp.so (0x000014a7a7b1a000)
	librcutils.so => /opt/ros/humble/lib/librcutils.so (0x000014a7a7b02000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x000014a7a7adc000)
	libtf2_ros.so => /opt/ros/humble/lib/libtf2_ros.so (0x000014a7a7a41000)
	libtf2_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libtf2_msgs__rosidl_typesupport_cpp.so (0x000014a7a7a39000)
	librclcpp_action.so => /opt/ros/humble/lib/librclcpp_action.so (0x000014a7a71ec000)
	librcl_action.so => /opt/ros/humble/lib/librcl_action.so (0x000014a7a71d9000)
	liblibstatistics_collector.so => /opt/ros/humble/lib/liblibstatistics_collector.so (0x000014a7a71d2000)
	librcl.so => /opt/ros/humble/lib/librcl.so (0x000014a7a7194000)
	libstatistics_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libstatistics_msgs__rosidl_typesupport_cpp.so (0x000014a7a718f000)
	libtracetools.so => /opt/ros/humble/lib/libtracetools.so (0x000014a7a718a000)
	libgeometry_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libgeometry_msgs__rosidl_typesupport_cpp.so (0x000014a7a717f000)
	libstd_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libstd_msgs__rosidl_typesupport_cpp.so (0x000014a7a7172000)
	libbuiltin_interfaces__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libbuiltin_interfaces__rosidl_typesupport_cpp.so (0x000014a7a716d000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000014a7a6f43000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000014a7a6f23000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000014a7a6cfb000)
	/lib64/ld-linux-x86-64.so.2 (0x000014a7a7c16000)
	librosidl_typesupport_cpp.so => /opt/ros/humble/lib/librosidl_typesupport_cpp.so (0x000014a7a6cf5000)
	libaction_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libaction_msgs__rosidl_typesupport_cpp.so (0x000014a7a6ced000)
	libmessage_filters.so => /opt/ros/humble/lib/libmessage_filters.so (0x000014a7a6ce8000)
	librmw.so => /opt/ros/humble/lib/librmw.so (0x000014a7a6cdc000)
	libament_index_cpp.so => /opt/ros/humble/lib/libament_index_cpp.so (0x000014a7a6cd1000)
	libclass_loader.so => /opt/ros/humble/lib/libclass_loader.so (0x000014a7a6cbe000)
	librcpputils.so => /opt/ros/humble/lib/librcpputils.so (0x000014a7a6cb0000)
	libconsole_bridge.so.1.0 => /lib/x86_64-linux-gnu/libconsole_bridge.so.1.0 (0x000014a7a6ca8000)
	libtinyxml2.so.9 => /lib/x86_64-linux-gnu/libtinyxml2.so.9 (0x000014a7a6c90000)
	librcl_interfaces__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/librcl_interfaces__rosidl_typesupport_cpp.so (0x000014a7a6c85000)
	librcl_yaml_param_parser.so => /opt/ros/humble/lib/librcl_yaml_param_parser.so (0x000014a7a6c79000)
	librosgraph_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/librosgraph_msgs__rosidl_typesupport_cpp.so (0x000014a7a6c74000)
	librmw_implementation.so => /opt/ros/humble/lib/librmw_implementation.so (0x000014a7a6c65000)
	librcl_logging_interface.so => /opt/ros/humble/lib/librcl_logging_interface.so (0x000014a7a6c60000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000014a7a6b79000)
	libtf2.so => /opt/ros/humble/lib/libtf2.so (0x000014a7a6b5a000)
	librcl_logging_spdlog.so => /opt/ros/humble/lib/librcl_logging_spdlog.so (0x000014a7a6b53000)
	librcl_interfaces__rosidl_typesupport_c.so => /opt/ros/humble/lib/librcl_interfaces__rosidl_typesupport_c.so (0x000014a7a6b48000)
	librcl_interfaces__rosidl_generator_c.so => /opt/ros/humble/lib/librcl_interfaces__rosidl_generator_c.so (0x000014a7a6b2c000)
	librosidl_runtime_c.so => /opt/ros/humble/lib/librosidl_runtime_c.so (0x000014a7a6b21000)
	libyaml.so => /opt/ros/humble/lib/libyaml.so (0x000014a7a6aff000)
	libspdlog.so.1 => /lib/x86_64-linux-gnu/libspdlog.so.1 (0x000014a7a6a82000)
	librosidl_typesupport_c.so => /opt/ros/humble/lib/librosidl_typesupport_c.so (0x000014a7a6a7c000)
	libbuiltin_interfaces__rosidl_generator_c.so => /opt/ros/humble/lib/libbuiltin_interfaces__rosidl_generator_c.so (0x000014a7a6a77000)
	libfmt.so.8 => /lib/x86_64-linux-gnu/libfmt.so.8 (0x000014a7a6a56000)