User:Redstar
Uso del servicio SVN
Para gestionar el código fuente del desarrollo software se usa el gestor de versiones Subversion (SVN).
La URL raíz del proyecto es: [1]
Descarga (checkout) del contenido del repositorio
Para realizar una descarga del código y hacer una copia de trabajo local usaremos el comando:
svn co https://redstar@svn.jderobot.org/users/redstar/master/
Añadir al repositorio un archivo o directorio
Para que se realice el seguimiento y versionado de un archivo o el contenido de un directorio deberemos hacer uso del comando:
svn add <archivo/s o directorio/s>
En caso de ser un directorio se añadirán los archivos y subdirectorios que contenga.
Eliminar archivos
Para eliminar del repositorio un archivo y dejar de hacer el seguimiento de versiones usaremos el comando:
svn rm <archivo/s o directorio/s>
Enviar modificaciones (checkin) al repositorio
Para enviar las modificaciones realizadas deberemos usar:
svn ci
Actualizar la copia de trabajo con las modificaciones del repositorio
Cuando cambiamos de un equipo a otro y queremos recibir las modificaciones enviadas desde el otro equipo de trabajo debemos ejecutar:
svn update
Visto bueno (commit) al contenido del repositorio
Para dar el visto bueno al estado en el que se encuentra el código y aumentar en uno el número de revisión basta con ejecutar el siguiente comando:
svn commit
Primer contacto con un componente JDERobot5: introrob
La mejor forma de comenzar a trabajar con JDERobot5 es modificar un componente existente. En mi caso he comenzado con introrob por la sencillez de su implementación y lo sencillo que resulta modificar la lógica de navegación.
Descarga de la última versión
Para descargar la última versión del componente deberemos hacer uso del comando:
svn co https://svn.jderobot.org/jderobot/trunk/src/components/introrob
Para crear nuestra propia lógica de navegación basta con abrir el archivo "navega.cpp" y modificar el método "iteracionControl".
Es MUY IMPORTANTE que el tiempo de ejecución de dicho método esté acotado por un límite superior y lo más reducido posible debido a que se ejecutará cada 100ms (10 veces por segundo).
En caso de que el tiempo de ejecución del método sea inferior a 100ms la aplicación dormirá durante el tiempo restante, pero en caso de que se superen los 100ms entonces el componente se dormirá 100ms completos, por lo que se penalizaría el tiempo de respuesta del componente.
Disponemos de una guía de modificación del componente en el siguiente enlace: Manual-5#How_to_modify_Navega.cpp
Lectura de sensores
Los sensores del robot pioneer están disponibles para nuestra aplicación a través de la invocación del siguiente método:Return: nº lásers leídos Parámetro laser: vector de distancias (mm.) vertidos por el láser this->navegacion->cogerLaser(std::vector<float>* laser);
Hay que tener en cuenta cómo están dispuestos los valores del array devuelto. El elemento número 0 corresponde con el valor leído 90º a la derecha y el último elemento estaría ubicado 90º a la izquierda tal y como muestra la gráfica adjunta.
