]> git.llucax.com Git - z.facultad/75.68/celdas.git/commitdiff
Últimos cambios y documentación. master entrega-20061218 svn_import
authorLeandro Lucarella <llucax@gmail.com>
Tue, 19 Dec 2006 03:26:41 +0000 (03:26 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Tue, 19 Dec 2006 03:26:41 +0000 (03:26 +0000)
trunk/doc/Documentacion.doc
trunk/doc/Documentacion.odt [new file with mode: 0644]
trunk/doc/robot.jpg [new file with mode: 0644]
trunk/doc/salida.csv [new file with mode: 0644]
trunk/doc/teorias.ods [new file with mode: 0644]
trunk/src/breve/Celdas.tz
trunk/src/breve/Laberinto.tz
trunk/src/sistemaautonomo.cpp

index da037ac2f664c268c346437efcfa0e93208d6760..0bf517f6a50fa3128fb264f3b9c8c70992e4222a 100644 (file)
Binary files a/trunk/doc/Documentacion.doc and b/trunk/doc/Documentacion.doc differ
diff --git a/trunk/doc/Documentacion.odt b/trunk/doc/Documentacion.odt
new file mode 100644 (file)
index 0000000..50cb21e
Binary files /dev/null and b/trunk/doc/Documentacion.odt differ
diff --git a/trunk/doc/robot.jpg b/trunk/doc/robot.jpg
new file mode 100644 (file)
index 0000000..46335a2
Binary files /dev/null and b/trunk/doc/robot.jpg differ
diff --git a/trunk/doc/salida.csv b/trunk/doc/salida.csv
new file mode 100644 (file)
index 0000000..1fee7c1
--- /dev/null
@@ -0,0 +1,278 @@
+Teorias iniciales:\r
+Agrega teoria: Avanzar\r
+Agrega teoria\r
+Agrega teoria: Rotar a derecha\r
+\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar,adelante,1,1\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Plan:\r
+Avanzar,adelante,1,1\r
+Ejecutando teoria:\r
+Avanzar,adelante,1,1\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,0\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Avanzar-o4\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Avanzar-r,adelante,1,2\r
+El dato final 'movido' puede tomar ahora cualquier valor\r
+Agrega teoria: Avanzar-r\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4,adelante,1,1\r
+Plan:\r
+Avanzar-o4,adelante,1,1\r
+Avanzar-r,adelante,1,2\r
+Ejecutando teoria:\r
+Avanzar-o4,adelante,1,1\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Avanzar-o4\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Avanzar-o4-r,adelante,1,2\r
+El dato final 'movido' puede tomar ahora cualquier valor\r
+Agrega teoria: Avanzar-o4\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5,adelante,1,1\r
+Plan:\r
+Avanzar-o4-o5,adelante,1,1\r
+Ejecutando teoria:\r
+Avanzar-o4-o5,adelante,1,1\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+Verifica!\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5,adelante,2,2\r
+Plan:\r
+Avanzar-o4-o5,adelante,2,2\r
+Ejecutando teoria:\r
+Avanzar-o4-o5,adelante,2,2\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+Verifica!\r
+\r
+\r
+[... aplica varias veces la teoria de avanzar con exito ...]\r
+\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5,adelante,14,14\r
+Plan:\r
+Avanzar-o4-o5,adelante,14,14\r
+Ejecutando teoria:\r
+Avanzar-o4-o5,adelante,14,14\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+Verifica!\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5,adelante,15,15\r
+Plan:\r
+Avanzar-o4-o5,adelante,15,15\r
+Ejecutando teoria:\r
+Avanzar-o4-o5,adelante,15,15\r
+Verificacion...\r
+Entorno:\r
+0,0,0,1,1\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Avanzar-o4\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Avanzar-o4-o5-r,adelante,15,16\r
+El dato final 'sensor_r' puede tomar ahora cualquier valor\r
+Agrega teoria: Avanzar-o4\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,1,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5-r,adelante,15,16\r
+Avanzar-o4-o5-o6,adelante,1,1\r
+Plan:\r
+Avanzar-o4-o5-o6,adelante,1,1\r
+Ejecutando teoria:\r
+Avanzar-o4-o5-o6,adelante,1,1\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Avanzar-o4\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Avanzar-o4-o5-o6-r,adelante,1,2\r
+El dato final 'sensor_r' puede tomar ahora cualquier valor\r
+Agrega teoria: Avanzar-o4\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5-r,adelante,15,16\r
+Avanzar-o4-o5-o6-r,adelante,1,2\r
+Avanzar-o4-o5-o6-o7,adelante,1,1\r
+Plan:\r
+Avanzar-o4-o5-o6-o7,adelante,1,1\r
+Ejecutando teoria:\r
+Avanzar-o4-o5-o6-o7,adelante,1,1\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+Verifica!\r
+\r
+Planificando...\r
+Entorno:\r
+0,0,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5-r,adelante,15,16\r
+Avanzar-o4-o5-o6-r,adelante,1,2\r
+Avanzar-o4-o5-o6-o7,adelante,2,2\r
+Plan:\r
+Avanzar-o4-o5-o6-o7,adelante,2,2\r
+Ejecutando teoria:\r
+Avanzar-o4-o5-o6-o7,adelante,2,2\r
+Verificacion...\r
+Entorno:\r
+0,1,0,0,1\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Avanzar-o4\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Avanzar-o4-o5-o6-o7-r,adelante,2,3\r
+El dato final 'sensor_f' puede tomar ahora cualquier valor\r
+Agrega teoria: Avanzar-o4\r
+\r
+Planificando...\r
+Entorno:\r
+0,1,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder,atras,1,1\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5-r,adelante,15,16\r
+Avanzar-o4-o5-o6-r,adelante,1,2\r
+Avanzar-o4-o5-o6-o7-r,adelante,2,3\r
+Avanzar-o4-o5-o6-o7-o8,adelante,1,1\r
+Plan:\r
+Retroceder,atras,1,1\r
+Ejecutando teoria:\r
+Retroceder,atras,1,1\r
+Verificacion...\r
+Entorno:\r
+0,1,0,0,0\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Retroceder-o9\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Retroceder-r,atras,1,2\r
+El dato final 'movido' puede tomar ahora cualquier valor\r
+Agrega teoria: Retroceder-r\r
+\r
+Planificando...\r
+Entorno:\r
+0,1,0,0,0\r
+Teorias:\r
+Avanzar-r,adelante,1,2\r
+Retroceder-r,atras,1,2\r
+Rotar a derecha,derecha,1,1\r
+Rotar a izquierda,izquierda,1,1\r
+Avanzar-o4-r,adelante,1,2\r
+Avanzar-o4-o5-r,adelante,15,16\r
+Avanzar-o4-o5-o6-r,adelante,1,2\r
+Avanzar-o4-o5-o6-o7-r,adelante,2,3\r
+Avanzar-o4-o5-o6-o7-o8,adelante,1,1\r
+Retroceder-o9,atras,1,1\r
+Plan:\r
+Rotar a derecha,derecha,1,1\r
+Avanzar-o4-o5-o6-o7-o8,adelante,1,1\r
+Ejecutando teoria:\r
+Rotar a derecha,derecha,1,1\r
+Verificacion...\r
+Entorno:\r
+0,0,0,0,1\r
+No verifica, aplicando heuristicas...\r
+Aplicando heuristica de observacion:\r
+Agrega teoria: Rotar a derecha\r
+Aplicando heuristica de retraccion:\r
+Se modifica teoria:\r
+Rotar a derecha-r,derecha,1,2\r
+El dato final 'movido' puede tomar ahora cualquier valor\r
+Agrega teoria: Rotar a derecha\r
diff --git a/trunk/doc/teorias.ods b/trunk/doc/teorias.ods
new file mode 100644 (file)
index 0000000..4964ef1
Binary files /dev/null and b/trunk/doc/teorias.ods differ
index ae29a51d0e9a3474b9a14715087abfd817a88c99..481c28cc6b9a0c10609740d56ea0d4834c879e98 100644 (file)
@@ -8,7 +8,7 @@
 \r
 @define CELDAS_MAX_VELOCITY 5.\r
 @define CELDAS_TURNO 30.\r
 \r
 @define CELDAS_MAX_VELOCITY 5.\r
 @define CELDAS_TURNO 30.\r
-@define CELDAS_SENSOR_THRESHOLD 10.\r
+@define CELDAS_SENSOR_THRESHOLD 6.\r
 \r
 PhysicalControl : CeldasControl {\r
        % This class is used for building simple vehicle \r
 \r
 PhysicalControl : CeldasControl {\r
        % This class is used for building simple vehicle \r
@@ -205,24 +205,31 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                return ((rfWheel get-velocity) + (lfWheel get-velocity)) / 2.\r
 \r
        + to turn-right:                \r
                return ((rfWheel get-velocity) + (lfWheel get-velocity)) / 2.\r
 \r
        + to turn-right:                \r
-               #tright++.\r
-               #self rotate around-axis (0,1,0) by (-1.5709/CELDAS_TURNO)*tright. \r
-               #if (tright == CELDAS_TURNO): tright=0.\r
-               if (tright == 0): self set-global-velocity to 0.\r
+               tright++.\r
                self rotate around-axis (0,1,0) by (-1.5709/CELDAS_TURNO)*tright. \r
                self rotate around-axis (0,1,0) by (-1.5709/CELDAS_TURNO)*tright. \r
-               if (tright == CELDAS_TURNO): tright=0.\r
-               else tright++.\r
+#!\r
+               if (tright == CELDAS_TURNO):\r
+               {\r
+                 fSensor set-direction to (-1,0,0).\r
+                 bSensor set-direction to (1,0,0).\r
+                 lSensor set-direction to (0,0,-1).\r
+                 rSensor set-direction to (0,0,1).\r
+               }\r
+!#\r
 \r
 \r
        + to turn-left:\r
 \r
 \r
        + to turn-left:\r
-               #tleft++.\r
-               #self rotate around-axis (0,1,0) by (1.5709/CELDAS_TURNO)*tleft. \r
-               #if (tleft == CELDAS_TURNO): tleft=0.\r
-               if (tleft == 0): self set-global-velocity to 0.\r
-               self rotate around-axis (0,1,0) by (1.5709/CELDAS_TURNO)*tleft.\r
-               if (tleft == CELDAS_TURNO): tleft=0.\r
-               else tleft++.\r
-\r
+               tleft++.\r
+               self rotate around-axis (0,1,0) by (1.5709/CELDAS_TURNO)*tleft. \r
+#!\r
+               if (tleft == CELDAS_TURNO):\r
+               {\r
+                 fSensor set-direction to (-1,0,0).\r
+                 bSensor set-direction to (1,0,0).\r
+                 lSensor set-direction to (0,0,-1).\r
+                 rSensor set-direction to (0,0,1).\r
+               }\r
+!#\r
 \r
         + to get-sensor-value:\r
                return (fSensor get-sensor-value).\r
 \r
         + to get-sensor-value:\r
                return (fSensor get-sensor-value).\r
@@ -293,7 +300,7 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                teorias{0} set-dato-final name "sensor_l" value ANY.\r
                teorias{0} set-dato-final name "movido" value 1.\r
 \r
                teorias{0} set-dato-final name "sensor_l" value ANY.\r
                teorias{0} set-dato-final name "movido" value 1.\r
 \r
-               teorias{1} init named "Retroceder" with-action "atras" executed 2.\r
+               teorias{1} init named "Retroceder" with-action "atras".# executed 2.\r
                teorias{1} set-dato-inicial name "sensor_f" value 1.\r
                teorias{1} set-dato-inicial name "sensor_b" value ANY.\r
                teorias{1} set-dato-inicial name "sensor_r" value ANY.\r
                teorias{1} set-dato-inicial name "sensor_f" value 1.\r
                teorias{1} set-dato-inicial name "sensor_b" value ANY.\r
                teorias{1} set-dato-inicial name "sensor_r" value ANY.\r
@@ -317,7 +324,7 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                teorias{2} set-dato-final name "sensor_l" value 1.\r
                teorias{2} set-dato-final name "movido" value 0.\r
 \r
                teorias{2} set-dato-final name "sensor_l" value 1.\r
                teorias{2} set-dato-final name "movido" value 0.\r
 \r
-               teorias{3} init named "Rotar a izquierda" with-action "izquierda" executed 2.\r
+               teorias{3} init named "Rotar a izquierda" with-action "izquierda". # executed 2.\r
                teorias{3} set-dato-inicial name "sensor_f" value 1.\r
                teorias{3} set-dato-inicial name "sensor_b" value ANY.\r
                teorias{3} set-dato-inicial name "sensor_r" value ANY.\r
                teorias{3} set-dato-inicial name "sensor_f" value 1.\r
                teorias{3} set-dato-inicial name "sensor_b" value ANY.\r
                teorias{3} set-dato-inicial name "sensor_r" value ANY.\r
@@ -339,6 +346,31 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
 \r
         +to iterate:\r
 \r
 \r
         +to iterate:\r
 \r
+               # Movimiento del robot\r
+               if (avanzando):\r
+               {\r
+                       self set-global-velocity to (CELDAS_MAX_VELOCITY).\r
+               }\r
+               if (retrocediendo):\r
+               {\r
+                       self set-global-velocity to (-CELDAS_MAX_VELOCITY).\r
+               }\r
+               if (girando_izq):\r
+               {\r
+                       self set-global-velocity to 0.\r
+                       self turn-left.\r
+                       #if (iterate): self rotate around-axis (0,1,0) by (1.570796/CELDAS_TURNO)*iterate.\r
+                       print "izq: ", (1.570796/CELDAS_TURNO)*iterate.\r
+               }\r
+               if (girando_der):\r
+               {\r
+                       self set-global-velocity to 0.\r
+                       self turn-right.\r
+                       #if (iterate): self rotate around-axis (0,1,0) by (-1.570796/CELDAS_TURNO)*iterate. \r
+                       print "der: ", (-1.570796/CELDAS_TURNO)*iterate.\r
+               }\r
+               #print "vel: ", (bodyLink get-velocity).\r
+\r
                # Actualiza entorno\r
                self update-entorno.\r
 \r
                # Actualiza entorno\r
                self update-entorno.\r
 \r
@@ -413,7 +445,7 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                if (iterate == CELDAS_TURNO):\r
                {\r
                        # Actualiza entorno segun si se movio o no\r
                if (iterate == CELDAS_TURNO):\r
                {\r
                        # Actualiza entorno segun si se movio o no\r
-                       if (self near position posicion-inicial with-error 2.0):\r
+                       if (self near position posicion-inicial with-error 1.0):\r
                        {\r
                                sa set-entorno value 0 with-name "movido".\r
                        }\r
                        {\r
                                sa set-entorno value 0 with-name "movido".\r
                        }\r
@@ -433,16 +465,6 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                        iterate++.\r
                }\r
 \r
                        iterate++.\r
                }\r
 \r
-               # Movimiento del robot\r
-               if (avanzando):\r
-                       self set-global-velocity to (CELDAS_MAX_VELOCITY).\r
-               if (retrocediendo):\r
-                       self set-global-velocity to (-CELDAS_MAX_VELOCITY).\r
-               if (girando_izq):\r
-                       self turn-left.\r
-               if (girando_der):\r
-                       self turn-right.\r
-\r
 }\r
 \r
 Stationary : CeldasObstacle (aka CeldasObstacles) {\r
 }\r
 \r
 Stationary : CeldasObstacle (aka CeldasObstacles) {\r
@@ -610,13 +632,26 @@ Link : CeldasSensor (aka CeldasSensors) {
                        des2=0.\r
                        if(dot(direction,(1,1,1))<0):\r
                        {                        \r
                        des2=0.\r
                        if(dot(direction,(1,1,1))<0):\r
                        {                        \r
-                            if((dot((self get-location),positiveDirection))>(dot(obsLoc,positiveDirection))):\r
-                                       des2=1.      \r
+                            if(dot((body get-location),positiveDirection) > dot((self get-location),positiveDirection)):\r
+                               {\r
+                                       if((dot((self get-location),positiveDirection))>(dot(obsLoc,positiveDirection))):\r
+                                               des2=1.\r
+                               }\r
+                           else\r
+                           if((dot((self get-location),positiveDirection))<(dot(obsLoc,positiveDirection))):\r
+                                       des2=1.         \r
                         }\r
                        else\r
                        {\r
                         }\r
                        else\r
                        {\r
-                            if((dot((self get-location),positiveDirection))<(dot(obsLoc,positiveDirection))):\r
+                            if(dot((body get-location),positiveDirection) < dot((self get-location),positiveDirection)):\r
+                               {\r
+                               if((dot((self get-location),positiveDirection))<(dot(obsLoc,positiveDirection))):\r
                                        des2=1.         \r
                                        des2=1.         \r
+                               }\r
+                          else\r
+                               if((dot((self get-location),positiveDirection))>(dot(obsLoc,positiveDirection))):\r
+                                               des2=1.\r
+                       \r
                        }                       \r
 \r
 \r
                        }                       \r
 \r
 \r
index 8ab161995edc05561099198faffe51462c1ac464..4c389965a4fdccefa5612ead68b125c2d5dcfd33 100644 (file)
@@ -186,6 +186,7 @@ Control: myControl{
     self watch item vehicle.\r
 \r
     vehicle move to (0, 0, 10).\r
     self watch item vehicle.\r
 \r
     vehicle move to (0, 0, 10).\r
+    vehicle rotate around-axis (0,1,0) by 3.1415926.\r
 \r
 +to iterate:\r
     super iterate.\r
 \r
 +to iterate:\r
     super iterate.\r
index cf9eb045d9c8ac57382003f59234efb7e41246ed..695e5381e5518c5967ba3a83f62f53ca96422e0c 100644 (file)
@@ -129,7 +129,7 @@ bool CSistemaAutonomo::validate_theory(CTeoria* t)
 #ifdef LOG
                std::cout << "Aplicando heuristica de generalizacion:\n";
 #endif // LOG
 #ifdef LOG
                std::cout << "Aplicando heuristica de generalizacion:\n";
 #endif // LOG
-               this->heuristca_generalizacion(*t);
+               //this->heuristca_generalizacion(*t);
 #ifdef DEBUG
                std::cout << "SA: Aplicando heuristica de retraccion\n";
 #endif // DEBUG
 #ifdef DEBUG
                std::cout << "SA: Aplicando heuristica de retraccion\n";
 #endif // DEBUG