Ubuntu20.04 instala ROS1 e ROS2 ao mesmo tempo

Ubuntu20.04 instala ROS1 e ROS2 ao mesmo tempo

Excerto

Cada versão do sistema Ubuntu tem uma versão ROS correspondente, e cada versão do ROS tem sua versão correspondente do Ubuntu, que não pode ser instalada casualmente. ubuntu20.04 corresponde às versões ROS1 noetic e ROS2 foxy. _ros1 e ros2 coexistem


Ubuntu20.04 instala ROS1 e ROS2 ao mesmo tempo

Diretório de artigos


Cada versão do sistema Ubuntu tem uma versão ROS correspondente, e cada versão do ROS tem sua versão correspondente do Ubuntu, que não pode ser instalada casualmente. ubuntu20.04 corresponde às versões ROS1 noetic e ROS2 foxy ROS2 Galactic. Claro, o mais conveniente é usar a instalação com um clique do Yuxiang ROS:

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

Mas usaremos a instalação manual a seguir.

1. Alterar fonte

Regras antigas, mude a fonte primeiro

1.1 Através de atualização de software

atualização de software aberta

insira a descrição da imagem aqui

Selecione Baixar de->Outro, encontre a China e selecione a fonte. Feche a interface e aguarde a fonte de atualização automática

1.2 Modificando o arquivo de origem (recomendado)

(1) Arquivos de origem de backup:

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

(2) Abra o arquivo:

sudo gedit /etc/apt/sources.list

(3) Altere a fonte: recomende a fonte de Tsinghua, Alibaba Cloud e Huawei Cloud: endereço de origem Tsinghua , selecione a versão do Ubuntu (verifique o comando da versão do Ubuntu:) cat /etc/issuee copie o conteúdo da fonte, substituindo sources.listo conteúdo original do arquivo:

insira a descrição da imagem aqui

(4) Após alterar a fonte, atualize:

sudo apt-get atualização

2. Instale ROS1 (noético)

(1) Adicionar fonte 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) Adicionar chave

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

(3) Atualize a fonte do software

sudo apt update

Substitua o acima pelo problema:

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

(4) Instale o ROS noético

sudo apt install ros-noetic-desktop-full

(5) Inicializar rosdep

sudo rosdep init
  • Se o comando não for encontrado:
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

Adicione o seguinte conteúdo ao arquivo hosts aberto, salve e saia

199.232.28.133 raw.githubusercontent.com

Se aparecer ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
O site pode estar fora do ar.

Visite https://www.ipaddress.com/ para consultar o endereço IP de raw.githubusercontent.com

insira a descrição da imagem aqui

  • 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

Então

rosdep update

(6) Instale o rosinstall

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

(7) Ambiente de configuração

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

(8) Verificação

roscore
  • Command ‘roscore’ not found, but can be installed with:sudo apt install python3-roslaunch, siga as instruções para instalar:
sudo apt install python3-roslaunch
  • Resorce not found: roslaunchIndica que a instalação anterior não foi concluída, continue a instalação
sudo apt install ros-noetic-desktop-full

(9) A pequena tartaruga testa o ROS:

roecore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

3. Instale ROS2 (raposa)

(1) Definir codificação UTF-8

Entrada do terminal: localeverifique se UTF-8 é compatível

insira a descrição da imagem aqui

Se não for compatível:

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) Verifique se o repositório do 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

Observe que usar 1.2 para alterar a fonte está habilitado por padrão, mas não está marcado na interface, não se preocupe, se não estiver habilitado não haverá saída, então:

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

(3) Defina a chave

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
  • Se um erro for relatado ailed to connect to raw.githubusercontent.com port 443 after 13 ms: 拒绝连接, consulte o método da seção anterior /etc/hostspara adicionar o IP de raw.githubusercontent.com ao arquivo;
  • Se não houver resposta, espere mais um pouco

(4) Instalação

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

(5) Ambiente de configuração

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

(6) Teste de demonstração oficial

ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener

insira a descrição da imagem aqui
(7) A pequena tartaruga não precisa mais de mestre

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

insira a descrição da imagem aqui

4. Instale ROS2 (Galáctico)

Para depurar o Autoware.universe, você deve instalar o Galactic, se precisar desinstalar o foxy primeiro

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

(1) Teste o ambiente de linguagem, que foi tratado no capítulo anterior;
(2) Verifique se o repositório ubuntu Universe está habilitado, o que foi tratado no capítulo anterior; (
3) Adicione o repositório ROS 2 apt

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) Instalação

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

(5) Ambiente de configuração

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

(6) Verificação da pequena tartaruga

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

Cinco, ambiente de configuração mista ROS1 e ROS2

Consulte Ubuntu 20.04 ROS1 e ROS2 para instalar e usar ao mesmo tempo
. Se apenas uma versão do ROS estiver instalada, esta seção não precisa ser executada, caso contrário, uma configuração mista de ROS1 e ROS2 será necessária.

sudo gedit ~/.bashrc

Abra o arquivo .bashrc e exclua o conteúdo de configuração nas duas seções anteriores:

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

Em seguida, adicione o seguinte código no final para concluir a configuração da variável de ambiente. Durante o uso, você pode alternar a versão do ros conforme necessário. Lembre-se de que você precisa pressionar "1" ou "2" para selecionar a versão do ros sempre que abrir um novo terminal (galáctico é o mesmo que razão)

insira a descrição da imagem aqui

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

insira a descrição da imagem aqui

Seis, comandos comuns do ROS e suas diferenças

6.1 Comandos comuns

(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) Configuração do espaço de trabalho bashrc

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

(3) comando de 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 Outros comandos (minhas notas)

(1) Altere a frequência de publicação e largura de banda do tópico por meio 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

Como escrever roslaunch:

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

(2) gravação e reprodução 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 visualizar as informações detalhadas dos dados lidar (como frame_id)
Use rostopic echo / lidar topic name para visualizar os dados retornados pelo lidar, e nada pode ser exibido, exceto o número. Se você deseja visualizar o frame_id e outras informações dos dados lidar, basta adicionar o parâmetro –noarr para excluir as informações do array nos dados do tópico.

rostopic echo --noarr /velodyne_points

(4) Visualize a bolsa através do comando rqt_bag

rqt_bag <bagname>

Acho que você gosta

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