00001 /* 00002 * ArticulatedObject.h 00003 * 00004 * Created on: Sep 14, 2010 00005 * Author: sturm 00006 */ 00007 00008 #ifndef ARTICULATEDOBJECT_H_ 00009 #define ARTICULATEDOBJECT_H_ 00010 00011 #include "articulation_msgs/TrackModelSrv.h" 00012 #include "articulation_msgs/ArticulatedObjectSrv.h" 00013 #include "articulation_msgs/ArticulatedObjectMsg.h" 00014 #include "articulation_models/models/factory.h" 00015 #include "articulation_models/utils.h" 00016 #include "structs.h" 00017 00018 00019 class ArticulatedObject: public KinematicParams, public KinematicData { 00020 public: 00021 articulation_msgs::ArticulatedObjectMsg object_msg; 00022 KinematicGraph currentGraph; 00023 std::map< std::string, KinematicGraph > graphMap; 00024 ArticulatedObject(); 00025 ArticulatedObject(const KinematicParams &other); 00026 void SetObjectModel(const articulation_msgs::ArticulatedObjectMsg &msg,ros::NodeHandle* nh_local); 00027 articulation_msgs::ArticulatedObjectMsg& GetObjectModel(); 00028 void FitModels(); 00029 KinematicGraph getSpanningTree(); 00030 void ComputeSpanningTree(); 00031 void getFastGraph(); 00032 void getGraph(); 00033 void enumerateGraphs(); 00034 void saveEval(); 00035 }; 00036 00037 #endif /* ARTICULATEDOBJECT_H_ */