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:
- Hardware: reComputer J3010 (Nvidia Jetson Orin Nano), een beeldscherm, toetsenbord en muis.
- Software: Jetpack 5.1.1, Ubuntu 20.04, ROS Noetic, Python en C++.
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.
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:
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
| Releasenaam | Distributie | Releasedatum | EOL-datum |
|---|---|---|---|
| Boxturtle | ROS 1 | maart 2010 | maart 2011 |
| C Turtle | ROS 1 | augustus 2010 | augustus 2011 |
| Diamondback | ROS 1 | maart 2011 | november 2012 |
| Electric Emys | ROS 1 | augustus 2011 | januari 2013 |
| Fuerte | ROS 1 | april 2012 | juli 2013 |
| Groovy Galapagos | ROS 1 | december 2012 | mei 2014 |
| Hydro Medusa | ROS 1 | september 2013 | mei 2015 |
| Indigo Igloo | ROS 1 | juli 2014 | april 2019 |
| Jade Turtle | ROS 1 | mei 2015 | mei 2017 |
| Kinetic Kame | ROS 1 | mei 2016 | april 2021 |
| Lunar Loggerhead | ROS 1 | mei 2017 | mei 2019 |
| Melodic Morenia | ROS 1 | mei 2018 | mei 2023 |
| Noetic Ninjemys | ROS 1 | mei 2020 | mei 2025 |
| Foxy Fitzroy | ROS 2 | juni 2020 | juni 2023 |
| Galactic Geochelone | ROS 2 | mei 2021 | november 2022 |
| Humble Hawksbill | ROS 2 | mei 2022 | mei 2027 |
| Rolling Ridley | ROS 2 | Doorlopend | Doorlopend |
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.
-
Een ROS-werkruimte maken
bashmkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make -
Het setup-bestand sourcen
bashsource devel/setup.bash -
Een demo uitvoeren
bashroscoreOpen een andere terminal en voer uit:
bashrosrun turtlesim turtlesim_nodeOpen nog een andere terminal en voer uit:
bashrosrun 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
-
Voor de installatie van VSCode verwijzen wij u naar de vorige tutorial: 3.1-Python en programmeren basisbeginselen
-
Installeer tools zoals
Python,ROS,C++enCMake Toolsvanuit de VSCode Extensions Marketplace.
Installeer de multifunctionele terminal Terminator.
-
Installeren
bashsudo apt-get update sudo apt install terminator
-
Toepassingen weergeven ---> Zoek naar "Terminator" ---> Klik met de rechtermuisknop en selecteer "Aan favorieten toevoegen"
-
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