Ubuntu20.04 instala ROS1 y ROS2 al mismo tiempo

Ubuntu20.04 instala ROS1 y ROS2 al mismo tiempo

Extracto

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


Ubuntu20.04 instala ROS1 y ROS2 al mismo tiempo

Directorio de artículos


Cada versión del sistema Ubuntu tiene una versión de ROS correspondiente, y cada versión de ROS tiene su versión correspondiente de Ubuntu, que no se puede instalar casualmente.ubuntu20.04 corresponde a las versiones ROS1 noetic y ROS2 foxy ROS2 Galactic. Por supuesto, lo más conveniente es utilizar la instalación con un solo clic de Yuxiang ROS:

wget http://fishros.com/install -O fishros && . fishros

Pero a continuación utilizamos la instalación manual.

1. Cambiar fuente

Reglas antiguas, cambie la fuente primero.

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) Copia de seguridad de archivos fuente:

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, Alibaba Cloud y Huawei Cloud: dirección de origen 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 original del archivo:

inserte la descripción de la imagen aquí

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

sudo apt-obtener actualización

2. Instale ROS1 (noético)

(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) Agregar 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.
sudo 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í

  • sudo gedit /etc/hosts
    #####################
    127.0.0.1localhost
    127.0.1.1iron-virtual-machine
    ###增加下面的解析
    185.199.108.133  raw.githubusercontent.com
    
sudo apt update
sudo apt upgrade

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 pequeña tortuga prueba ROS:

roecore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

3. Instale ROS2 (astuto)

(1) Establecer 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 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 de 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 pequeña tortuga ya no necesita un amo

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

inserte la descripción de la imagen aquí

4. Instale ROS2 (Galáctico)

Para depurar Autoware.universe, debe instalar Galactic, si primero necesita desinstalar foxy

sudo apt remove ros-foxy-* && sudo apt autoremove

(1) Pruebe el entorno del lenguaje, que se trató en el capítulo anterior;
(2) Verifique si el repositorio ubuntu Universe está habilitado, que se trató en el capítulo anterior;
(3) Agregue el repositorio apt de ROS 2

sudo apt update && sudo apt install curl
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 $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

(4) Instalación

sudo apt update
sudo apt install ros-galactic-desktop
sudo apt install ros-galactic-ros-base
sudo apt install ros-dev-tools

(5) Entorno de configuración

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

(6) Verificación de la pequeña tortuga

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

Cinco, entorno de configuración mixta ROS1 y ROS2

Consulte Ubuntu 20.04 ROS1 y ROS2 para instalar y usar al mismo tiempo.Si
solo está instalada 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
source /opt/ros/galactic/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 (galáctico es lo mismo que motivo)

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í

Seis, comandos comunes de ROS y sus diferencias

6.1 Comandos comunes

(1) compilar

# ROS1
catkin_make
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
# ROS2
colcon build
# 只编译指定包
colcon build --packages-select  PACKAGE_NAME
# 忽略指定包
colcon build --packages-ignore PACKAGE_NAME
# 遇到编译错误继续编译其他模块
colcon build --continue-on-error

(2) Configuración del espacio de trabajo bashrc

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

(3) comando terminal

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

6.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)
Utilice el nombre del tema rostopic echo / lidar para ver los datos devueltos por el lidar, y no se puede mostrar nada excepto el número. Si desea ver 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) Visualice la bolsa mediante el comando rqt_bag

rqt_bag <bagname>

Supongo que te gusta

Origin blog.csdn.net/feichangyanse/article/details/132687042
Recomendado
Clasificación