Instalando desde código fuente
La instalacion desde código fuente requiere que se descargue y compile el archivo fuente por su cuenta. ROS Kinetic soporta Ubuntu Wily y Xenial. Otras plataformas son factibles de usar con algunoso ajustes. Las plataformas base están definidas en REP 3
Contents
Prerequisitos
Instalando las dependencias bootstrap
Instalar las dependencias bootstrap (Ubuntu):
Estas herramientas entre otras cosas son usadas para facilitar la descarga y manejo de los paquetes ROS y sus dependencias.
Ubuntu o Debian:
$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
Si tienes problemas instalando los paquetes con el comando anterior, asegurate de que agregaste packages.ros.org debian repository a tu lista de repositorios como se describe aquí: kinetic/Installation/Ubuntu#Installation.2BAC8-Ubuntu.2BAC8-Sources.Setup_your_sources.list
Si apt te devuelve que el paquete python-support, asegurate que tienes los repositorios Ubuntu universe habilitados en tu /etc/apt/sources.list
Fedora:
$ sudo yum install python-rosdep python-rosinstall_generator python-wstool python-rosinstall @buildsys-build
Algunos paquetes usados en ROS no esta disponibles en los repositorios RPM de Fedora. La mayoría de los paquetes estan en RPM Fusion. Ver RPM Fusion en su configuracion de linea de comandos.
Cualquier paquete que no se encuentre disponible en RPM Fusion están instanciados en la SDSM&T ROS RPM staging repository, que está disponible desde csc.mcs.sdsmt.edu.
Generico (pip):
Si estas usando un sistema no-Debian y te deberias asegurar que todas las herramientas de compilacion (compiler, CMake, etc.) esten instaladas. Puedes instalar todas las herramientas ROS Python tools via PIP:
$ sudo pip install -U rosdep rosinstall_generator wstool rosinstall
Si hay errores con este paso o con rosdep (mas adelante), la version de tu sistema de pip esta fuera de fecha y deberas utilizar el manejador de sistma de paquetes de tu sistema para acutualizarlos$ sudo pip install --upgrade setuptools
Nota que en muchas plataformas como OSX deberías instalar los paquetes anteriores en un ambiente virtual para que lo explote todo y por eso es genial docker.
Iniciando rosdep
$ sudo rosdep init $ rosdep update
Instalación
Empezar por compilar los paquetes ROS core.
Compilando los paquetes catkin
ROS esta en el proceso de conversión al sistema de compilado de catkin, pero no todos sus paquetes han sido implementados y lamentablemente no se pueden usar los dos sistemas de forma simultánea. Por lo tanto es necesario compilar el paquete ROS core primero y despues el resto de los paquetes.
Creación del espacio de trabajo catkin Workspace
En orden para compilar los paquetes core se necesita un espacio de trabajo catkin. Por lo tanto creemos uno mediante:
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
A continuacion necesitaremos inicializar los paquetes core para poder complilarnos. Usaremos el comando wstool para la particular variante que queremos instalar:
Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
$ rosinstall_generator desktop_full --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-full-wet.rosinstall $ wstool init -j8 src kinetic-desktop-full-wet.rosinstall
Desktop Install (recommended): ROS, rqt, rviz, and robot-generic libraries
$ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall $ wstool init -j8 src kinetic-desktop-wet.rosinstall
ROS-Comm: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
$ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall $ wstool init -j8 src kinetic-ros_comm-wet.rosinstall
Esto agregara todos los paquetes catkin o wet en la variante indicada y conducirá las fuentes en el directorio ~/ros_catkin_ws/src. El comando se tomará algunos minutos en descargar todos los paquetes ROS en la carpeta src. La opción -j8 option descarga ocho paquetes en paralelo.
De forma adicional a las tres variantes detalladas con anterioridad, en REP 131 encontrará algunas como robot, perception, etc. Solo cambie la ruta al paquete por la que usted desee, por ejemplo para robot haga:
$ rosinstall_generator robot --rosdistro kinetic --deps --wet-only --tar > kinetic-robot-wet.rosinstall $ wstool init -j8 src kinetic-robot-wet.rosinstall
Si wstool init falla o se interrumple, Usted puede contunuar la descarga por medio de:
wstool update -j 4 -t src
Resolviendo Dependencias
Antes de complilar su espacio de trabajo catkin workspace, Usted deberia asegurarse que tienen todo las dependencias instaladas usando rosdep tool para esto de la siguiente forma:
$ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
Esto buscará todos los paquetes en el directorio src y todas las dependencias de estos. Después instalará todas las dependencias de forma recursiva.
La opción --from-paths indica que queremos instalar las dependencias para un directorio entero de un paquete, en este caso src. La opción --ignore-src le indica a rosdep que no debe tratar de instalar ningún paquete ROS en la carpeta src desde el manejador de paquetes, no lo necesitamos porque lo estamos compilando por nuestra parte. La opción --rosdistro es requerida porque no tenemos un ambiente ros configurado, entonces debemos indicar a rosdep cual es la version de ROS para la cual estamos compilando. Finalmente la opción -y le indica a rosdep que no queremos que nos moleste con preguntas del manejador de paquetes y que le meta para adelante.
Después de un rato y algunos pedidos de contraseña, rosdep terminará instalando las dependencias del sistema y podremos continuar.
Construyendo el espacio de trabajo catkin
Una vez terminada la descargad de los paquetes y resueltas las dependencias estamos listos para construir los paquetes catkin. Usaremos el comando catkin_make_isolated porque en la instalación base hay paquetes planos catkin y cmake; pero posteriormente cuando se desarrolle en su espacio catkin se debe de usar catkin/commands/catkin_make.
Invocar catkin_make_isolated:
$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
Nota: Si se desea seleccionar un tipo de CMake distinto como RelWithDebInfo o Debug, vea http://cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_BUILD_TYPE).
Nota: La locación por defecto de la instalación de catkin installation será ~/ros_catkin_ws/install_isolated, Si se desea instalar en un lugar distinto entonces deberá adicionar el argumento--install-space /opt/ros/kinetic a su sentencia catkin_make_isolated.
Para uso en un robot sin Ubuntu se recomienda instalar el código compilado en /opt/ros/kinetic como lo harían los paquetes de Ubuntu. No haga esto en Ubuntu pues el paquete colisionará con los paquetes de apt-get. Tambien es posible instalar en otros lugares, por ejemplo /usr; pero no es recomendable salvos que sepa realmente lo que hace o tenga una necesidad real de resolver la situación de esa forma.
Por favor vea REP 122: Filesystem Hierarchy Layout un entendimiento mas profundo de como son ubicados los archivos durante la instalación.
Nota: En el comando anterior corrimos la orden catkin_make_isolated desde la carpeta source del espacio catkin porque no había sido instalada aun, una vez instalada puede ser llamada directamente.
Ahora los paquetes deben haberse instalado en ~/ros_catkin_ws/install_isolated o donde lo hayamos especificado con el argumento --install-space. Si revisas el directorio veras que se genero un archivo setup.bash. Para utilizar las cosas instaladas allí simplemente compila ese archivo. Hagamos esto ahora antes de construir el resto de ROS:
$ source ~/ros_catkin_ws/install_isolated/setup.bash
Mantener el Source Checkout
Si queremos mantener nuestro source checkout actualizado, deberemos actualizar de forma periódica nuestro archivo rosinstall, descargar los ultimos archivos fuente y reconstruir nuestro espacio.
Actualización del espacio de trabajo
Para actualizar su espacio de trabajo, primero mueva el archivo rosintall existente para que no se sobreescriba y podamos generar una version actualizada. Para hacer más sencilla la explicación cubriremos la variante *desktop-full*. Para otras variante, actualice el nombre y los argumentos rosinstall_generator de forma apropiada.
$ mv -i kinetic-desktop-full-wet.rosinstall kinetic-desktop-full-wet.rosinstall.old $ rosinstall_generator desktop_full --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-full-wet.rosinstall
Ahora, compare el nuevo archivo rosinstall file con el viejo y vea que paquetes se actualizarán:
$ diff -u kinetic-desktop-full-wet.rosinstall kinetic-desktop-full-wet.rosinstall.old
Si está satisfecho con estos cambios incorpore el nuevo archivo rosinstall en su espacio de trabajo y actualice el mismo:
$ wstool merge -t src kinetic-desktop-full-wet.rosinstall $ wstool update -t src
Reconstruir su espacio de trabajo
Ahora que su espacio de trabajo se encuentra actualizado con los últimos archivos deberá reconstruirlo mediante:
$ ./src/catkin/bin/catkin_make_isolated --install
Si se especifico la opción de --install-space en la inicializacion de su espacion de trabajo, igualmente deberá especificarlo cuando lo recontruya
Una vez que el espacio de trabajo se a reconstituido, hay que compilar nuevamente los archivos de configuración con:
$ source ~/ros_catkin_ws/install_isolated/setup.bash