La programación robótica proporciona una visión coherente de diversos comportamientos o conductas cognoscitivas que demuestran similitudes con la conducta humana. En cierta forma, esos comportamientos o conductas pueden ser simulados pero no se refleja de manera precisa como lo es en realidad. Hasta hace algún tiempo, las simulaciones han ayudado a predecir ciertos comportamientos y deducciones en base a situaciones repetitivas, que en ciertos escenarios predicen la forma de actuar ante diversos factores o variables.
Estos factores calculados permiten el desplazamiento en un plano cartesiano de dos dimensiones. Por ejemplo, se desarrolla un vehículo rodante y autómata en sus movimientos, que dispone de ruedas, motores, sensores y energía limitada. Mediante un computador se puede programar los algoritmos de movilización y localización para su desplazamiento. Para ello se utiliza dispositivos electrónicos que permiten determinar ciertas acciones que los algoritmos ejecutan en base a las entradas del medio externo, tales como distancia, ubicación, sinergismo, fricción, etc.
En ese sentido, el robot móvil tratará de movilizarse en base a los algoritmos programados y almacenará, de manera independiente, cada una de las situaciones que encuentre el vehículo hacia una base de datos externa.
Desplazamiento y trayectoria
Como cualquier bebé recién nacido desplazándose en su entorno natural, el vehículo se movilizará en forma autónoma con tropiezos y golpes en cada uno de los vértices del plano cartesiano. Los resultados de cada cálculo serán almacenados respetando el valor de las variables en un tiempo determinado.
Si la programación robótica ha sido desarrollada con el objetivo de corregir y evitar obstáculos, colisiones, golpes y tropiezos; entonces, el mismo programa se retroalimentará en base a su propia experiencia, y cuando vuelva a suceder un escenario semejante el programa tomará la mejor decisión para evitar esas colisiones.
Desde un punto de vista académico, las acciones realizadas por el robot móvil en base a las decisiones tomadas, se desarrollan bajo un contexto lógico. Esto quiere decir que para cada función algorítmica, el programa evidentemente responderá de acuerdo a las leyes de la lógica proposicional y almacenará sus resultados en una base de datos externa. Sin embargo, una vez que el programa guarde las variables de un escenario específico, estos no volverán a ser calculados y la respuesta se obtendrá con mayor rapidez.
Obviamente, mientras más posibilidades tiene el vehículo de desplazarse por cuenta propia, más probabilidades tendrá de realizar el desplazamiento con mayor precisión. De manera que, proporcionalmente a cada ejecución autónoma, existe una probabilidad superior de que la próxima vez se desplace de manera fluida, sin colisiones y con una regularidad de movilización casi exacta.
Tome en consideración que existen factores externos que pueden alterar estas estadísticas, como, por ejemplo, las distancias que recorre el vehículo, el relieve sobre el que se desplaza, la trayectoria hacia donde se dirige y los desplazamientos ante curvas muy estrechas por donde se dirija el vehículo. Todo ello influye en el resultado de la programación robótica, específicamente en la programación de robots móviles que utiliza la inteligencia artificial cognoscitiva y que tiene como fuente de aprendizaje la retroalimentación de la información en base a la experiencia adquirida.
Campos de estudio
Entre los campos de estudio que permiten desarrollar la movilización de diversos vehículos de manera autónoma, se encuentran tres métodos que son tan importantes como los sentidos que tiene el ser humano: La localización (localization), el mapeo (mapping) y el planeamiento de ruta (path planning).
En principio, es el procedimiento para calcular y determinar el punto actual de un objeto dentro del plano cartesiano, en un escenario específico y en un tiempo determinado. Dicha ubicación se puede obtener tomando como fuente diversos puntos referenciales que permitan detectar una zona en común. A mayor cantidad de puntos referenciales, entonces mayor será la precisión del objeto en su localización.
Consecuentemente permite generar una imagen de la superficie basado en la detección de estructuras que se encuentra a su alrededor. Esta detección se obtiene a través de los sensores de distancia distribuidos alrededor del robot móvil. En ese sentido, los sensores disparan señales de rebote que permite deducir matemáticamente la distancia entre el robot y la estructura física, permitiendo generar un mapa referencial del ambiente real donde se desplaza el robot móvil.
Finalmente, permite al robot elaborar una ruta de desplazamiento basado en el mapeo que se desarrolló previamente. Esto no quiere decir que el programa deba realizar el mapeo antes de planificar la ruta por donde se desplace el robot; sino más bien que ambas actividades se pueden desarrollar en paralelo. Es decir, mientras el robot elabora el mapa referencial, al mismo tiempo puede elaborar una ruta de desplazamiento en base a los datos adquiridos en ese mismo momento.
Cabe mencionar que, para cada uno de estos campos de estudio, es necesario tener un conocimiento regular de geometría plana y del espacio, teoría de probabilidades, estadística aplicada y, en cierta medida, el conocimiento de física general.
Herramientas de desarrollo
En este contexto, existe una granra posibilidad de aprendizaje con herramientas existentes en Internet, que permiten comprender la programación de robots móviles. Dichas herramientas incluyen: ROS Índigo (Robot Operating System), Gazebo (Java) Simulator y todo ello bajo la plataforma de Ubuntu (Linux).
Conclusiones
La programación de robots móviles es un campo de investigación de las ciencias de la computación que nos permite desarrollar y aplicar diversas técnicas algorítmicas para la localización de objetos, generación de mapas y planificación de rutas de desplazamiento que requiere la movilización de un robot móvil. En ese sentido, cada fase de su desarrollo requiere aplicar diversos conocimientos académicos en el campo computacional, incluyendo arquitectura de software, control de movimiento reactivo, generación de mapas, localización y planeamiento de rutas. Todo ello a través del análisis y diseño de diversos algoritmos aplicados tanto en un ambiente de simulación como en un entorno real.
Es preciso mencionar que ninguna de las acciones tomadas por un robot puede superar el razonamiento humano tal y como lo conocemos hoy en día, pero nos permite ver una vision futurista de lo que se puede alcanzar a traves de la inteligencia artificial funcional en un tiempo no muy lejano.
*Este post es una colaboración de Ángel David Arroyo Taboada, docente de la Facultad de Ingeniería de la Universidad Privada del Norte.
Etiquetas:
y nos
pondremos en contacto
para brindarte