ROS
Deel 1.
Wat is ROS!
Hallo en welkom bij het eerste deel van de serie over ROS. In deze serie wil ik jullie kennis laten maken met het ROS gebeuren. Wat is het, waar kan ik het voor gebruiken, en vooral hoe kan ik het gebruiken en wat heb ik er voor nodig.
Nu in 10 jaar geleden, was er behoefte aan een framework voor het ontwikkelen van robotica systemen. Verschillende spelers waren er op de markt, zoals onder andere MRDS (Microsoft Robotics Development Studio) en op Stanford University waren er pogingen om verschillende technieken zoals embodied AI zoals de Stanford AI Robot (STAIR) en de Personel Robot (PR) Program. Microsoft heeft een paar jaar later de stekker uit hun robotica programma getrokken, omdat volgens de Microsoft woordvoerders, niet hun doel was om software te ontwikkelen voor robots. Echter in 2007 by Willow Garage, zijn diversen mensen zich bezig blijven houden met het ontwikkelen en implementeren van concepten, waardoor er meerdere instituten voor meerdere robots het framework gingen gebruiken. Dit heeft er toe geleid dat tegen het einde van 2007, de eerste versie van ROS werd uitgebracht door Willow Garage. Dit alles heeft geleid tot de huidige vorm van ROS. Voor de gehele geschiedenis kan men kijken op http://www.ros.org/history/
Maar wat is ROS nu eigenlijk. Wel, ROS is een verzameling van Tools, Libraries en Conventies om het creëren van complexe en robuuste robot gedragingen te kunnen versimpelen.
ROS waarin men pakketten kan maken, die men eenvoudig kan hergebruiken voor verschillende Robotica toepassingen, omdat er gebruik word gemaakt van Conventies. Hier door wordt het iedere keer weer opnieuw het wiel uitvinden om bepaalde activiteiten voor een robotica systeem te ontwikkelen weggenomen, zodat men sneller tot een resultaat kan komen.
Het ROS gebeuren is heel groot, er zitten pakketten in voor Robot Simulaties, GUI tools voor het weergeven van sensor informatie, navigatie pakketten enzovoort enzovoort.
Gaande weg gaan we in deze serie hier gebruik van maken, maar eerste gaan we ROS installeren, en dan gaan we stap voor stap kijken wat ROS is en hoe dit te gebruiken. Zoals altijd, is wat wij in deze serie gaan doen, niet de enige manier om wat te doen met ROS, maar dat laat ik aan jullie zelf over om dat uit te zoeken.
Wat heb ik nodig om met deze serie te starten.
Om mee te doen met ons, heb je als eerste een laptop/Desktop-computer benodigd. Hierop gaan we Ubuntu installeren. De versie die wij gaan gebruiken, is Ubuntu 16.04 LTS en de ROS Versie die we gaan gebruiken is Kinetic Kame. Ik heb voor deze versies gekozen, omdat deze beide versies voor langere tijd worden ondersteund. Wat wij nog meer gaan gebruiken, is een arduino bord die we gaan gebruiken voor het uitlezen van een sensor. In ons geval een Ping sensor. Iedere ping sensor kun je gebruiken, zolang deze word ondersteund door arduino met een library.
De procedure om Ubuntu te installeren, is gewoon de standaard manier. Als Ubuntu geïnstalleerd is, het slim om zoals hieronder te zien is, “Notify me of a new Ubuntu version” op Never te zetten, ervan uitgaande dat je een Engels talige versie van Ubuntu hebt geïnstalleerd. Dit raad ik wel aan, omdat als er dan meldingen komen tijdens het programmeren , je geen Nederlands en Engels door elkaar heen krijgt, zodat andere (niet Nederlands talige) je kunnen helpen.
Als dit gebeurd is, kan met beginnen met de computer te updaten met de laatste updates voor Ubuntu. Dit doe je als volgt.
>sudo apt-get update
>sudo apt-get upgrade
wanneer dit gebeurd is, ben je klaar om ROS op de computer te installeren.
Als eerste moet er gezorgd worden, dat apt de paketten kan vinden van ROS(packages.ros.org)
>sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Dit wordt als 1 regel in de console ingevoerd, en zorgt er voor dat het systeem weet waar de pakketten online te vinden zijn. Om er voor te zorgen dat het systeem kan zien of er met de pakketten geknoeid is, moet je een sleutel installeren, zoals hieronder.
>sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Om te zorgen dat het systeem alle pakketten weet, moet nog even de pakketten index worden geüpdatet.
>sudo apt-get update
Nu is ubuntu klaar voor het installeren van ROS.
Wat wij hier gaan doen, is ROS installeren voor de laptop/desktop, het is ook mogelijk Bare-Bones installatie te doen, bijvoorbeeld als je een raspberry-pi gebruikt als boordcomputer voor je robot.
>sudo apt-get install ros-kinetic-desktop-full
Hier is de computer eventjes mee bezig.
Vervolgens moeten de volgende 2 commando’s uitgevoerd worden, zodat het programma rosdep, dat ook geïnstalleerd is met ROS, geïnitialiseerd word.
>sudo rosdep init
>rosdep update
Om er voor te zorgen, dat iedere keer dat een nieuwe console wordt geopend, de variabelen van je ROS omgeving automatisch worden toegevoegd aan de omgevings-variabelen, voor dan de volgende regel uit.
>echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
Om ervoor te zorgen, dat je huidige console ook ververst wordt, voor dan het volgende uit, of sluit deze en open een nieuwe console.
>source /opt/ros/kinetic/setup.bash
Om er voor te zorgen dat je zelf instaat bent om pakketten te bouwen, moeten er nog een paar software pakketten worden geïnstalleerd.
>sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
ROS is nu volledig geïnstalleerd, en klaar om gebruikt te worden.