00001 /* 00002 * rotational_model.h 00003 * 00004 * Created on: Oct 22, 2009 00005 * Author: sturm 00006 */ 00007 00008 #ifndef ROTATIONAL_MODEL_H_ 00009 #define ROTATIONAL_MODEL_H_ 00010 00011 #include "rigid_model.h" 00012 #include "sensor_msgs/PointCloud2.h" 00013 #include "tf/LinearMath/Transform.h" 00014 00015 namespace articulation_models { 00016 00017 class RotationalModel: public GenericModel { 00018 public: 00019 double rot_mode; 00020 tf::Vector3 rot_center; 00021 tf::Quaternion rot_axis; 00022 00023 double rot_radius; 00024 tf::Quaternion rot_orientation; 00025 00026 RotationalModel(); 00027 // -- params 00028 void readParamsFromModel(); 00029 void writeParamsToModel(); 00030 00031 size_t getDOFs() { return 1; } 00032 00033 V_Configuration predictConfiguration(geometry_msgs::Pose pose); 00034 geometry_msgs::Pose predictPose(V_Configuration q); 00035 00036 bool guessParameters(); 00037 void updateParameters(std::vector<double> delta); 00038 bool normalizeParameters(); 00039 00040 }; 00041 00042 } 00043 00044 00045 #endif /* ROTATIONAL_MODEL_H_ */