Ros2 Humble on Docker and CoppeliaSim 4.4.0

Typically: "How do I... ", "How can I... " questions
formica
Posts: 60
Joined: 13 Mar 2013, 12:13

Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post 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

fferri
Posts: 1193
Joined: 09 Sep 2013, 19:28

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post 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...).

formica
Posts: 60
Joined: 13 Mar 2013, 12:13

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post 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.

fferri
Posts: 1193
Joined: 09 Sep 2013, 19:28

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post by fferri »

Before the command executing coppeliaSim you need to source ROS 2 environment (e.g. source /opt/ros/...)


formica
Posts: 60
Joined: 13 Mar 2013, 12:13

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post 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?

coppelia
Site Admin
Posts: 10339
Joined: 14 Dec 2012, 00:25

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post by coppelia »

That is strange, it should load in that case. Are you sure that you have sourced the ROS environment?

Cheers

formica
Posts: 60
Joined: 13 Mar 2013, 12:13

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post by formica »

Yes, it's sourced.
No way.

coppelia
Site Admin
Posts: 10339
Joined: 14 Dec 2012, 00:25

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post 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

formica
Posts: 60
Joined: 13 Mar 2013, 12:13

Re: Ros2 Humble on Docker and CoppeliaSim 4.4.0

Post 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)


Post Reply