Introducción al tutorial de ROS en español

En esta entrada vamos a introducir nuestra «rueda de aprendizaje», que es nuestra hoja de ruta en este tutorial sobre ROS en español. Comentaremos cuál es nuestro entorno de desarrollo y porqué nos decantamos por C++ como lenguaje preferido en ROS.
Diagrama de aprendizaje

A lo largo de este blog, vamos a utilizar lo que hemos llamado “diagrama de aprendizaje”. Este diagrama contiene los conceptos más importantes y fundamentales para entender el funcionamiento de cualquier aplicación robótica creada con ROS.
En este diagrama, los conceptos de la derecha hacen referencia a los conocimientos básicos, y la parte de la izquierda son conceptos que hacen referencia a las herramientas que nos brinda ROS para analizar, visualizar y simular nuestro robot.
Lo correcto sería enseñar primero los conceptos básicos y luego explicar las herramientas. Pero resulta más interesante hacer uso de estas herramientas mientras se explican los conocimientos básicos. Por lo que veremos que en ciertas entradas donde se intenta explicar aspectos básicos se introducen también las herramientas que nos brinda ROS.
Los artículos del blog harán referencia a cada concepto básico, siendo posible que varios artículos hablen de un mismo concepto, ya que el objetivo de este blog, es que el lector adquiera los conocimientos básicos aunque no sean muchos, pero que lo haga de manera correcta, es decir entendiendo los conceptos para poder posteriormente hacer uso de ellos.
Habrá que entender que al principio la formación será muy teórica, para posteriormente poder introducir ejemplos y aplicaciones más avanzados. Es por ello que estos primeros números serán los que supongan más esfuerzo al lector, por ello no queda otra que animar a este a entender cada concepto con paciencia, sabiendo que así se llegará a momentos en los que la formación sea más atractiva.

Instalación de ROS
No nos metemos, ya que hay cientos de miles de artículos que hablan de este tema, recomendamos usar Linux 16.04 con la distribución ROS Kinetic o Linux 18.04 con la distribución ROS Melodic. En la wiki de ROS viene como instalar ROS paso a paso http://wiki.ros.org/ROS/Installation. En caso de problemas para instalar sigue los pasos uno a uno y no deberías tener problema.
Entorno
Yo recomiendo usar el IDE Visual Studio Code con su extensión dedicada a ROS, https://code.visualstudio.com/download. Este IDE nos va a permitir trabajar con facilidad y claridad.
¿Porqué elegimos C++?
Tanto Python como C++ son lenguajes perfectos para la robótica, especialmente Python por su sencillez, pero cuando lleguemos a paquetes y aplicaciones más avanzadas, estas estarán hechas en C++. Por lo que a mi entender empezar con C++ es la mejor idea, aunque el lenguaje sea menos apetecible que con Python. Si bien es posible realizar paquetes en C++ y otros en Python y combinarlos. Por todo ello cuando nos toque explicar código, nos vamos a centrar en explicar estos conceptos bajo la perspectiva de la programación en C++.
Ruta prevista
En este tutorial de ROS 100% en español, seguiremos el diagrama de aprendizaje que hemos enseñado arriba.
Primero abordaremos el «roscore», el nodo central, así como el del «workspace» una vez entendido explicaremos el concepto de topic y las diferentes formas de usar estos. Así poco a poco abordaremos todos los temas de nuestro «diagrama de aprendizaje» para posteriormente estudiar otras aplicaciones que nos ofrece ROS como, la visión artificial, trayectorias de Descartes, etc…
Así pues en la siguiente entrada nos meteremos ya en faena, con una entrada dedicada al nodo principal de ROS llamado «roscore» y al concepto de «workspace» . Saludos!!!!