GraspTable.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017 Fraunhofer Institute for Manufacturing Engineering and Automation (IPA)
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 
18 #ifndef __GRASP_TABLE_H__
19 #define __GRASP_TABLE_H__
20 
21 #include <tinyxml.h>
22 #include <iostream>
23 #include <vector>
24 
25 #define MAX_NO_OF_OBJECTS 200
26 
27 
28 class Grasp
29 {
30  public:
31  Grasp(){;}
32 
33  std::vector<double> GetTCPPreGraspPose(){return m_TCPPreGraspPose;}
34  void SetTCPPreGraspPose(std::vector<double> TCPPreGraspPose){m_TCPPreGraspPose = TCPPreGraspPose;}
35 
36  std::vector<double> GetTCPGraspPose(){return m_TCPGraspPose;}
37  void SetTCPGraspPose(std::vector<double> TCPGraspPose){m_TCPGraspPose = TCPGraspPose;}
38 
40  std::vector<double> GetHandPreGraspConfig(){return m_HandPreGraspConfig;}
41  void SetHandPreGraspConfig(std::vector<double> HandPreGraspConfig){m_HandPreGraspConfig=HandPreGraspConfig;}
42 
43  std::vector<double> GetHandGraspConfig(){return m_HandGraspConfig;}
44  void SetHandGraspConfig(std::vector<double> HandGraspConfig){m_HandGraspConfig=HandGraspConfig;}
45 
46  std::vector<double> GetHandOptimalGraspConfig(){return m_HandOptimalGraspConfig;}
47  void SetHandOptimalGraspConfig(std::vector<double> HandOptimalGraspConfig){m_HandOptimalGraspConfig=HandOptimalGraspConfig;}
48 
49  void SetGraspId(int graspId){m_GraspId = graspId;}
50  int GetGraspId(){return m_GraspId;}
51 
52  private:
53  std::vector<double> m_TCPGraspPose;
54  std::vector<double> m_TCPPreGraspPose;
55  std::vector<double> m_HandPreGraspConfig;
56  std::vector<double> m_HandGraspConfig;
57  std::vector<double> m_HandOptimalGraspConfig;
58 
59  int m_GraspId;
60 };
61 
63 {
64  public:
65  GraspTableObject():m_GraspReadPtr(0),m_GraspWritePtr(0),m_ObjectClassId(0)
66  {m_GraspTableObject.clear();}
67 
68  int Init(int size)
69  {m_GraspTableObject.resize(size);return 0;}
70 
71 
73  std::vector<Grasp*>& Get()
74  {return m_GraspTableObject;}
75 
77  {
78  if (m_GraspReadPtr <m_GraspWritePtr)
79  return m_GraspTableObject[m_GraspReadPtr++];
80  else
81  return NULL;
82  }
83 
84  Grasp * GetGrasp(unsigned int graspId)
85  {
86  if (graspId < m_GraspTableObject.size())
87  return m_GraspTableObject[graspId];
88  else
89  return NULL;
90  }
91 
92  void AddGrasp(Grasp * grasp)
93  { if (m_GraspWritePtr < m_GraspTableObject.size()) m_GraspTableObject[m_GraspWritePtr++]=grasp; }
94 
95  unsigned int GetObjectClassId(){ return m_ObjectClassId; }
96  void SetObjectClassId(unsigned int ObjectClassId){ m_ObjectClassId = ObjectClassId; }
97 
98  void ResetGraspReadPtr(){ m_GraspReadPtr=0; }
99 
100  private:
101  unsigned int m_GraspReadPtr;
102  unsigned int m_GraspWritePtr;
103  unsigned int m_ObjectClassId;
104  std::vector<Grasp*> m_GraspTableObject;
105 };
106 
107 
109 {
110  public:
112 
113  int Init(char * iniFile, unsigned int table_size=MAX_NO_OF_OBJECTS);
114  void AddGraspTableObject(GraspTableObject * graspTableObject);
115 
116  Grasp * GetNextGrasp(unsigned int object_class_id);
117  Grasp * GetGrasp(unsigned int object_class_id, unsigned int & grasp_id);
118  void ResetReadPtr(unsigned int object_class_id);
119 
120  private:
121  void ReadDoubleValue(TiXmlElement* xml, const char * tag, double * value);
122  void ReadJoint(TiXmlElement* xml, const char * tag, std::vector<double> & values);
123  void ReadPose(TiXmlElement* xml, const char * tag, std::vector<double> & values);
124  int ReadFromFile(const char * filename, GraspTableObject * tableObject);
125 
126  std::vector<GraspTableObject*> m_GraspTable;
127  unsigned int m_lastObjectClassId;
128 };
129 
130 #endif
std::vector< double > m_HandPreGraspConfig
Definition: GraspTable.h:55
int Init(int size)
Definition: GraspTable.h:68
#define NULL
int m_GraspId
Definition: GraspTable.h:59
std::vector< GraspTableObject * > m_GraspTable
Definition: GraspTable.h:126
void ResetGraspReadPtr()
Definition: GraspTable.h:98
unsigned int m_ObjectClassId
Definition: GraspTable.h:103
unsigned int m_lastObjectClassId
Definition: GraspTable.h:127
void SetObjectClassId(unsigned int ObjectClassId)
Definition: GraspTable.h:96
#define MAX_NO_OF_OBJECTS
Definition: GraspTable.h:25
std::vector< double > values
Grasp * GetNextGrasp()
Definition: GraspTable.h:76
void SetHandOptimalGraspConfig(std::vector< double > HandOptimalGraspConfig)
Definition: GraspTable.h:47
void SetTCPPreGraspPose(std::vector< double > TCPPreGraspPose)
Definition: GraspTable.h:34
std::vector< double > GetTCPGraspPose()
Definition: GraspTable.h:36
void SetGraspId(int graspId)
Definition: GraspTable.h:49
void SetTCPGraspPose(std::vector< double > TCPGraspPose)
Definition: GraspTable.h:37
xml
unsigned int m_GraspReadPtr
Definition: GraspTable.h:101
std::vector< double > m_HandGraspConfig
Definition: GraspTable.h:56
std::vector< Grasp * > & Get()
set and get mehtods
Definition: GraspTable.h:73
std::vector< double > m_TCPGraspPose
Definition: GraspTable.h:53
void SetHandGraspConfig(std::vector< double > HandGraspConfig)
Definition: GraspTable.h:44
std::vector< double > m_TCPPreGraspPose
Definition: GraspTable.h:54
int GetGraspId()
Definition: GraspTable.h:50
Grasp()
Definition: GraspTable.h:31
unsigned int GetObjectClassId()
Definition: GraspTable.h:95
std::vector< double > GetHandPreGraspConfig()
Definition: GraspTable.h:40
void SetHandPreGraspConfig(std::vector< double > HandPreGraspConfig)
Definition: GraspTable.h:41
void AddGrasp(Grasp *grasp)
Definition: GraspTable.h:92
std::vector< double > GetHandGraspConfig()
Definition: GraspTable.h:43
std::vector< double > GetHandOptimalGraspConfig()
Definition: GraspTable.h:46
unsigned int m_GraspWritePtr
Definition: GraspTable.h:102
std::vector< Grasp * > m_GraspTableObject
Definition: GraspTable.h:104
Grasp * GetGrasp(unsigned int graspId)
Definition: GraspTable.h:84
std::vector< double > GetTCPPreGraspPose()
Definition: GraspTable.h:33
std::vector< double > m_HandOptimalGraspConfig
Definition: GraspTable.h:57


cob_pick_place_action
Author(s): Felix Messmer
autogenerated on Mon Jun 10 2019 13:10:02