Está en la página 1de 5

INTRODUCCION

La creciente necesidad por la inclusión de la robótica en los aspectos de la vida cotidiana,


han generado la evolución y adaptabilidad de nuevas practicas con el fin de crear robots
que sean capaces de desarrollar tareas que normalmente no pueda realizaría el ser
humano bien sea por que se requiera de una mayor precisión o de un alto grado de
riesgo.
La arquitectura y la programación son dos partes fundamentales para la construcción de
un robot, al juntarlas estamos dando cumplimiento al un objetivo que se ha trazado
inicialmente para la creación de dicho robot, existen diferentes tipos de robots donde
encontramos robots humanoides, zoomórficos, médicos, móviles etc; Este tipo de robots
se utilizan para acceder a zonas inhóspitas y peligrosas para los seres humanos.
Para este caso nos centraremos en los robots móviles, la robotica móvil reúne ciencias de
la ingeniería e informática, inteligencia artificial y otras diferentes áreas para brindar una
solución y cumplir con un sistema que sea capaz de moverse autónomamente y ejecutar
acciones posiblemente lo más independientes de la intervención humana, la naturaleza
automática de ellos se basa en un sistema de navegación autónoma en los que se
incluyen características que les permitirán recorrer un entorno, entre ellas encontramos
La percepción: esta relacionada a la navegación y reconocimiento de su entorno, este
proceso se realiza mediante sensores como sensores de proximidad, scaner, líder y
demas que permitan captar la mayor cantidad de caracteristicas que tengan a su
alrededor
La localización: que es la habilidad técnica y critica de estimar la posición de un
dispositivo dentro de un sistema, existen dos tipos de localización, la local cuando
conocemos el estado inicial de la maquina y podemos estimar el siguiente, y la global
cuando se desconoce el estado o posicion del robot.
Planeacion y seguimiento de trayectoria: hace referencia a la retroalimentación,
optimizacion y estabilidad que ofrece un sistema para garantizar el desempeño y
trazabilidad de la mejor ruta posible teniendo en cuenta el estado en le que se encuentra
el robot, ( estado incial, actual y final). Para que la planificación sea correcta el robot debe
alcanzar  el objetivo final en un tiempo mínimo  y recorriendo la menor distancia posible
para así lograr la optimización de la energía consumida y los recursos computacionales.
Para garantizar el seguimiento de la trayectoria se planea a menudo la ruta por medio de
un robot virtual que contenga todas las restricciones cinemáticas permitiendo realizar una
simulación del recorrido y así resolver satisfactoriamente la ruta.

ARQUITECTURA ROS

La arquitectura de ROS se encuentra dividida en 3 partes conocidas o llamadas NIVELES

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 GRAFICO DE COMPUTACION

En este nivel se procesas y se proveen los datos mediando el uso de


 Nodos: los nodos son procesos que llevan a cabo cálculos y se encargan de
realizar las publicaciones de los mensajes
 Master: proporcionar los nombres del grafico de computo, sin el master los nodos
no podrán localizarse, intercambiar información.
 Servidor de parámetros: funciona para que los nodos guarden la información de
las variables.
 Topics: identificara el contenido del mensaje que es enviado por los nodos
publicadores o suscriptores, estos topics deben tener nombres únicos .
 Bags: son los archivos utilizados para guardar la información que estamos
capturando

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.

UBICACIÓN DEL ROBOT


Partimos del mapa que generamos anteriormente, y utilizamos un árbol de transformación
de eje de coordenadas, estas coordenadas debemos adecuarlas para que el robot
interprete un ambiente de dos dimensiones entendiéndolo como una lectura del pie del
robot, con esto obtenemos los ángulos de rotación del robot que sería la inclinación que
tiene el angulo de la posición inicial del robot, con respecto a un eje de referencia x,y, ya
con esto dispersamos un numero de particulas definidas, para que el robot inicie a girar y
proceda a ubicarse en el área, mientras este gira el se va desplazando para analizar las
muestras que se encuentran a su alrededor y asi poder eliminar las particulas en las que
no exista posibilidad que el este y pueda determinar con mayor precisión en que grupo de
particulas es mas posible que el se encuentre, si se parte de una posición global
necesitara mas muestras para lograr determinar en que posición esta, esta ubicación es
muy prpecisa por que nos da la pose completa del robot, indicándonos la posición x,y hy
el angulo en que se encuentra el robot

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

Implementamos el método del controlador pure pursuit, se basa en la generación de la


particula virtual, esta partícula realiza el desplazamiento total del camino trazado, esa
posición de la particula es el estado al que debe llevar el controlador el robot como el set
point del controlador, la distancia que es permicible desde la particula hasta el robot la
define el usuario, si esta distancia es muy corta el robot se mantiene oscilante siempre y
su desplazamiento se hace erratico y si es muy larga el robot no pasa encima de los
puntos, realiza curvas para evitar los puntos por que se aleja de la particula virtual,
En el diagrama vemos un seguimiento normal de un controlador, este controlador se
realiza para cada nodo que es representado por un par ordenado de coordenadas, al
variar los parámetros del controlador y cargar la ubicación de los nodos iniciamos el
proceso, y el robot debe saber si esta en la meta y comienza a revisar los nodos, si no
esta en el nodo el sigue al punto que es la particula que cremaos, cuando el robot recorre
todos los nodos ya se encontrara en la meta y el programa termina

También podría gustarte