introducción
Este artículo presenta el proceso de instalación de ROS Melodic en el sistema operativo Ubuntu18.04 (Bionic), así como los problemas y soluciones encontrados durante el proceso de instalación.
1. Documentos de orientación oficiales
http://wiki.ros.org/melodic/Installation/Ubuntu
1. Preste atención para distinguir el paquete de funciones de ROS (paquetes originales de ROS) en el almacén de ROS y el paquete de funciones de ROS (paquetes de ROS ascendentes) en el almacén de Debian/Ubuntu.
(1) El paquete de funciones de ROS en el repositorio de Debian/Ubuntu está adaptado de los paquetes de ROS originales, pero no todos los paquetes de ROS originales están adaptados.
(2) Cuando los paquetes de funciones ROS de los dos almacenes funcionan juntos, pueden entrar en conflicto entre sí, por lo que se recomienda no mezclar los paquetes de funciones ROS de los dos almacenes.
2. Preste atención a la versión de Ubuntu y la arquitectura de la CPU compatibles con ROS Melodic.
3. ROS Melodic tiene dos métodos de instalación: instalación desde el almacén de software de Ubuntu (recomendado), instalación del código fuente.
Aquí se explica cómo instalar ROS Melodic desde los repositorios de Ubuntu:
2. Proceso de instalación
1.1 Preparativos antes de instalar ROS
1. Primero prepare una computadora (que puede ser una máquina virtual) y la arquitectura de la CPU debe cumplir con los requisitos de ROS Melodic.
2. Instale el sistema operativo Ubuntu 18.04 en la computadora.
3. Abra la configuración del Actualizador de software de Ubuntu (Configuración); asegúrese de que "restringido", "universo" y "multiverso" estén marcados; reemplace el almacén de software de Ubuntu con un almacén doméstico, como: el almacén de Ubuntu de Alibaba Cloud; finalmente haga clic en Haga clic en Cerrar.
1.2 Pasos de instalación
1.2.1 Establecer la fuente de instalación
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
El comando anterior es para establecer la fuente de instalación de ROS en la fuente de instalación oficial de ROS, pero la velocidad de instalación de ROS desde la fuente de instalación oficial puede ser más lenta. Se recomienda establecer la fuente de instalación del paquete de funciones ROS en una fuente espejo doméstica.
http://wiki.ros.org/ROS/Installation/UbuntuMirrors
(1) Imagen especular de la USTC
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
(2) Imagen especular de la Universidad de Tsinghua
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
(3) Imagen especular de la Universidad de Estudios Extranjeros de Beijing
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.bfsu.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
(4) Imagen especular de la Universidad Jiao Tong de Shanghai
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.sjtug.sjtu.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
1.2.2 Establecer la clave
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
1.2.3 Instalar ros-melodic-desktop-full
sudo apt install ros-melodic-desktop-full
El oficial proporciona tres configuraciones de instalación: Desktop-Full , Desktop , ROS-Base , elegimos instalar Desktop-Full aquí .
Si desea instalar un paquete de funciones ROS específico, puede usar el siguiente comando:
sudo apt install ros-melodic-PACKAGE
Nota: El nombre del paquete de funciones de ROS será PACKAGE
reemplazado, pero los guiones bajos (guiones bajos) en el nombre serán reemplazados por guiones. Por ejemplo: slam_gmapping
el comando para instalar el paquete ROS es el siguiente,
sudo apt install ros-melodic-slam-gmapping
El comando para encontrar el paquete de funciones de ROS es:
apt search ros-melodic
1.2.4 Configuración de variables de entorno
Si está utilizando bash,
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
Si está utilizando zsh,
echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
1.2.5 Instalar algunas herramientas y dependencias de ROS
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
1.2.6 Inicializar rosdep
1. Si no se ha instalado python-rosdep, instálelo primero con el siguiente comando.
sudo apt install python-rosdep
rosdep usa una herramienta de línea de comandos escrita en python, también puede descargar el código fuente para la instalación, consulte:
http://wiki.ros.org/rosdep
https://pypi.org/project/rosdep/
https://github.com/ros-infrastructure/rosdep
2. Ejecute el siguiente comando para inicializar rosdep.
sudo rosdep init
rosdep update
Este paso muchas veces genera errores por problemas de red, por ejemplo sudo rosdep init
al ejecutar comandos puede aparecer el error que se muestra en la siguiente figura:
La función del comando sudo rosdep init
es en realidad descargar los archivos del siguiente sitio web 20-default.list
a la carpeta local /etc/ros/rosdep/source.list.d
.
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
A la hora de ejecutar rosdep update
comandos, también suele verse interrumpido por problemas de red.
Los amigos han propuesto muchas soluciones al problema anterior. Personalmente, creo que la mejor solución actual es la siguiente:
1. Desde la siguiente página web, rosdistro
descargue a una carpeta en Ubuntu (por ejemplo: /home/jzy/Downloads
).
https://github.com/ros/rosdistro
Nota: jzy
Este es mi nombre de usuario, debe reemplazarlo por el suyo.
2. Descomprima el rosdistro-master.zip
archivo descargado para obtener la carpeta: rosdistro-master
.
unzip rosdistro-master.zip
3. Edite rosdistro-master/rosdep/sources.list.d
los archivos en la carpeta 20-default.list
.
poner todos los archivos en el
https://raw.githubusercontent.com/ros/rosdistro/master
cambiado a
file:///home/jzy/Downloads/rosdistro-master
20-default.list
4. Copie los archivos modificados en /etc/ros/rosdep/sources.list.d
el directorio.
cp 20-default.list /etc/ros/rosdep/sources.list.d/
Nota: De hecho, esto es sudo rosdep init
lo que hace el comando. También puede omitir este paso y sudo rosdep init
simplemente ejecutar el comando después; de lo contrario, no es necesario ejecutar sudo rosdep init
el comando nuevamente.
Nota: Si el directorio /etc/ros/rosdep/sources.list.d
no existe, créelo primero.
5. Modificar 4 archivos: __init__.py
, gbpdistro_support.py
, rep3.py
, sources_list.py
.
El método de modificación es poner el archivo en el
https://raw.githubusercontent.com/ros/rosdistro/master
cambiado a
file:///home/jzy/Downloads/rosdistro-master
(1) Modificación __init__.py
, ubicación: /usr/lib/python2.7/dist-packages/rosdistro
.
(2) Modificar gbpdistro_support.py
, rep3.py
, sources_list.py
, ubicación: /usr/lib/python2.7/dist-packages/rosdep2
.
Como se muestra abajo:
(1)__init__.py
(2)gbpdistro_support.py
(3)rep3.py
(4)sources_list.py
6. Ejecute el siguiente comando para inicializar rosdep:
sudo rosdep init
rosdep update
Si cree que el método anterior es problemático, también puede usar la imagen del espejo doméstico:
http://wiki.ros.org/rosdep
https://mirrors.tuna.tsinghua.edu.cn/help/rosdistro/
https://mirrors.bfsu.edu.cn/help/rosdistro/
Combina estos dos pasos:
sudo rosdep init
rosdep update
Reemplace con los siguientes pasos:
# 手动模拟 rosdep init
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
# 为 rosdep update 换源
export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
rosdep update
# 每次 rosdep update 之前,均需要增加该环境变量
# 为了持久化该设定,可以将其写入 .bashrc 中,例如
echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc
Alternativamente, reemplace con los siguientes pasos:
# 手动模拟 rosdep init
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.bfsu.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
# 为 rosdep update 换源
export ROSDISTRO_INDEX_URL=https://mirrors.bfsu.edu.cn/rosdistro/index-v4.yaml
rosdep update
# 每次 rosdep update 之前,均需要增加该环境变量
# 为了持久化该设定,可以将其写入 .bashrc 中,例如
echo 'export ROSDISTRO_INDEX_URL=https://mirrors.bfsu.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc
3. prueba
Una vez completada la instalación, puede comprobar si la instalación se ha realizado correctamente.
1. Abra una terminal y ejecute el siguiente comando para iniciar roscore.
roscore
Si aparece el error que se muestra en la figura a continuación, significa que los permisos de los archivos en la carpeta ~/.ros son problemáticos.
Después de ejecutar el siguiente comando, reinicie roscore.
sudo chmod 777 -R ~/.ros/
2. Abra una nueva terminal e inicie el nodo de simulación de la pequeña tortuga.
rosrun turtlesim turtlesim_node
El ros-melodic-desktop-full previamente instalado debe tener integrado el paquete de funciones turtlesim, si no, puedes instalarlo con el siguiente nombre:
sudo apt install ros-melodic-turtlesim
3. Abra una nueva terminal e inicie el nodo de control del teclado de la pequeña tortuga.
rosrun turtlesim turtle_teleop_key
Usa las flechas del teclado para controlar el movimiento de la tortuguita.