- Prerrequisitos
- Instalación de UChile ROS Framework
- Configuraciones
- Compilación de workspaces
- Configuración del simulador Gazebo
AVISO: Evitar copiar multiples líneas a la terminal, pues algunas podrían considerarse como argumento de las anteriores. Esto sucede, por ejemplo, cuando un script requiere input del usuario (contraseñas, aceptar/negar cosas...).
Esta guía ha sido probada en Ubuntu 16.04.
AVISO: Esta sección se puede ignorar si es que ROS ya está instalado en la máquina. En tal caso, asegurate de tener instalado rosdep: sudo apt-get install python-{rosinstall,pip,rosdep}
.
Ejecutar en terminal (Ctrl + Alt + T)
# ROS Keys
# Evite instalar la versión full (sudo apt-get install ros-kinetic-desktop-full) o alguna de las otras variantes.
# ver: http://wiki.ros.org/kinetic/Installation/Ubuntu
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo -E apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# actualizar base de software
sudo apt-get update
# instalar ROS base
sudo apt-get install ros-kinetic-ros-base curl openssl pv python-rosinstall python-pip python-rosdep
# inicializar rosdep
sudo rosdep init # ignorar si es que falla con "ERROR: default sources list file already exists:..."
rosdep update # NO EJECUTAR CON SUDO!
Ejecutar en terminal (Ctrl + Alt + T)
sudo apt-get update
sudo apt-get install git python-flake8 shellcheck libxml2-utils python-yaml cppcheck curl openssl pv python-rosinstall python-pip openssh-client python-termcolor openssh-server python-rosdep
Procurar ejecutar las veces que sea necesario, pues puede fallar el clone de algún repositorio, por ejemplo, al introducir mal la clave.
Observacion: Actualmente, hay dos repositorios que son privados y por lo tanto, pediran usuario y contraseña de GitHub al intentar descargarlos. Revisar la salida del instalador para ver que todo funcionó OK; También puedes revisar manualmente que uchile_perception
y uchile_high
se hayan descargado correctamente!. En caso de que haya algún error, ejecutar nuevamente la línea del instalador.
Ejecutar en terminal (Ctrl + Alt + T)
# descargar uch_system
git clone https://github.com/uchile-robotics/uchile_system.git ~/tmp_repo
# Obtener repositorios y crear workspaces
bash "$HOME"/tmp_repo/install/ws_installer.bash
# limpiar
rm -rf ~/tmp_repo
Antes de ejecutar el siguiente paso, es necesario que revises el archivo de configuración correspondiente a tu consola .bashrc
o .zshrc
, para eliminar toda línea relacionada con ROS. Por ejemplo, debes comentar toda línea de la forma source /opt/ros/kinetic/setup.bash
o source <mi-workspace-ros>.bash
.
Hint: .bashrc
y .zshrc
se encuentran ocultos en "$HOME"
. Puedes mostrar/ocultar éstos archivos utilizando Ctrl + H.
En cada caso puedes copiar el bloque de código directo en la terminal (Ctrl + Alt + T).
cat >> ~/.bashrc <<"EOF"
## -----------------------------------------------
## UCHILE ROS FRAMEWORK Settings
# workspace location
export UCHILE_WS="$HOME"/uchile_ws
# settings file location
export UCHILE_SHELL_CFG="$HOME"/uchile.sh
# UChile Robotics Framework for BASH
# comment this line to prevent sourcing the framework
. "$UCHILE_WS"/system/setup.bash
## -----------------------------------------------
EOF
cat >> ~/.zshrc <<"EOF"
## -----------------------------------------------
## UCHILE ROS FRAMEWORK Settings
# workspace location
export UCHILE_WS="$HOME"/uchile_ws
# settings file location
export UCHILE_SHELL_CFG="$HOME"/uchile.sh
# UChile Robotics Framework for ZSH
# comment this line to prevent sourcing the framework
. "$UCHILE_WS"/system/setup.zsh
## -----------------------------------------------
EOF
Para continuar la instalación y que las configuraciones anteriores surtan efecto, es necesario abrir un nuevo terminal (Ctrl + Alt + T). De lo contrario, no existirán las variables de entorno ni funciones necesarias, como UCHILE_SYSTEM
, bgit
o cdb
.
En el archivo ~/uchile.sh
se deben pueden configurar aspectos del framework como el robot a utilizar y opciones de red. Pon atención en las variables especificadas en tal archivo, pues deberás modificarlas constantemente.
Al menos, debieras configurar la variable de entorno UCHILE_ROBOT
, que por defecto es bender
. Ésta permite seleccionar que overlay de workspaces ROS se utilizarán. Todos los overlays diponibles se encuentran en el directorio $UCHILE_WS/ros/
. Según el valor escogido, el workspace ROS linkeado proveerá distintos packages, y por lo tanto, requerirá distintos pasos de instalación.
Estas configuraciones son opcionales, pero se recomiendan para facilitar el desarrollo. Leer con atención y sólo habilitar las realmente deseadas.
Ejecutar en terminal (Ctrl + Alt + T)
# Configuraciones globales de git.
# 1.- colores y aliases para comandos git.
# 2.- configurar nombre y mail para commits. (ojalá mail matchee con el de github!)
# 3.- configurar caché para contraseña git a 1 día
# 4.- por defecto sólo pushear la rama actual. Evita subir commits que pueden no estar listos.
cp -bfS.bkp "$UCHILE_SYSTEM"/templates/default.gitconfig ~/.gitconfig
git config --global user.name 'Replace Your Name Here'
git config --global user.email '[email protected]'
git config --global credential.helper 'cache --timeout=86400'
git config --global push.default simple
# Promt de bash muestra rama actual y estado del repositorio git.
cp -bfS.bkp "$UCHILE_SYSTEM"/templates/bash_aliases ~/.bash_aliases
# Variable utilizada por "rosed" y algunos utilitarios.
# Poner el nombre del ejecutable deseado. Ejemplo: "subl" para sublime.
echo 'export EDITOR="gedit"' >> ~/.bashrc
# En orden:
# 1.- Agregar opción "abrir terminal" al usar click derecho en una carpeta
# 2.- Shell más moderno. Permite subdivisiones en cada pestaña.
# 3.- Utilitario gráfico para git. Llamar usando "gitk" en la consola.
sudo apt-get update && sudo apt-get install terminator gitk
# Trabajar en rama "develop" de cada repositorio
# - si tras correr el comando algún repositorio no está en tal rama,
# debes cambiarlo manualmente.
# ej:
# > cdb soft
# > git checkout develop
bgit checkout develop
Cuidado con las siguientes configuraciones!. Pueden ser útiles, pero no útiles para todos!.
# Herramienta meld para git diffs. (OBS!, puede ser molesta para algunos!)
# - permite ver diffs más bellos y hermosos.
sudo apt-get install meld
cp "$UCHILE_SYSTEM"/templates/gitconfig_meld_launcher.py ~/.gitconfig_meld_launcher.py
git config --global diff.external '~/.gitconfig_meld_launcher.py'
En esta fase es importante el orden de compilación.
El sistema se divide en 5 workspaces, que en orden son: ROS, forks_ws, base_ws, soft_ws y high_ws.
Los pasos a seguir dependerán del robot a utilizar, según la variable $UCHILE_ROBOT
. En caso de querer utilizar ambos robots, seguir todas las instrucciones. Si sólo se instalará para uno de los robots, seguir las instrucciones correspondientes.
Hint: Algunos de los scripts de instalación install.sh
pueden mostrar errores en caso de que el hardware apropiado no esté conectado al ordenador. No te alarmes, puedes repetir la instalación de ese package en particular cuando desees ocupar el hardware real.
Obs: A veces ocurren problemas con la generación de archivos para dynamic reconfigure durante la compilación (al usar catkin_make
). Revisa la sección correspondiente de la página throubleshooting.
Ejecutar lo siguiente en un nuevo terminal (Ctrl + Alt + T)
# Actualizar base de datos del repositorio de software.
sudo apt-get update
# instalar dependencias
cdb forks && rosdep install --from-paths . --ignore-src --rosdistro=kinetic -y
# Compilar
cdb forks && cd .. && catkin_make
# instalar dependencias
cdb base && rosdep install --from-paths . --ignore-src --rosdistro=kinetic -y
# install bender_description
cdb bender_description && bash install/install.sh
cdb bender_description && bash scripts/update_models.sh
# install bender_base
cdb bender_base && bash install/install.sh
# install bender_head
cdb bender_head && bash install/install.sh
# install bender_joy
cdb bender_joy && bash install/install.sh
# install bender_tts
cdb bender_tts && bash install/install.sh
# install bender_fieldbus
cdb bender_fieldbus && bash install/install.sh
# install bender_sensors
cdb bender_sensors && bash install/install.sh
# install uchile_turning_base
cdb bender_turning_base && bash install/install.sh
Nada que instalar aún!
cdb base && cd .. && catkin_make
# instalar dependencias
cdb soft && rosdep install --from-paths . --ignore-src --rosdistro=kinetic -y
# instalar dependencias de speech
cdb uchile_speech_pocketsphinx && bash install/install.sh
sudo apt-get install python-alsaaudio
# instalar dependencias de bender_arm_planning
cdb bender_arm_planning && bash install/install.sh
# instalar dependencias de bender_perception
cdb uchile_perception_utils && bash install/install_nite.sh
# instalar dependencias para deep learning
# [AVISO] puede tomar un par de horas !!
# [WARNING] Sólo testeado en consola bash. Puede haber problemas con pip. Ver: https://bitbucket.org/uchile-robotics-die/bender_system/issues/9/importerror-no-module-named
# [NOTA] No instalar no afecta en compilar bender
# cdb uchile_perception_utils && bash install/install.sh
Nada que instalar.
cdb soft && cd .. && catkin_make
# instalar dependencias
cdb high && rosdep install --from-paths . --ignore-src --rosdistro=kinetic -y
sudo apt-get install python-aiml
# Compilar
cdb high && cd .. && catkin_make
Para configurar una versión adecuada del simulador Gazebo debes seguir la documentación del package bender_gazebo.