00001 00002 #include <nav_msgs/Path.h> 00003 #include <nav_msgs/MapMetaData.h> 00004 #include <nav_msgs/OccupancyGrid.h> 00005 #include <nav_msgs/GridCells.h> 00006 #include <nav_msgs/Odometry.h> 00007 00008 #include "ros_msg_transporter.hpp" 00009 #include "RosLib.hpp" 00010 #include <rtt/types/TransportPlugin.hpp> 00011 #include <rtt/types/TypekitPlugin.hpp> 00012 00013 namespace ros_integration { 00014 using namespace RTT; 00015 struct ROSnav_msgsPlugin 00016 : public types::TransportPlugin 00017 { 00018 bool registerTransport(std::string name, types::TypeInfo* ti) 00019 { 00020 if(name == "/nav_msgs/Path") 00021 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<nav_msgs::Path>()); 00022 if(name == "/nav_msgs/MapMetaData") 00023 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<nav_msgs::MapMetaData>()); 00024 if(name == "/nav_msgs/OccupancyGrid") 00025 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<nav_msgs::OccupancyGrid>()); 00026 if(name == "/nav_msgs/GridCells") 00027 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<nav_msgs::GridCells>()); 00028 if(name == "/nav_msgs/Odometry") 00029 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<nav_msgs::Odometry>()); 00030 00031 return false; 00032 } 00033 00034 std::string getTransportName() const { 00035 return "ros"; 00036 } 00037 00038 std::string getTypekitName() const { 00039 return std::string("ros-")+"nav_msgs"; 00040 } 00041 std::string getName() const { 00042 return std::string("rtt-ros-") + "nav_msgs" + "-transport"; 00043 } 00044 00045 }; 00046 } 00047 00048 ORO_TYPEKIT_PLUGIN( ros_integration::ROSnav_msgsPlugin )