Giter VIP home page Giter VIP logo

rtt_ros_integration's People

Contributors

achim-k avatar ahoarau avatar disrecord avatar dvanthienen avatar francisco-miguel-almeida avatar guihomework avatar hugal31 avatar isanchez12 avatar jbohren avatar jbohren-hbr avatar meyerj avatar nicolaswdc avatar rsinnet avatar spd-intermodalics avatar sportoles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rtt_ros_integration's Issues

ROS service specialization

A follow up to the discussion in #83.

std_srvs/Empty:
- void empty()

std_srvs/SetBool:
- bool setBool(bool, std::string &message_out)
- bool setBool(bool) // response.message will be empty
- std::string setBool(bool) // response.success = true
- void setBool(bool) // response.success = true and response.message will be empty

std_srvs/Trigger:
- bool trigger(std::string &message_out)
- bool trigger() // response.message will be empty
- std::string trigger() // response.success = true

I started to implement this automatic conversion :

#include <rtt/RTT.hpp>
#include <rtt/plugin/ServicePlugin.hpp>
#include <rtt/internal/GlobalService.hpp>

#include <rtt_roscomm/rtt_rosservice_registry_service.h>
#include <rtt_roscomm/rtt_rosservice_proxy.h>

////////////////////////////////////////////////////////////////////////////////
#include <std_srvs/Empty.h>
#include <std_srvs/SetBool.h>
#include <std_srvs/Trigger.h>

////////////////////////////////////////////////////////////////////////////////
template<>
class ROSServiceServerProxy<std_srvs::Empty> : public ROSServiceServerProxyBase
{
public:
  //! All possible Operation callers for a ROS service server proxy
  typedef RTT::OperationCaller<bool(typename std_srvs::Empty::Request&, typename std_srvs::Empty::Response&)> ProxyOperationCallerType0;
  typedef RTT::OperationCaller<bool(void)> ProxyOperationCallerType1;
  typedef RTT::OperationCaller<void(void)> ProxyOperationCallerType2;

  /** \brief Construct a ROS service server and associate it with an Orocos
   * task's required interface and operation caller.
   */
  ROSServiceServerProxy(const std::string &service_name)
  : ROSServiceServerProxyBase(service_name)
  {
    // Construct operation caller
    proxy_operation_caller0_.reset(new ProxyOperationCallerType0("ROS_SERVICE_SERVER_PROXY0"));
    proxy_operation_caller1_.reset(new ProxyOperationCallerType1("ROS_SERVICE_SERVER_PROXY1"));
    proxy_operation_caller2_.reset(new ProxyOperationCallerType2("ROS_SERVICE_SERVER_PROXY2"));

    // Construct the ROS service server
    ros::NodeHandle nh;
    server_ = nh.advertiseService(
        service_name,
        &ROSServiceServerProxy<std_srvs::Empty>::ros_service_callback,
        this);
  }
  
  bool connect(RTT::TaskContext *owner, RTT::OperationInterfacePart* operation)
  {
    // Link the caller with the operation
    if(proxy_operation_caller0_->setImplementation(operation->getLocalOperation(),RTT::internal::GlobalEngine::Instance()))
    {
        return true;
    }
    if(proxy_operation_caller1_->setImplementation(operation->getLocalOperation(),RTT::internal::GlobalEngine::Instance()))
    {
        return true;
    }
    if(proxy_operation_caller2_->setImplementation(operation->getLocalOperation(),RTT::internal::GlobalEngine::Instance()))
    {
        return true;
    }
    return false;
   }
   
  ~ROSServiceServerProxy()
  {
    // Clean-up advertized ROS services
    server_.shutdown();
  }

private:
  //! The list of possible operation callers 
  boost::shared_ptr<RTT::base::OperationCallerBaseInvoker> proxy_operation_caller0_;
  boost::shared_ptr<RTT::base::OperationCallerBaseInvoker> proxy_operation_caller1_;
  boost::shared_ptr<RTT::base::OperationCallerBaseInvoker> proxy_operation_caller2_;
  //! The callback called by the ROS service server when this service is invoked
  bool ros_service_callback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response) {
    // Downcast the proxy operation caller
    ProxyOperationCallerType0 &proxy_operation_caller0 = *dynamic_cast<ProxyOperationCallerType0*>(proxy_operation_caller0_.get());
    if(proxy_operation_caller0_->ready())
    {
        return proxy_operation_caller0(request, response);
    }
    
    ProxyOperationCallerType1 &proxy_operation_caller1 = *dynamic_cast<ProxyOperationCallerType1*>(proxy_operation_caller1_.get());
    if(proxy_operation_caller1_->ready())
    {
        return proxy_operation_caller1();
    }
    
    ProxyOperationCallerType2 &proxy_operation_caller2 = *dynamic_cast<ProxyOperationCallerType2*>(proxy_operation_caller2_.get());
    if(proxy_operation_caller2_->ready())
    {
        proxy_operation_caller2();
        return true;
    }

    return false;
  }
};

namespace rtt_std_srvs_ros_service_proxies {

 bool registerROSServiceProxies() {
   // Get the ros service registry service
   ROSServiceRegistryServicePtr rosservice_registry = ROSServiceRegistryService::Instance();
   if(!rosservice_registry) {
     RTT::log(RTT::Error) << "Could not get an instance of the ROSServiceRegistryService! Not registering service proxies for std_srvs" << RTT::endlog();
     return false;
   }

   // Get the factory registration operation
   RTT::OperationCaller<bool(ROSServiceProxyFactoryBase*)> register_service_factory =
     rosservice_registry->getOperation("registerServiceFactory");

   // Make sure the registration operation is ready
   if(!register_service_factory.ready()) {
     RTT::log(RTT::Error) << "The ROSServiceRegistryService isn't ready! Not registering service proxies for std_srvs" << RTT::endlog();
     return false;
   }

   // True at the end if all factories have been registered
   bool success = true;

   //////////////////////////////////////////////////////////////////////////////
   // Example: success = success && register_service_factory(new ROSServiceProxyFactory<std_srvs::Empty>("std_srvs/Empty"));
   success = success && register_service_factory(new ROSServiceProxyFactory<std_srvs::Empty>("std_srvs/Empty"));
   success = success && register_service_factory(new ROSServiceProxyFactory<std_srvs::SetBool>("std_srvs/SetBool"));
   success = success && register_service_factory(new ROSServiceProxyFactory<std_srvs::Trigger>("std_srvs/Trigger"));

   //////////////////////////////////////////////////////////////////////////////

   return success;
 }

}

extern "C" {
 bool loadRTTPlugin(RTT::TaskContext* c) { return rtt_std_srvs_ros_service_proxies::registerROSServiceProxies(); }
 std::string getRTTPluginName () { return "rtt_std_srvs_ros_service_proxies"; }
 std::string getRTTTargetName () { return OROCOS_TARGET_NAME; }
}

A few remarks :

  1. connect indeed need to be virtual.
  2. It seems like it could be much sorter (this is only for the server, not client).
  3. When trying to connect to the possible implementations, I get a log(Error) : Tried to construct OperationCaller from incompatible local operation. Is there a way to check the signature beforehand ?

create_rtt_msgs missing dep

If I create a pkg foo_msgs, and the rtt_foo_msgs ( generated by rosrun rtt_roscomm create_rtt_msgs foo_msgs), then if clean and rebuild (catkin clean && catkin build), I'm having errors like :

... /.private/rtt_foo_msgs/include/orocos/foo_msgs/boost/MyAction.h:9:10: fatal error: 'foo_msgs/MyAction.h' file not found
#include <foo_msgs/MyActionFeedback.h>

Shouldn't we add catkin message dep + include dirs + depend on generated target ?

+ find_package(catkin REQUIRED COMPONENTS rtt_roscomm foo_msgs)

+ include_directories(${catkin_INCLUDE_DIRS})

orocos_generate_package(
  DEPENDS foo_msgs
+  DEPENDS_TARGETS  ...  foo_msgs_generate_messages_cpp

Cleaning up registered services

I am interested in dynamically loading and unloading components.
This works nice for standard components with d:loadComponent() and d:unloadComponent(), but when a ROSServiceService was loaded into a component, the service proxy seems to not "unadvertise" correctly on component unload and throws errors if the same service "topic" is used.

For instance, I added some controller manager orocos_services to a component by following this example https://github.com/jbohren/conman/blob/master/conman_ros/src/ros_interface_service.cpp
This orocos_service uses the ROSServiceService to connect, meaning that it advertises a ros service through a NodeHandle.

However on unload, there is no disconnect in ROSServiceService and the NodeHandle apparently does not shutdown correctly so that I get errors if I redeploy the same component+orocos_service.

[ERROR] [1464168075.512551730, 1005.620000000]: Tried to advertise a service that is already advertised in this node [/ra/controller_manager/list_controller_types]

even if the component does not appear anymore (neither in rttlib.stat() nor in d:getPeers())

You might argue that a controller manager should always be there even in the case of dynamic deployment (conman does that by managing the list of peers and such), but the problem goes beyond the functionality of a controller manager, any orocos_service could create a ROSServiceService that at some point might needs to be cleaned-up for redeployment later on when using dynamic deployment.

What would be a correct way to unadvertise the service ? at which level should it happen ? I could then try to modify the rtt_roscomm to handle that and create a PR.

Cross-compilation rtt_ros_integration on Raspberry Pi 3

Hello,

For about 1 month, I am trying to make a cross-compile of a application from rtt_ros_integration on Ubuntu 16.04 to a Raspberry Pi 3 running Ubuntu Mate Xenial. After several trial and error, I finally achieve to create the file that can be executed on Raspberry Pi 3. The code was created with the base from here: #118. However, when the program go to rtt_ros::import("rtt_std_msgs"), the follow error is launched:

0.660 [ ERROR  ][ROSService::import("rtt_std_msgs")] No paths in the ROS_PACKAGE_PATH environment variable! Could not load ROS package "rtt_std_msgs"
Segmentation fault

The "rtt_std_msgs" package is not founded for application. knowing this, I'm sure I'll have been able to do the cross compilation of rtt_ros_integration. Could any developer help me?

Mitigating ROS namespaces and Orocos peers

One issue that has come up a lot when building RTT/ROS systems is the difference in how RTT and ROS scope units of processing and parameterization. RTT scopes symbols through a peer-graph, while ROS scopes symbols in a namespace tree. This leads to complicated configuration and setup scripts when trying to instantiate multiple versions of the same collections of components.

In order to reduce configuration overhead, rtt_ros tends to assume that ROS namespaces correspond to Orocos components and their associated services. Even the earlier rtt_ros_integration stack assumed this mapping.

If a user wanted to instantiate a control pipeline twice in a single Orocos process, he or she could create two deployers and then use the peer scope to keep them separate. If the user wants these components to get ROS parameters from different namespaces, however, this needs to be done explicitly for each component. This is because there is no way to change the "namespace context" when instantiating Orocos components like there is for ROS nodes.

@meyerj @konradb3 What are some peoples approaches / design patterns when deploying RTT/ROS combined systems? Most of the time when I do it, I use roslaunch xml files for parameterization and Orocos ops scripts for instantiating components and connecting data ports.

Melodic release?

Would it be possible to release the binaries for ROS melodic?

typegen executable missing

Hi, i have to build old component with typekit (14.04, OROCOS Toolchain version '2.8.1' from deb)
it seems that the binaries of orogen and typegen are missing.

with a make in the kuka_lwr_fri package i get

...
CMake Error at /opt/ros/indigo/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:547 (message):
  'typegen' not found in path.  Can't build typekit.  Did you 'source env.sh' ?
...

if i try to

$ locate typegen
/opt/ros/indigo/lib/rtt_ros/typegen

that contains only

$ cat /opt/ros/indigo/lib/rtt_ros/typegen
#!/usr/bin/env bash

# Wrapper script 

typegen "$@"

Speed up loading

Is there anyway to speedup loading typekits (ros.import(), or even simply import()) ?
I'm wondering if having all my components in an executable rather than in an ops script is gonna accelerate anything.

kinetic release

The source compiles fine under ubuntu 16.04 with ROS kinetic.

Only dependencies where liblua5.1.0-dev and libncurses5-dev.

Would it be possible to release the binaries for ROS kinetic?

no roshandle and ros::init present in rtt_ros pkgs?

When ever i ty to rttlua-gnulinux -i deployment/youbot.lua below error comes:

[FATAL] [1521766153.873659483]: You must call ros::init() before creating the first NodeHandle
Couldn't find an AF_INET address for []
Couldn't find an AF_INET address for []
[ERROR] [1521766153.896688903]: [registerPublisher] Failed to contact master at [:0]. Retrying...
Couldn't find an AF_INET address for []
Couldn't find an AF_INET address for []
Couldn't find an AF_INET address for []

even after i modified the cpp files same error si comming.
the youbot.lua file is:

-- In order to run this script, use:
-- rttlua-gnulinux -i deployment/youbot.lua

-- See also http://www.orocos.org/wiki/orocos/toolchain/LuaCookbook
-- in order to set your LUA_PATH correctly, or errors will occur.

require("rttlib")
rttlib.color = true -- Since we're running this script with -i

-- Get our Lua TC
tc = rtt.getTC()

-- Get the deployer
depl = tc:getPeer("Deployer")

-- Start deploying and connecting
-- We need rtt_tf to get the current 2D position for us
depl:import("rtt_tf")
depl:loadComponent("tf","rtt_tf::RTT_TF")
tf = depl:getPeer("tf")
tf:configure() -- error in this line
tf:start()

--depl:import("rtt_dot_service")
--depl:loadService("deployer","dot")
depl:loadComponent("updater","OCL::LuaComponent")
depl:addPeer("updater", "deployer")
updater = depl:getPeer("updater")
updater:exec_file("deployment/updater.lua")
updater:configure()
updater:start()

-- Import our own components
depl:import("controller-youbot")

depl:loadComponent("localisation","Localisation")
depl:addPeer("localisation", "tf") -- for lookupTransform
localisation= depl:getPeer("localisation")
localisation:setPeriod(0.01)
localisation:configure()
localisation:start()

depl:loadComponent("controller","Controller")
depl:loadComponent("areadetection","Areadetection")
depl:loadComponent("teleop","Teleop")

-- Deployment Exercise: Add a supervisor Lua component
depl:loadComponent("supervisor","OCL::LuaComponent")
depl:addPeer("supervisor", "teleop")
depl:addPeer("supervisor", "controller")
depl:addPeer("supervisor", "areadetection")
sup = depl:getPeer("supervisor")
sup:exec_file("components/supervisor/supervisor.lua")
sup:configure()

-- Data Flow connections
cp=rtt.Variable("ConnPolicy")
cp.transport=3 -- 3 is ROS -- NOTE: set transport back to zero for local connections !

cp.name_id="/cmd_vel" -- topic name
depl:stream("controller.cmdvel", cp )
depl:stream("teleop.cmdvel", cp )

cp.name_id="/joy"
depl:stream("teleop.joystick",cp)

cp.transport = 0
cp.name_id=""
depl:connect("localisation.pose","controller.curlocation", cp)
depl:connect("localisation.pose","areadetection.curlocation", cp)

-- Data Flow Exercise:
-- Connect the events of areadetection to the supervisor
-- Connect the localisation's ports to the controller and areadetection
-- Check if all components and ports match periodicity or have an event-port
depl:connect("areadetection.events","supervisor.events", cp)

-- Only start in case no youbot is present:
depl:loadComponent("youbot","Nobot")
cp.transport = 0
depl:connect("youbot.cmdvel","controller.cmdvel", cp);
depl:connect("youbot.cmdvel","teleop.cmdvel", cp);
depl:connect("youbot.curpos","controller.curlocation", cp);

-- Deployment Exercise:
-- Configure or start the necessary components:
-- areadetection, nobot (if applicable), supervisor
-- Remember that the supervisor has the authority to
-- control (start/stop) most components.
sup:start()

-- Deployment Exercise:
-- Visualise the current setup with the rtt_dot_service
-- Use rosrun xdot xdot.y orograph.dot to visualize
-- call generate again to update the graph

-- user/test commands:

cmd = rttlib.port_clone_conn(sup:getPort("events"))
cmd:write("e_circle")
cmd:write("e_manual")
So what is the problem?

Equivalent script "stream" function in C++

Hello,

I am downloaded the examples provided in here to use Orocos+ROS: https://github.com/jhu-lcsr/rtt_ros_examples.

I achieved to run the example.ops file, however I want to run directly in C++ (not in a script).

So, I created the follow code:


#include <rtt/TaskContext.hpp>
#include <rtt/Port.hpp>
#include <std_msgs/Float64.h>
#include <std_msgs/String.h>
#include <rtt/Component.hpp>
#include <std_srvs/Empty.h>
#include <rtt/Activity.hpp> // for use setActivity
#include <rtt/os/main.h> // for linker find ORO_main function
#include <ros/ros.h>
//#include <iostream>

using namespace RTT;

class HelloRobot : public RTT::TaskContext
{

private: 
  InputPort<std_msgs::Float64> inport;
  OutputPort<std_msgs::Float64> outport;

  InputPort<std_msgs::String> sinport;
  OutputPort<std_msgs::String> soutport;
 
  std::string prop_answer;
  double prop_counter_step;

  double counter;
 
public:

  HelloRobot(const std::string& name):
    TaskContext(name),
    inport("float_in"),outport("float_out"),
    sinport("string_in"),soutport("string_out","Hello Robot"),
    prop_answer("Hello Robot"),prop_counter_step(0.01), counter(0.0)
  {
    this->addEventPort(inport).doc("Receiving a message here will wake up this component.");
    this->addPort(outport).doc("Sends out 'answer'.");
    this->addEventPort(sinport).doc("Receiving a message here will wake up this component.");
    this->addPort(soutport).doc("Sends out a counter value based on 'counter_step'.");
  }

  ~HelloRobot(){}

private:

  void updateHook()
  {
    std_msgs::Float64 fdata;
    std_msgs::String sdata;

    //std::cout << "hello" << std::endl;

    if(NewData==inport.read(fdata))
    {
      log(Info)<<"Float in: "<<fdata<<endlog();
    }

    if(NewData==sinport.read(sdata))
    {
      log(Info)<<"String in: "<<sdata<<endlog();
    }
    counter+=prop_counter_step;
    fdata.data+=counter;
    outport.write(fdata);
    sdata.data=prop_answer;
    soutport.write(sdata);
   }

};
ORO_CREATE_COMPONENT(HelloRobot)

int ORO_main(int argc, char** argv)
{
   // Setup a component
   HelloRobot myComponent("HelloRobot");
   // Execute a component
   myComponent.setActivity( new Activity(HighestPriority, 0.01 ) );
   myComponent.start();
  
   // Wait when task are not executing anymore
   getchar();

   // Finalize component
   myComponent.stop();

   return 0;
}

I can generated the executable. However, I dont find in any Orocos document the equivalent in C++ of the function "stream" for script, to connect a port to a ROS topic.
Do you have this information to give?

Problem to build orocos-rtt 2.9 for the xenomai 3

Hi,

I follow the steps from here (https://github.com/orocos/rtt_ros_integration) and here (https://rtt-lwr.readthedocs.io/en/latest/rtpc/orocos-xenomai.html), to install orocos-rtt in a Ubuntu Mate + Xenomai 3.0.6 environment in a Raspberry Pi 3.

# Compile for Xenomai
export OROCOS_TARGET=xenomai
# Create the workspace and clone orocos-toolchain
mkdir -p ~/ws/underlay_isolated/src/orocos
cd ~/ws/underlay_isolated
git clone --recursive https://github.com/orocos-toolchain/orocos_toolchain.git src/orocos/orocos_toolchain
catkin_make_isolated --install

However, in last command, to build, a error occurs when process the 'rtt' package:

make
Detected OROCOS_TARGET environment variable. Using: xenomai
-- CMAKE_VERSION: 3.5.1
Boost found in /usr/include
Orocos target is xenomai
XENOMAI_INCLUDE_DIR=XENOMAI_INCLUDE_DIR-NOTFOUND
XENOMAI_NATIVE_LIBRARY=XENOMAI_NATIVE_LIBRARY-NOTFOUND
CMake Error at config/LibFindMacros.cmake:74 (message):
  Required library XENOMAI NOT FOUND.

  Install the library (dev version) and try again.  If the library is already
  installed, set the XENOMAI_ROOT_DIR environment variable or use cmake to
  set the missing variables manually.
Call Stack (most recent call first):
  config/FindXenomai.cmake:72 (libfind_process)
  config/check_depend.cmake:147 (find_package)
  CMakeLists.txt:115 (INCLUDE)

It seems that he does not find xenomai libraries. However the "XENOMAI_NATIVE_LIBRARY" variable from the erros, the "native" caught my eye, because it refers to the "native" library from Xenomai 2 versions. It leads to believe that it seeks a Xenomai 2 version, not the Xenomai 3.

Looking the "FindXenomai.cmake" file from the error, he really searches for native library from Xenomai 2.

My question is: does orocos rtt have xenomai 3 support? If yes, how can I resolve this issue?

issue with orocos_rtt / rtt_roscomm after migrating to ros kinetic

Hello, I have an issue with a project using orocos modules

I am currently trying to compile a project from Ubuntu 14.04 in 16.04 and have had to fix quite a few problems. This probem seems to be related to orocos for ros, but I’m unable to find the origin of the problem, so I have mostly made random searches with key words I thought to be relevant.

I am posting here because someone sugested that it may be an issue with orocos_rtt / rtt_roscomm on a post I made on the ros forum here

For this project I am using these orocos packages for ros: rtt_ros_integration, rtt_common_msgs, rtt_ros_comm and rtt-roscomm and it is constructed with catkin

Does anyone recognize this problem?

Here is the error generated by cmake:

-- Checking for one of the modules 'rtt_rosgraph_msgs-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_rosgraph_msgs'.
-- Checking for one of the modules 'rtt_geometry_msgs-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_geometry_msgs'.
-- - Detected OROCOS_TARGET environment variable. Using: gnulinux
-- Found orocos-rtt 2.9.0 for the gnulinux target. Available transports: corba mqueue
-- - Found requested orocos-rtt components: rtt-marshalling rtt-scripting rtt-scripting rtt-marshalling rtt-transport-mqueue rtt-transport-corba
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- ros_generate_rtt_typekit: Could not find any .msg files in the lc_control package.
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- [UseOrocos] Building plugin library rtt_lc_control_rosservice_proxies
CMake Error at /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:761 (target_link_libraries):
  Target "lc_control_generate_messages_eus" of type UTILITY may not be linked
  into another target.  One may link only to STATIC or SHARED libraries, or
  to executables with the ENABLE_EXPORTS property set.
Call Stack (most recent call first):
  /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:786 (orocos_plugin)
  /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:93 (orocos_service)


CMake Error at /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:761 (target_link_libraries):
  Target "lc_control_generate_messages_nodejs" of type UTILITY may not be
  linked into another target.  One may link only to STATIC or SHARED
  libraries, or to executables with the ENABLE_EXPORTS property set.
Call Stack (most recent call first):
  /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:786 (orocos_plugin)
  /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:93 (orocos_service)


CMake Error at /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:94 (target_link_libraries):
  Target "lc_control_generate_messages_eus" of type UTILITY may not be linked
  into another target.  One may link only to STATIC or SHARED libraries, or
  to executables with the ENABLE_EXPORTS property set.


CMake Error at /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:94 (target_link_libraries):
  Target "lc_control_generate_messages_nodejs" of type UTILITY may not be
  linked into another target.  One may link only to STATIC or SHARED
  libraries, or to executables with the ENABLE_EXPORTS property set.


-- [UseOrocos] Generating package version 0.0.0 from rtt_lc_control_VERSION (package.xml).
-- [UseOrocos] Generating pkg-config file for package in catkin devel space.
-- [UseOrocos] Exporting targets rtt_lc_control_rosservice_proxies;roscpp_generate_messages_cpp;roscpp_generate_messages_eus;roscpp_generate_messages_lisp;roscpp_generate_messages_nodejs;roscpp_generate_messages_py;rosgraph_msgs_generate_messages_cpp;rosgraph_msgs_generate_messages_eus;rosgraph_msgs_generate_messages_lisp;rosgraph_msgs_generate_messages_nodejs;rosgraph_msgs_generate_messages_py;std_msgs_generate_messages_cpp;std_msgs_generate_messages_eus;std_msgs_generate_messages_lisp;std_msgs_generate_messages_nodejs;std_msgs_generate_messages_py.
-- [UseOrocos] Exporting libraries rtt_lc_control_rosservice_proxies;lc_control_generate_messages_eus;lc_control_generate_messages_nodejs;Orchestrator;BaseRamper;BaseSampler;MobilePID;MecanumIK;MecanumIK_rosHwi;MecanumIK_realHwi;MecanumFK;MecanumFK_realHwi;MecanumFK_rosHwi;MobileStatus_rosHwi;TrayPID;ScrewIK;ScrewIK_rosHwi;ScrewIK_realHwi;ScrewFK;ScrewFK_rosHwi;ScrewFK_realHwi;TrayStatus_rosHwi;ArmSampler;ArmIK;ArmIK_rosHwi;ArmIK_realHwi;ArmFK_realHwi;/opt/ros/kinetic/lib/librtt_rostopic-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_roscomm/plugins/librtt_rostopic_service-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_roscomm/plugins/librtt_rosservice_registry-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_roscomm/plugins/librtt_rosservice-gnulinux.so;/opt/ros/kinetic/lib/liborocos-rtt-gnulinux.so;/usr/lib/x86_64-linux-gnu/librt.so;/opt/ros/kinetic/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_signals.so;/opt/ros/kinetic/lib/librosconsole.so;/opt/ros/kinetic/lib/librosconsole_log4cxx.so;/opt/ros/kinetic/lib/librosconsole_backend_interface.so;/usr/lib/x86_64-linux-gnu/liblog4cxx.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;/opt/ros/kinetic/lib/libroscpp_serialization.so;/opt/ros/kinetic/lib/libxmlrpcpp.so;/opt/ros/kinetic/lib/librostime.so;/opt/ros/kinetic/lib/libcpp_common.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_atomic.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libconsole_bridge.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_std_msgs/plugins/librtt-ros-primitives-transport-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_std_msgs/types/librtt-std_msgs-typekit-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_std_msgs/types/librtt-std_msgs-ros-transport-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_rosgraph_msgs/types/librtt-rosgraph_msgs-typekit-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_rosgraph_msgs/types/librtt-rosgraph_msgs-ros-transport-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_geometry_msgs/types/librtt-geometry_msgs-typekit-gnulinux.so;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_geometry_msgs/types/librtt-geometry_msgs-ros-transport-gnulinux.so.
-- [UseOrocos] Exporting include directories /opt/ros/kinetic/include/orocos;/opt/ros/kinetic/include;/usr/include;/opt/ros/kinetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp.
-- [UseOrocos] Exporting library directories /home/onilsson/DevRoot/src/catkin_ws/install/lib/orocos/gnulinux/lc_control;/opt/ros/kinetic/lib;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_roscomm/plugins;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_std_msgs/plugins;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_std_msgs/types;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_rosgraph_msgs/types;/opt/ros/kinetic/lib/orocos/gnulinux/rtt_geometry_msgs/types.
-- +++ processing catkin package: 'rtt_actionlib_examples'
-- ==> add_subdirectory(rtt_ros_examples/rtt_actionlib_examples)
-- - Detected OROCOS_TARGET environment variable. Using: gnulinux
-- Orocos-RTT found in /opt/ros/kinetic/lib/cmake/orocos-rtt/orocos-rtt-gnulinux-libraries.cmake
-- Found orocos-rtt 2.9.0 for the gnulinux target. Available transports: corba mqueue
-- - Found requested orocos-rtt components: rtt-marshalling rtt-scripting
-- [UseOrocos] Building package rtt_actionlib_examples with catkin develspace support.
-- [UseOrocos] Using Orocos RTT in rtt_actionlib_examples
-- Checking for one of the modules 'ocl-gnulinux'
-- [UseOrocos] Found orocos package 'ocl'.
-- Checking for one of the modules 'rtt_ros-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_ros'.
-- Checking for one of the modules 'rtt_rosclock-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_rosclock'.
-- Checking for one of the modules 'rtt_roscomm-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_roscomm'.
-- Checking for one of the modules 'rtt_actionlib-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_actionlib'.
-- Checking for one of the modules 'rtt_actionlib_msgs-gnulinux'
-- [UseOrocos] Found orocos package 'rtt_actionlib_msgs'.
-- Checking for one of the modules 'roscpp-gnulinux'
-- Checking for one of the modules 'actionlib-gnulinux'
-- Checking for one of the modules 'actionlib_msgs-gnulinux'
-- Checking for one of the modules 'message_generation-gnulinux'
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Generating .msg files for action rtt_actionlib_examples/SomeAction /home/onilsson/DevRoot/src/catkin_ws/src/rtt_ros_examples/rtt_actionlib_examples/action/SomeAction.action
Generating for action SomeAction
-- rtt_actionlib_examples: 7 messages, 0 services
-- - Detected OROCOS_TARGET environment variable. Using: gnulinux
-- Found orocos-rtt 2.9.0 for the gnulinux target. Available transports: corba mqueue
-- - Found requested orocos-rtt components: rtt-marshalling rtt-scripting rtt-scripting rtt-marshalling rtt-transport-mqueue rtt-transport-corba
-- [UseOrocos] Building typekit library rtt-rtt_actionlib_examples-typekit
-- [UseOrocos] Building typekit library rtt-rtt_actionlib_examples-ros-transport
-- Checking for one of the modules 'ocl-deployment-gnulinux;ocl-deployment'
-- [UseOrocos] Found orocos package 'ocl-deployment'.
-- Checking for one of the modules 'ocl-taskbrowser-gnulinux;ocl-taskbrowser'
-- [UseOrocos] Found orocos package 'ocl-taskbrowser'.
-- [UseOrocos] Building executable test_server
-- Configuring incomplete, errors occurred!
See also "/home/onilsson/DevRoot/src/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/onilsson/DevRoot/src/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

rtt_roscomm cleaning up registered topics

Similar to #59 it seems that the registered subscribers (maybe also publishers) are not correctly shutdown. This leads to a topic still showing the rtt_environment as a subscriber to the topic after unloading the component that had a stream to ros.

I analyzed a little and it appears that the Channel for a publisher gets its destructor called because it is shared pointer https://github.com/orocos/rtt_ros_integration/blob/indigo-devel/rtt_roscomm/include/rtt_roscomm/rtt_rostopic_ros_msg_transporter.hpp#L247

I think one should also call shutdown on the ros_pub in the destructor after it is removed from the instance https://github.com/orocos/rtt_ros_integration/blob/indigo-devel/rtt_roscomm/include/rtt_roscomm/rtt_rostopic_ros_msg_transporter.hpp#L129

the same for the ros_sub in its destructor. I started to implement that, but the biggest problem I faced is that the destructor of the Channel for a subscriber was never called https://github.com/orocos/rtt_ros_integration/blob/indigo-devel/rtt_roscomm/include/rtt_roscomm/rtt_rostopic_ros_msg_transporter.hpp#L220
due to the msg transport creating a standard pointer and not a shared_ptr for it https://github.com/orocos/rtt_ros_integration/blob/indigo-devel/rtt_roscomm/include/rtt_roscomm/rtt_rostopic_ros_msg_transporter.hpp#L258 Not sure if the fact that the return type is a shared_ptr counts, because I added prints in the destructor and they are not printed.

I now know this is a header that has a larger implication and I struggled to understand that I had to rebuild the typekits for the ros message I wanted to test this cleanup for. However, even after making it a shared pointer it did still not enter the destructor.

What am I missing ?

Is rtt_roscomm broken?

When using rtt_roscomm under kinetic (Ubuntu 16.04), I get the following CMake/catkin error:

CMake Error at /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:761 (target_link_libraries):
  Target "<servicePackage>_generate_messages_eus" of type UTILITY may not be linked
  into another target.  One may link only to STATIC or SHARED libraries, or
  to executables with the ENABLE_EXPORTS property set.
Call Stack (most recent call first):
  /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:786 (orocos_plugin)
  /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:93 (orocos_service)


CMake Error at /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:761 (target_link_libraries):
  Target "<servicePackage>_generate_messages_nodejs" of type UTILITY may not be
  linked into another target.  One may link only to STATIC or SHARED
  libraries, or to executables with the ENABLE_EXPORTS property set.
Call Stack (most recent call first):
  /opt/ros/kinetic/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:786 (orocos_plugin)
  /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:93 (orocos_service)


CMake Error at /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:94 (target_link_libraries):
  Target "<servicePackage>_generate_messages_eus" of type UTILITY may not be linked
  into another target.  One may link only to STATIC or SHARED libraries, or
  to executables with the ENABLE_EXPORTS property set.


CMake Error at /opt/ros/kinetic/share/rtt_roscomm/src/templates/service/CMakeLists.txt:94 (target_link_libraries):
  Target "<servicePackage>_generate_messages_nodejs" of type UTILITY may not be
  linked into another target.  One may link only to STATIC or SHARED
  libraries, or to executables with the ENABLE_EXPORTS property set.

This looks like a script error in UseOROCOS-RTT.cmake, no?

And this could also be linked to issue #105.

To give some more information, the ROS package was generated by rtt_roscomm using:

rosrun rtt_roscomm create_rtt_msgs <servicePackage>

and this output the following files:

package.xml

<package>
   <name>rtt_<servicePackage></name>
   <version>0.0.0</version>
   <description>

     Provides an rtt typekit for ROS <servicePackage> messages.

     It allows you to use ROS messages transparently in
     RTT components and applications.

     This package was automatically generated by the
     create_rtt_msgs generator and should not be manually
     modified.

     See the http://ros.org/wiki/<servicePackage> documentation
     for the documentation of the ROS messages in this
     typekit.

   </description>
   <maintainer email="[email protected]">Orocos 
Developers</maintainer>
   <license>BSD</license>

   <buildtool_depend>catkin</buildtool_depend>

   <build_depend><servicePackage></build_depend>
   <build_depend>rtt_roscomm</build_depend>

   <run_depend><servicePackage></run_depend>
   <run_depend>rtt_roscomm</run_depend>

   <build_depend>rtt_std_msgs</build_depend>
   <run_depend>rtt_std_msgs</run_depend>
   <build_depend>rtt_rosgraph_msgs</build_depend>
   <run_depend>rtt_rosgraph_msgs</run_depend>
   <build_depend>rtt_geometry_msgs</build_depend>
   <run_depend>rtt_geometry_msgs</run_depend>


   <export>
     <rtt_ros>
       <plugin_depend>rtt_roscomm</plugin_depend>
       <plugin_depend>rtt_std_msgs</plugin_depend>
       <plugin_depend>rtt_rosgraph_msgs</plugin_depend>
       <plugin_depend>rtt_geometry_msgs</plugin_depend>

     </rtt_ros>
   </export>

</package>

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(rtt_<>)

find_package(catkin REQUIRED COMPONENTS rtt_roscomm)

ros_generate_rtt_typekit(<servicePackage>)
ros_generate_rtt_service_proxies(<servicePackage>)

orocos_generate_package(
  DEPENDS <servicePackage>
  DEPENDS_TARGETS rtt_roscomm  rtt_std_msgs
 rtt_rosgraph_msgs
 rtt_geometry_msgs
)

Which all looks good to me.

So is rtt_roscomm broken?

Update Readme

The address for cloning Orocos seems to be incorrect, since it is now hosted on github:

git clone --recursive git://gitorious.org/orocos-toolchain/orocos_toolchain.git -b toolchain-2.7 src/orocos/orocos_toolchain

rtt_create_pkg vs rtt_create_msgs

The documentation still uses rtt_create_msgs while the tool itself was renamed to rtt_create_pkg. @jbohren What was the reasoning for the name switch? Could we revert it back to *_msgs?

rtt_rosnode modifies the deployer's argv

Script to test (rtt 2.8 - 14.04) :

require("print")
require("os")

// Get Arguments

var strings argv = os.argv()

print.ln("Arguments :")
for(var int i = 0 ; i < argv.size ; i = i + 1){
    print.ln(argv[i])
}

print.ln("Number of args :"+os.argc())

// Importing ROS
import("rtt_ros")
import("rtt_rospack")
ros.import("rtt_rosnode")


// Double check ?

argv = os.argv()
print.ln("-----------------------")
print.ln("Arguments after rosnode :")
for(i = 0 ; i < argv.size ; i = i + 1){
    print.ln(argv[i])
}

print.ln("Number of args :"+os.argc())
 deployer -s rosnode_bug.ops  -- _arg1:=a _arg2:=b _arg3:=c _arg4:=d

Output :

Arguments :
 /home/hoarau/orocos_ws/install/bin/deployer-gnulinux
 _arg1:=a
 _arg2:=b
 _arg3:=c
 _arg4:=d
Number of args :5
-----------------------
Arguments after rosnode :
 /home/hoarau/orocos_ws/install/bin/deployer-gnulinux
 _arg4:=d
 _arg1:=a
 _arg1:=a
 _arg1:=a
Number of args :5

I think it should pass a copy of __os_main_argv() instead of the char **
https://github.com/orocos/rtt_ros_integration/blob/indigo-devel/rtt_rosnode/src/ros_plugin.cpp#L47

note: the ros params are correctly set

rtt_kdl_conversions: fix deprecation warnings

/home/jbohren/ws/groovy/underlay/src/orocos-toolchain/rtt_geometry/rtt_kdl_conversions/kdl_conversions-types.cpp: In member function ‘virtual bool KDL::KDLConversionTypekitPlugin::loadOperators()’:
/home/jbohren/ws/groovy/underlay/src/orocos-toolchain/rtt_geometry/rtt_kdl_conversions/kdl_conversions-types.cpp:20:63: warning: ‘void tf::TwistKDLToMsg(const KDL::Twist&, geometry_msgs::Twist&)’ is deprecated (declared at /opt/ros/groovy/include/kdl_conversions/kdl_msg.h:104) [-Wdeprecated-declarations]
/home/jbohren/ws/groovy/underlay/src/orocos-toolchain/rtt_geometry/rtt_kdl_conversions/kdl_conversions-types.cpp:21:63: warning: ‘void tf::TwistMsgToKDL(const Twist&, KDL::Twist&)’ is deprecated (declared at /opt/ros/groovy/include/kdl_conversions/kdl_msg.h:101) [-Wdeprecated-declarations]
/home/jbohren/ws/groovy/underlay/src/orocos-toolchain/rtt_geometry/rtt_kdl_conversions/kdl_conversions-types.cpp:22:63: warning: ‘void tf::PoseKDLToMsg(const KDL::Frame&, geometry_msgs::Pose&)’ is deprecated (declared at /opt/ros/groovy/include/kdl_conversions/kdl_msg.h:96) [-Wdeprecated-declarations]
/home/jbohren/ws/groovy/underlay/src/orocos-toolchain/rtt_geometry/rtt_kdl_conversions/kdl_conversions-types.cpp:23:63: warning: ‘void tf::PoseKDLToMsg(const KDL::Frame&, geometry_msgs::Pose&)’ is deprecated (declared at /opt/ros/groovy/include/kdl_conversions/kdl_msg.h:96) [-Wdeprecated-declarations]

rosnode to orocos component

Hello, I need help to transform a node ros into a component orocos.
Why I need is turn this ros node file to a component orocos.

#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <sensor_msgs/image_encodings.h>
#include "RoadLineProcessing.hpp"

int main(int argc, char **argv)
{
  ros::init(argc, argv, "image_listener");
  ros::NodeHandle nh;

  image_transport::ImageTransport it(nh);
  RoadLineProcessing myRoad(nh);
  image_transport::Subscriber sub = it.subscribe("/image_raw", 1,boost::bind(&RoadLineProcessing::imageCallback, &myRoad, _1));
  ros::spin();
  return 0;
}

Exists any way to do this ?

Thanks.

Typekints doesn't build because linking error.

I am unable to build current version of rtt_ros_integration because all typekits fail linking with ROS libraries.

Linking CXX shared library /home/konradb3/ws2/underlay/devel/lib/orocos/gnulinux/rtt_diagnostic_msgs/types/librtt-diagnostic_msgs-ros-transport-gnulinux.so
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::serialization::serialize(ros::serialization::OStream&, unsigned int const&) [clone .isra.470]':
ros_diagnostic_msgs_transport.cpp:(.text+0x137): undefined reference to `ros::serialization::throwStreamOverrun()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosSubChannelElement > >::~RosSubChannelElement()':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0x64): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0x6d): undefined reference to `ros::NodeHandle::~NodeHandle()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0xa4): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0xb2): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosSubChannelElement > >::~RosSubChannelElement()':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0x64): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0x6d): undefined reference to `ros::NodeHandle::~NodeHandle()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0xa4): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0xb2): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosSubChannelElement > >::~RosSubChannelElement()':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0x64): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0x6d): undefined reference to `ros::NodeHandle::~NodeHandle()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0xa4): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0xb2): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosPubChannelElement > >::~RosPubChannelElement()':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0x69): undefined reference to `ros_integration::RosPublishActivity::removePublisher(ros_integration::RosPublisher*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0x97): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0xa3): undefined reference to `ros::NodeHandle::~NodeHandle()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0xfc): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEED5Ev]+0x10d): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosPubChannelElement > >::~RosPubChannelElement()':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0x69): undefined reference to `ros_integration::RosPublishActivity::removePublisher(ros_integration::RosPublisher*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0x97): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0xa3): undefined reference to `ros::NodeHandle::~NodeHandle()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0xfc): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEED5Ev]+0x10d): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosPubChannelElement > >::~RosPubChannelElement()':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0x69): undefined reference to `ros_integration::RosPublishActivity::removePublisher(ros_integration::RosPublisher*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0x97): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0xa3): undefined reference to `ros::NodeHandle::~NodeHandle()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0xfc): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED2Ev[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEED5Ev]+0x10d): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosSubChannelElement > >::RosSubChannelElement(RTT::base::PortInterface*, RTT::ConnPolicy const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x69): undefined reference to `ros::NodeHandle::NodeHandle(std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x28f): undefined reference to `ros::NodeHandle::subscribe(ros::SubscribeOptions&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x2ff): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x357): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x398): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x3a0): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosSubChannelElement > >::RosSubChannelElement(RTT::base::PortInterface*, RTT::ConnPolicy const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x69): undefined reference to `ros::NodeHandle::NodeHandle(std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x28f): undefined reference to `ros::NodeHandle::subscribe(ros::SubscribeOptions&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x2ff): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x357): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x398): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x3a0): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosSubChannelElement > >::RosSubChannelElement(RTT::base::PortInterface*, RTT::ConnPolicy const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x69): undefined reference to `ros::NodeHandle::NodeHandle(std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x28f): undefined reference to `ros::NodeHandle::subscribe(ros::SubscribeOptions&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x2ff): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x357): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x398): undefined reference to `ros::Subscriber::~Subscriber()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosSubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x3a0): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros::Publisher ros::NodeHandle::advertise > >(std::basic_string, std::allocator > const&, unsigned int, bool)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros10NodeHandle9advertiseIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEENS_9PublisherERKSsjb[ros::Publisher ros::NodeHandle::advertise > >(std::basic_string, std::allocator > const&, unsigned int, bool)]+0x125): undefined reference to `ros::NodeHandle::advertise(ros::AdvertiseOptions&)'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosPubChannelElement > >::RosPubChannelElement(RTT::base::PortInterface*, RTT::ConnPolicy const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x77): undefined reference to `ros::NodeHandle::NodeHandle(std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x350): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x35d): undefined reference to `ros_integration::RosPublishActivity::Instance()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x38e): undefined reference to `ros_integration::RosPublishActivity::addPublisher(ros_integration::RosPublisher*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x3f3): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x43d): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x445): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros::Publisher ros::NodeHandle::advertise > >(std::basic_string, std::allocator > const&, unsigned int, bool)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros10NodeHandle9advertiseIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEENS_9PublisherERKSsjb[ros::Publisher ros::NodeHandle::advertise > >(std::basic_string, std::allocator > const&, unsigned int, bool)]+0x125): undefined reference to `ros::NodeHandle::advertise(ros::AdvertiseOptions&)'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosPubChannelElement > >::RosPubChannelElement(RTT::base::PortInterface*, RTT::ConnPolicy const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x77): undefined reference to `ros::NodeHandle::NodeHandle(std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x350): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x35d): undefined reference to `ros_integration::RosPublishActivity::Instance()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x38e): undefined reference to `ros_integration::RosPublishActivity::addPublisher(ros_integration::RosPublisher*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x3f3): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x43d): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x445): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros::Publisher ros::NodeHandle::advertise > >(std::basic_string, std::allocator > const&, unsigned int, bool)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros10NodeHandle9advertiseIN15diagnostic_msgs9KeyValue_ISaIvEEEEENS_9PublisherERKSsjb[ros::Publisher ros::NodeHandle::advertise > >(std::basic_string, std::allocator > const&, unsigned int, bool)]+0x125): undefined reference to `ros::NodeHandle::advertise(ros::AdvertiseOptions&)'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros_integration::RosPubChannelElement > >::RosPubChannelElement(RTT::base::PortInterface*, RTT::ConnPolicy const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x77): undefined reference to `ros::NodeHandle::NodeHandle(std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x36c): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x379): undefined reference to `ros_integration::RosPublishActivity::Instance()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x3aa): undefined reference to `ros_integration::RosPublishActivity::addPublisher(ros_integration::RosPublisher*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x40f): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x45c): undefined reference to `ros::Publisher::~Publisher()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC2EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE[_ZN15ros_integration20RosPubChannelElementIN15diagnostic_msgs9KeyValue_ISaIvEEEEC5EPN3RTT4base13PortInterfaceERKNS6_10ConnPolicyE]+0x464): undefined reference to `ros::NodeHandle::~NodeHandle()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::Publisher::publish > >(diagnostic_msgs::DiagnosticArray_ > const&) const':
ros_diagnostic_msgs_transport.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[void ros::Publisher::publish > >(diagnostic_msgs::DiagnosticArray_ > const&) const]+0x1b): undefined reference to `ros::Publisher::Impl::isValid() const'
ros_diagnostic_msgs_transport.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[void ros::Publisher::publish > >(diagnostic_msgs::DiagnosticArray_ > const&) const]+0x83): undefined reference to `ros::Publisher::publish(boost::function const&, ros::SerializedMessage&) const'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::Publisher::publish > >(diagnostic_msgs::DiagnosticStatus_ > const&) const':
ros_diagnostic_msgs_transport.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEEvRKT_[void ros::Publisher::publish > >(diagnostic_msgs::DiagnosticStatus_ > const&) const]+0x1b): undefined reference to `ros::Publisher::Impl::isValid() const'
ros_diagnostic_msgs_transport.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEEEvRKT_[void ros::Publisher::publish > >(diagnostic_msgs::DiagnosticStatus_ > const&) const]+0x83): undefined reference to `ros::Publisher::publish(boost::function const&, ros::SerializedMessage&) const'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::Publisher::publish > >(diagnostic_msgs::KeyValue_ > const&) const':
ros_diagnostic_msgs_transport.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs9KeyValue_ISaIvEEEEEvRKT_[void ros::Publisher::publish > >(diagnostic_msgs::KeyValue_ > const&) const]+0x1b): undefined reference to `ros::Publisher::Impl::isValid() const'
ros_diagnostic_msgs_transport.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs9KeyValue_ISaIvEEEEEvRKT_[void ros::Publisher::publish > >(diagnostic_msgs::KeyValue_ > const&) const]+0x83): undefined reference to `ros::Publisher::publish(boost::function const&, ros::SerializedMessage&) const'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::serialization::serialize, std::allocator >, ros::serialization::OStream>(ros::serialization::OStream&, std::basic_string, std::allocator > const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros13serialization9serializeISsNS0_7OStreamEEEvRT0_RKT_[void ros::serialization::serialize, std::allocator >, ros::serialization::OStream>(ros::serialization::OStream&, std::basic_string, std::allocator > const&)]+0x3a): undefined reference to `ros::serialization::throwStreamOverrun()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::serialization::serialize >, ros::serialization::OStream>(ros::serialization::OStream&, diagnostic_msgs::DiagnosticStatus_ > const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros13serialization9serializeIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEENS0_7OStreamEEEvRT0_RKT_[void ros::serialization::serialize >, ros::serialization::OStream>(ros::serialization::OStream&, diagnostic_msgs::DiagnosticStatus_ > const&)]+0x22): undefined reference to `ros::serialization::throwStreamOverrun()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::serialization::deserialize(ros::serialization::IStream&, unsigned int&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros13serialization11deserializeIjNS0_7IStreamEEEvRT0_RT_[void ros::serialization::deserialize(ros::serialization::IStream&, unsigned int&)]+0x18): undefined reference to `ros::serialization::throwStreamOverrun()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::serialization::deserialize, std::allocator >, ros::serialization::IStream>(ros::serialization::IStream&, std::basic_string, std::allocator >&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros13serialization11deserializeISsNS0_7IStreamEEEvRT0_RT_[void ros::serialization::deserialize, std::allocator >, ros::serialization::IStream>(ros::serialization::IStream&, std::basic_string, std::allocator >&)]+0x37): undefined reference to `ros::serialization::throwStreamOverrun()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs9KeyValue_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x69): undefined reference to `ros::console::g_initialized'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs9KeyValue_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x73): undefined reference to `ros::console::initialize()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs9KeyValue_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xb1): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::basic_string, std::allocator > const&, ros::console::levels::Level)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs9KeyValue_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xd5): undefined reference to `ros::console::setLogLocationLevel(ros::console::LogLocation*, ros::console::levels::Level)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs9KeyValue_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xdd): undefined reference to `ros::console::checkLogLocationEnabled(ros::console::LogLocation*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs9KeyValue_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x138): undefined reference to `ros::console::print(ros::console::FilterBase*, log4cxx::Logger*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `void ros::serialization::deserialize >, ros::serialization::IStream>(ros::serialization::IStream&, diagnostic_msgs::DiagnosticStatus_ >&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros13serialization11deserializeIN15diagnostic_msgs17DiagnosticStatus_ISaIvEEENS0_7IStreamEEEvRT0_RT_[void ros::serialization::deserialize >, ros::serialization::IStream>(ros::serialization::IStream&, diagnostic_msgs::DiagnosticStatus_ >&)]+0x20): undefined reference to `ros::serialization::throwStreamOverrun()'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x69): undefined reference to `ros::console::g_initialized'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x73): undefined reference to `ros::console::initialize()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xb1): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::basic_string, std::allocator > const&, ros::console::levels::Level)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xd5): undefined reference to `ros::console::setLogLocationLevel(ros::console::LogLocation*, ros::console::levels::Level)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xdd): undefined reference to `ros::console::checkLogLocationEnabled(ros::console::LogLocation*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs17DiagnosticStatus_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x138): undefined reference to `ros::console::print(ros::console::FilterBase*, log4cxx::Logger*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)'
CMakeFiles/rtt-diagnostic_msgs-ros-transport.dir/ros_diagnostic_msgs_transport.cpp.o: In function `ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)':
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs16DiagnosticArray_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x75): undefined reference to `ros::console::g_initialized'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs16DiagnosticArray_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x7f): undefined reference to `ros::console::initialize()'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs16DiagnosticArray_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xbd): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::basic_string, std::allocator > const&, ros::console::levels::Level)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs16DiagnosticArray_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xe1): undefined reference to `ros::console::setLogLocationLevel(ros::console::LogLocation*, ros::console::levels::Level)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs16DiagnosticArray_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0xe9): undefined reference to `ros::console::checkLogLocationEnabled(ros::console::LogLocation*)'
ros_diagnostic_msgs_transport.cpp:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN15diagnostic_msgs16DiagnosticArray_ISaIvEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[ros::SubscriptionCallbackHelperT > const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)]+0x144): undefined reference to `ros::console::print(ros::console::FilterBase*, log4cxx::Logger*, ros::console::levels::Level, char const*, int, char const*, char const*, ...)'
collect2: ld returned 1 exit status

Extend supported use cases of rtt_tf

As discussed during #121 review, rtt_tf could work in a more automatic way, with the help of tf2_ros::TransformListener, and by writing to output ports when it receives new transforms, rather than relying on operation calls. This would make easier to estabilish bi-directional communication of transforms between Orocos and ROS.

version of ACE/TAO supported ?

Hi, which are the version of ACE/TAO supported by orocos 2.8?

I'm try to compile Orocos from source with ACE+TAO-6.1.2 (TAO-2.1) (compiled from source also) http://download.dre.vanderbilt.edu/previous_versions/

But orocos don't compile, get an error in something related with Corba.

and

When I try to compile ACETAO=ACE+TAO-5.6.7 (TAO-1.6.7) is generated this error:
Dev_Poll_Reactor.cpp: In member function ‘int ACE_Dev_Poll_Reactor::dispatch_io_event(ACE_Dev_Poll_Reactor::Token_Guard&)’:
Dev_Poll_Reactor.cpp:1216:41: error: cannot bind packed field ‘pfds->epoll_event::events’ to ‘__uint32_t& {aka unsigned int&}’
__uint32_t &revents = pfds->events;
^
make[1]: *** [.shobj/Dev_Poll_Reactor.o] Error 1
make[1]: Leaving directory `/usr/src/ACE_wrappers/ace'
make: *** [ACE] Error 2

I'm using Ubuntu 14.04, Xenomai 2.6.4, GCC and G++ 4.8

Has anyone the solution for this?

Ports connected to ROS subscribers should not depend on spinning the global callback queue

Copied from #104 (comment):

I agree that the number of spinner threads has a significant effect on the overall behavior of a ROS application, including ROS-enabled Orocos processes. This is especially true if the process provides services, where a long-running callback actually blocks all subscriptions.

Increasing the number of default spinner threads would be one option to mitigate the problem, and unless someone would use ROS primitives with callbacks directly within the same process or rtt_roscomm service server proxies with ClientThread operations, there should be no noticeable side effect.

We had a similar problem in the past few weeks and I was thinking about the following alternative solutions, which eventually would scale better:

  • a per subscriber or service server CallbackQueue and associated Orocos activity
  • a per component CallbackQueue and associated Orocos activity, similar to the dispatcher threads of the CORBA or mqueue transport for the sending side. Similarly the RosPublishActivity could be instantiated per component instead of as a process-wide singleton.
  • a customized implementation of ros::CallbackQueue that instead of enqueuing a callback and waiting until a spinner thread polls it would call the callback immediately. This callback would directly push the message to the data or buffer object associated with the ROS stream connection, bypassing ROS' callback queue and the spinner threads completely. Orocos RTT already has all the primitives we need. On the other hand deserialization would already happen in roscpp's network thread and I am not sure whether this is a good idea.

Diagnose unit test failures

From: #10 (comment)

@meyerj

Do you have an idea why the tests are failing in Travis for orocos/rtt_ros_integration.git?
https://travis-ci.org/orocos/rtt_ros_integration/builds/16476426
For some reason Travis still reports a successful build despite of the failed tests.

The tests weren't failing a month ago, and nothing in rtt_ros changed, so I think it might be something that changed in rtt, itself: https://travis-ci.org/jhu-lcsr-forks/rtt_ros_integration/builds/15534262

It also looks like even then, there are some false errors reported even thought things are properly loaded.

I don't know why catkin_make run_tests is returning 0, though.

Improve documentation on ROS service call behavior and the relation to the number of spinner threads

Say I have an orocos component that has an operation such as,

this->addOperation("do_work", &MyWorker::doWork, this, RTT::ClientThread).doc("Does work");

Where when called, this blocks the callers thread and does not block the task context thread. I'm unable to find anywhere in the documentation for rtt_ros_integration whether or not ROSServiceService calls respect the orocos operation spec on whether to block the client thread of the task context thread.

rtt_rosnode: loadROSService() overrides one from rtt_ros

The global function loadROSService() in rtt_rosnode/src/ros_plugin.cpp added in 6ae4950 apparently overrides one with the same name residing in rtt_ros/src/rtt_ros_service.cpp (probably during linking).

This causes the 'import' operation to never be registered thus breaking anything using that operation. Simple renaming the function within the file solved the issue (at least in my usecase) - it's not referenced anywhere outside the file.


As an additional note (though I'm not sure about this one), shouldn't it register as providing "rosnode" instead of "ros", to be consistent with the name reported in getRTTPluginName()?

2.9.1 failing to build on Trusty armhf

@meyerj ros/rosdistro#16385 appears to have caused a regression on Trusty armhf: http://build.ros.org/view/Ibin_arm_uThf/job/Ibin_arm_uThf__rtt_roscomm__ubuntu_trusty_armhf__binary/

00:25:50.966 -- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") 
00:25:50.990 -- [UseOrocos] Building package rtt_roscomm with catkin develspace support.
00:25:50.991 -- [UseOrocos] Using Orocos RTT in rtt_roscomm
00:25:51.367 -- checking for one of the modules 'rtt_ros-gnulinux'
00:25:52.230 -- [UseOrocos] Found orocos package 'rtt_ros'.
00:25:52.260 -- checking for one of the modules 'rtt_rospack-gnulinux'
01:20:54.950 FATAL: command execution failed
01:20:54.950 org.jenkinsci.remoting.nio.FifoBuffer$CloseCause: Buffer close has been requested
01:20:54.951 	at org.jenkinsci.remoting.nio.FifoBuffer.close(FifoBuffer.java:426)
01:20:54.951 	at org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport.closeR(NioChannelHub.java:332)
01:20:54.951 	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:565)
01:20:54.951 Caused: java.io.IOException: Unexpected EOF while receiving the data from the channel. FIFO buffer has been already closed

http://build.ros.org/view/Ibin_arm_uThf/job/Ibin_arm_uThf__rtt_roscomm__ubuntu_trusty_armhf__binary/13/consoleFull
http://build.ros.org/view/Ibin_arm_uThf/job/Ibin_arm_uThf__rtt_roscomm__ubuntu_trusty_armhf__binary/18/console

The buildfarm has retried several times and basically times out during the cmake configure step here.

rtt_rosnode/rtt_roscomm: Create ROS callback queue to be used only for ROS RTT streams

Currently, the ROS RTT message streams use the default callback queue, which when orocos components are embedded in other ROS programs, means that the rtt_rosnode plugin's AsyncSpinner isn't actually handling callbacks. This means that there might be some interference between other ROS callbacks and the callbacks used by rtt_roscomm's msg and srv handling.

Instead, we could do something like Gazebo, where they create an AsyncSpinner, but also create their own callback queue and process callbacks in an independent thread:

https://github.com/ros-simulation/gazebo_ros_pkgs/blob/6e503421fb5bfa28b604e4867f25b81a56938223/gazebo_ros/src/gazebo_ros_api_plugin.cpp#L136

This way, we know that the msg and srv handling is handled entirely by scheduling that we control.

catkin_make rtt_ros_integration

Hi,

I'm trying to build rtt_ros_integation on Gentoo Linux. But it seems quite tricky for me. Some times I could succeed. But most often failed: no librtt_ros-gnulinux.so and the likes librtt_xxx.so generated.

I'm using toolchain 2.9, ROS kinetic. I followed the instruction for building the toolchain. Lua was disabled by setting the option in lua/CMakeLists.txt

  • export OROCOS_TARGET=gnulinux
  • source src/orocos_toolchain/env.sh
  • catkin_make_isolated –install
  • source install_isolated/setup.sh or source install_isolated/setup.bash

Building the toolchain -- totally no problem.

Building the rtt_ros_integration -- corba not found, xenomai not found. Those seems no problem. Main problem is that there is no information showed on why no librtt_ros-gnulinux.so and the likes librtt_xxx.so generated.

Can anyone give me some hints?

Thank you!

how to connect orocos component port with ros node topic?

hi,
I have read the README.md of rtt_roscomm, https://github.com/orocos/rtt_ros_integration/tree/toolchain-2.9/rtt_roscomm , but I still not know how use it ,can you an example or a sample program ?
The below is my start.ops, but I am not sure if it is right, because the program does not work . And the program network address is https://github.com/xudong0401/urg_laser.
import("rtt_ros")
import("rtt_roscomm")
#import("rtt_rosnode")
path("/urg_laser_test/rtt_ros_component/obstacles_orocos/build/devel/lib/orocos")
ros.import("obstacles_orocos")
loadComponent("obstacles","SubscribeAndPublish")
path("/urg_laser_test/rtt_ros_component/scan_rectifier_orocos/build/devel/lib/orocos")
ros.import("scan_rectifier_orocos")
loadComponent("scanrectifier","ScanRectifier")
path("/urg_laser_test/rtt_ros_component/serial_port_orocos/build/devel/lib/orocos")
ros.import("serial_port_orocos")
loadComponent("serial","SerialPortTest")
setActivity("obstacles",0.0,80,ORO_SCHED_RT)
setActivity("serial",0.0,79,ORO_SCHED_RT)
setActivity("scanrectifier",0.0,78,ORO_SCHED_RT)
stream("scanrectifier.sub_",ros.topic("scan_filtered"))
connectPeers("scanrectifier","obstacles")
connectPeers("obstacles","serial")
scanrectifier.start()
obstacles.start()
serial.start()

Bug in create_rtt_msgs (rtt_roscomm) when target to services

For some reason, there are visibility issues (maybe something wrong in the CMake macros..?) when generating a typekit for ROS services with create_rtt_msgs tool.
Everything works fine if the target package contains .msg, but the issue affects only .srv.
The generated package rtt_<target_pkg> properly create the line ros_generate_rtt_service_proxies, but in the user code of the component the header file is not found (eg, #include <target_pkg/MyService.h>).
The issue is not on the component/package using the rtt_<target_pkg>, since the same user code uses rtt_std_srvs, which works just fine.

For now, the solution (apparently) is to include the dependency of "rosgraph_msgs" in the CMakeLists.txt as follows (but I can't explain why this solve the issue):

orocos_generate_package(
  DEPENDS rosgraph_msgs
  DEPENDS_TARGETS rtt_roscomm rtt_std_msgs
)

This dependency is mentioned in the rtt_std_srvs (which works fine), but create_rtt_msgs does not include it.

Possible actions:

  1. if the solution is correct, update the create_rtt_msgs by adding that dependency;
  2. otherwise, the cause could be somewhere else...

NOTE: Tested on Ubuntu 16.04 LTS, v2.8.3 from sources (maybe the issue is already solved in latest version).

no librtt_ros-gnulinux.so generated in devel/lib

Hi,

I'm trying to build (catkin_make) rtt_ros_integration (for toolchain 2.9) on Gentoo Linux with ROS Kinetic and Orocos toolchain 2.9. But got no librtt_ros-gnulinux.so generated under devel/lib folder.

What can be the problem?

On Ubuntu 16.04, totally no problem. On Gentoo, I'm using python 3.4. Can that be a problem? Building the toolchain, seems quite OK:

deployer --v
OROCOS Toolchain version '2.9.0' ( GCC 4.8.4 ) -- GNU/Linux.

Thank you!

Just realized -- need to install pkgconfig on Gentoo

emerge dev-util/pkgconfig

rtt_dynamic_reconfigure: tests fail to link

I'm building against ROS Indigo and Orocos Toolchain 2.7:

Linking CXX shared library /opt/orocos/devel_isolated/rtt_dynamic_reconfigure_tests/lib/orocos/gnulinux/rtt_dynamic_reconfigure_tests/plugins/librtt_dynamic_reconfigure_tests_service-gnulinux.so
CMakeFiles/rtt_dynamic_reconfigure_tests_service.dir/test/service.cpp.o: In function ros::Publisher::operator void*() const': service.cpp:(.text._ZNK3ros9PublishercvPvEv[_ZNK3ros9PublishercvPvEv]+0x2e): undefined reference toros::Publisher::Impl::isValid() const'

rtt_rosparam: use pkg-config as a fallback to find Eigen

Typically cross-compilation does not work well with pkg-config when one uses a custom rootfs. Therefore, I suggest that by default find_package(Eigen3 QUIET) is used, and if that does not work fall back to pkg-config. This approach works with cross-compilation for Ubuntu 16.04 and 18.04.

Error Building Catkin-based Packages

All,

I'm trying to build the rtt_ros_integration package by following the instructions at https://github.com/orocos/rtt_ros_integration, but I get a compile error when executing the "catkin_make" step of the Catkin-based build procedure. The error I get is as follows:

[  8%] Building CXX object rtt_ros_integration/rtt_roscomm/CMakeFiles/rtt_rosservice.dir/src/rtt_rosservice_service.cpp.o
cd /home/ubuntu/catkin_ws/underlay/build/rtt_ros_integration/rtt_roscomm && /usr/bin/c++   -DOROCOS_TARGET=xenomai -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"rtt_roscomm\" -Drtt_rosservice_EXPORTS -fPIC -I/home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include -I/home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/orocos -I/usr/xenomai/include/xenomai -I/usr/xenomai/include/xenomai/posix -I/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_ros/include -I/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/include -I/opt/ros/hydro/include      -o CMakeFiles/rtt_rosservice.dir/src/rtt_rosservice_service.cpp.o -c /home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp: In member function 'RTT::base::OperationCallerBaseInvoker* ROSServiceService::get_owner_operation_caller(std::string)':
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:54:84: error: conversion from 'RTT::ServiceRequester*' to non-scalar type 'boost::shared_ptr<RTT::ServiceRequester>' requested
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:60:42: error: no match for 'operator=' in 'required = required.boost::shared_ptr<T>::operator-><RTT::ServiceRequester>()->RTT::ServiceRequester::requires((*(const string*)it.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator*<std::basic_string<char>*, std::vector<std::basic_string<char> > >()))'
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:60:42: note: candidates are:
In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                 from /home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/rtt/rtt-fwd.hpp:48,
                 from /home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/rtt/RTT.hpp:52,
                 from /home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:3:
/usr/include/boost/smart_ptr/shared_ptr.hpp:309:18: note: boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(const boost::shared_ptr<T>&) [with T = RTT::ServiceRequester; boost::shared_ptr<T> = boost::shared_ptr<RTT::ServiceRequester>]
/usr/include/boost/smart_ptr/shared_ptr.hpp:309:18: note:   no known conversion for argument 1 from 'RTT::ServiceRequester*' to 'const boost::shared_ptr<RTT::ServiceRequester>&'
/usr/include/boost/smart_ptr/shared_ptr.hpp:318:18: note: template<class Y> boost::shared_ptr& boost::shared_ptr::operator=(const boost::shared_ptr<Y>&) [with Y = Y; T = RTT::ServiceRequester]
/usr/include/boost/smart_ptr/shared_ptr.hpp:318:18: note:   template argument deduction/substitution failed:
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:60:42: note:   mismatched types 'const boost::shared_ptr<X>' and 'RTT::ServiceRequester*'
In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                 from /home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/rtt/rtt-fwd.hpp:48,
                 from /home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/rtt/RTT.hpp:52,
                 from /home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:3:
/usr/include/boost/smart_ptr/shared_ptr.hpp:329:18: note: template<class Y> boost::shared_ptr& boost::shared_ptr::operator=(std::auto_ptr<_Tp1>&) [with Y = Y; T = RTT::ServiceRequester]
/usr/include/boost/smart_ptr/shared_ptr.hpp:329:18: note:   template argument deduction/substitution failed:
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:60:42: note:   mismatched types 'std::auto_ptr<T>' and 'RTT::ServiceRequester*'
In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                 from /home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/rtt/rtt-fwd.hpp:48,
                 from /home/ubuntu/catkin_ws/underlay_isolated/install_isolated/include/rtt/RTT.hpp:52,
                 from /home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:3:
/usr/include/boost/smart_ptr/shared_ptr.hpp:338:77: note: template<class Ap> typename boost::detail::sp_enable_if_auto_ptr<Ap, boost::shared_ptr<T>&>::type boost::shared_ptr::operator=(Ap) [with Ap = Ap; T = RTT::ServiceRequester]
/usr/include/boost/smart_ptr/shared_ptr.hpp:338:77: note:   template argument deduction/substitution failed:
/usr/include/boost/smart_ptr/shared_ptr.hpp: In substitution of 'template<class Ap> typename boost::detail::sp_enable_if_auto_ptr<Ap, boost::shared_ptr<T>&>::type boost::shared_ptr::operator=(Ap) [with Ap = Ap; T = RTT::ServiceRequester] [with Ap = RTT::ServiceRequester*]':
/home/ubuntu/catkin_ws/underlay/src/rtt_ros_integration/rtt_roscomm/src/rtt_rosservice_service.cpp:60:42:   required from here
/usr/include/boost/smart_ptr/shared_ptr.hpp:338:77: error: no type named 'type' in 'struct boost::detail::sp_enable_if_auto_ptr<RTT::ServiceRequester*, boost::shared_ptr<RTT::ServiceRequester>&>'
make[2]: *** [rtt_ros_integration/rtt_roscomm/CMakeFiles/rtt_rosservice.dir/src/rtt_rosservice_service.cpp.o] Error 1
make[2]: Leaving directory `/home/ubuntu/catkin_ws/underlay/build'
make[1]: *** [rtt_ros_integration/rtt_roscomm/CMakeFiles/rtt_rosservice.dir/all] Error 2
make[1]: Leaving directory `/home/ubuntu/catkin_ws/underlay/build'
make: *** [all] Error 2
Invoking "make" failed

Does anyone know what I might be doing wrong? I've made sure that I've followed the directions closely. Also, I'm building on Ubuntu 13.04 and ROS Hydro.

rtt_tf does not compile on indigo

I get the following compile error:

home/rsmits/orocos_ws/src/rtt_ros_integration/rtt_tf/rtt_tf-component.cpp: In member function ‘virtual void rtt_tf::RTT_TF::updateHook()’:
/home/rsmits/orocos_ws/src/rtt_ros_integration/rtt_tf/rtt_tf-component.cpp:133:22: error: ‘tf::tfMessage’ has no member named ‘__connection_header’
               msg_in.__connection_header.get();

It's related to the following discussion in ros/gencpp#3.

Problem to build orocos-rtt 2.8.3 for the gnulinux + ROS Kinetic

Hi,

I follow the steps from here (https://github.com/orocos/rtt_ros_integration), to install orocos-rtt in a ROS Kinetic catkin workspace.

Too many things are not clear to me yet:

  • in the cd ~/ws/underlay_isolated, "ws" is the catkin workspace?
  • the packages that I create, must stay in "catkin_ws/underlay/src"?
  • where I put this commands: import("rtt_ros") ros.import("my_pkg_name")?

Assuming the installation is in the catkin directory, I had to install the following packages:

apt-get install ruby-dev
gem install rake hoe
sudo apt-get install libreadline-dev 

After that, assuming that the package installation should be done in the "catkin_ws/underlay/src", I create a package with the same dependencies introduced in rtt_ros_integration doc. However, in a certain point, catkin accuses the following error:

-- Checking for one of the modules 'ocl-taskbrowser-gnulinux;ocl-taskbrowser'
CMake Error at /home/matheus/catkin_ws/underlay_isolated/install_isolated/lib/cmake/orocos-rtt/UseOROCOS-RTT-helpers.cmake:208 (message):
  [UseOrocos] Could not find package 'ocl-taskbrowser'.
Call Stack (most recent call first):
  /home/matheus/catkin_ws/underlay_isolated/install_isolated/lib/cmake/orocos-rtt/UseOROCOS-RTT-helpers.cmake:276 (orocos_find_package)
  rtt_ros_integration/rtt_tf/CMakeLists.txt:23 (orocos_use_package)

However, it looks like this library is inside the packages:

locate ocl-taskbrowser
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/liborocos-ocl-taskbrowser-gnulinux.so
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/liborocos-ocl-taskbrowser-gnulinux.so.2.8
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/liborocos-ocl-taskbrowser-gnulinux.so.2.8.4
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/ocl-taskbrowser-gnulinux.pc
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/CXX.includecache
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/DependInfo.cmake
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/TaskBrowser.cpp.o
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/build.make
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/cmake_clean.cmake
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/depend.internal
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/depend.make
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/flags.make
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/link.txt
/home/matheus/catkin_ws/underlay_isolated/build_isolated/ocl/install/taskbrowser/CMakeFiles/orocos-ocl-taskbrowser.dir/progress.make
/home/matheus/catkin_ws/underlay_isolated/install_isolated/lib/liborocos-ocl-taskbrowser-gnulinux.so
/home/matheus/catkin_ws/underlay_isolated/install_isolated/lib/liborocos-ocl-taskbrowser-gnulinux.so.2.8
/home/matheus/catkin_ws/underlay_isolated/install_isolated/lib/liborocos-ocl-taskbrowser-gnulinux.so.2.8.4
/home/matheus/catkin_ws/underlay_isolated/install_isolated/lib/pkgconfig/ocl-taskbrowser-gnulinux.pc

What ca I do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.