23 sprintf(
markerDir,
"No marker dir set yet");
33 sprintf(this->calibrationDir, calibrationDir.c_str());
34 sprintf(this->
markerDir,toolFilesDir.c_str());
46 if (Cameras_Count() < 1)
48 printf(
"No camera found!\n");
55 MTC(Cameras_HistogramEqualizeImagesSet(
true));
60 MTC( Markers_LoadTemplates(markerDir) );
61 printf(
"Loaded %d marker templates\n",Markers_TemplatesCount());
64 for (
int i=0; i<20; i++)
66 MTC( Cameras_GrabFrame(0) );
67 MTC( Markers_ProcessFrame(0) );
87 printf(
" Error while connecting MicronTracker!\n -------------------------------");
119 std::vector<claronToolHandle> returnValue;
133 returnValue.push_back(Marker);
140 MTC( Cameras_GrabFrame(0) );
141 MTC( Markers_ProcessFrame(0) );
146 std::vector<double> returnValue;
155 MTC( Marker_Tooltip2MarkerXfGet (c, t2m ));
157 MTC(Xform3D_Concatenate(t2m,m2c,t2c));
160 MTC( Xform3D_ShiftGet(t2c, Position) );
164 returnValue.push_back(-Position[0]);
165 returnValue.push_back(-Position[1]);
166 returnValue.push_back(Position[2]);
173 std::vector<double> returnValue;
176 MTC( Xform3D_ShiftGet(
PoseXf, Position) );
180 returnValue.push_back(-Position[0]);
181 returnValue.push_back(-Position[1]);
182 returnValue.push_back(Position[2]);
190 std::vector<double> returnValue;
199 MTC( Marker_Tooltip2MarkerXfGet (c, t2m ));
201 MTC(Xform3D_Concatenate(t2m,m2c,t2c));
204 double Quarternions[4];
205 MTC( Xform3D_RotQuaternionsGet(t2c, Quarternions) );
209 claronQuaternion[3] = Quarternions[0];
210 claronQuaternion[0] = Quarternions[1];
211 claronQuaternion[1] = Quarternions[2];
212 claronQuaternion[2] = Quarternions[3];
217 minusNinetyDegreeY[3] = sqrt(2.0)/2.0;
218 minusNinetyDegreeY[0] = 0;
219 minusNinetyDegreeY[1] = -1.0/(sqrt(2.0));
220 minusNinetyDegreeY[2] = 0;
225 returnValue.push_back(erg[3]);
226 returnValue.push_back(erg[0]);
227 returnValue.push_back(erg[1]);
228 returnValue.push_back(erg[2]);
235 std::vector<double> returnValue;
237 double Quarternions[4];
239 MTC( Xform3D_RotQuaternionsGet(
PoseXf, Quarternions) );
245 claronQuaternion[3] = Quarternions[0];
246 claronQuaternion[0] = Quarternions[1];
247 claronQuaternion[1] = Quarternions[2];
248 claronQuaternion[2] = Quarternions[3];
253 minusNinetyDegreeY[3] = sqrt(2.0)/2.0;
254 minusNinetyDegreeY[0] = 0;
255 minusNinetyDegreeY[1] = -1.0/(sqrt(2.0));
256 minusNinetyDegreeY[2] = 0;
261 returnValue.push_back(erg[3]);
262 returnValue.push_back(erg[0]);
263 returnValue.push_back(erg[1]);
264 returnValue.push_back(erg[2]);
273 char MarkerName[MT_MAX_STRING_LENGTH];
274 MTC( Marker_NameGet(c, MarkerName, MT_MAX_STRING_LENGTH, 0) );
275 std::string* returnValue =
new std::string(MarkerName);
276 return returnValue->c_str();
bool IsMicronTrackerInstalled()
char calibrationDir[512]
Variable which holds the directory which should contain the file BumbleBee_6400420.calib. This directory is needed by the MTC library.
ClaronInterface()
standard constructor
std::vector< double > GetTipPosition(claronToolHandle c)
std::vector< double > GetTipQuaternions(claronToolHandle c)
mtHandle IdentifyingCamera
const char * GetName(claronToolHandle c)
std::vector< double > GetPosition(claronToolHandle c)
~ClaronInterface() override
standard destructor
bool StopTracking()
Clears all resources. After this method have been called the system isn't ready to track any longer...
bool StartTracking()
Opens the connection to the device and makes it ready to track tools.
void GrabFrame()
Grabs a frame from the camera.
std::vector< double > GetQuaternions(claronToolHandle c)
vnl_quaternion< ScalarType > Quaternion
bool isTracking
Variable is true if the device is tracking at the moment, false if not.
mtHandle IdentifiedMarkers
char markerDir[512]
Variable which holds a directory with some tool files in it. All this tools are trackable when the pa...
void Initialize(std::string calibrationDir, std::string toolFilesDir)
Initialization of claroninterface.
std::vector< claronToolHandle > GetAllActiveTools()