00001 00014 #include <xsensdeviceapi.h> 00015 00016 #include <ros/ros.h> 00017 #include <ros/console.h> 00018 00019 #include <stdlib.h> 00020 #include <getopt.h> 00021 #include <string> 00022 00023 #include <sensorData.h> 00024 #include <messageMaker.h> 00025 00026 #define THROTTLE_VALUE 10 00027 #define FRAME_ID_STRING "xsens" 00028 // Frame Id used in message headers 00029 00030 class mtiG{ 00031 private: 00032 int override_settings; 00033 00034 XsDevice * device; 00035 MessageMaker * messageMaker; 00036 SensorData sensorData; 00037 outputSettings mSettings; 00038 00039 00040 00041 //Publishers 00042 ros::Publisher imuPublisher; 00043 ros::Publisher gpsPublisher; 00044 ros::Publisher velPublisher; 00045 ros::Publisher gpsVelPublisher; 00046 ros::Publisher tempPublisher; 00047 ros::Publisher magFieldPub; 00048 ros::Publisher pressurePublisher; 00049 ros::Publisher gpsInfoPublisher; 00050 ros::Publisher rpyPublisher; 00051 00052 00053 void printSettings(); 00054 00055 00056 void parseOptions(int argc, char** argv); 00057 00058 public: 00059 00060 00061 //Function 00062 00063 //Constructors 00064 mtiG(XsDevice * _device ); 00065 mtiG(XsDevice * _device, int argc, char ** argv); 00066 void configure(); 00067 void fillData(XsDataPacket *); 00068 00069 void advertise(); 00070 void publish(); 00071 void readSettings(); 00072 }; 00073