Is it possible to use shared memory configuration with ROS2
I am trying to change the QoS settings to use the shared memory but I got the following error when tying to run a node. It says the OpenSpliceDDS
is not running in shared memory mode but I started it by ospl start
and says ospl start
Domain with name ospl_shmem_ddsi with id 0 is already running, ignoring command
if I try to start it again. So I am wondering if it is possible to use shared memory configuration with ROS2.
========================================================================================
Context : DDS::DomainParticipantFactory::create_participant
Date : 2019-05-01T11:08:28+0200
Node : btopal-ThinkPad-T580
Process : mock_performance_fast_main <20554>
Thread : main thread 7fb1726d3f40
Internals : DomainParticipantFactory.cpp/324/6.9.190403OSS///-1
----------------------------------------------------------------------------------------
Report : Unable to connect to domain id = 0.
The most common causes of this error are an incorrect configuration file or
that OpenSpliceDDS is not running (when using shared memory mode).
Internals : u_participantNew/u_participant.c/234/773/1556701708.115704938
----------------------------------------------------------------------------------------
Report : Creation of internal Domain Database failed.
Internals : user::u_domain::attachToFederatedDomain/u_domain.c/1360/773/1556701708.115716030
----------------------------------------------------------------------------------------
Report : segment defaultDomainDatabase not found
Internals : c_base::c_open/c_base.c/1710/0/1556703445.973830343
----------------------------------------------------------------------------------------
>>> [rcutils|error_handling.c:106] rcutils_set_error_state()
This error state is being overwritten:
'failed to create domain participant, at /tmp/binarydeb/ros-crystal-rmw-opensplice-cpp-0.6.3/src/rmw_node.cpp:161, at /tmp/binarydeb/ros-crystal-rcl-0.6.5/src/rcl/node.c:402'
with this new error message:
'rcl node's rmw handle is invalid, at /tmp/binarydeb/ros-crystal-rcl-0.6.5/src/rcl/node.c:535'
rcutils_reset_error() should be called after error handling to avoid this.
<<<
[ERROR] [rcl]: Failed to fini publisher for node: 1
terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
what(): failed to initialize rcl node: rcl node's rmw handle is invalid, at /tmp/binarydeb/ros-crystal-rcl-0.6.5/src/rcl/node.c:535