00001 #include <cstdlib> 00002 #include <list> 00003 #include <queue> 00004 #include <sstream> 00005 #include <set> 00006 00007 #include <boost/filesystem.hpp> 00008 #include <boost/version.hpp> 00009 00010 #include <libxml/parser.h> 00011 #include <libxml/xpath.h> 00012 #include <libxml/xpathInternals.h> 00013 #include <libxml/tree.h> 00014 00015 #include <rtt/RTT.hpp> 00016 #include <rtt/internal/GlobalService.hpp> 00017 00018 #include <rtt/deployment/ComponentLoader.hpp> 00019 #include <rtt/Logger.hpp> 00020 00021 #include <rospack/rospack.h> 00022 00023 #include <rtt_ros/rtt_ros.h> 00024 00025 void loadROSService(){ 00026 RTT::Service::shared_ptr ros = RTT::internal::GlobalService::Instance()->provides("ros"); 00027 00028 ros->doc("RTT service for loading RTT plugins "); 00029 00030 // ROS Package-importing 00031 ros->addOperation("import", &rtt_ros::import).doc( 00032 "Imports the Orocos plugins from a given ROS package (if found) along with the plugins of all of the package's run or exec dependencies as listed in the package.xml.").arg( 00033 "package", "The ROS package name."); 00034 } 00035 00036 using namespace RTT; 00037 extern "C" { 00038 bool loadRTTPlugin(RTT::TaskContext* c){ 00039 if (c != 0) return false; 00040 loadROSService(); 00041 return true; 00042 } 00043 std::string getRTTPluginName (){ 00044 return "ros"; 00045 } 00046 std::string getRTTTargetName (){ 00047 return OROCOS_TARGET_NAME; 00048 } 00049 }