billede af robot

BMW anvender ROS i udviklingen af selvkørende biler. Input fra sensorer i bilen anvendes i ROS-systemet til at planlægge korrektioner af kørslen, der så sendes til en Dspace MicroAutobox, som korrigerer kørslen.

open source

ROS - det åbne styresystem for robotter

Robot Operating System er otte år gammelt og anvendes allerede i mange robotter. Vi ser nærmere på open source-styresystemet for robotter.

"ROS er ikke et styresystem i traditionel forstand ... det giver derimod et struktureret kommunikationslag oven på værtsstyresystemerne i en heterogen computerklynge."

Sådan lyder den oprindelige beskrivelse af Robot Operating System (ROS) i forskningspapiret ”ROS: an open-source Robot Operating System”.

Fra universitet til industri

Fremfor at være et styresystem for robotter kan ROS bedre beskrives som en samling software-libraries og værktøjer, som man kan anvende til at udvikle robotapplikationer. Data fra diverse sensorer opsamles af ROS, og baseret på de sensor-input vil robottens interne model af verden blive opdateret. Robotten kan på basis af den opdaterede verdensmodel beslutte at bevæge sig eller manipulere omgivende fysiske objekter ved at aktivere ROS-enablede manipulatorer som robot-arme, -ben og -hænder.

ROS var inspireret af udviklingen af Stanford Artificial Intelligence Robot (STAIR) i 2007. Robotforskere fra Stanford University gik derefter sammen med forskere fra University of Southern California og robotvirksomheden Willow Garage i 2008 for at udvikle et system til at kontrollere og styre robotter. I 2009 blev forskningspapiret publiceret, og i dag anvendes, videreudvikles og vedligeholdes ROS af en lang række selskaber med interesse i robotteknologi, deriblandt chipleverandører som Intel og Nvidia samt bilfabrikanter som BMW. I alt har mere end 2.000 personer bidraget med kode til ROS, der i dag består af mere end 10 millioner kodelinjer.

BSD-licens

ROS er open source under BSD-licensen, og for robotforskerne var valget af en open source-model nærmest uundgåeligt, da det giver mere frihed og mulighed for at eksperimentere ved udvikling af diverse robotteknologier.

– Den fulde kildekode for ROS er offentlig tilgængelig. Vi mener, det er nødvendigt for at gøre det muligt at debugge på alle niveauer af softwarestakken, begrundede robotforskerne deres valg af BSD-licensen.

Det er ikke kun universitetsforskere, der sætter pris på open source-softwares mulighed for at ændre i kildekoden. Det var blandt andet, fordi ROS er open source, at BMW blev interesseret i robotsoftwaren. I dag anvender BMW softwaren i semi-selvkørende biler; eksempelvis til autopilot og autoparkering.

– En stor brugerbase betyder stabilitet og pålidelighed, fordi der højst sandsynligt allerede er nogle, der har oplevet det problem, du sidder med, forklarede BMW's forskningsingeniør i automatisk kørsel, Michael Aeberhard, på den seneste konference om ROS. Han fremhævede også det store udvalg af ROS-baserede softwarepakker, ligesom muligheden for at samarbejde med universiteter og forskningsinstitutioner smidiggøres, når begge parter anvender ROS.

Version 2 af ROS

I den oprindelige version af ROS foregik kommunikationen mellem forskellige processser internt i robotten og eventuelle eksterne processer på en eller flere computere uden for robotten ved hjælp af XML-RPC. Men i den kommende version 2 af ROS, som forventes frigivet i løbet af dette efterår, vil industristandarden DDS (Data Distribution Service) blive den nye kernekommunikation i ROS.

DDS-standarden er defineret af Object Management Group, der også stod bag en anden middleware-standard, CORBA. CORBA fik ry for at være en standard udarbejdet af en komité: Standarden så pæn ud på papiret, men performede elendigt i virkeligheden.

Det har vakt en del bekymring i ROS-miljøet: Er DDS også en papirstandard med ringe performance i virkeligheden?

Kan komité-standard performe?

Det afviser William Woodall fra Open Source Robotics Foundations. I artiklen ”ROS on DDS” på design.ros2.org tager han fat på de eventuelle bekymringer om planerne om at anvende DDS som en central komponent i ROS:

"...selvom DDS-specifikationen er skrevet af en komité, er den udviklet til sin nuværende form ved at reagere på brugernes behov. Den type organisk udvikling af specifikationen, inden den blev ratificeret, synes at afbøde bekymringer om, at standarden er designet i et vakuum og ikke vil performe i virkeligheden. Der er eksempler på, at komitéer med de bedste hensigter udvikler velbeskrevne specifikationer, som ingen ønsker at bruge, eller som ikke imødekommer brugernes behov, men det synes ikke at være tilfældet med DDS."

Der peges også på, at DDS anvendes af NASA, den amerikanske flåde og en lang række andre virksomheder og organisationer med forretningskritiske applikationer. Vi får se, om ROS baseret på DDS også fungerer for robotter, og om ROS stadig vil være robotforskernes foretrukne software.

 

Peer-to-peer

ROS er baseret på en peer-to-peer-topology, hvor et antal processer udveksler beskeder via en publish-sub-scribe-mekanisme. Et kamera kan eksempelvis meddele ROS-systemet, at det vil publicere billeder ved at annon-cere et topic billeder. En billedbehandlingsalgoritme kan abonnere på det topic. Via en ROS Master registrerer en publisher (talker i diagram) sit topic (”bar” i diagram-met) og en adresse. En subscriber (listener i diagrammet) meddeler ROS Master, at den gerne vil lytte til alt ved-rørende bar-topic. ROS Master fortæller så, hvor sub-scriberen skal forbinde sig for at kunne modtage data om ”bar”. Herefter foregår dataudvekslingen direkte mellem de to processer uafhængigt af ROS Master.