summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/space.h
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/space.h')
-rw-r--r--2004/i/nono/src/ovision/space.h40
1 files changed, 17 insertions, 23 deletions
diff --git a/2004/i/nono/src/ovision/space.h b/2004/i/nono/src/ovision/space.h
index 52f6e6d..2668e76 100644
--- a/2004/i/nono/src/ovision/space.h
+++ b/2004/i/nono/src/ovision/space.h
@@ -7,11 +7,16 @@
#include <vector>
#include <iostream>
-#define POS_ROBOT_ETALONNOGE_X 300
-
#include "group.h"
#include "oconfig.h"
+#define NB_NODES_X 5
+#define NB_NODES_Y 3
+
+#define START_WEIGHT_MIN 0.1
+#define START_WEIGHT_MAX 0.9
+
+
struct SETUP_POINT
{
int x, y;
@@ -26,8 +31,8 @@ class Space
OConfig *oconfig;
/// tableau d'index des distances
- uint *tabX;
- uint *tabY;
+ double *tabX;
+ double *tabY;
/// liste des distances etalonnees
std::vector<SETUP_POINT> setupTab;
@@ -38,11 +43,7 @@ class Space
/// largeur de l'image
int imgWidth;
- /// coeff pour l'approximation de la profondeur
- double coefY[NB_POINTS];
-
- /// coeff pour l'approximation de l'horizontal
- double coefX[NB_POINTS];
+ double aY, bY, cY;
public:
@@ -56,6 +57,9 @@ class Space
void GetLoc(int locImgX, int locImgY, int &locX, int &locY);
void GetLoc(int locImgX, int locImgY, double &locX, double &locY);
+ /// Donne la position reelle sur la table de la balle
+ void GetPos(double locX, double locY, double posRobotX, double posRobotY, double angleRobot, double &posX, double &posY);
+
/// Ajoute un point pour l'etalonnage
void AddSetupPoint(int x, int y, int distx, int disty);
@@ -63,24 +67,14 @@ class Space
void LoadFromFile();
/// Etalonnage des distances
- int Setup();
+ int Setup(double aY, double bY, double cY);
- void Setup(double aX, double bX, double cX, double aY, double bY, double cY);
protected:
- /// Calcul du determinant
- double Determinant33(double *matrix);
- double Determinant(double *matrix, int n);
-
- double CoeffDeterminant (double *matrix, int i, int n);
-
- /// Calcul du determinant caracteristique
- double CaracteristicDeterminant(double *matrix, double *endMat, int numCol);
-
- /// Donne la position reelle sur la table de la balle
- void GetPos(int locX, int locY, int posRobotX, int posRobotY, double angleRobot, int &posX, int &posY);
+ void FindCoeffLine (double x1, double y1, double x2, double y2, double &a, double &b);
- int BestFitDoTab(double *mat, double *endMat);
+ void CreateGnuPlotFile (int y = 100);
+ void LogErrorPoint (FILE *f, int iter);
};
#endif // space_h