Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARQUITECTURA ROS
NIVEL DE SISTEMA DE ARCHIVOS: este nivel contiene los componentes con los
iniciaremos la construcción y le daremos estructura al proyecto, estos componentes son:
Los paquetes: Son la unidad principal de la organización del software, incluyen los
procesos de Ros en tiempo de ejecución, conjunto de datos y archivos de
configuración,
Metapaquetes: representación de un grupo de paquetes
Pilas: conjunto de paquetes que comparten una misma funcionalidad
Manifiesto de un paquete o pila: proporciona la información de un paquete o pila
tal como icencia, dependencias y características del compilador,
Repositorios: son un conjunto de paquetes que comparten un sistema de
herramientas versionadas
Mensaje: estructuras de datos que se envían de un proceso a otro.
Servicios: este se encarga de realizar la comunicación entre los nodos (Solicitud y
respuesta)
Codigo: Registro del código fuente y los scripst de la codificación de los procesos
de ros
NIVEL DE LA COMUNIDAD
En este nivel encontramos los recursos con los que cuenta la comunidad para
intercambiar conocimientos
Distribuciones: que son las diferentes versiones que presenta ROS para la
creación de proyectos (ros presenta 13 versiones de las cuales 11 ya no tiene vida
útil, la versión melodic morenia y Noetic Ninjemys)
Repositorios: son paquetes de software para el desarrollo de sistemas robóticos
Wiki ros: Foro para documentar información
Sistema de gestión de errores: Recurso utilizado para agregar nuevas
funcionalidades y detección de errores.
Lista de correos: es el principal medio de comunicación para la actualización
de ROS. También funciona como foro de preguntas sobre ROS.
Blog: El Blog mantiene informada a la comunidad con noticias, fotos y
videos actualizados.
Respuestas de ROS: Es un sitio Web que ayuda a la comunidad a dar
respuestas a las dudas que puedan tener respecto a ROS. Una vez se
publica una duda en este sitio, otros usuarios de ROS la pueden ver y
sugerir soluciones.
PLATAFORMAS DE IMPLEMENTACION
Para el desarrollo del proyecto utilizaremos una plataforma robotica llama turtle bot3
este viene en 3 versiones, la versión waffle, waflle pi y búrguer, haremos uso del
búrguer, este se ejecuta con las versiones de Ubuntu, se encuentra dividida en 3
pisos, en el primer piso encontraremos el servidor Dynamixel XL430 y la batería, en
el segundo piso un controlador Open CR, en el tercer piso la raspebrry PI y en la parte
superior cuentan con un lidar de 360 grados que permite el proceso de SLAM
(localización y mapeo simultaneo), por medio de las raspberry se realizó la ejecución
ROS melodic que es la versión que se utilizó.
MUESTREO Y MAPEO
Para realizar el proceso de muestreo que se requiere antes de realizar el mapeo, se
necesitaba que el robot navegara por el entorno, para ello realizamos un control básico
garantizar el recorrido por toda la pista, utilizamos la herramienta rqt_bag, esta
herramienta permite realizar un bordado del contenido de un topic en especifico una vez
que se corra el ROS master, el ros master nos muestras los topics disponibles, elegimos
el topic y inicia a guardar dentro del topic la información
CONSTRUCCION DEL MAPA
Para la creación del mapa se tiene en cuenta las muestras que están guardada en un
archivo.bag que se genero al realizar el proceso de mapeo, este archivo contiene no solo
la información de las muestras tomadas por caga grado del lídar si no también la
velocidad de oscilación, la medida máxima del líder y demás datos que no estaremos
utilizando por ende esta información que viene en el formato LaserScam se debe pasar a
LiderSlam, donde filtrara solo la información de las muestras, creamos un objeto y a partir
de esto realizamos la construcción del mapa, dentro de este objeto se agrupan las
muestras, como son demasiadas muestras debido a que toma una muestra por cada
grado y el robot se va desplazando hay mucha información que será igual o similar, para
esto tomamos muestras representativas cada 20 muestras, para tomar en especifico la
muestra que se encuentra allí, ya con el resultado final de las muestras que vamos a
utilizar, creamos otro objeto Objslam, y con este realizamos la construcción del mapa,
este contiene también la información de la odometria que es necesaria para entender en
donde esta cada ubicada cada muestra y poder generar un mapa más organizado.
los mapas del entorno real y simulado, en el entorno simulado la lectura es mas precisa y
en el real miramos como encontramos muestras más disipados, esto debido al ruido al
momento de procesar los datos, que al objeto al cual se le dirigió el líder dejaba pasar
mucha luz, que la lectura no es clara, hay diferentes cosas que pueden generar este ruido
y por eso se presentan partículas dispersas. Cuando creamos el mapa de entorno, se
procede a crear el mapa de ocupación tomando de referencia el mapa de entorno
depurando las muestras que se encuentren mas alejadas de las otras.
PLANEACION DE TRAYECTORIA
Para planear la trayectoria se utilizo el método de grafo de visibilidad es a partir del cual
se generan unas líneas entre los vertiecs de todos los obstáculos, y de vertice a vertice
mientras sea posible se trazatan lines, y la intersección de estas líneas generan puntos
que se llaman nodos, estos nodos son las ubicaciones que obteenmos al final ya que por
ellos es donde se obliga al robot a pasar para llegar al objetivo final, en este caso para el
algoritmo primero cargamos el mapa y definimos un numero de nodos, si el numero de
nodos es muy alto trazara una trayectoria con menos vueltas, pero genera mayor lentitud
en el algortimo, si el numero es muy bajo el algoritmo calcula rápido pero el robot daría
muchas vueltas para llegar al punto, teniendo encuenta que el robot se calcula como un
putno en el espacio, para mayor facilidad teniendo encuenta el cuerpo completo del robot
se hace mas ancho los obstáculos con una medida mayor al radio del mismo para que
este pueda transitar por el lado del obstáculo son tocarlo, estos mapas son mapas
probabilísticos, es decir que hay una probabilidad que esa área este ocupada por un
obstáculo, lo que se hace para poder engrosar o inflar el mapa, es hacer que el mapa
desde una probabilidad muy baja entienda que hay un obstáculo.
SEGUIMIENTO DE TRAYECTORIA
*purpusuit