summaryrefslogtreecommitdiff
path: root/2004/i/nono
diff options
context:
space:
mode:
authorgaillaro2004-05-19 22:31:34 +0000
committergaillaro2004-05-19 22:31:34 +0000
commite192dad315141d3435010e7db3567140e0db9b27 (patch)
tree172c238766a7f8190627fb890779829138c8ea17 /2004/i/nono
parent636f248c2fb00f90969957232a04a738f8cc2a6a (diff)
version testée
Diffstat (limited to '2004/i/nono')
-rw-r--r--2004/i/nono/runtime/rc/dist42
-rw-r--r--2004/i/nono/runtime/rc/poids16
-rw-r--r--2004/i/nono/runtime/rc/vision.conf18
-rw-r--r--2004/i/nono/src/ovision/group.cc15
-rw-r--r--2004/i/nono/src/ovision/map.cc58
-rw-r--r--2004/i/nono/src/ovision/map.h8
-rw-r--r--2004/i/nono/src/ovision/space.cc6
-rw-r--r--2004/i/nono/src/ovision/space.h4
8 files changed, 123 insertions, 44 deletions
diff --git a/2004/i/nono/runtime/rc/dist b/2004/i/nono/runtime/rc/dist
index 6726d36..5f095ad 100644
--- a/2004/i/nono/runtime/rc/dist
+++ b/2004/i/nono/runtime/rc/dist
@@ -1,4 +1,40 @@
#imgX imgY distX distY
-109 436 150 900
-84 402 150 600
-50 459 150 300
+65 9 -100 295
+198 10 0 295
+334 11 100 295
+319 54 100 345
+197 55 0 345
+79 53 -100 345
+90 88 -100 395
+196 90 0 395
+305 89 100 395
+292 118 100 445
+283 143 100 495
+275 163 100 545
+269 182 100 595
+192 180 0 595
+192 162 0 545
+193 143 0 495
+195 120 0 445
+196 90 0 395
+197 55 0 345
+98 119 -100 445
+107 142 -100 495
+113 161 -100 545
+118 180 -100 595
+122 194 -100 645
+191 194 0 645
+264 195 100 645
+258 209 100 695
+250 236 100 795
+72 241 -200 795
+132 241 -100 795
+191 241 0 795
+312 244 200 795
+244 250 100 895
+290 267 200 995
+341 267 300 995
+239 265 100 995
+189 264 0 995
+141 264 -100 995
+92 263 -200 995
diff --git a/2004/i/nono/runtime/rc/poids b/2004/i/nono/runtime/rc/poids
index 598a99d..289da29 100644
--- a/2004/i/nono/runtime/rc/poids
+++ b/2004/i/nono/runtime/rc/poids
@@ -1,10 +1,10 @@
YUV
-3 // Index de la couleur des balles
-2 // Index de la couleur des poteaux
+2 // Index de la couleur des balles
+1 // Index de la couleur des poteaux
#index #x1 x2 x3
-0 41 91 169
-1 93 59 182
-2 42 117 48
-3 111 56 24
-4 241 244 138
-5 112 96 70
+0 94 110 220
+1 22 96 37
+2 157 46 48
+3 30 163 61
+4 65 152 213
+5 189 182 118
diff --git a/2004/i/nono/runtime/rc/vision.conf b/2004/i/nono/runtime/rc/vision.conf
index a3f7555..6fed957 100644
--- a/2004/i/nono/runtime/rc/vision.conf
+++ b/2004/i/nono/runtime/rc/vision.conf
@@ -3,7 +3,6 @@
#############################################
Hauteur_Image = 352
Largeur_Image = 288
-Source = usbcam
#############################################
# Segm #
@@ -14,13 +13,24 @@ NN_Number_Iteration_Learning = 5000
NN_Nombre_Couleurs = 6
NN_Influence_Luminosite = 0.5
NN_Lazy_Threshold = 3
+NN_Threshold_Output = 10000
+#############################################
+# Group #
+#############################################
+Minimum_Length_Zone = 20
+
+#############################################
+# Space #
+#############################################
+One_NN_Learning_Rate = 0.00000001
+One_NN_Learning_Iteration = 100000
#############################################
# Map #
#############################################
-Map_Error = 5
-Map_Error_Part = 20
+Map_Error = 40
+Map_Error_Part = 70
Angle_Ball = 1
Distante_Ball_Robot = 1
@@ -29,6 +39,8 @@ Ball_Density = 1
Ennemy_Presence = 1
Ball_Precision = 1
Skepticism = 2
+Ball_Lost = 3
+Ball_Bottom_Time_Out = 10
Skepticism_Max = 200
diff --git a/2004/i/nono/src/ovision/group.cc b/2004/i/nono/src/ovision/group.cc
index d09445c..9c9c158 100644
--- a/2004/i/nono/src/ovision/group.cc
+++ b/2004/i/nono/src/ovision/group.cc
@@ -256,6 +256,21 @@ void Group::JumpPoints(unsigned char numColorBall, unsigned char numColorGoal) {
}
}
+ ZONE *pCur;
+ for (int k=0; k<2; k++)
+ {
+ if (k == 0) pCur = zoneListBall;
+ else if (k == 1) pCur = zoneListGoal;
+
+ while (pCur)
+ {
+ pCur->ymax = img->height - pCur->ymax;
+ pCur = pCur->next;
+ }
+ }
+
+
+
}
diff --git a/2004/i/nono/src/ovision/map.cc b/2004/i/nono/src/ovision/map.cc
index d166755..d90b2bd 100644
--- a/2004/i/nono/src/ovision/map.cc
+++ b/2004/i/nono/src/ovision/map.cc
@@ -38,6 +38,7 @@ Map::~Map (void)
}
+/// Donne la position dans le référentiel de la table
void
Map::GetPosFromLoc (int locImgX, int locImgY, double &posX, double &posY)
{
@@ -138,7 +139,7 @@ Map::SetLock(bool value)
/// Donne la position de la balle la plus proche ou locke
bool
-Map::getCurBallPos (double &x, double &y)
+Map::GetCurBallPos (double &x, double &y)
{
if (checkCurBall == true)
{
@@ -177,6 +178,7 @@ Map::AddBallsToMap(Group *group)
{
ZONE *pCur = group->zoneListBall;
double pos[2];
+ double centYMax = 900;
// bool ballLost = 1;
@@ -189,6 +191,7 @@ Map::AddBallsToMap(Group *group)
// On choppe la position par rapport au robot
space->GetLoc (pCur->centerx, pCur->centery, pos[0], pos[1]);
+
// Cherche si la balle est deja dans la liste
list<tBALL>::iterator iCur;
@@ -196,32 +199,39 @@ Map::AddBallsToMap(Group *group)
if (1) //TODO (pos[0] < TABLE_WIDTH) && (pos[1] < TABLE_HEIGHT))
{
// Si la balle n'est pas dans la liste on l'ajoute
-// if (!TestSimilarBall(pCur, iCur))
-// {
- AddBall(pos, pCur);
-/* }
+ // if (!TestSimilarBall(pCur, iCur))
+ // {
+ AddBall(pos, pCur);
+ /* }
// Si elle l'est
else
+ {
+ // on regarde si c'est la balle qui a ete locké
+ if (IsLock ())
+ if (iCur == curBall)
+ ballLost = 0;
+
+ // on incremente son marqueur de viabilite
+ if (iCur->skepticism < oconfig->skepticism_max)
+ iCur->skepticism++;
+
+ if (pCur->centery <= iCur->precision)
+ {
+ ///TODO mis a jour de la position
+ iCur->position[0] = pCur->centerx;
+ iCur->position[1] = pCur->centery;
+
+ iCur->bottom = pCur->bottom * oconfig->ball_bottom_time_out;
+ }
+ }
+ */
+ checkCurBall = 1;
+ if (pCur->centery < centYMax)
{
- // on regarde si c'est la balle qui a ete locké
- if (IsLock ())
- if (iCur == curBall)
- ballLost = 0;
-
- // on incremente son marqueur de viabilite
- if (iCur->skepticism < oconfig->skepticism_max)
- iCur->skepticism++;
-
- if (pCur->centery <= iCur->precision)
- {
- ///TODO mis a jour de la position
- iCur->position[0] = pCur->centerx;
- iCur->position[1] = pCur->centery;
-
- iCur->bottom = pCur->bottom * oconfig->ball_bottom_time_out;
- }
+ curBall = ball.end ();
+ centYMax = pCur->centery;
}
-*/ }
+ }
pCur = pCur->next;
}
@@ -242,7 +252,7 @@ Map::AddBallsToMap(Group *group)
if (pCur)
{
treeFound = 1;
- space->GetLoc (pCur->centerx, pCur->ymin, posTree[0], posTree[1]);
+ space->GetLoc (pCur->centerx, pCur->ymax, posTree[0], posTree[1]);
}
else
treeFound = 0;
diff --git a/2004/i/nono/src/ovision/map.h b/2004/i/nono/src/ovision/map.h
index ab958a5..d753526 100644
--- a/2004/i/nono/src/ovision/map.h
+++ b/2004/i/nono/src/ovision/map.h
@@ -15,10 +15,6 @@
#define UNLOCKED 0
-
-/// TODO calcul de plusieurs scores si on veut rapidite ou efficacite
-
-
/// Structure stockant les balles
struct tBALL {
/// position de la balle
@@ -125,6 +121,7 @@ class Map
//Affiche les balles de la map
void ShowBalls ();
+ /// Donne la position du 1er arbre trouvé sur la map
bool GetTreePos (double &x, double &y);
/// Accessors
@@ -133,8 +130,9 @@ class Map
/// Donne la position de la balle la plus proche ou locke
/// Retourne NULL si la balle locke est perdu
- bool getCurBallPos (double &x, double &y);
+ bool GetCurBallPos (double &x, double &y);
+ /// Donne la position dans le référentiel de la table
void GetPosFromLoc (int locImgX, int locImgY, double &posX, double &posY);
protected:
diff --git a/2004/i/nono/src/ovision/space.cc b/2004/i/nono/src/ovision/space.cc
index 4b0ad30..8f04ebd 100644
--- a/2004/i/nono/src/ovision/space.cc
+++ b/2004/i/nono/src/ovision/space.cc
@@ -31,7 +31,8 @@ Space::~Space ()
{
}
-
+
+/// Cree un fichier gnuplot avec la courbe des points donnés par la courbe x et y
void Space::CreateGnuPlotFile (int y)
{
FILE *file;
@@ -82,6 +83,7 @@ Space::LoadFromFile()
}
+/// Donne les coefficients d'une ligne
void
Space::FindCoeffLine (double x1, double y1, double x2, double y2, double &a, double &b)
{
@@ -142,6 +144,8 @@ Space::GetLoc(int locImgX, int locImgY, double &locX, double &locY)
}
+
+/// Position d'un objet dans le referentiel du robot
void
Space::GetLoc(int locImgX, int locImgY, int &locX, int &locY)
{
diff --git a/2004/i/nono/src/ovision/space.h b/2004/i/nono/src/ovision/space.h
index 2668e76..a30472d 100644
--- a/2004/i/nono/src/ovision/space.h
+++ b/2004/i/nono/src/ovision/space.h
@@ -71,9 +71,13 @@ class Space
protected:
+ /// Donne les coefficients d'une ligne
void FindCoeffLine (double x1, double y1, double x2, double y2, double &a, double &b);
+ /// Cree un fichier gnuplot avec la courbe des points donnés par la courbe x et y
void CreateGnuPlotFile (int y = 100);
+
+ /// Cree un fichier avec l'erreur en fonction des itérations
void LogErrorPoint (FILE *f, int iter);
};