Ubuntu20.04 installe ROS1 et ROS2 en même temps

Ubuntu20.04 installe ROS1 et ROS2 en même temps


Chaque version de la version du système Ubuntu a une version ROS correspondante, et chaque version de ROS a sa version correspondante d'Ubuntu, qui ne peut pas être installée par hasard. ubuntu20.04 correspond aux versions ROS1 noetic et ROS2 foxy.

1. Changer de source

Anciennes règles, changez d'abord la source

1.1 Par mise à jour logicielle

ouvrir la mise à jour du logiciel

insérez la description de l'image ici

Sélectionnez Télécharger depuis -> Autre, recherchez Chine et sélectionnez la source. Fermez l'interface et attendez la source de mise à jour automatique

1.2 En modifiant le fichier source (recommandé)

(1) Fichiers sources de sauvegarde :

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

(2) Ouvrez le fichier :

sudo gedit /etc/apt/sources.list

(3) Changez la source : recommandez la source de Tsinghua ou Alibaba Cloud (essayez en fonction de votre propre réseau, choisissez le plus rapide) : adresse source de Tsinghua , sélectionnez la version d'Ubuntu (vérifiez la commande de version d'ubuntu : cat /etc/issue) et copiez le contenu de la source , écrasant sources.listle contenu du fichier d'origine :

insérez la description de l'image ici

(4) Après avoir changé la source, mettez à jour :

sudo apt-obtenir la mise à jour

2. Installez ROS1 (noétique)

Référence Présentez en détail comment installer le système ROS dans ubuntu20.04. L'installation est terminée très rapidement (la dernière version du didacticiel) . L'explication est très détaillée. De nombreuses erreurs lors du processus d'installation reçoivent des solutions. Voici le général processus
(1) Ajouter une source de logiciel 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) Ajouter une clé

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

(3) Mettre à jour la source du logiciel

sudo apt update

Remplacez ce qui précède par le problème :

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

(4) Installer ROS noetic

sudo apt install ros-noetic-desktop-full

(5) Initialiser rosdep

sudo rosdep init
  • Si la commande est introuvable :
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

Ajoutez le contenu suivant au fichier hosts ouvert, puis enregistrez et quittez

199.232.28.133 raw.githubusercontent.com

S'il apparaît ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Le site Web est peut-être en panne.

Visitez https://www.ipaddress.com/ pour interroger l'adresse IP de raw.githubusercontent.com

insérez la description de l'image ici

Remplacez 199.232.28.133 raw.githubusercontent.com par :

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

Alors

rosdep update

(6) Installer rosinstall

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

(7) Environnement de configuration

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

(8) Vérification

roscore
  • Command ‘roscore’ not found, but can be installed with:sudo apt install python3-roslaunch, suivez les invites pour installer :
sudo apt install python3-roslaunch
  • Resorce not found: roslaunchIndique que l'installation précédente n'est pas terminée, continuez l'installation
sudo apt install ros-noetic-desktop-full

(9) La petite tortue teste ROS :

roecore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

3. Installez ROS2 (rusé)

Reportez-vous à ubuntu20.04 pour installer ros2 et coexister avec ros1
(1) Définissez l'encodage UTF-8

Entrée de terminal : localevérifiez si UTF-8 est pris en charge

insérez la description de l'image ici

Si non pris en charge :

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) Vérifiez si le référentiel de l'univers Ubuntu est activé

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

Notez que l'utilisation de 1.2 pour changer la source a été activée par défaut, mais elle n'est pas cochée sur l'interface, ne vous inquiétez pas, si elle n'est pas activée, il n'y aura pas de sortie, alors :

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

(3) Définir la clé

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 une erreur est signalée ailed to connect to raw.githubusercontent.com port 443 after 13 ms: 拒绝连接, reportez-vous à la méthode de la section précédente /etc/hostspour ajouter l'adresse IP de raw.githubusercontent.com au fichier ;
  • S'il n'y a pas de réponse, attendez encore un peu

(4) Mise en place

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

(5) Environnement de configuration

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

(6) Test de démonstration officiel

ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener

insérez la description de l'image ici
(7) La petite tortue n'a plus besoin de maître

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

insérez la description de l'image ici

Environnement de configuration mixte Four, ROS1 et ROS2

Reportez-vous à Ubuntu 20.04 ROS1 et ROS2 pour installer et utiliser en même temps
Si une seule version de ROS est installée, cette section n'a pas besoin d'être effectuée, sinon une configuration mixte de ROS1 et ROS2 est requise.

sudo gedit ~/.bashrc

Ouvrez le fichier .bashrc et supprimez le contenu de configuration dans les deux sections précédentes :

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

Ajoutez ensuite le code suivant à la fin pour terminer le paramétrage de la variable d'environnement. Pendant l'utilisation, vous pouvez changer la version de ros selon vos besoins. N'oubliez pas que vous devez appuyer sur "1" ou "2" pour sélectionner la version de ros chaque fois que vous ouvrez un nouvelle borne.

insérez la description de l'image ici

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

insérez la description de l'image ici

Cinq, commandes communes ROS et leurs différences

5.1 Commandes communes

(1) compiler

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

(2) Configuration de l'espace de travail bashrc

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

(3) commande terminale

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 Autres commandes (mes notes)

(1) Modifiez la fréquence de publication et la bande passante du sujet via 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

Comment écrire roslaunch :

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

(2) enregistrement et lecture du sac

# 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 pour afficher les informations détaillées des données lidar (telles que frame_id)
Utilisez rostopic echo / lidar topic name pour afficher les données renvoyées par le lidar, et rien ne peut être affiché sauf le nombre. Si vous souhaitez afficher le frame_id et d'autres informations des données lidar, ajoutez simplement le paramètre –noarr pour exclure les informations de tableau dans les données de rubrique.

rostopic echo --noarr /velodyne_points

(4) Visualisez le sac via la commande rqt_bag

rqt_bag <bagname>

Je suppose que tu aimes

Origine blog.csdn.net/zardforever123/article/details/130510145
conseillé
Classement