Wat is ROS?
ROS (Robot Operating System) is een raamwerk dat is ontworpen voor het bouwen van robotsystemen. Het is geen echt besturingssysteem in de traditionele zin, maar eerder een meta-besturingssysteem dat bovenop een host-besturingssysteem draait (zoals Linux).
Het biedt een middleware-laag die de hardware abstraheert en biedt een reeks services, tools en bibliotheken om de ontwikkeling van robotsoftware te vergemakkelijken.
Wat zijn de belangrijkste componenten van ROS?
Het ROS-framework bestaat uit verschillende componenten, waaronder:
- ROS kern is de centrale component die essentiële services biedt voor communicatie tussen ROS-knooppunten in een gedistribueerd systeem, zoals het doorgeven van berichten, parameterbeheer en naamgeving.
- ROS-knooppunten zijn individuele programma's die met elkaar communiceren via de ROS Core met behulp van een publish-subscribe messaging-systeem.
- ROS-onderwerpen communicatie tussen ROS-knooppunten mogelijk maken. Ze worden bussen genoemd waarmee knooppunten berichten uitwisselen. Een knooppunt kan berichten over een onderwerp publiceren en alle geïnteresseerde knooppunten kunnen zich abonneren op dat onderwerp om de berichten te ontvangen. Onderwerpen volgen een berichtpatroon voor publiceren en abonneren, waardoor asynchrone communicatie mogelijk is.
- ROS-berichten zijn de gegevensstructuren die worden gebruikt voor communicatie tussen ROS-knooppunten en definiëren de informatie die over een onderwerp wordt uitgewisseld.
- ROS-diensten bieden knooppunten een manier om verzoeken te verzenden en antwoorden te ontvangen. Ze gebruiken een verzoek-antwoordpatroon, waardoor een directe uitwisseling van berichten wordt gegarandeerd. Een knooppunt kan een service aanbieden door een servicetype te specificeren dat de aanvraag- en antwoordberichtformaten definieert. Andere knooppunten kunnen vervolgens de service aanroepen om verzoeken te doen en antwoorden te ontvangen.
- ROS Start bestanden vereenvoudig het proces van het starten van meerdere knooppunten en het configureren van hun parameters. Een startbestand is een XML-bestand dat de uit te voeren knooppunten, hun parameters en de onderlinge verbindingen beschrijft. Door startbestanden te gebruiken, kunt u meerdere knooppunten starten met een enkele opdracht, waardoor het eenvoudiger wordt om complexe robotsystemen te beheren.
In het kader van ROS, de RTK-ontvangers kan worden behandeld als een ROS-knooppunt en kan communiceren met andere knooppunten in een ROS-systeem met behulp van ROS-onderwerpen, berichten en services.
Welk platform voor ROS Core om te kiezen?
ROS Core kan worden uitgevoerd op een pc, een laptop, een computer of een verscheidenheid aan ingebedde platforms: NVIDIA Jetson, Raspberry Pi, BeagleBone, Intel NUC, Odroid enz.
De keuze tussen beide voor het uitvoeren van ROS hangt af van verschillende factoren, die hieronder worden vermeld. Hier zijn enkele aanbevelingen om u te helpen kiezen tussen deze voor het uitvoeren van ROS Core:
- Computationele vereisten: Als uw robotica-toepassing high-performance computing vereist, dan is NVIDIA Jetson of een pc wellicht de beste keuze. Beide bieden krachtige CPU's en GPU's, die ideaal zijn voor rekenintensieve taken zoals computervisie en machine learning.
- Stroomverbruik: Als uw robottoepassing op batterijen werkt of een laag stroomverbruik vereist, dan is Raspberry Pi of NVIDIA Jetson wellicht de beste keuze. Beide bieden opties voor een laag stroomverbruik en Raspberry Pi staat bekend om zijn energie-efficiëntie.
- Kosten: Als kosten een belangrijke factor zijn, dan is Raspberry Pi de meest kosteneffectieve optie en wordt het veel gebruikt voor prototyping en hobbyprojecten. NVIDIA Jetson en pc zijn duurdere opties, maar ze bieden krachtigere computermogelijkheden.
- Vormfactor: NVIDIA Jetson of Raspberry Pi zijn de meest compacte en lichtgewicht platforms. Beide bieden kleine vormfactoren en zijn geschikt voor het bouwen van compacte robotsystemen.
Dus dat, kies Raspberry Pi als u een kosteneffectieve optie nodig heeft (learn hoe verbinden? simpleRTK2B/3B-kaarten op een Raspberry Pi) Of NVIDIA Jetson als computermogelijkheden belangrijker zijn (bekijk stap-voor-stap tutorial hoe RTK-ontvanger te verbinden met NVIDIA Jetson).
Welke ontwikkelomgeving voor ROS om te kiezen?
De meest gebruikte ontwikkelomgevingen zijn Ubuntu, ROS development studio (ROSDS), Visual Studio Code, Eclipse, CLion etc.
Ubuntu is een goed ondersteund en veelgebruikt besturingssysteem met een grote gemeenschap van gebruikers die bijdragen aan de ontwikkeling en ondersteuning van ROS.
ROS zelf is voornamelijk ontwikkeld en getest op Ubuntu, wat betekent dat het is geoptimaliseerd voor dit platform en dat de meeste ROS-pakketten en -bibliotheken beschikbaar zijn als kant-en-klare pakketten voor Ubuntu. Onthoud dat maar:
- ROS melodieus is compatibel met Ubuntu 18 (check Melodische installatiehandleiding)
- ROS Noëtisch is compatibel met Ubuntu 20 (check Noëtische installatiegids)
Welke RTK-ontvangers en antennes zijn geschikt voor gebruik in ROS?
Alle ArduSimple RTK-ontvangers en antennes zijn compatibel met ROS.
Bij het kiezen van specifiek RTK-ontvangers en antennes, houd rekening met uw toepassingsvereisten, zoals positioneringsnauwkeurigheid, connectiviteitsopties en omgevingsfactoren, om de meest geschikte apparatuur te selecteren.
Om uw integratie te versnellen GPS gegevens in uw ROS-project hebben wij voorbereid Tutorial hoe te gebruiken ArduSimple producten in ROS.