Prenez l'habitude d'écrire ensemble ! C'est le 12ème jour de ma participation au "Nuggets Daily New Plan · April Update Challenge", cliquez pour voir les détails de l'événement .
1 Présentation du ROS
1.1 Qu'est-ce que le ROS ?
ROS (Robot Operating System) est un méta-système d'exploitation open source pour robots. Il fournit les services attendus par un système d'exploitation, y compris
- abstraction matérielle
- Contrôle des appareils de bas niveau
- Implémentation de fonctions communes
- message passant entre les processus
- gestion des colis
- Outils et fonctions de bibliothèque nécessaires pour obtenir, compiler, écrire et exécuter du code sur plusieurs ordinateurs
1.2 Pourquoi utiliser ROS ?
L'objectif principal de ROS est de fournir un support de réutilisation de code pour la recherche et le développement en robotique . Autrement dit, évitez de réinventer la roue.
Pourquoi ROS peut-il améliorer le taux de réutilisation du code ?
Parce que ROS a le concept de package et de package de fonctions , le concept d'analogie et C++
/ ou de python
bibliothèque, ces packages sont faciles à partager et à distribuer, et ROS prend également en charge une sorte de système de fédération similaire au référentiel de code, qui peut également réaliser une collaboration de projet et Libération. Cette conception peut rendre le développement et la mise en œuvre d'un projet complètement modulaire, et en même temps, tous les projets peuvent être intégrés par les outils de base de ROS.
De plus, ROS présente les avantages suivants :
- Lean : ROS est conçu pour être aussi léger que possible et facile à intégrer avec d'autres cadres logiciels de robotique
- Indépendance linguistique : afin de prendre en charge davantage de développement et de transplantation d'applications, ROS est conçu comme une structure de cadre avec une faible corrélation linguistique. Un langage de définition neutre décrit l'interface de message entre les modules,
Java
etC++
ROSPython
peut être développé. - Grandes applications : ROS convient aux grands systèmes d'exécution et aux grands pipelines de développement
- 丰富的组件化工具包:ROS可采用组件化方式集成一些工具和软件到系统中并作为一个组件直接使用,如RVIZ、Gazebo等,后面都会介绍。
- 免费且开源:开发者众多,功能包多
2 ROS发展历程
ROS是一个由来已久、贡献者众多的大型软件项目。
在ROS诞生之前,很多学者认为,机器人研究需要一个开放式的协作框架,并且已经有不少类似的项目致力于实现这样的框架。
2007年,柳树车库(Willow Garage)提供了大量资源,用于将斯坦福大学机器人项目中的软件系统进行扩展与完善,同时,在无数研究人员的共同努力下,ROS的核心思想和基本软件包逐渐得到完善。
ROS的发行版本指ROS软件包的版本,其与Linux的发行版本(如Ubuntu)的概念类似。推出ROS发行版本的目的在于使开发人员可以使用相对稳定的代码库,直到其准备好将所有内容进行版本升级为止。因此,每个发行版本推出后,ROS开发者通常仅对这一版本的bug进行修复,同时提供少量针对核心软件包的改进。
建议安装的发行版版本: noetic
、melodic
或kinetic
3 ROS安装
3.1 基本安装
ROS的安装步骤如下
- 设置软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 复制代码
- 设置秘钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 复制代码
- 更新软件源
sudo apt update 复制代码
- 安装ROS(推荐安装桌面完整版安装——包含
ROS
、rqt
、rviz
、2D/3D仿真器等)# kinetic sudo apt install ros-kinetic-desktop-full # noetic sudo apt install ros-noetic-desktop-full # melodic sudo apt install ros-melodic-desktop-full 复制代码
- ROS环境变量配置
# kinetic echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc # noetic echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc # melodic echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc 复制代码
- 卸载ROS
sudo apt remove ros-* 复制代码
3.2 初始化rosdep
rosdep
Il s'agit ROS
d'un outil de ligne de commande utilisé pour installer ROS
les dépendances du système. Lors de l'installation du ROS
système, il rosdep
sera installé automatiquement, il n'a donc pas besoin d'être installé séparément, mais doit être initialisé et mis à jour.
sudo rosdep init
rosdep update
复制代码
Lorsque ROS est installé pour la première fois en Chine, 90 % du temps lorsque rosdep est initialisé, il rencontre une erreur d'échec de délai d'attente. La dernière solution est enregistrée ici.
Accédez au téléchargement de rosdistro.gitrosdistro-master.zip
et placez-le dans le répertoire du projet, par exemple
~/Project/ROS
复制代码
Modifiez 20-default.list
, exécutez :
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
复制代码
Remplacez tout le contenu qui y est lié raw.githubusercontent.com
par le lien vers le fichier local, et 20-default.lis
le contenu du dernier t est :
# os-specific listings first
yaml file:///home/winter/Project/ROS/rosdistro-master/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/winter/Project/ROS/rosdistro-master/rosdep/base.yaml
yaml file:///home/winter/Project/ROS/rosdistro-master/rosdep/python.yaml
yaml file:///home/winter/Project/ROS/rosdistro-master/rosdep/ruby.yaml
gbpdistro file:///home/winter/Project/ROS/rosdistro-master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.y
复制代码
Modifiez ensuite les fichiers suivants, et raw.githubusercontent.com
remplacez également tout le contenu lié par des liens vers des fichiers locaux, chaque fichier a un endroit qui doit être modifié.
1. /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
FUERTE_GBPDISTRO_URL = 'file:///home/winter/Project/ROS/rosdistro-master/releases/fuerte.yaml'
2. /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
REP3_TARGETS_URL = 'file:///home/winter/Project/ROS/rosdistro-master/releases/targets.yaml'
3. /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
DEFAULT_SOURCES_LIST_URL = 'file:///home/winter/Project/ROS/rosdistro-master/rosdep/sources.list.d/20-default.list'
4. /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
DEFAULT_INDEX_URL = 'file:///home/winter/Project/ROS/rosdistro-master/index-v4.yaml'
复制代码
3.3 Tester le ROS
borne d'entrée
roscore
复制代码
Les informations suivantes s'affichent pour exécuter avec succès le gestionnaire principal ROS
Faites ensuite le test tortue classique , entrez :
rosrun turtlesim turtlesim_node
复制代码
L'émulateur de tortue apparaît
Entrer
rosrun turtlesim turtle_teleop_key
复制代码
Concentrez la souris sur la troisième fenêtre du terminal, puis utilisez les touches fléchées du clavier pour faire fonctionner la tortue pour se déplacer et laisser une trace à l'écran
Jusqu'à présent, l'installation et la configuration de base de ROS sont réussies.
4 questions fréquemment posées
-
roscore cannot run as another roscore/master is already running. Please kill other roscore/master processes before relaunching.The ROS_MASTER_URI is http://ubuntu:11311/The traceback for the exception was written to the log file
==Solution== : Tuer le gestionnaire de nœuds ros existant
killall -9 roscore && killall -9 rosmaster 复制代码
-
E: Unable to locate package ros-kinetic-desktop-full
==Solution== : Différentes
ros
distributions correspondent à différentesubuntu
versions :Ubuntu16.04
correspondros-kinetic
,Ubuntu18.04
correspondros-melodic
,Ubuntu20.04
correspondros-noetic
. -
rosdep: command not found
==Solution== :
ros
Pas d'installation automatique lors de l'installationrosdep
, installation manuelle# Ubuntu20.04 sudo apt-get install python3-rosdep # Ubuntu18.04 sudo apt-get install python-rosdep 复制代码
Pour plus de contenu, veuillez prêter attention à ma chaîne AI "AI Technology Club"