Overzicht van ROS en omgevingsinstellingen

Inleiding

Deze tutorial geeft een beknopt overzicht van ROS (Robot Operating System) en begeleidt u bij de snelle installatie en kennismaking met ROS op de reComputer J3010 Nvidia Jetson Orin Nano. Aan het einde van deze tutorial beschikt u over een werkende ROS-omgeving en kunt u een eenvoudige ROS-demo uitvoeren.

Vereisten

Om deze tutorial te volgen, hebt u de volgende hardware en software nodig:

J3010

Inleiding tot de ontwikkeling van ROS

Wat is ROS?

ROS (Robot Operating System) is een open source raamwerk voor de ontwikkeling van robotsoftware. Het biedt een gestructureerde communicatielaag boven de host-besturingssystemen van een heterogeen rekencluster. ROS is zo dun mogelijk ontworpen en bestaat uit twee delen:

  • ROS-systeem (ROS): Het leidingstelsel dat de communicatie tussen processen afhandelt. Het is de middleware waarmee verschillende delen van de robot met elkaar kunnen communiceren.
  • ROS-pakketten: Bibliotheken en tools die nodig zijn om robottoepassingen te schrijven.

J3010

Waarom ROS?

ROS vereenvoudigt het proces van het creëren van complex en robuust robotgedrag op een groot aantal robotplatforms. Enkele belangrijke doelen en voordelen van het gebruik van ROS zijn:

  • Snelle ontwikkeling: Biedt een standaardplatform dat de ontwikkeling van onderzoek tot productie versnelt.
  • Wereldwijde gemeenschap: Ondersteund door een grote, actieve gemeenschap die bijdraagt aan en verbetert de software.
  • Bewezen staat van dienst: Wijdverbreid in academische en commerciële robotica.
  • Time-to-market: Helpt de productontwikkelingstijd te verkorten met uitgebreide tools en bibliotheken.
  • Veelzijdigheid: Ondersteunt meerdere domeinen en platforms, waaronder embedded systemen.
  • Open source: Vrij te gebruiken, aan te passen en uit te breiden, wat innovatie en samenwerking stimuleert.
  • Commercieel vriendelijk: Verspreid onder permissieve licenties zoals Apache 2.0.

Geschiedenis en ontwikkeling van ROS

De geschiedenis van ROS (Robot Operating System) is verweven met de bredere evolutie van de robotica:

J3010

Vroege ontwikkelingen in de robotica

  • 1959: De reis van de robotica begon met de ontwikkeling van de eerste geautomatiseerde robot.
  • 1972: Verschijning van robots die met hun omgeving kunnen interacteren.
  • 1982: Integratie van robots in computersystemen voor complexe taken.
  • 1988: Vooruitgang in robotautomatisering en besturingssystemen.
  • 2002: Introductie van consumentenrobots zoals de Roomba voor huishoudelijke taken.
  • 2003: Uitbreiding van robotverkenning naar Mars met rovers.
  • 2005: Cruciale rollen in industriële automatisering, geïllustreerd door magazijnrobots.

Geschiedenis en ontwikkeling van ROS

Vroege ontwikkelingen in de robotica

  • 1959: De reis van de robotica begon met de ontwikkeling van de eerste geautomatiseerde robot.
  • 1972: Verschijning van robots die met hun omgeving kunnen interacteren.
  • 1982: Integratie van robots in computersystemen voor complexe taken.
  • 1988: Vooruitgang in robotautomatisering en besturingssystemen.
  • 2002: Introductie van consumentenrobots zoals de Roomba voor huishoudelijke taken.
  • 2003: Uitbreiding van robotverkenning naar Mars met rovers.
  • 2005: Cruciale rollen in industriële automatisering, geïllustreerd door magazijnrobots.

De geboorte van ROS

  • 2007: De ontwikkeling van ROS begon onder de naam "Switchyard" bij het Stanford Artificial Intelligence Laboratory door Morgan Quigley, Eric Berger en Andrew Ng. Het had tot doel het gebrek aan gedeelde software-infrastructuur in robotica-onderzoek aan te pakken.
  • 2008: De ontwikkeling werd voortgezet bij Willow Garage, een robotica-onderzoekslab.
  • 2009: Officiële oprichting van ROS, gemarkeerd door zijn eerste versie.

Groei en evolutie

  • 2010: Release van ROS 1.0, met Willow Garage in een cruciale rol bij de ontwikkeling en groei van de gemeenschap.
  • 2014: Introductie van sociale en service-robots zoals Pepper, wat vooruitgang in mens-robot-interactie benadrukte.
  • 2021: ROS evolueert om geavanceerde en veelzijdige robotsystemen voor diverse toepassingen te ondersteunen.

ROS-releaseplanning

ReleasenaamDistributieReleasedatumEOL-datum
BoxturtleROS 1maart 2010maart 2011
C TurtleROS 1augustus 2010augustus 2011
DiamondbackROS 1maart 2011november 2012
Electric EmysROS 1augustus 2011januari 2013
FuerteROS 1april 2012juli 2013
Groovy GalapagosROS 1december 2012mei 2014
Hydro MedusaROS 1september 2013mei 2015
Indigo IglooROS 1juli 2014april 2019
Jade TurtleROS 1mei 2015mei 2017
Kinetic KameROS 1mei 2016april 2021
Lunar LoggerheadROS 1mei 2017mei 2019
Melodic MoreniaROS 1mei 2018mei 2023
Noetic NinjemysROS 1mei 2020mei 2025
Foxy FitzroyROS 2juni 2020juni 2023
Galactic GeocheloneROS 2mei 2021november 2022
Humble HawksbillROS 2mei 2022mei 2027
Rolling RidleyROS 2DoorlopendDoorlopend

Tegenwoordig wordt ROS onderhouden door Open Robotics, een non-profitorganisatie die zich toelegt op de ontwikkeling van het ROS-kernsysteem, waaronder ROS 2.0, dat verbeteringen voor real-time en embedded systemen bevat, samen met andere tools en bibliotheken.

Installatie van de ROS-omgeving en snelle kennismaking

ROS1 installeren

  • Stap 1: Open de Terminal en werk de systeempakketten bij.
    bash
    sudo apt update 
    sudo apt upgrade
  • Stap 2: Installeer basistools.
    bash
    sudo apt install curl gnupg2 lsb-release
  • Stap 3: Voeg de sleutel van de ROS-repository toe.
    bash
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
  • Stap 4: Voeg de ROS-repository toe.
    bash
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  • Stap 5: Werk de pakketlijst bij.
    bash
    sudo apt update
  • Stap 6: Installeer ros-noetic-desktop-full.
    bash
    sudo apt install ros-noetic-desktop-full
    sudo apt-get install python3-rosdep
  • Stap 7: Initialiseer rosdep.
    bash
    sudo rosdep init
    rosdep update
  • Stap 8: Stel de ROS-omgevingsvariabelen in.
    bash
    echo "source /opt/ros/noetic/setup.bash">> ~/.bashrc &&
    source ~/.bashrc
  • Stap 9: Installeer de afhankelijkheidstools.
    bash
    sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
  • Stap 10: Test de installatie.
    bash
    roscore

Snel aan de slag met ROS

Om ROS snel te ervaren, gaan we een ROS-werkruimte maken en een eenvoudige demo uitvoeren.

  1. Een ROS-werkruimte maken

    bash
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make
  2. Het setup-bestand sourcen

    bash
    source devel/setup.bash
  3. Een demo uitvoeren

    bash
    roscore

    Open een andere terminal en voer uit:

    bash
    rosrun turtlesim turtlesim_node

    Open nog een andere terminal en voer uit:

    bash
    rosrun turtlesim turtle_teleop_key

Deze snelle demo toont een grafische schildpadrobot die u met het toetsenbord kunt besturen.

Installatie van veelvoorkomende ontwikkelsoftware voor ROS

Installatie van VSCode en ROS-ontwikkelingsuitbreidingen

  1. Voor de installatie van VSCode verwijzen wij u naar de vorige tutorial: 3.1-Python en programmeren basisbeginselen

  2. Installeer tools zoals Python, ROS, C++ en CMake Tools vanuit de VSCode Extensions Marketplace.

Installeer de multifunctionele terminal Terminator.

  1. Installeren

    bash
    sudo apt-get update
    sudo apt install terminator
  2. Toepassingen weergeven ---> Zoek naar "Terminator" ---> Klik met de rechtermuisknop en selecteer "Aan favorieten toevoegen"

  3. Veelgebruikte sneltoetsen voor Terminator

    • Alt + Up: Naar de bovenliggende terminal
    • Alt + Down: Naar de onderliggende terminal
    • Alt + Left: Naar de terminal links
    • Alt + Right: Naar de terminal rechts
    • Ctrl + Shift + O: Terminal horizontaal splitsen
    • Ctrl + Shift + E: Terminal verticaal splitsen
    • Ctrl + Shift + Right: Verschuif de splitter naar rechts in een verticaal gesplitste terminal
    • Ctrl + Shift + Left: Verschuif de splitter naar links in een verticaal gesplitste terminal
    • Ctrl + Shift + Up: Verschuif de splitter omhoog in een horizontaal gesplitste terminal
    • Ctrl + Shift + Down: Verschuif de splitter omlaag in een horizontaal gesplitste terminal
    • Ctrl + Shift + S: Schuifbalk verbergen/weergeven
    • Ctrl + Shift + F: Zoeken
    • Ctrl + Shift + C: Geselecteerde inhoud naar het klembord kopiëren
    • Ctrl + Shift + V: Klembordinhoud plakken
    • Ctrl + Shift + W: Huidige terminal sluiten
    • Ctrl + Shift + Q: Huidig venster afsluiten en alle terminals erin sluiten
    • Ctrl + Shift + X: Huidige terminal maximaliseren
    • Ctrl + Shift + Z: Huidige terminal maximaliseren en lettertype vergroten
    • Ctrl + Shift + N of Ctrl + Tab: Naar de volgende terminal
    • Ctrl + Shift + P of Ctrl + Shift + Tab: Naar de vorige terminal
    • F11: Volledig scherm aan/uit
    • Ctrl + Shift + T: Een nieuw tabblad openen
    • Ctrl + PageDown: Naar het volgende tabblad
    • Ctrl + PageUp: Naar het vorige tabblad
    • Ctrl + Shift + PageDown: Wissel het huidige tabblad om met het volgende
    • Ctrl + Shift + PageUp: Wissel het huidige tabblad om met het vorige
    • Ctrl + Plus (+): Lettergrootte vergroten
    • Ctrl + Minus (-): Lettergrootte verkleinen
    • Ctrl + Zero (0): Lettergrootte herstellen naar oorspronkelijk
    • Ctrl + Shift + R: Terminalstatus resetten
    • Ctrl + Shift + G: Terminalstatus resetten en scherm wissen
    • Super + g: Bind alle terminals zodat invoer naar alle terminals wordt gespiegeld
    • Super + Shift + G: Maak alle terminals los
    • Super + t: Bind alle terminals in het huidige tabblad, invoer wordt gespiegeld
    • Super + Shift + T: Maak terminals in het huidige tabblad los
    • Ctrl + Shift + I: Open een nieuw venster dat het proces met het oorspronkelijke deelt
    • Super + i: Open een nieuw venster met een apart proces