ROS de l'entrée à la maîtrise (1) Introduction, installation et problèmes courants de ROS

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


insérez la description de l'image ici

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.

insérez la description de l'image ici

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 pythonbibliothè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.

insérez la description de l'image ici

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, Javaet C++ROS Pythonpeut être développé.
  • Grandes applications : ROS convient aux grands systèmes d'exécution et aux grands pipelines de développement
  • 丰富的组件化工具包:ROS可采用组件化方式集成一些工具和软件到系统中并作为一个组件直接使用,如RVIZGazebo等,后面都会介绍。
  • 免费且开源:开发者众多,功能包多

2 ROS发展历程

ROS是一个由来已久、贡献者众多的大型软件项目

在ROS诞生之前,很多学者认为,机器人研究需要一个开放式的协作框架,并且已经有不少类似的项目致力于实现这样的框架。

2007年,柳树车库(Willow Garage)提供了大量资源,用于将斯坦福大学机器人项目中的软件系统进行扩展与完善,同时,在无数研究人员的共同努力下,ROS的核心思想和基本软件包逐渐得到完善。

ROS的发行版本指ROS软件包的版本,其与Linux的发行版本(如Ubuntu)的概念类似。推出ROS发行版本的目的在于使开发人员可以使用相对稳定的代码库,直到其准备好将所有内容进行版本升级为止。因此,每个发行版本推出后,ROS开发者通常仅对这一版本的bug进行修复,同时提供少量针对核心软件包的改进。

建议安装的发行版版本: noeticmelodickinetic

3 ROS安装

3.1 基本安装

ROS的安装步骤如下

  1. 设置软件源
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    复制代码
  2. 设置秘钥
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    复制代码
  3. 更新软件源
    sudo apt update
    复制代码
  4. 安装ROS(推荐安装桌面完整版安装——包含ROSrqtrviz、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
    复制代码
  5. 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
    复制代码
  6. 卸载ROS
    sudo apt remove ros-*
    复制代码

3.2 初始化rosdep

rosdepIl s'agit ROSd'un outil de ligne de commande utilisé pour installer ROSles dépendances du système. Lors de l'installation du ROSsystème, il rosdepsera 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.compar le lien vers le fichier local, et 20-default.lisle 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.comremplacez é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

  1. 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
    复制代码
  2. E: Unable to locate package ros-kinetic-desktop-full

    ==Solution== : Différentes rosdistributions correspondent à différentes ubuntuversions : Ubuntu16.04correspond ros-kinetic, Ubuntu18.04correspond ros-melodic, Ubuntu20.04correspond ros-noetic.在这里插入图片描述

  3. rosdep: command not found

    ==Solution== : rosPas d'installation automatique lors de l'installation rosdep, 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"

Je suppose que tu aimes

Origine juejin.im/post/7085915412730216479
conseillé
Classement