Importing multiple Orocos/ROS packages in an RTT .ops script
I've recently refactored some Orocos/RTT components into a couple different ROS packages. I have an Orocos .ops script for testing each collection of components separately, but when I create a third package for testing integration, and combine the contents of the two other .ops scripts, they no longer run without segfaulting.
The odd thing is that it complains about one or the other library as being already loaded, and says "try to RELOAD":
3.834 [ Warning][DeploymentComponent::import] Library /home/jbohren/versioned/ros/bard/bard_controllers/lib/orocos/xenomai/libcomponents-xenomai.so already loaded... try to RELOAD
then it's the other library which causes a segfault on import:
Program received signal SIGSEGV, Segmentation fault.
0x00007fffe7876910 in ?? () from /home/jbohren/versioned/ros/bard/bard_simulation/lib/orocos/xenomai/libcomponents-xenomai.so
(gdb) where
#0 0x00007fffe7876910 in ?? ()
from /home/jbohren/versioned/ros/bard/bard_simulation/lib/orocos/xenomai/libcomponents-xenomai.so
#1 0x00007ffff73140ef in OCL::ComponentLoader::loadComponent (this=<value optimized out>, name=..., type=...)
at /home/jbohren/versioned/ros/orocos_toolchain/ocl/deployment/ComponentLoader.cpp:641
#2 0x00007ffff728e90e in OCL::DeploymentComponent::loadComponent (this=0x7fffffffd590, name=..., type=...)
at /home/jbohren/versioned/ros/orocos_toolchain/ocl/deployment/DeploymentComponent.cpp:1531
#3 0x00007ffff72c75d4 in boost::function2<bool, std::string const&, std::string const&>::operator() (
this=<value optimized out>, t1=..., t2=...) at /usr/include/boost/function/function_template.hpp:1013
#4 call_impl<std::string const&, std::string const&> (this=<value optimized out>, t1=..., t2=...)
at /home/jbohren/versioned/ros/orocos_toolchain/install/include/rtt/internal/../internal/LocalOperationCaller.hpp:386
#5 RTT::internal::InvokerImpl<2, bool ()(std::string const&, std::string const&), RTT::internal::LocalOperationCallerImpl<bool ()(std::string const&, std::string const&)> >::call(std::string const&, std::string const&) (this=<value optimized out>,
t1=..., t2=...) at /home/jbohren/versioned/ros/orocos_toolchain/install/include/rtt/internal/../internal/Invoker.hpp:125
Is anyone familiar with problems arising from factoring and combining components from multiple ros packages in a single orocos script?