Ubuntu20.04 instala ROS1 y ROS2 al mismo tiempo

Ubuntu20.04 instala ROS1 y ROS2 al mismo tiempo


Cada versión de la versión del sistema Ubuntu tiene su correspondiente versión de ROS, y cada versión de ROS tiene su correspondiente versión de Ubuntu, que no se puede instalar casualmente.ubuntu20.04 corresponde a las versiones ROS1 noetic y ROS2 foxy.

1. Cambiar fuente

Reglas antiguas, primero cambia la fuente

1.1 Mediante actualización de software

abrir actualización de software

inserte la descripción de la imagen aquí

Seleccione Descargar desde -> Otro, busque China y seleccione la fuente. Cierre la interfaz y espere la fuente de actualización automática

1.2 Modificando el archivo fuente (recomendado)

(1) Archivos de origen de copia de seguridad:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old

(2) Abra el archivo:

sudo gedit /etc/apt/sources.list

(3) Cambie la fuente: recomiende la fuente de Tsinghua o Alibaba Cloud (pruebe de acuerdo con su propia red, elija la más rápida): dirección de fuente de Tsinghua , seleccione la versión de Ubuntu (verifique el comando de versión de ubuntu:) cat /etc/issuey copie el contenido de la fuente , sobrescribiendo sources.listel contenido del archivo original:

inserte la descripción de la imagen aquí

(4) Después de cambiar la fuente, actualice:

sudo apt-obtener actualización

2. Instalar ROS1 (noético)

Referencia Introduce en detalle cómo instalar el sistema ROS en ubuntu20.04. La instalación se completa súper rápido (la última versión del tutorial) . La explicación es muy detallada. Se dan soluciones a muchos errores durante el proceso de instalación. Aquí está el general proceso
(1) Agregar fuente de software ROS

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

(2) Añadir clave

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

(3) Actualice la fuente del software

sudo apt update

Reemplace lo anterior con el problema:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

(4) Instalar ROS noético

sudo apt install ros-noetic-desktop-full

(5) Inicializar rosdep

sudo rosdep init
  • Si no se encuentra el comando:
sudo apt install python-rosdep2
# 或者
sudo apt install python3-rosdep2
  • ERROR: cannot download default sources list from:https : //raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.
udo gedit /etc/hosts

Agregue el siguiente contenido al archivo de hosts abierto, luego guarde y salga

199.232.28.133 raw.githubusercontent.com

Si aparece ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
El sitio web puede estar inactivo.

Visite https://www.ipaddress.com/ para consultar la dirección IP de raw.githubusercontent.com

inserte la descripción de la imagen aquí

Reemplace 199.232.28.133 raw.githubusercontent.com con:

185.199.108.133 raw.githubusercontent.com

  • ERROR: default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

Entonces

rosdep update

(6) Instalar rosinstall

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool

(7) entorno de configuración

sudo gedit ~/.bashrc
# 末尾添加
source /opt/ros/noetic/setup.bash
# 保存退出
source ~/.bashrc

(8) Verificación

roscore
  • Command ‘roscore’ not found, but can be installed with:sudo apt install python3-roslaunch, siga las instrucciones para instalar:
sudo apt install python3-roslaunch
  • Resorce not found: roslaunchIndica que la instalación anterior no está completa, continúe con la instalación
sudo apt install ros-noetic-desktop-full

(9) La tortuguita prueba ROS:

roecore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

3. Instalar ROS2 (astuto)

Consulte ubuntu20.04 para instalar ros2 y coexistir con ros1
(1) Configure la codificación UTF-8

Entrada de terminal: localecompruebe si se admite UTF-8

inserte la descripción de la imagen aquí

Si no es compatible:

sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8

(2) Compruebe si el repositorio del universo de ubuntu está habilitado

apt-cache policy | grep universe
## 输出应如下:
 500 http://security.ubuntu.com/ubuntu focal-security/universe i386 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=i386
 500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=amd64

Tenga en cuenta que el uso de 1.2 para cambiar la fuente se ha habilitado de forma predeterminada, pero no está marcado en la interfaz, no se preocupe, si no está habilitado, no habrá salida, entonces:

sudo apt install software-properties-common
sudo add-apt-repository universe

(3) Establecer la clave

sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
  • Si se informa un error ailed to connect to raw.githubusercontent.com port 443 after 13 ms: 拒绝连接, consulte el método en la sección anterior /etc/hostspara agregar la IP de raw.githubusercontent.com al archivo;
  • Si no hay respuesta, espera un poco más

(4) Instalación

sudo apt update
# 推荐桌面版,注意安装时间较长,耐心等待
sudo apt install ros-foxy-desktop

(5) entorno de configuración

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

(6) Prueba de demostración oficial

ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener

inserte la descripción de la imagen aquí
(7) La tortuguita ya no necesita amo

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

inserte la descripción de la imagen aquí

Cuatro, entorno de configuración mixta ROS1 y ROS2

Consulte Ubuntu 20.04 ROS1 y ROS2 para instalar y usar al mismo tiempo
Si solo se instala una versión de ROS, no es necesario realizar esta sección, de lo contrario, se requiere una configuración mixta de ROS1 y ROS2.

sudo gedit ~/.bashrc

Abra el archivo .bashrc y elimine el contenido de configuración en las dos secciones anteriores:

source /opt/ros/noetic/setup.bash
source /opt/ros/foxy/setup.bash

Luego agregue el siguiente código al final para completar la configuración de la variable de entorno. Durante el uso, puede cambiar la versión de ros según sea necesario. Recuerde que debe presionar "1" o "2" para seleccionar la versión de ros cada vez que abra un nueva terminal

inserte la descripción de la imagen aquí

echo "ros noetic(1) or ros2 foxy(2)?"
read edition
if [ "$edition" -eq "1" ];then
  source /opt/ros/noetic/setup.bash
else
  source /opt/ros/foxy/setup.bash
fi

inserte la descripción de la imagen aquí

Cinco, comandos comunes de ROS y sus diferencias

5.1 Comandos comunes

(1) compilar

# ROS1
catkin_make
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
# ROS2
colcon build
colcon build --packages-select  PACKAGE_NAME

(2) Configuración del espacio de trabajo bashrc

source ~/catkin_ws/devel/setup.bash
source ~/colcon_ws/install/setup.bash

(3) terminal de comando

rosrun --> ros2 run
rosnode --> ros2 node
roslaunch --> ros2 launch
rosparam --> ros2 param
rospkg --> ros2 pkg
rosservice --> ros2 service 
rossrv --> ros2 srv
rostopic --> ros2 topic
rosaction --> ros2 action

5.2 Otros comandos (mis notas)

(1) Cambie la frecuencia de publicación y el ancho de banda del tema a través de topic_tools/throttle

# 参数解释:intopic: 订阅的输入话题、msgs_per_sec: 每秒允许通过的最大messages数、outtopic: 发布的输出话题 (default: intopic_throttle) 
throttle messages <intopic> <msgs_per_sec> [outtopic]
# 举例,将原来200Hz的IMU数据降低至100
rosrun topic_tools throttle messages /imu_raw 100 /imu_raw_low_freq

Cómo escribir roslaunch:

<node pkg="topic_tools" type="throttle" name="camera_throttle" args="messages /imu_raw 100 /imu_raw_low_freq" output="screen" respawn="true"/>    

(2) grabación y reproducción de bolsa

# 1 录制指定话题数据并保存,-O需要大写
rosbag record -O <bagname> <topic_name1> <topic_name2> <topic_name3> ...
# 2 查看数据包中包含的话题名称,话题数量,话题消息类型等信息
rosbag info <bagname>
# 3 bag播放
rosbag play <bagname>  # 回放指定bag
rosbag play * # 回放当前目录下所有bag
rosbag play -s n <bagname> # 从指定时间(n = 指定时间s)开始回放bag
rosbag play -s n -u m <bagname> # 从指定时间(n = 开始时间s)开始播放指定时间(m = 指定播放时间s)的bag
rosbag play -r n <bagname> # 按指定倍率(n = 倍率)回放bag
rosbag play <topic_name1>:=<topic_name2> # 某个话题重命名播放
# 4 回放不成功,提示 reindex ,则:
rosbag reindex  <bagname>

(3) rostopic echo --noarr para ver la información detallada de los datos lidar (como frame_id)
Use rostopic echo / lidar topic name para ver los datos devueltos por el lidar, y no se puede mostrar nada excepto el número. Si desea ver el frame_id y otra información de los datos LIDAR, simplemente agregue el parámetro –noarr para excluir la información de la matriz en los datos del tema.

rostopic echo --noarr /velodyne_points

(4) Visualiza la bolsa a través del comando rqt_bag

rqt_bag <bagname>

Supongo que te gusta

Origin blog.csdn.net/zardforever123/article/details/130510145
Recomendado
Clasificación