Go to the documentation of this file.00001 #ifndef ROBOTINSTANCE_H_
00002 #define ROBOTINSTANCE_H_
00003
00004 #include <map>
00005 #include <vector>
00006 #include <boost/shared_ptr.hpp>
00007 #include <boost/make_shared.hpp>
00008 #include "robot_instance/DataMaps.h"
00009
00010 class RobotInstance
00011 {
00012 public:
00013 RobotInstance();
00014 virtual ~RobotInstance();
00015
00016 static const std::string TOKEN_PATH;
00017 static const std::string COEFF_BASE_PATH;
00018 static const std::string COEFF_CLASS_PATH;
00019 static const std::string COEFF_JOINT_PATH;
00020 static const std::string COEFF_CLASS_SAFETY_PATH;
00021 static const std::string COEFF_JOINT_SAFETY_PATH;
00022 static const std::string INSTANCE_PATH;
00023 static const std::string REGISTER_PATH;
00024 static const std::string MODEL_PATH;
00025 static const std::string SCHEDULE_PATH;
00026 static const std::string COMMAND_PATH;
00027 static const std::string APIMAP_PATH;
00028 static const std::string SENSOR_PATH;
00029 static const std::string PROPERTY_PATH;
00030
00031 std::string configurationBasePath;
00032 std::string configurationSafetyBasePath;
00033 std::string robotInstance;
00034 std::string machineName;
00035 std::vector<std::string> crew;
00036
00037 std::string kinematicModelFile;
00038 std::string dynamicModelFile;
00039
00040 std::string masterTokenFile;
00041
00042 FileMap nodeTokenMap;
00043
00044 std::vector<std::string> mechanisms;
00045 std::map<std::string, std::string> mechanismNodeMap;
00046 FileMap mechanismScheduleMap;
00047 FileMap mechanismRegisterMap;
00048 FileMap mechanismClassFileMap;
00049 FileMap mechanismJointFileMap;
00050 FileMap mechanismClassSafetyFileMap;
00051 FileMap mechanismJointSafetyFileMap;
00052 FileMap mechanismCommandMap;
00053 FileMap mechanismControlMap;
00054 FileMap mechanismSetpointMap;
00055
00056 std::map<std::string, std::vector<std::string> > mechanismJointsMap, mechanismAllJointsMap;
00057 FileNodeVectorMap jointScheduleNodeMap;
00058 std::map<std::string, std::vector<std::string> > mechanismActuatorsMap;
00059 FileNodeVectorMap actuatorScheduleNodeMap;
00060
00061 std::vector<std::string> commandableJoints, allJoints;
00062
00063 std::vector<std::string> devices;
00064 std::map<std::string, std::string> deviceTypeMap;
00065 std::map<std::string, std::string> deviceNodeMap;
00066 FileMap deviceScheduleMap;
00067 FileMap deviceRegisterMap;
00068 std::map<std::string, std::string> deviceCalFileMap;
00069
00070 std::map<std::string, std::string> mechanismTypeMap;
00071 std::map<std::string, std::string> channelTypeMap;
00072 std::map<std::string, std::string> jointTypeMap;
00073 std::map<std::string, std::string> jointCommandPathMap;
00074
00075 std::map< std::string, std::vector< std::pair<std::string, std::string> > > componentCpfsMap;
00076
00077 CoeffMap liveCoeffs;
00078 ParamMap liveParams;
00079 };
00080
00081 typedef boost::shared_ptr<RobotInstance> RobotInstancePtr;
00082
00083 #endif