ROS vom Einstieg bis zum Experten (1) ROS-Einführung, Installation und allgemeine Probleme

Machen Sie es sich zur Gewohnheit, gemeinsam zu schreiben! Dies ist der 12. Tag meiner Teilnahme an der „Nuggets Daily New Plan · April Update Challenge“, klicken Sie hier, um die Details der Veranstaltung anzuzeigen .


1 Einführung in ROS

1.1 Was ist ROS?

ROS (Robot Operating System) ist ein Open-Source-Meta-Betriebssystem für Roboter. Es bietet die Dienste, die von einem Betriebssystem erwartet werden, einschließlich

  • Hardware-Abstraktion
  • Low-Level-Gerätesteuerung
  • Implementierung gemeinsamer Funktionen
  • Nachrichtenübermittlung zwischen Prozessen
  • Paketverwaltung
  • Tools und Bibliotheksfunktionen, die zum Abrufen, Kompilieren, Schreiben und Ausführen von Code auf mehreren Computern erforderlich sind


Bildbeschreibung hier einfügen

1.2 Warum ROS verwenden?

Das Hauptziel von ROS ist die Unterstützung der Codewiederverwendung für die Robotikforschung und -entwicklung . Einfach gesagt, vermeiden Sie es, das Rad neu zu erfinden.

Bildbeschreibung hier einfügen

Warum kann ROS die Wiederverwendungsrate von Code verbessern?

Da ROS das Konzept von Paket und Funktionspaket , das Konzept von Analogie und C++/oder pythonBibliothek hat, lassen sich diese Pakete einfach teilen und verteilen, und ROS unterstützt auch eine Art Föderationssystem ähnlich dem Code-Repository, das auch die Projektzusammenarbeit realisieren kann und freigeben. Dieses Design kann die Entwicklung und Implementierung eines Projekts vollständig modular gestalten, und gleichzeitig können alle Projekte durch die grundlegenden Werkzeuge von ROS integriert werden.

Bildbeschreibung hier einfügen

Darüber hinaus hat ROS folgende Vorteile:

  • Schlank: ROS wurde so konzipiert, dass es so schlank wie möglich ist und sich leicht in andere Robotik-Software-Frameworks integrieren lässt
  • Sprachunabhängigkeit: Um mehr Anwendungsentwicklung und Transplantation zu unterstützen, ist ROS als Rahmenstruktur mit schwacher Sprachkorrelation konzipiert. Eine neutrale Definitionssprache beschreibt die Nachrichtenschnittstelle zwischen Modulen, Javaund C++ROS Pythonkann entwickelt werden.
  • Große Anwendungen: ROS eignet sich für große Laufzeitsysteme und große Entwicklungspipelines
  • 丰富的组件化工具包: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

rosdepEs ist ROSein Befehlszeilentool zum Installieren ROSvon Systemabhängigkeiten. Bei der Installation des ROSSystems wird es rosdepautomatisch installiert, sodass es nicht separat installiert werden muss, sondern initialisiert und aktualisiert werden muss.

sudo rosdep init
rosdep update
复制代码

Wenn ROS zum ersten Mal in China installiert wird, tritt in 90 % der Fälle bei der Initialisierung von rosdep ein Timeout-Fehler auf. Die neueste Lösung ist hier aufgezeichnet.

Gehen Sie zum Download von rosdistro.gitrosdistro-master.zip und legen Sie ihn beispielsweise in das Projektverzeichnis

~/Project/ROS
复制代码

Ändern 20-default.list, ausführen:

sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
复制代码

Ersetzen Sie alle darin verlinkten Inhalte raw.githubusercontent.comdurch den Link zur lokalen Datei, und 20-default.lisder Inhalt des letzten t lautet:

# 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
复制代码

Ändern Sie dann die folgenden Dateien und raw.githubusercontent.comersetzen Sie auch den gesamten verknüpften Inhalt durch Links zu lokalen Dateien. Jede Datei hat eine Stelle, die geändert werden muss.

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 Test-ROS

Klemmeneingang

roscore
复制代码

Die folgenden Informationen werden angezeigt, um den ROS-Master-Manager erfolgreich auszuführen

在这里插入图片描述

Dann machen Sie den klassischen Schildkrötentest , geben Sie ein:

rosrun turtlesim turtlesim_node
复制代码

Der Turtle-Emulator erscheint

在这里插入图片描述

Eingabe

rosrun turtlesim turtle_teleop_key
复制代码

Fokussieren Sie die Maus auf das dritte Terminalfenster und verwenden Sie dann die Pfeiltasten auf der Tastatur, um die Schildkröte so zu steuern, dass sie sich bewegt und eine Spur auf dem Bildschirm hinterlässt

在这里插入图片描述

Bisher ist die grundlegende Installation und Konfiguration von ROS erfolgreich.

4 Häufig gestellte Fragen

  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

    ==Lösung==: Beenden Sie den vorhandenen ros-Knotenmanager

    killall -9 roscore && killall -9 rosmaster
    复制代码
  2. E: Unable to locate package ros-kinetic-desktop-full

    ==Lösung==: Unterschiedliche rosDistributionen entsprechen unterschiedlichen ubuntuVersionen: Ubuntu16.04Entsprechen ros-kinetic, Ubuntu18.04Entsprechen ros-melodic, Ubuntu20.04Entsprechen ros-noetic.在这里插入图片描述

  3. rosdep: command not found

    ==Lösung==: rosKeine automatische Installation während der Installation rosdep, manuelle Installation

    # Ubuntu20.04
    sudo apt-get install python3-rosdep
    # Ubuntu18.04
    sudo apt-get install python-rosdep
    复制代码

Für weitere Inhalte beachten Sie bitte meinen KI-Kanal "AI Technology Club".

Ich denke du magst

Origin juejin.im/post/7085915412730216479
Empfohlen
Rangfolge