La versión Ubuntu18.04 instala ROS y cómo lidiar con los errores

Los artículos anteriores son algunas aplicaciones basadas en el ROS instalado, aquí instalamos el sistema operativo del robot ROS desde cero.
Robot Operating System (Robot Operating System, ROS) es un marco para el desarrollo de software de robots, que contiene una serie de herramientas, bibliotecas y convenciones , cuyo propósito es simplificar la construcción de comportamientos de robots complejos y estables entre una gran cantidad de diferentes. plataformas de robots
ROS sigue la filosofía de desarrollo de software de Unix, por lo que aquellos con conocimientos previos de Unix se sentirán muy familiarizados y comenzarán rápidamente. Una característica notable de ROS es que se puede desarrollar en múltiples lenguajes, incluidos C ++, Python, Lisp, Java, Javascript, Matlab, Ruby, R, etc. Ingrese al campo de la robótica.
Más importante aún, ROS es de código abierto y gratuito, publicado bajo el protocolo BSD, por lo que está disponible comercialmente sin autorización, y debido a que el acoplamiento entre los módulos ROS es muy bajo, los módulos desarrollados por ellos mismos pueden obtener licencias detalladas autorizadas.
Aquí presentaré cómo instalar ROS en Ubuntu (una distribución de Linux popular y relativamente amigable). Mi versión es 18.04. Me enfocaré en el número de versión aquí porque la siguiente instalación está relacionada con la versión de su sistema.

1. Actualice la fuente del software

El primero es agregar la fuente del software al archivo ros-latest.list , para que el sistema operativo pueda saber qué sitio descargar:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

Podemos ver el archivo, el contenido de origen se ha escrito en él

cat /etc/apt/sources.list.d/ros-latest.list
deb http://packages.ros.org/ros/ubuntu trusty main

Cabe señalar aquí que si desea instalar, no se apresure a ingresar el comando anterior e instálelo después de leer el texto completo, ya que la instalación de ROS está relacionada con la versión de su sistema Ubuntu .

2. Establecer la clave

wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

La clave aquí, en la instalación posterior, la segunda línea de comando puede ignorarla, no debería ser necesaria

3. Instale la biblioteca de desarrollo de robots

Instale la suite de escritorio completa, incluidas las bibliotecas y las herramientas necesarias para el desarrollo de robots

sudo apt-get update
sudo apt-get install ros-indigo-desktop-full python-rosinstall

Si ocurre un error como el siguiente:

Leyendo listas de paquetes... Listo
Creando árbol de dependencias       
Leyendo información de estado... Listo
No se pudieron instalar algunos paquetes. Esto puede significar que ha
solicitado una situación imposible o que, si está utilizando la
distribución inestable, algunos paquetes necesarios aún no se han creado
o se han movido de Incoming.
La siguiente información puede ayudar a resolver la situación:

Los siguientes paquetes tienen dependencias no satisfechas:
 ros-indigo-desktop-full : Depende: ros-indigo-desktop pero no se va a instalar
                           Depende: ros-indigo-perception pero no se va a instalar
                           Depende: ros-indigo -simulators pero no se va a instalar
                           Depende: ros-indigo-urdf-tutorial pero no se va a instalar
E: No se pueden corregir los problemas, tiene paquetes rotos.

E: Tienes un paquete roto debido a un problema que no se puede corregir. ¡Así que aquí hay realmente una discrepancia de versión!

Mi distribución de Ubuntu es:

uname -v
#161~18.04.1-Ubuntu SMP Fri Feb 10 15:55:22 UTC 2023

Puede ver que es la versión 18.04 , y la versión correspondiente de Ubuntu se enumera aquí:

versión de Ubuntu versión rosa
Ubuntu 20.04 noético
Ubuntu 18.04 melódico
Ubuntu16.04 cinético
Ubuntu 14.04 índigo

Entonces necesitas modificar indigo a melódico , y cuando lo instalas de nuevo, todavía hay problemas:

sudo apt-get install ros-melodic-desktop-full python-rosinstall

报错:E: No se pudo ubicar el paquete ros-melodic-desktop-full

Se encuentra que el motivo del error informado aquí no es solo el problema de la correspondencia de la versión, sino también la elección de la fuente del software .
También es posible usar el comando lsb_release -sc para obtener directamente la versión, que se muestra aquí como bionic

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list'

O para una mejor portabilidad en otros sistemas inciertos, ingrese el siguiente comando (recomendado):

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

Vuelva a ver el contenido del archivo ros-latest.list :

cat /etc/apt/sources.list.d/ros-latest.list
deb http://packages.ros.org/ros/ubuntu bionic main

Luego, después de sudo apt-get update update, no hay problema para instalarlo nuevamente

Después de instalar ros , el directorio ros aparecerá en el directorio opt , marque: ls /opt

nvidia  rosa

Puedes entrar en el ros y echar un vistazo.Es la versión melódica.Qué directorios y archivos hay: cd /opt/ros/melodic

bin     incluir           local_setup.sh setup.sh         compartir
env.sh  lib               local_setup.zsh   _setup_util.py
etc.     local_setup.bash setup.bash setup.zsh

4. Instalar paquetes dependientes

rosdep es una utilidad de administración de dependencias para ROS. Rosdep se puede usar con paquetes ROS y bibliotecas externas. Es una utilidad de línea de comandos para identificar e instalar dependencias para crear o instalar paquetes.

sudo rosdep init

Si hay un error como sudo: rosdep: comando no encontrado , debe instalar el comando de instalación python-rosdep : sudo apt-get install python-rosdep

rosdep update

Si hay un error al que no se puede acceder debido a la red

ERROR: no se puede descargar la lista de fuentes predeterminadas desde:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
El sitio web puede estar inactivo.

Método de procesamiento, cree un nuevo directorio y archivo:

sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list

Luego pegue el siguiente contenido en el archivo 20-default.list :

# listados específicos del sistema operativo primero
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# genérico
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https:/ /raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# las distribuciones más nuevas (Groovy, Hydro, ...) ya no deben aparecer en la lista; en su lugar, se obtienen de rosdistro index.yaml

Si no puede acceder a él en el frente, el mismo sitio en el interior también será inaccesible.Modifique el archivo de hosts :

sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com

Luego rosdep update y, a veces, inténtalo unas cuantas veces más.

5. El terminal recién abierto se inicia automáticamente

Finalmente, agregue setup.bash a ~/.bashrc , para que el terminal se ejecute automáticamente cada vez que lo inicie, para que pueda ejecutar los comandos provistos por ROS en el shell

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

De lo contrario, sería más problemático necesitar source /opt/ros/melodic/setup.bash cada vez que abra la terminal .

6. Comprobar ROS

Después de instalar ROS, ingresamos el comando: roscore para verificar si el administrador de nodos se puede iniciar normalmente, como se muestra en la figura:

Bueno, no hay problema, este roscore puede entenderse como que cada nodo necesita interactuar y debe informarle, porque ROS es un método de organización débilmente acoplado, si se van a transmitir mensajes entre nodos, se necesita roscore para proporcionar información de conexión, es decir es decir, cuando arranca cada nodo, se conectará a roscore y registrará los mensajes publicados y suscritos por el nodo. Cuando aparece un nuevo nodo, roscore le proporcionará otros nodos con el mismo tema de mensaje, para establecer una relación de conexión, si no hay roscore , los nodos no podrán comunicarse.
Además, también vimos ROS_MASTER_URI=http://YAB:11311/ , donde YAB es el nombre de host y 11311 es el puerto predeterminado, por lo que podemos acceder a él a través de esta URI.

Ahora vamos a abrir dos nodos para probar. Los dos nuevos nodos son hablante y oyente . Uno habla y uno escucha, es decir, uno publica y otro se suscribe. Haz un dibujo para mostrar la relación entre ellos de la siguiente manera:

Cabe señalar que los nodos en la figura llaman periódicamente a los servicios proporcionados por roscore para encontrar otros nodos. Aquí, el hablante y el oyente llaman a roscore periódicamente , y la comunicación entre estos dos nodos se completa directamente. Roscore es solo una conexión transitoria.

Ahora abra una terminal por separado y ejecute el nodo:

rosrun rospy_tutorials talker
rosrun rospy_tutorials listener

Como se muestra en la imagen:

Este oyente siempre escuchará los mensajes publicados por el hablante . Si el nodo hablante finaliza con Ctrl+C , el nodo oyente también dejará de mostrar información y seguirá estando en estado de escucha.

Supongo que te gusta

Origin blog.csdn.net/weixin_41896770/article/details/132242088
Recomendado
Clasificación