Robótica Humanoide Espacial
Robótica Humanoide Espacial
control de un robot
humanoide espacial
Julio 2021
Diseño, simulación y control de un robot
humanoide espacial
Resumen
Nuevos conocimientos, riquezas, trascendencia, vida más allá de los límites conocidos…
Estos principios podrían identificarse como los objetivos de la ciencia o del propio ser humano,
pero también fueron los principios que se tuvieron en el siglo XV cuando se decidió explorar el
planeta o que se tienen para explorar el universo actualmente. Para explorar el universo se han
empleado robots, los cuales tienen un papel importante debido a las condiciones extremas
presentes en planetas extraterrestres. Mientras que los humanos han logrado poner un pie en la
luna, se tienen conocimientos de las condiciones de planetas como Marte, Venus o Júpiter, los
cuales ayudarán en futuras misiones espaciales. Hay muchos tipos de robots en el espacio, pero
aquellos con forma humana son los que nos interesarán. Algunas tareas requieren que el robot se
mueva de forma similar a los humanos, use las mismas herramientas que en misiones humanas o
robóticas anteriores o la interacción con ellos sea más natural.
Tras ello, entramos en la metodología y desarrollo del proyecto, en la cual se explicarán los
pasos que se seguirán para poder tener un robot humanoide nuevo, totalmente funcional, para
realizar tareas en gravedad 0. Para ello se contará con numerosas herramientas software y, gracias
a ellas, con numerosos controladores diferentes.
v
vi
Para comprobar si todos estos desarrollos matemáticos sirven de algo, se han realizado a modo
de prueba 3 simulaciones con el simulador y se analizarán las gráficas que se extraen de las
maniobras. Estas gráficas ayudarán a comprender si los cálculos realizados han llegado a buen
cauce.
Por último, se aportarán las conclusiones que se han obtenido tras la realización del proyecto
y se propondrán ampliaciones de este por si algún estudiante / docente se animara a continuar
estos desarrollos o les sirvieran para avanzar en los suyos propios.
Preámbulo: motivación, justificación y
objetivo general
Si se trabaja duro, es posible alcanzar el techo. Una vez alcanzado, logra el cielo. Tras el cielo,
¿qué te impide no ir a por las estrellas? La vida es una lucha continua contra uno mismo por
mejorar lo logrado hasta ese momento. Aunque uno se canse debe continuar, siempre hacia
delante, en línea recta o esquivando los obstáculos que ponga el destino, ya que tras la muerte nos
espera el descanso eterno.
Así pues, si un robot puede ayudarnos a preparar el cielo para cuando lleguemos al mismo, no
se puede prescindir de dicha ayuda si el objetivo está más allá.
Tras un largo verano y el gran éxito del proyecto “Guiado de satélites robóticos mediante
control basado en imagen” realizado como TFG del grado en ingeniería robótica en 2020, se
decidió continuar con un proyecto en el mismo campo. Así pues, tras una breve reunión con Jorge
Pomares en septiembre del 2020, se decidió en qué proyecto se trabajaría en los próximos meses.
Siempre se ha dicho que las segundas partes nunca fueron buenas, pero este TFM tiene el
objetivo de ser la excepción que confirme dicha regla.
La decisión de realizar este máster fue precipitada por la mala situación sanitaria del país,
además de la invitación por parte de Gabriel Jesús García, director del mismo, a que realizara la
preinscripción. También fue influenciada por Andrés Úbeda, con quien se habló en febrero del
2020 y se llegó a la conclusión que este máster era uno de los mejores en su campo. Así pues, a
finales de mayo del 2020, se supo que se realizaría.
vii
viii
Tras coger un robot humanoide terrestre, se ajustó para poder emplearlo en el espacio. Tras
ello, se realizaron los experimentos en un simulador, ya que no se cuenta con suficiente material
para poder montar este nuevo robot en la universidad, además de no tener una cámara de vacío
en la que poner a flotar al robot para poder realizar los experimentos. No obstante, hoy en día los
simuladores permiten obtener resultados altamente fiables, por lo que este impedimento de
materiales no ha sido un problema para realizar el proyecto.
Agradecimientos
En primer lugar, quería agradecer por segundo año consecutivo a Jorge Pomares y Leonard
Felicetti por tutorizarme el proyecto final de estudios. Gracias Jorge por, a pesar de llevar este
año tantos trabajos finales diferentes, hacerme un hueco y lograr que este proyecto haya salido
adelante. Creo que una de las cosas que ha podido ser útil para todos ha sido aprender a cómo
mejorar las máquinas virtuales para poder sacarles más rendimiento. Esto marcó un antes y un
después en el proyecto, disminuyendo enormemente los tiempos de compilación y ejecución.
También me gustaría agradecer al equipo del máster haber logrado con los años un máster tan
compacto, pero a la vez tan completo. Sinceramente, tenía mis dudas de que diese tiempo a todo,
pero he podido comprobar de primera mano que si es posible. También es de agradecer la
excelente sintonía con todos ellos, además de la gran disponibilidad para resolver dudas y
satisfacer la curiosidad del alumnado.
No puedo olvidarme tampoco de Santiago Puente ya que, gracias al cual se consiguió ser
portada de la revista del COITIA con el TFG presentado el año anterior.
Por último, quería agradecer a Carlos Villagra por seguir ahí un año más para lo que necesitase.
ix
x
Pasando a la familia, debo agradecer a mis padres y hermana por aguantarme un año más en
casa.
Ama, gracias por estar siempre cerca. Ya sabes que cuando necesites ayuda con lo que sea,
solo tienes que pedirla (sobre todo con la tecnología). Espero heredar tu capacidad de trabajo
algún día.
Papá, gracias por transmitirme que con paciencia todo se resuelve mejor. Creo que eres la
persona más estudiosa que conozco, en concreto con las integrales. Deberás ayudar a María el
año que viene.
María, gracias por ser tan distinta a mí. Estudia un poco más y tendrás el mundo a tus pies.
Todos los genes que no me quedé yo, te los has quedado tu (úsalos con responsabilidad). Recuerda
que ya hay mucha gente normal, aunque no tanta extraordinaria.
También agradecer a mis abuelos paternos por estar siempre presentes. Este último año ha sido
difícil para todos nosotros. Sin embargo, más difícil que para ti, abuelo, lo dudo mucho. No todo
el mundo tiene que volver a aprender a caminar. Cuando te sientas solo, piensa las noches de
hospital que pasamos juntos. Tampoco me olvido de ti abuela. Aunque leas esto y a los 5 minutos
ya no lo recuerdes, esto tiene su parte buena, siendo esta que te emociones cada vez que lo leas.
Eso sí, lo malo de ello es que ya no recuerdes mi nombre.
Aitite, un año más te recuerdo. Se que te hubiese gustado haber visto que es de mi vida y que
te sentirías muy orgulloso de cómo me va y de la persona en la que me he convertido. Se que,
hace 6 años ya, te hice una promesa. No se cuando podré cumplirla, pero se que ya queda menos
para ello. Recuerda que, aun así, si te presentas en algún momento, te seguiré acercando todo lo
que me pidas y te llevaré a pasear tanto a pie como en coche. Y recuerda, somos los mejores, pase
lo que pase.
José Santano, otro año más apareces aquí. No he conocido mucha gente de momento, pero
creo que vas a ser una de las mejores personas que conoceré en mi vida. Gracias por haber
coincidido conmigo.
A todos vosotros y a todos los que no he nombrado, gracias por haberme convertido en lo que
soy y cauzar en lo que me convertiré. Parte de mi éxito será vuestro también.
A ti, aitite, por no bajar nunca los brazos.
xi
xiii
Índice general
1. Introducción ........................................................................................................................ 1
xv
3. Metodología ................................................................................................................... 23
4. Desarrollo ...................................................................................................................... 27
5. Resultados...................................................................................................................... 49
6. Conclusiones .................................................................................................................. 67
Bibliografía ........................................................................................................................... 71
xv
ii
xviii ÍNDICE DE FIGURAS
Figura 5.2: Esfuerzo realizado por el brazo izquierdo con el controlador P para realizar la
rotación de la mano. ...................................................................................................... 51
Figura 5.3: Posición realizado por el brazo izquierdo con el controlador P para realizar la
rotación de la mano. ...................................................................................................... 52
Figura 5.4: Velocidades realizadas por el brazo izquierdo con el controlador P para
realizar la rotación de la mano. ..................................................................................... 53
Figura 5.5: Esfuerzo realizado por el brazo izquierdo con el controlador cartesiano para
realizar la rotación de la mano. ..................................................................................... 54
Figura 5.6: Posición realizado por el brazo izquierdo con el controlador cartesiano para
realizar la rotación de la mano. ..................................................................................... 54
Figura 5.7: Velocidades realizadas por el brazo izquierdo con el controlador cartesiano
para realizar la rotación de la mano. ............................................................................ 55
Figura 5.8: Posición inicial (izquierda) y final (derecha) del movimiento de rotación del
codo. ............................................................................................................................... 56
Figura 5.9: Esfuerzo realizado por el brazo izquierdo con el controlador P para realizar la
rotación del codo. .......................................................................................................... 57
Figura 5.10: Posición realizado por el brazo izquierdo con el controlador P para realizar
la rotación del codo. ...................................................................................................... 58
Figura 5.11: Velocidades realizadas por el brazo izquierdo con el controlador P para
realizar la rotación del codo. ......................................................................................... 58
Figura 5.12: Esfuerzo realizado por el brazo izquierdo con el controlador cartesiano para
realizar la rotación del codo. ......................................................................................... 59
Figura 5.13: Posición realizado por el brazo izquierdo con el controlador cartesiano para
realizar la rotación del codo. ......................................................................................... 60
Figura 5.14: Velocidades realizadas por el brazo izquierdo con el controlador cartesiano
para realizar la rotación del codo. ................................................................................ 60
Figura 5.15: Posición inicial (izquierda) y final (derecha) del movimiento de rotación de
hombro y mano. ............................................................................................................. 61
Figura 5.16: Esfuerzo realizado por el brazo izquierdo con el controlador PID para
realizar la rotación de hombro y codo. ......................................................................... 62
Figura 5.17: Posición realizado por el brazo izquierdo con el controlador PID para
realizar la rotación de hombro y codo. ......................................................................... 63
Figura 5.18: Velocidades realizadas por el brazo izquierdo con el controlador PID para
realizar la rotación de hombro y codo. ......................................................................... 63
xx ÍNDICE DE FIGURAS
Figura 5.19: Esfuerzo realizado por el brazo izquierdo con el controlador cartesiano para
realizar la rotación de hombro y codo. ......................................................................... 64
Figura 5.20: Posición realizado por el brazo izquierdo con el controlador cartesiano para
realizar la rotación de hombro y codo. ......................................................................... 65
Figura 5.21: Velocidades realizadas por el brazo izquierdo con el controlador cartesiano
para realizar la rotación de hombro y codo. ................................................................. 65
Índice de tablas
Tabla 4.1: Aceleración de la gravedad en varios lugares del sistema solar ......................... 30
xxi
1. Introducción
Nuevos conocimientos, riquezas, trascendencia, vida más allá de los límites conocidos…
Estos principios podrían identificarse como los objetivos de la ciencia o del propio ser humano,
pero también fueron los principios que se tuvieron en el siglo XV cuando se decidió explorar el
planeta (redescubriendo América o descubriéndola por parte de los europeos) o el universo.
Para explorar el universo se han empleado robots. Estos han tenido un papel importante
debido a las condiciones extremas presentes en planetas extraterrestres. Una de las definiciones
que se ha dado a los robots ha sido la de un sistema autónomo consistente en unidades
electrónicas, eléctricas o mecánicas que puede sustituir a un ser vivo. Antes de los robots, los
científicos enviaban animales, como perros o monos, para realizar experimentos, con el objetivo
de incrementar el conocimiento que se tenía de otros planetas o satélites. Gracias a la mejora de
la tecnología, hoy en día es posible realizar muchos de estos experimentos con robots, en
detrimento de los seres vivos, preservando la vida. Mientras que los humanos han logrado poner
un pie en la luna, se tienen conocimientos de las condiciones de planetas como Marte, Venus o
Júpiter. A medida que avance la tecnología, se podrán obtener muchos más datos acerca de las
condiciones del espacio. [1]
Hay muchos tipos de robots en el espacio, pero aquellos con forma humana son los que nos
interesarán. Algunas tareas requieren que el robot se mueva de forma similar a los humanos
(cambio de un filtro de aire), además de poder utilizar las mismas herramientas que en misiones
humanas o robóticas anteriores (eliminando la necesidad de conectores o de la creación de
herramientas para un único robot). [2]
1
2 1.1 OBJETIVOS
1.1. Objetivos
Los objetivos del proyecto son:
Diseño del robot: se estudiarán las características cinemáticas y dinámicas de este tipo de
robots. El robot habrá de disponer de la suficiente capacidad de movimiento y
manipulación para su aplicación a este tipo de tareas. Dispondrá de dos brazos con manos
robóticas, así como de un torso para asimilar su espacio de trabajo, similar al de un
humano.
Simulación del robot: una vez diseñado el robot se habrán de simular las condiciones
orbitales de ausencia de gravedad / gradiente orbital para asemejar su comportamiento al
que dispondría en órbita. Además, se empleará gazebo para simular el robot y un entorno
de funcionamiento lo más realista posible.
Control del robot: se evaluará el robot realizando distinto tipo de tareas (alcance,
manipulación, uso de herramientas, etc.). Para ello será necesario no sólo definir las
posiciones a alcanzar sino también las trayectorias necesarias. Se utilizará ROS Control
para evaluar el comportamiento del robot utilizando controladores PID articulares
clásicos, así como otras estrategias de control como control por Par calculado, PD+, etc.
Esto permitirá evaluar y determinar el controlador más adecuado para este tipo de
aplicaciones.
1.2 ESTRUCTURA DE LA MEMORIA 3
Comenzamos con una introducción, en la cual se analizan las razones para explorar el espacio,
por qué hacerlo con robots humanoides, los objetivos que persigue el proyecto y la estructura de
la memoria.
En la segunda parte de la memoria se explicará que es un robot, una breve historia de los
robots espaciales y que son los robots humanoides. Tras ello, se analizará la empresa a la que
pertenece el robot original y el robot que se ha diseñado a partir de este para el trabajo. Para
concluir esta parte, se analizará que software ha sido necesario emplear para poder llevar a cabo
el TFM.
En la sexta parte se presentarán las conclusiones del proyecto, además de posibles trabajaos
futuros que podrían realizarse a partir de este proyecto.
2. Marco teórico
En esta segunda parte veremos algunos conceptos básicos, como son la definición de robots,
cuándo surge el término que se emplea hoy en día, una breve historia de los robots espaciales y
como se pueden clasificar, y que es un robot humanoide y cuáles han viajado o se encuentran
actualmente en desarrollo para viajar al espacio.
Tras ello, se hablará de la compañía española PAL Robotics. Esta empresa ha diseñado y
diseña varios robots humanoides. Uno de ellos, en concreto el robot TALOS, será en el que se
profundice un poco más, ya que se empleará en este proyecto. Se analizarán sus características
técnicas y se verá como de extendido esta su uso por el mundo.
Por último, se verá que software se ha empleado. Este incluye ROS, gazebo, URDF y
XACRO, ROS Control, KDL, Rosbag y Plotjuggler.
5
6 2.1. ROBOT
2.1. Robot
Un robot es un sistema mecánico multipropósito, reprogramable y controlado automáticamente
con múltiples grados de libertad, pudiendo ser fijos o móviles [3]. Como toda tecnología
sofisticada, la robótica es el resultado de varios cientos de años de conocimientos acumulados,
relativos a leyes físicas, matemáticas y geométricas.
El origen de la palabra tiene su nacimiento en 1921. En este año, el escritor checo Karel Čapek
presentó su obra Rossum’s Universal Robots (R.U.R.) [4]. El cartel de dicha obra puede verse en
la figura 2.1. En ella aparecían trabajadores humanoides, los cuales cumplían la misma función
que los robots que, posteriormente, se incluyeron en las fábricas unas décadas más tarde
(liberando a los humanos de trabajos difíciles, monótonos o peligrosos).
Figura 2.1: Cartel de la obra Rossum’s Universal Robots de 1921. Fuente: Wikimedia commons
Respecto a sus campos de aplicación, son diversos y diferentes, contando entre ellos con la
automatización industrial, aplicaciones médicas, transporte, entretenimiento, aéreas, submarinas
o espaciales.
2.2 ROBÓTICA ESPACIAL 7
Estos poseen mayor fuerza, velocidad, precisión, seguridad y economía de uso con respecto
a los humanos, así como la falta de necesidad de descanso, vestido, alimentación o
atmósfera. Esta ventaja hace que los robots espaciales sean sumamente atractivos para su
operación y apoyo fuera de la Tierra. Gracias a ellos, la dificultad, complejidad, costo y peligro
se reducen grandemente al sustituir a los humanos en el espacio exterior. Los robots pueden ser
diseñados para soportar la temperatura extrema, radiación, microgravedad y vacío presentes en el
espacio exterior, reduciendo los riesgos para los astronautas fuera de la Tierra [5].
Se pueden dividir en dos ramas diferentes, de las cuales puede verse un ejemplo en la figura
2.2: robots espaciales en órbita y robots planetarios.
Figura 2.2: Robot espacial en órbita Canadarm 2 capturando la nave de carga Dragon de Space X (izquierda) y robot planetario
Perseverance, rover recién aterrizado en Marte (derecha). Fuentes: [Link] y [Link]
8 2.3 ROBOTS HUMANOIDES EN EL ESPACIO
Figura 2.3: Robonaut II, creado por la NASA y DARPA. Fuente: [Link]
2.3 ROBOTS HUMANOIDES EN EL ESPACIO 9
Valkyrie / R5: diseñado en una competición patrocinada por la DARPA en 2011 para
realizar tareas de asistencia en caso de desastre, así como operaciones de búsqueda y
rescate. En 2015 fue estudiado por la NASA, junto a estudiantes del MIT y de la
Northeastern University, para ver cómo se podría emplear en tareas de exploración
espacial. Actualmente se encuentra en la Tierra, pero ha demostrado una flexibilidad y
destreza increíbles, por lo que tal vez pueda verse en Marte algún día. Este robot puede
verse en la figura 2.4.
Figura 2.6: Kirobo, creado por la Universidad de Tokio y Toyota. Fuente: [Link]
Figura 2.7: AILA, creado por centro alemán de investigación para la inteligencia artificial. Fuente: [Link]
2.3 ROBOTS HUMANOIDES EN EL ESPACIO 11
Fedor: fue diseñado para realizar tareas de exploración y rescate, además de viajes
espaciales. Fue presentado en 2017, midiendo 1.8 m y pesando 160 kg. Se trata de un
robot totalmente autónomo, aunque es posible teleoperarlo. Fue enviado por la Roscomos
a la ISS en 2019 y, bajo la supervisión del astronauta ruso Alexander Skvortsov, realizó
diversas tareas. No viajará más al espacio, ya que se vio que era demasiado corpulento y
tenía una baja capacidad de manipulación. Este robot puede verse en la figura 2.9 [9].
REEM-A (2005).
REEM-B (2008).
REEM-H1 (2010).
REEM (2012).
REEM-C (2013).
StockBot & TIAGo (2015).
TALOS (2017).
ARI (2019).
Figura 2.12: Robot TALOS en el LAAS-CNRS, en la Universidad de Edimburgo y en la Universidad de Waterloo (de izq a der).
Fuentes: [Link] [Link] y [Link]
2.6 SOFTWARE 15
2.6. Software
En este apartado se verán que herramientas de software se han empleado para poder desarrollar
el proyecto. Estas incluyen ROS, Gazebo, URDF y XACRO, ROS control, KDL, rosbag y
plotjuggler.
2.6.1. ROS
ROS es un framework flexible para escribir software robótico. Fue creado porque realizar
software robótico es complejo, siéndolo tanto que no hay persona, laboratorio o institución capaz
de realizarlo por sí mismo. Como resultado, ROS fue construido desde cero, animando al
desarrollo de software robótico de forma colaborativa. Así pues, la colaboración de varios grupos
expertos en temas totalmente diferentes puede crear software muchos más avanzado, partiendo
del trabajo de otros expertos. Su logo puede verse en la figura 2.13 [17].
Su origen se remonta al año 2000, cuando la Universidad de Standford consiguió crear los
programas STAIR y PR. En 2007, Willow Garage proporcionó muchos recursos y creó
implementaciones bien probadas. Este esfuerzo fue impulsado por numerosos investigadores, los
cuales usaron su tiempo y experiencia en la creación del núcleo de ROS y los paquetes de software
fundamentales. El software era desarrollado abiertamente, usando licencias open source.
Hoy en día, el ecosistema de ROS consiste en miles y miles de usuarios alrededor del mundo,
trabajando en proyectos que van desde hobbies hasta amplios sistemas de automatización
industriales [18].
2.6.2. Gazebo
Gazebo, que nace con el nombre de Gazebo Project, es un simulador 3D, cinemático, dinámico
y multi-robot que permite realizar simulaciones de robots articulados en entornos complejos,
interiores o exteriores, realistas y tridimensionales.
Figura 2.14: Logotipo de Gazebo y ejemplo de ambiente creado. Fuentes: [Link] y [Link]
2.6 SOFTWARE 17
Figura 2.15: Ejemplo de árbol de eslabones conectados mediante articulaciones. Fuente: [Link]
Como su nombre indica, XACRO es un lenguaje macro. Este programa ejecuta todas las
macros y genera un resultado, pudiendo construir archivos XML más cortos y legibles utilizando
macros que se pueden expandir a expresiones XML más grandes. Mejora a URDF, ya que permite
incluir constantes, operaciones matemáticas simples y crear macros. El objetivo principal de su
uso es el de reducir el tamaño general del archivo URDF y facilitar su lectura y mantenimiento.
Así pues, el programa de lectura de archivos XACRO lee el archivo, ejecuta todas sus macros y
genera el resultado en archivo URDF final [20].
18 2.6 SOFTWARE
Se emplea como entrada los datos de estado de las articulaciones y una referencia articular.
Además, estos paquetes generan como salida el comando adecuado para los actuadores, con el
objetivo de que los valores articulares actuales (joint states) alcancen la referencia articular.
Los paquetes ros_control proporcionan varios controladores (controller plugins). Estos tienen
un comando de entrada (referencia) y uno de salida (acción de control). Los comandos de salida
están relacionados con la interfaz articular (joint interface), que depende del tipo de articulación
que se esté controlando (se habrá de seleccionar uno u otro, excepto en el caso de
joint_state_controller, que siempre se inicia). Se puede también cargar más de un plugin
(esfuerzo, posición y/o velocidad) por robot, y cambiar entre ellos usando el controller_manager.
Una vez que los plugins han hecho su labor, la salida de estos es enviada al interfaz hardware
(que actúa como un intermediario entre los plugins y el robot real o simulado) [21].
2.6.5. KDL
KDL es una librería distribuida por el proyecto Orocos que puede usarse con ROS. Es una
aplicación para modelar y realizar cómputos de cadenas cinemáticas. KDL incluye además una
serie de funciones que permiten trabajar con vectores, puntos, transformaciones de sistemas de
coordenadas, etc. Contiene definidas una serie de clases y funciones que permiten resolver la
cinemática directa e inversa del robot, su Jacobiano, las diferentes componentes del modelo
dinámico (vectores de gravedad o inercia) o, junto a URDF, extraer su modelo cinemático y
dinámico. Un ejemplo de esto último puede verse en la figura 2.17.
El stack de KDL está dividido en 3 paquetes, siendo estos KDL (contiene la versión más
reciente de la librería KDL), Orocos_KDL (versión en C++ de la librería) y PyKDL (versión en
Python de la librería) [21] [22].
Figura 2.17: Obtención del modelo del robot a partir del código URDF. Fuente: [Link]
20 2.6 SOFTWARE
2.6.6. Rosbag
Rosbag es una serie de herramientas que permiten guardar la información de los topics de un
robot para poder reproducirlas en otro momento. Se puede ocupar, entre otras cosas, para guardar
movimientos y acciones del robot para poder usarla en experimentos posteriores.
El comando rosbag tiene una serie de instrucciones, entre las cuales destacan [23] [24]:
Record: este comando permite guardar topics, los cuales se les pasan en orden. Se puede
usar la opción -a para guardarlos todos.
Play: permite reproducir un rosbag previamente guardado con record. Cuando se
reproduce el rosbag, se puede pausar usando la tecla espacio, luego se puede avanzar paso
por paso con la tecla s.
Compress: debido a la cantidad de información, este comando permite comprimir los
archivos utilizados.
Decompress: descomprime los archivos comprimidos previamente con el comando
compress.
Info: muestra un resumen del contenido de un fichero bag.
2.6 SOFTWARE 21
2.6.7. PlotJuggler
Se trata de una herramienta para visualización de series temporales de datos de forma rápida,
intuitiva y extensible.
Cuenta con una interfaz que funciona de modo “drag & drop”, diseñada para maximizar la
rapidez y simplicidad de uso. Puede emplearse para visualizar logs (datos off-line y on-line) en
varios campos, como son la robótica, la conducción autónoma, la ciencia de datos, la
automatización o los sistemas embebidos.
Por si fuese poco, se pueden aplicar funciones y transformaciones a los datos para entenderlos
mejor. Entre ellas se encuentran la derivada, la integral o las escalas. Se basa en el lenguaje LUA
para la generación de nuevas funciones propias más complejas.
Por último, permite integrarlo con ROS. Así pues, se permite la carga de ficheros rosbag,
suscripción a topics o la republicación de mensajes y su posterior visualización con RViz [25].
En este apartado de la memoria, se verá que pasos se siguieron a la hora de desarrollar este
TFM. A pesar de comenzar antes a trabajar en él, siempre se pueden realizar más y más cosas.
Así pues, se describirán de forma aproximada que pasos se realizaron.
Tras ello, se verán las herramientas que se han empleado. Prácticamente todas las herramientas
son software, ya que es complicado disponer de robots tan avanzados en las universidades hoy en
día, además de cámaras de vacío para realizar simulaciones reales. Además, se explicarán las
razones por las que se usó como lenguaje de programación C++.
23
24 3.1. PASOS DEL DESARROLLO
Se comenzó viendo algunos tutoriales en la web “the construct”. Esto se hizo para ver
cómo manejar en ROS los robots de la empresa PAL Robotics. Una vez entendido, se
procedió a instalar todos los paquetes necesarios en una máquina virtual para poder lanzar el
robot TALOS en Gazebo. Tras lograr ver el robot TALOS en Gazebo, se procedió a ajustarlo
para poder enviarlo al espacio. Esto consistió en modificar la gravedad del simulador,
eliminar las piernas y pies del robot y cambiar las pinzas de dicho robot por unas manos
robóticas, desarrolladas en el modelo REEM-C. Una vez se tiene el robot que se empleará en
el trabajo, fue el momento de probar a moverlo. Tras muchos intentos fallidos, se logró crear
controladores propios y aplicarlos al robot. Lo siguiente fue incorporar la ISS a la simulación
de Gazebo. Se intentó coger alguna de las asas repartidas por ella con controladores de
posición, pero no se logró. Para intentar mitigar ese error, se creó un controlador cartesiano
con un punto inicial y final. También se intentó crear controladores de trayectorias, pero los
paquetes originales no se consiguieron compilar, por lo que no se pudieron crear finalmente.
Respecto al lenguaje de programación para emplear estas herramientas, se eligió C++ y XML.
Se ha elegido C++ como lenguaje de programación principal ya que [26]:
Tras ello, se diseñará el robot que se empleará en los experimentos. Por esa razón, el robot
TALOS debe ser ajustado para la tarea que realizará en gravedad 0. Estos ajustes consisten en
eliminar las piernas, las pinzas, dotarle de manos y personalizar los colores de sus piezas. La
última personalización es juntarlo con la ISS en el simulador.
Por último, se explicarán los diferentes controladores que se analizarán para realizar los
movimientos. Estos pueden ser articulares (distinguiendo el P, PD, PD con compensación de
gravedad, PD con compensación precalculada de gravedad y PID) o cartesianos (basado en
velocidades).
27
28 4.1 ENTORNO DE SIMULACIÓN
Se partió de los paquetes del robot TALOS de la empresa PAL Robotics. Estos paquetes están
publicados en el repositorio de github de la empresa, la cual apuesta por proporcionar códigos
para poder, a partir de ellos, crear simulaciones propias ajustadas a la aplicación que se investigue.
Una vez descargados, se procedió a buscar en que fichero se indicaba la gravedad que afecta
al robot en la simulación. Una vez localizado, se comprobó que estaba fijada a 9.81 𝑚⁄𝑠2 en la
dirección del eje z, en sentido negativo. Esta es la gravedad media que se tiene en la Tierra.
𝑚1 𝑚2
𝐹21 = − 𝐺 𝑢̂21 (4.1)
|𝑟2 − 𝑟1|2
4.1 ENTORNO DE SIMULACIÓN 29
10−11 𝑁 𝑚2 ⁄ 2 .
𝑘𝑔
𝑚1, 𝑚2: masa de partículas puntuales 1 y 2.
𝑢̂21: vector unitario que va dirigido de la partícula 1 a la 2.
𝑟2 − 𝑟1: distancia que separa ambas partículas.
𝐹 = 𝑚𝑎 (4.2)
F: fuerza.
𝑚: masa de la partícula.
𝑎: masa de la partícula.
Combinando ambas, nos queda una nueva fórmula, la cual nos permitirá calcular la aceleración
de la gravedad. Esta puede verse en (4.3).
𝑀
𝑎= 𝐺 (4.3)
𝑟2
Tras ver la tabla 4.1, se ha visto conveniente realizar dos aclaraciones [28]:
En la ISS hay una gravedad importante creada por la Tierra: los astronautas flotan debido
a que se produce un estado de ingravidez, que es un estado en el que un cuerpo que tiene
un cierto peso se contrarresta totalmente con otra fuerza o se mantiene en caída libre sin
sentir los efectos de la fuerza gravitatoria.
La gravedad en el vacío es existente, aunque sea un valor muy pequeño. A modo de
ejemplo, el efecto de la gravedad de la Luna influencia las mareas terrestres.
Así pues, es posible realizar muchas simulaciones en varios entornos de gravedad. No obstante,
al desear crear un robot que realizara tareas en el espacio, se asume una gravedad nula, a pesar de
que no se dará nunca (pero será el peor de los casos que se darán). En la imagen 4.2 se puede ver
esta nueva gravedad nula impuesta.
4.1 ENTORNO DE SIMULACIÓN 31
No obstante, tal y como puede verse en la figura 4.3, si en gravedad 0 no hay ninguna acción,
no se produce ninguna reacción.
Así pues, no es necesario contar ni con los pies ni con las piernas, ya que el robot se encontrará
en situaciones de ingravidez en el espacio. Es por ello por lo que se eliminan, quedando el robot
de la figura 4.4.
Una vez se tiene el robot sin piernas, es el momento de continuar con el ajuste del mismo para
la tarea que se desea realizar. Así pues, se cambian las pinzas con las que cuenta el robot de la
figura 4.4 por unas manos robóticas. Estas manos, llamadas hey5, se tomarán prestadas del robot
TIAGO. Estas pueden verse en la figura 4.5. El resultado de eliminar las pinzas del robot y
sustituirlas por dichas manos puede verse en la figura 4.6.
4.2 DISEÑO DEL ROBOT 33
Figura 4.5: Robot REEM-C, del cual se tomarán las manos del mismo para incorporarlas al robot TALOS. Fuente: [Link]
[Link]/
Figura 4.6: Robot TALOS sin pinzas (izquierda) y robot TALOS con las manos del robot TIAGO.
Ahora que se ha obtenido la estructura del robot que se empleará de aquí en adelante, ha
llegado el momento de personalizar los colores de este. Como se ha realizado este TFM con un
profesor asociado al grupo de investigación HURO, se han escogido los colores que emplean en
su logo. Este logo puede verse en la figura 4.7, mientras que el robot resultante puede verse en la
figura 4.8.
34 4.2 DISEÑO DEL ROBOT
Figura 4.7: Logo del grupo Human Robotics (HuRo) de la Universidad de Alicante. Fuente: [Link]
Figura 4.8: Robot TALOS con los colores del grupo HuRo.
Por último, se establecerá el robot diseñado junto a un modelo de la ISS en gazebo, de forma
que se tiene un escenario en simulación pero realista de la aplicación que se desea desarrollar.
Tanto robot como ISS pueden verse en las figuras 4.9 y 4.10. En la figura 4.9 se muestra la ISS
de forma completa, en la que el robot creado puede verse como un pequeño punto de color rojo,
situado en la parte inferior central. En la figura 4.10 se ha hecho zoom sobre el robot, de forma
que se ve a este y una pequeña sección de la ISS.
4.2 DISEÑO DEL ROBOT 35
Así pues, surgen dos métodos diferentes de realizar dicho control: referencia constante (regular
la posición / orientación del extremo o de la configuración articular) o referencia variante en el
tiempo (seguimiento de una trayectoria).
4.3 CONTROL DEL ROBOT 37
El sistema puede controlarse en bucle abierto, que es cuando la señal de entrada actúa de forma
directa sobre el controlador, o en bucle cerrado, que es una prolongación del bucle abierto en el
que se toma una medida a la salida y se le pasa a la entrada. Esto se consigue incluyendo una
realimentación interna al sistema, lo que permite que sea insensible a perturbaciones y errores en
el modelo [30].
Figura 4.12: Sistema en bucle abierto (arriba) y en bucle cerrado (abajo). Fuente: [30]
Por lo tanto, los controladores multiarticulares surgen con el objetivo de mejorar el desempeño
de los controladores monoarticulares cuando el robot describe trayectorias rápidas o con gran
precisión. En estos casos, los efectos de acoplamiento entre las articulaciones de un robot son más
notables y se hace necesario definir un controlador multivariable que genere directamente los
pares para todas las articulaciones teniendo en cuenta los posibles pares de acoplamiento entre las
articulaciones.
El objetivo del control de posición (4.6) es determinar los pares articulares necesarios para
llevar al robot a la posición deseada.
𝑙𝑖𝑚 𝑞̃(𝑡) = 0 (4.6)
𝑡→∞
Así pues, el control genérico de un robot quedaría tal y como puede verse en la figura 4.13
[32].
[Link]. Controlador P
La acción de control de un regulador P se corresponde con (4.7). Un esquema de este puede
verse en la figura 4.14.
𝐾𝑝 𝑞̃ = 𝑟 (4.7)
[Link]. Controlador PD
La acción de control de un regulador PD se corresponde con (4.10). Un esquema de este puede
verse en la figura 4.15.
𝛿𝑞̃
𝐾𝑝 𝑞̃ + 𝐾𝑣 = 𝑟 (4.10)
𝛿𝑡
𝛿𝑞̃
𝐾𝑝 𝑞̃ + 𝐾𝑣 + 𝑔 (𝑞) = 𝑟 (4.13)
𝛿𝑡
𝛿 [𝑞 ] = [ −𝑞
𝛿𝑞 ] (4.15)
𝛿𝑡 𝑞 𝑀 (𝑞𝑑 − 𝑞̃)−1 [𝐾𝑝 𝑞̃ − 𝐾𝑣 − 𝐶 (𝑞𝑑 − 𝑞̃, 𝑞 ) 𝑞]
𝛿𝑡
Figura 4.16: Controlador PD con compensación de gravedad de posición multiarticular. Fuente: [32]
4.3 CONTROL DEL ROBOT 43
𝛿𝑞̃
𝐾𝑝 𝑞̃ + 𝐾𝑣 + 𝑔 (𝑞𝑑 ) = 𝑟 (4.16)
𝛿𝑡
𝑔 (𝑞𝑑) : componente de gravedad del modelo dinámico del robot en la posición final a
alcanzar.
Figura 4.17: Controlador PD con compensación precalculada de gravedad de posición multiarticular. Fuente: [32]
44 4.3 CONTROL DEL ROBOT
𝛿𝑞̃ 𝑡
𝐾𝑝 𝑞̃ + 𝐾𝑣 + 𝐾𝑖 ∫ 𝑞̃(𝜎) 𝑑𝜎 = 𝑟 (4.19)
𝛿𝑡 0
𝛿𝑞̃
𝐾𝑝 𝑞̃ + 𝐾𝑣 + 𝐾𝑖 𝜉 = 𝑟
𝛿𝑡 (4.20)
𝜉 = 𝑞̃
Figura 4.17: Controlador PD con compensación precalculada de gravedad de posición multiarticular. Fuente: [32]
46 4.3 CONTROL DEL ROBOT
Para ello hace uso de la matriz jacobiana (4.23). La cinemática diferencial permite estudiar las
relaciones entre el espacio articular y el cartesiano, considerando velocidades y posiciones. La
matriz jacobiana establece la relación entre las velocidades de las coordenadas articulares y las
de posición y orientación del extremo del robot [31].
𝑥 𝛿𝑓𝑥 𝛿𝑓𝑥
𝖥 1
𝑦 𝑞1 𝖥 … 1 𝑞1
I I
I𝛿𝑞1 𝛿𝑞𝑛I (4.23)
I𝑧̇I = 𝐽 [ ⋮ ] = ⋮ ⋱ ⋮ I[⋮]
⋮
I𝛼̇I ⋮ I 𝛿𝑓 𝛿𝑓𝛾
I𝛽̇I 𝑞𝑛 I 𝛾 … I 𝑞𝑛
[𝛾 ] [𝛿𝑞1 𝛿𝑞𝑛]
En (4.23) las tres primeras filas se corresponden con la velocidad lineal del extremo, mientras
que las tres segundas filas se corresponden con la velocidad angular del extremo.
Figura 4.18: Relación entre espacio cartesiano, articular y la transformación cinemática a aplicar. Fuente: [34]
Para empezar, se construye una cadena de articulaciones, empleando los nombres de la primera
y última articulación a controlar. Esta cadena también contiene un puntero al estado del robot,
para ser capaces de acceder al mismo el cada ciclo del bucle de control. Tras ello, se configura
KDL. Se deben crear dos solvers, para lo que es necesario conocer la cadena cinemática del robot.
Se sigue calculando la posición cartesiana inicial en la que se encuentra el robot. Para poder
calcularla, se lee la posición articular de la cadena creada y se emplea KDL, empleando la
cinemática directa.
El controlador de forma continua obtiene, en primer lugar, la posición del extremo del robot.
Esto lo consigue leyendo el objeto cadena. Tras ello, calcula la posición del extremo del robot y
la matriz jacobiana empleando los solvers de KDL. La velocidad de cada articulación se consigue
haciendo el producto de la matriz jacobiana y el error actual.
En los subapartados siguientes se realiza una descripción de los movimientos a realizar, las
posiciones deseadas en el espacio cartesiano y articular, las ganancias empleadas y las gráficas de
esfuerzo, posición y velocidad obtenidas tras los movimientos.
Se han considerado 3 casos diferentes, los cuales pueden ser usados durante distintas tareas
en la ISS:
1. Una maniobra de rotación de la mano.
2. Una maniobra de rotación del codo.
3. Una maniobra de rotación del hombro y codo.
49
50 5.1 ROTACIÓN DE LA MANO
Figura 5.1: Posición inicial (izquierda) y final (derecha) del movimiento de rotación de la mano.
En caso de proporcionar una posición articular como objetivo, se pueden emplear los
controladores P multiarticular, PD multiarticular, PD con compensación de gravedad
multiarticular, PD con compensación precalculada de gravedad multiarticular y PID
multiarticular. El objetivo del movimiento vendría dado por (5.1).
𝑋𝑑 = [0 0 1.57 0 0 0 0] (5.1)
El mejor resultado de todos los controladores mencionados fue el obtenido con el controlador
P. No obstante, el resto de las gráficas eran similares a las del controlador P, aunque estas
presentan un menor tiempo de establecimiento y amplitud de las señales. Para ello, se han
empleado las ganancias de (5.2).
Los resultados obtenidos en la figura 5.2 muestran los esfuerzos realizados por el controlador
para alcanzar la posición final. Como puede verse, se consigue la estabilidad del sistema apenas
transcurridos 0.75 segundos, lo cual es muy rápido.
Esfuerzo (Nm)
tiempo (s)
Figura 5.2: Esfuerzo realizado por el brazo izquierdo con el controlador P para realizar la rotación de la mano.
En la figura 5.3 puede verse la posición final de las articulaciones del robot en la realización
del movimiento. Tal y como puede verse, la articulación 3 alcanza su objetivo cuando apenas ha
transcurrido 1 segundo desde el comienzo del movimiento. No obstante, las articulaciones 1 y 2
obtienen posiciones finales diferentes a las deseadas. Esto es debido a que, para alcanzar el
objetivo con la articulación 3, las posiciones de estas articulaciones son modificadas. El error no
es muy grande, si se tiene en cuenta de que se está trabajando con un controlador P.
52 5.1 ROTACIÓN DE LA MANO
Posición (rad)
tiempo (s)
Figura 5.3: Posición realizado por el brazo izquierdo con el controlador P para realizar la rotación de la mano.
En la figura 5.4 puede verse la velocidad de las diferentes articulaciones mientras se realiza la
tarea. Como puede verse, se estabilizan en 0, aunque surgen unas periodicidades a lo largo del
tiempo (aunque son pequeñas). Estas son debidas a que, el controlador realiza un esfuerzo, se
pasa de la posición, hace el opuesto, se pasa, etc. Esto sucede porque no hay gravedad en las
simulaciones, siendo un hecho curioso y que podría ser estudiado aparte.
5.1 ROTACIÓN DE LA MANO 53
Velocidad (rad / s)
tiempo (s)
Figura 5.4: Velocidades realizadas por el brazo izquierdo con el controlador P para realizar la rotación de la mano.
Los resultados obtenidos en la figura 5.5 muestran los esfuerzos realizados por el controlador
para alcanzar la posición final. Como puede verse, se consigue la estabilidad del sistema, pero es
necesario un tiempo mayor para lograrlo (1.5 segundos).
54 5.1 ROTACIÓN DE LA MANO
Esfuerzo (Nm)
tiempo (s)
Figura 5.5: Esfuerzo realizado por el brazo izquierdo con el controlador cartesiano para realizar la rotación de la mano.
En la figura 5.6 puede verse la posición final de las articulaciones del robot en la realización
del movimiento. Tal y como puede verse, es necesario mucho más tiempo para conseguir que las
articulaciones vayan por el buen camino (hacia el objetivo marcado como posición deseada)
Posición (rad)
tiempo (s)
Figura 5.6: Posición realizado por el brazo izquierdo con el controlador cartesiano para realizar la rotación de la mano.
5.1 ROTACIÓN DE LA MANO 55
En la figura 5.7 puede verse la velocidad de las diferentes articulaciones mientras se realiza la
tarea. Como puede verse, además de necesitar más tiempo para estabilizarse en 0, es necesario
que se apliquen velocidades mayores y sucesivas en comparación con el controlador P para el
mismo movimiento.
Velocidad (rad / s)
tiempo (s)
Figura 5.7: Velocidades realizadas por el brazo izquierdo con el controlador cartesiano para realizar la rotación de la mano.
56 5.2 ROTACIÓN DEL CODO
Figura 5.8: Posición inicial (izquierda) y final (derecha) del movimiento de rotación del codo.
En caso de proporcionar una posición articular como objetivo, se pueden emplear los
controladores P multiarticular, PD multiarticular, PD con compensación de gravedad
multiarticular, PD con compensación precalculada de gravedad multiarticular y PID
multiarticular. El objetivo del movimiento vendría dado por (5.4).
𝑋𝑑 = [0 0 0 − 1.57 0 0 0] (5.4)
5.2 ROTACIÓN DEL CODO 57
El mejor resultado de todos los controladores mencionados fue el obtenido con el controlador
P. No obstante, el resto de las gráficas eran similares a las del controlador P, aunque las de este
presentan un menor tiempo de establecimiento y menor amplitud de las señales. Para ello, se han
empleado las ganancias de (5.5).
Los resultados obtenidos en la figura 5.9 muestran los esfuerzos realizados por el controlador
para alcanzar la posición final. Como puede verse, es necesario que transcurran 3 segundos para
alcanzar la estabilidad.
Esfuerzo (Nm)
tiempo (s)
Figura 5.9: Esfuerzo realizado por el brazo izquierdo con el controlador P para realizar la rotación del codo.
En la figura 5.10 puede verse la posición final de las articulaciones del robot en la realización
del movimiento. Tal y como puede verse, la articulación 7 va un poco a su rollo cuando han
transcurrido 3.5 segundos. No obstante, la articulación se queda cerca del 0 en todas las
articulaciones a excepción de la 4, que debe alcanzar -1.57 como objetivo, lo cual coincide con la
posición objetivo.
58 5.2 ROTACIÓN DEL CODO
Posición (rad)
tiempo (s)
Figura 5.10: Posición realizado por el brazo izquierdo con el controlador P para realizar la rotación del codo.
En la figura 5.11 puede verse la velocidad de las diferentes articulaciones mientras se realiza
la tarea. Como puede verse, se estabilizan en 0, aunque surgen unas periodicidades a lo largo del
tiempo (aunque son pequeñas).
Velocidad (rad / s)
tiempo (s)
Figura 5.11: Velocidades realizadas por el brazo izquierdo con el controlador P para realizar la rotación del codo.
5.2 ROTACIÓN DEL CODO 59
Los resultados obtenidos en la figura 5.12 muestran los esfuerzos realizados por el controlador
para alcanzar la posición final. Como puede verse, se consigue la estabilidad del sistema, pero es
necesario un tiempo mayor para lograrlo (4.5 segundos).
Esfuerzo (Nm)
tiempo (s)
Figura 5.12: Esfuerzo realizado por el brazo izquierdo con el controlador cartesiano para realizar la rotación del codo.
En la figura 5.13 puede verse la posición final de las articulaciones del robot en la realización
del movimiento. Tal y como puede verse, es necesario mucho más tiempo para conseguir que las
articulaciones vayan por el buen camino. Sin embargo, las articulaciones 1 y 5 parecen seguir otro
patrón de posiciones, diferente al que deberían de llevar.
60 5.2 ROTACIÓN DEL CODO
Posición (rad)
tiempo (s)
Figura 5.13: Posición realizado por el brazo izquierdo con el controlador cartesiano para realizar la rotación del codo.
En la figura 5.14 puede verse la velocidad de las diferentes articulaciones mientras se realiza
la tarea. Como puede verse, además de necesitar más tiempo para estabilizarse en 0, aparecen
estas estructuras periódicas nuevamente.
Velocidad (rad / s)
tiempo (s)
Figura 5.14: Velocidades realizadas por el brazo izquierdo con el controlador cartesiano para realizar la rotación del codo.
5.3 ROTACIÓN DEL HOMBRO Y MANO 61
Figura 5.15: Posición inicial (izquierda) y final (derecha) del movimiento de rotación de hombro y mano.
En caso de proporcionar una posición articular como objetivo, se puede emplear los
controladores P multiarticular, PD multiarticular, PD con compensación de gravedad
multiarticular, PD con compensación precalculada de gravedad multiarticular y PID
multiarticular. El objetivo del movimiento vendría dado por (5.7).
El mejor resultado de todos los controladores mencionados fue el obtenido con el controlador
PID. No obstante, el resto de las gráficas eran similares a las del controlador PID, aunque las de
este presentan un menor tiempo de establecimiento y menor amplitud de las señales. Para ello, se
han empleado las ganancias de (5.8).
Los resultados obtenidos en la figura 5.16 muestran los esfuerzos realizados por el controlador
para alcanzar la posición final. Como puede verse, es necesario que transcurra más tiempo para
lograr la estabilidad, ya que el movimiento es más amplio que en los ejemplos anteriores.
Esfuerzo (Nm)
tiempo (s)
Figura 5.16: Esfuerzo realizado por el brazo izquierdo con el controlador PID para realizar la rotación de hombro y codo.
En la figura 5.17 puede verse la posición final de las articulaciones del robot en la realización
del movimiento. Tal y como puede verse, la articulación 7, a pesar de ir un poco a su rollo,
recupera el buen camino en torno al segundo 7. Las articulaciones 2 y 3 consiguen alcanzar la
posición final, siendo la tercera (giro de la mano) la más rápida, siendo esto muy razonable.
5.3 ROTACIÓN DEL HOMBRO Y MANO 63
Posición (rad)
tiempo (s)
Figura 5.17: Posición realizado por el brazo izquierdo con el controlador PID para realizar la rotación de hombro y codo.
En la figura 5.18 puede verse la velocidad de las diferentes articulaciones mientras se realiza
la tarea. Como puede verse, se estabilizan en 0, aunque surgen unas periodicidades a lo largo del
tiempo (aunque son pequeñas).
Velocidad (rad / s)
tiempo (s)
Figura 5.18: Velocidades realizadas por el brazo izquierdo con el controlador PID para realizar la rotación de hombro y codo.
64 5.3 ROTACIÓN DEL HOMBRO Y MANO
Los resultados obtenidos en la figura 5.19 muestran los esfuerzos realizados por el controlador
para alcanzar la posición final. Como puede verse, se consigue que los controladores no saturen
en ningún momento.
Esfuerzo (Nm)
tiempo (s)
Figura 5.19: Esfuerzo realizado por el brazo izquierdo con el controlador cartesiano para realizar la rotación de hombro y codo.
En la figura 5.20 puede verse la posición final de las articulaciones del robot en la realización
del movimiento. Tal y como puede verse, es necesario mucho más tiempo para conseguir que las
articulaciones vayan por el buen camino. Sin embargo, las articulaciones 4, 5 y 6, a pesar de que
van por buen camino, todavía les falta un largo camino hasta el objetivo.
5.3 ROTACIÓN DEL HOMBRO Y MANO 65
Posición (rad)
tiempo (s)
Figura 5.20: Posición realizado por el brazo izquierdo con el controlador cartesiano para realizar la rotación de hombro y codo.
En la figura 5.21 puede verse la velocidad de las diferentes articulaciones mientras se realiza
la tarea. Como puede verse, además de necesitar más tiempo para estabilizarse en 0, aparecen
estas estructuras periódicas nuevamente.
Velocidad (rad / s)
tiempo (s)
Figura 5.21: Velocidades realizadas por el brazo izquierdo con el controlador cartesiano para realizar la rotación de hombro y codo.
6. Conclusiones
Este último capítulo de la memoria servirá a modo de conclusión. Tras realizar una
introducción al proyecto, se desarrolló el marco teórico de la robótica espacial, introduciendo el
robot que serviría de inspiración para desarrollar el proyecto, además del software. A
continuación, se vio la metodología seguida para desarrollar el proyecto, para continuar con el
desarrollo de los distintos pasos del proyecto. Eso llevaría a presentar los resultados obtenidos
para acabar en este apartado de la memoria que pretende ser la conclusión del proyecto mismo.
En la segunda parte del proyecto se definió lo que es un robot, además de los diferentes campos
en los que se encuentran presentes. Se profundizó en la robótica espacial de forma breve, ya que
el grupo de interés para el proyecto eran los robots humanoides espaciales. Una vez visto cómo
van los desarrollos en este campo, se introdujo la empresa española PAL robotics, la cual tiene
un desarrollo similar al desarrollado en este proyecto. Tras ello, se comentaron todas las
herramientas software empleadas en el proyecto, siendo estas un total de 7 diferentes.
En la tercera parte del proyecto se explicaron los pasos que se siguieron para desarrollar el
proyecto. La mayoría de estos pasos deben realizarse en orden ya que, de lo contrario, es
complicado realizar el movimiento de un grupo de articulaciones si antes no se ha construido el
robot con el que se trabajará.
67
68 6. CONCLUSIONES
En la cuarta parte del proyecto se desarrollaron los pasos del apartado anterior, siguiendo estos
el desarrollo del entorno de simulación, el diseño del robot y su personalización y su control con
varios controladores diferentes, encontrando entre ellos el controlador PD multiarticular con
compensación de gravedad o el controlador cartesiano multiarticular.
En la quinta parte del proyecto se presentaron los resultados obtenidos. Para ello, se diseñaron
3 movimientos diferentes, avanzando en dificultad. En la mayoría de ellos, los controladores P
fueron los que mejor funcionaron. Si los movimientos abarcaban un mayor rango, era necesario
subir la dificultad del control y realizarlo con un controlador PID. En todos ellos se pudo
comprobar como en un ambiente de gravedad nula, el controlador PD multiarticular ofrecía el
mismo resultado o mejor que el controlador PD multiarticular con compensación de gravedad o
el PD multiarticular con compensación precalculada de gravedad.
Para acabar se encuentra esta sexta parte, en la que se analizan las conclusiones que se extraen
y los trabajos futuros que se proponen para ser desarrollados. La conclusión que puede extraerse
es que, a pesar de desarrollar el proyecto en ROS Kinetic, la mayoría de herramientas necesarias
aún se encuentran disponibles. A pesar de ello, los controladores de trayectorias no pudieron
desarrollarse al no poder compilar los paquetes necesarios para instalar las herramientas
necesarias. No obstante, este no fue el único problema que surgió, aunque el resto de ellos sí
pudieron resolverse, no sin antes sudar para lograrlo.
6.1. TRABAJOS FUTUROS 69
Un ejemplo sería subir el proyecto de versión a ROS Melodic. De esta manera podría verse
como incorporar los controladores de trayectorias para poder realizar movimientos más
complejos, siendo estos más similares a los requeridos en órbita.
Otra ampliación posible sería realizar las pruebas en un entorno real controlado. Algunas
universidades cuentan con cámaras que simulan el vacío que sufren los objetos en el espacio.
Podrían construirse maquetas de pequeño tamaño para comprobar los resultados extraídos en
las simulaciones.
También se podría tratar de que la empresa PAL robotics prestase un robot TALOS y unos
manipuladores del robot RREM-C para diseñar el robot real. Sin embargo, esto sería
complicado ya que, a la dificultad de la programación, se añadiría la necesidad de realizar las
conexiones electrónicas necesarias.
Bibliografía
[1] Blibley technologies. “How are robots used in space exploration?” 2019.
[Link]
[3] W. Khalil and E. Dombre. “Modeling, identification & control of robots”. Hermes Penton Ldt.
2002.
[4] Karel Čapek. “RUR. Robots Universales Rossum: obra en tres actos y un epílogo”. Barcelona:
Círculo de lectores. 2004.
[5] Conte Galván R.. “Robots espaciales”. Revista “Hacia el Espacio”, n° 007, 2013.
[Link]
[6] Raju P., Sikla S., Garg A. and Pandey M.. “A brief review of recent advancement in humanoid
robotics research”. Mukt Shabd Journal, Volume IX, Issue VI, 2020.
[7] Howell, E. “Real-life replicants: 6 humanoid robots used for space exploration”. [Link],
2017. [Link]
71
BIBLIOGRAFÍA
72 73
BIBLIOGRAFÍA
[10] García, G. J. “Apuntes de la asignatura Robótica - materiales extra para prácticas – tema 1”.
Máster universitario en automática y robótica de la Universidad de Alicante. 2020.
[12] García, G. J. “Apuntes de la asignatura Robótica - materiales extra para prácticas – tema 4”.
Máster universitario en automática y robótica de la Universidad de Alicante. 2020.
75
76 LISTA DE ACRÓNIMOS Y ABREVIATURAS
LIDAR LIght Detection And Ranging / Laser Imaging Detection And Ranging
P Proportional
PR Personal Robots