Flexibele robotica binnen handbereik door Ros-Industrial

Om de inzet van robots in het mkb aantrekkelijk te maken, moeten ze overweg kunnen met veranderende processen, kleinere oplages en grotere variaties. Huidige industriële besturingssoftware is hiervoor niet flexibel genoeg, maar de ontwikkeling van servicerobots laat zien dat de mogelijkheden binnen handbereik liggen. De ontwikkeling van roboticasoftware is de afgelopen jaren in een stroomversnelling geraakt doordat vooral universiteiten gebruikmaken van een gestandaardiseerd platform, het Robot Operating System, waarmee ontwikkelaars software eenvoudig kunnen delen.
Sinds de introductie van industriële robotica in de jaren zestig zijn er veel dingen veranderd op het gebied van software. De rekenkracht van computers is iedere twee jaar verdubbeld en dat heeft een reeks aan nieuwe mogelijkheden met zich mee gebracht. Zo zijn er tegenwoordig uitgebreide softwarepakketten die het gedrag van de robot tot in detail simuleren. Ook kunnen bijvoorbeeld time of flight-camera’s worden geïntegreerd om de kwaliteit van producten op hoge snelheid te controleren of zelfs vision-in-the-loop-systemen mogelijk te maken.

In een proefopstelling bestuurden ALTEN en CSI Palletising Systems een ABB-robot met Ros-Industrial. Rechtsboven is de visualisatie van Ros te zien. Bekijk hier een filmpje van de proef.

De situaties waarin robots worden ingezet, zijn de afgelopen decennia echter nauwelijks veranderd. Nog steeds zien we ze vooral als uitvoerders van repetitieve taken in productieprocessen met grote oplages. De omgeving en het proces zijn zorgvuldig gecontroleerd omdat de huidige besturingssoftware niet kan inspelen op onzekerheden en variaties. Bovendien moet iedere verandering in het proces handmatig worden geprogrammeerd, wat hoge kosten met zich meebrengt. Hoewel de ontwikkeling van rekenkracht het technisch haalbaar heeft gemaakt om robots veel complexere taken te laten uitvoeren, is dit nog niet gebruikelijk in de industrie. De gebruikte software is gericht op één specifieke robot, waardoor het pas economisch haalbaar bij grote oplages. Bij kleinere oplages of meer variaties in de producten of omgeving is het nog altijd goedkoper om de taken door mensen te laten uitvoeren.

Om Nederland, en met name het mkb, concurrerend te houden, zullen robots in de toekomst een steeds grotere rol moeten spelen in het productieproces. Vooral jonge, innovatieve bedrijven kunnen profiteren van robots om hun productiecapaciteit te vergroten en om sneller van idee naar productie te gaan. Robots moeten dan wel flexibel genoeg zijn voor kleinere oplages en grotere variaties in producten. Bovendien moet een werknemer die geen robotexpert is toch in staat zijn de robot een nieuwe taak te geven. Dat deze nieuwe richting in de industriële robotica belangrijk wordt, blijkt bijvoorbeeld ook uit het Europese onderzoeksproject ‘Factories of the future’.

Hoewel al deze dingen niet mogelijk zijn binnen de huidige industriële besturingssoftware, is het in andere gebieden al heel gebruikelijk. Zo wordt er in Nederland veel geïnvesteerd in de ontwikkeling van servicerobots. Dit zijn systemen die zijn bedoeld om mensen te assisteren met alledaagse taken. Die robots zijn wel flexibel inzetbaar, kunnen veel verschillende taken uitvoeren en zijn gebruikersvriendelijk doordat je ze kunt aansturen met normale spraak. Omdat deze robots moeten opereren in een onvoorspelbare menselijke omgeving, moet de software bovendien robuust zijn tegen variaties.

Ontwikkeling van deze servicerobots gaat in hoog tempo. In de afgelopen tien jaar hebben universiteiten en andere onderzoeksinstituten servicerobots gemaakt die kunnen leren om objecten te herkennen en op te pakken, om onbekende ruimtes in kaart te brengen, om autonoom te navigeren door dynamische omgevingen en om een dialoog te voeren met mensen. De reden dat de ontwikkeling zo snel kan gaan, is dat de software kadert binnen een gestandaardiseerd softwareraamwerk: het Robot Operating System (Ros). Dit stelt ontwikkelaars in staat code met elkaar uit te wisselen en uit te breiden.

Er wordt nu gewerkt aan een Ros-versie specifiek gericht op de industrie, waarmee ontwikkelaars bestaande industriële robots kunnen integreren met Ros. Hier ligt een uitdaging om de voordelen van het Ros-systeem te benutten in een industriële omgeving, terwijl aan de strenge eisen voor industriële software wordt voldaan.

GROTE COMMUNITY

Het Robot Operating System is in de basis een open cross-platformraamwerk voor robotspecifieke softwareontwikkeling. Sinds de start in 2007 heeft Ros sterk aan populariteit gewonnen en wordt het inmiddels wereldwijd op duizenden robots gebruikt. Het idee achter Ros is simpel: bied software-engineers een framework voor de ontwikkeling van robotapplicaties zodat ze voort kunnen bouwen op het werk van hun collega’s en ze ideeën en algoritmes kunnen uitwisselen.

De functionaliteit binnen een Ros-applicatie wordt gevormd door verschillende modules, of in Ros-termen: nodes. Een node kan bijvoorbeeld een low-level driver zijn voor een sensor, een module voor beeldverwerking of een high-level planner. Nodes wisselen via Ros data uit via gestandaardiseerde messages. Zo’n boodschap kan bijvoorbeeld een camerabeeld zijn, de huidige toestand van de robot of een commando voor een actuator.

Met bestaande Ros-software voor onder meer de cameradriver en de communicatie met de robotarm hadden de ontwikkelaars van ALTEN en CSI de demonstratie binnen een week aan de praat.

De populariteit van Ros heeft meerdere redenen, maar de belangrijkste zijn deze standaard interfaces tussen de nodes en het feit dat Ros opensource is met een grote community van ontwikkelaars. Hierdoor zijn er inmiddels honderden modules die standaard met Ros worden meegeleverd en die een ontwikkelaar direct kan gebruiken in zijn applicatie. Denk hierbij aan drivers voor verschillende sensoren en low-level controllers, maar bijvoorbeeld ook aan armplanning en een flexibele simulatieomgeving.

Door de standaard interfaces is Ros ook onafhankelijk van een specifiek robotplatform. Omdat de communicatie met bijvoorbeeld de controller gelijk blijft, kan een ontwikkelde applicatie op een compleet ander robottype worden toegepast door alleen het robotmodel aan te passen.

BETROUWBAARHEID

Ros wordt met name gebruikt op universiteiten en onderzoeksinstituten die de grenzen van de huidige mogelijkheden in de robotica opzoeken en verruimen. In 2011 startte het Ros-Industrial-project met als doel de mogelijkheden en voordelen van Ros toe te passen op industriële robotica en tegelijkertijd Ros te laten aansluiten bij de wensen en eisen van de industrie.

De flexibiliteit van Ros maakt het een geschikte tool voor de snelle ontwikkeling van intelligente industriële robots, zoals die in de inleiding worden beschreven. Ros-Industrial staat echter nog in de kinderschoenen en moet groeien voor het breed inzetbaar is in de industrie. Daarnaast zijn er belangrijke kanttekeningen te plaatsen bij die inzetbaarheid.

Dat Ros opensource is, leidt binnen de industrie tot de gedachte dat het commercieel weinig interessant zou zijn. Ros en Ros-Industrial zijn beide te gebruiken onder de BSD-licentie. Hierdoor kan een commerciële partij de software gebruiken, aanpassen en onder een andere naam verkopen. De partij is vrij om zelf ontwikkelde software te delen of ervoor te kiezen dit gesloten te houden. Er is specifiek gekozen voor de BSD-licentie binnen het Ros-Industrial-project, omdat het juist als doel heeft om commercieel inzetbaar te zijn. Een dergelijke opensourcemanier van werken is nieuw binnen de industriële robotica en zal zichzelf dus eerst moeten bewijzen.

Andere belangrijke aandachtspunten zijn betrouwbaarheid en veiligheid. De industrie heeft op die gebieden zeer strenge eisen en Ros was tot nu toe vooral een experimenteel platform. Een belangrijk voordeel is dat Ros-Industrial gebruikmaakt van de low-level software op een robotplatform en daarmee bestaande safetymaatregelen niet omzeild. Zo blijft er nog altijd ruimte voor bijvoorbeeld low-level beperkingen op snelheid en positie, collision checking en algemene veiligheidsmaatregelen als een noodstop.

Mede vanwege het opensourcekarakter is de betrouwbaarheid van Ros-code moeilijk te garanderen. Voor het Ros-Industrial-project is er een centrale organisatie die code binnen het project test en reviewt. Momenteel is dit vooral een kwalitatieve methode waarbij andere ontwikkelaars de nieuwe code beoordelen, maar er wordt hard gewerkt aan kwantitatieve analyses zoals unit testing. In vergelijking met huidige software in de industrie is dit echter nog steeds een van de zwakke punten van Ros.

Tot slot is het Ros-systeem waarschijnlijk complexer om mee te werken dan een conventioneel industrieel softwarepakket. Door de flexibiliteit en vrijheid die Ros biedt, moet de programmeur wel zelf een aantal zaken doen die de meeste softwarepakketten normaal op de achtergrond regelen. Op het gebied van gebruiksvriendelijkheid kan Ros dus zeker nog stappen maken.

STAPELEN

Als demonstratie van een toepassing met Ros-Industrial binnen een bestaande industriële omgeving heeft Alten Mechatronics in samenwerking met CSI Palletising Systems uit Raamsdonksveer een test uitgevoerd op een industriële robotarm van ABB (bekijk het filmpje op Youtube). Dozen van onbekende grootte werden willekeurig op een pallet gelegd waarbij de robot ze netjes moest stapelen op een tweede pallet. Vanwege de onvoorspelbaarheid van de producten is dit een typische toepassing waarmee bestaande industriële roboticasoftware moeite heeft en waar een Ros-omgeving uitkomst kan bieden. Met bestaande Ros-software voor bijvoorbeeld de driver van de camera en de communicatie met de ABB-arm konden we de demonstratie binnen een week ontwikkelen, met slechts één dag integratie op de hardware. Dit toont aan dat het met Ros mogelijk is om in korte tijd complexe industriële taken te programmeren.

Het Robot Operating System en zijn industriële uitbreiding bieden absoluut mogelijkheden voor de industrie. Door de grote community en eenvoudige integratie van bestaande modules kunnen gebruikers tegen een relatief lage prijs snel een robotapplicatie opzetten. Bovendien biedt Ros veel functies om flexibelere, breder inzetbare robots te ontwikkelen. Door de gestandaardiseerde interface naar bestaande industriële robotarmen kunnen applicaties ook eenvoudig worden gebruikt op andere platforms.

Hoewel Ros op zichzelf een zekere volwassenheid heeft behaald, staat het binnen de industrie nog in de kinderschoenen. Er is nog veel ontwikkeling nodig voordat zaken als betrouwbaarheid, veiligheid en gebruiksvriendelijkheid overeenkomen met de eisen en verwachtingen van de industrie. Ook zal het moeten laten zien dat het als opensourceproject een commerciële toekomst heeft. Door Ros vaker toe te passen in industriële testopstellingen en applicaties zal blijken of het zijn belofte kan waarmaken, maar het is een zeer veelbelovend middel voor de ontwikkeling van goedkopere en flexibelere robotapplicaties in de industrie.

Auteurs: Berend Küpers en Simon Jansen 

Tag
robotics, robots, ros

neem contact op

*verplichte velden

Een Design Structure Matrix geeft grip op softwareafhankelijkheden

Bij softwareontwikkeling is een hoog innovatietempo een vereiste. Door de aanhoudende tijdsdruk is er veelal weinig aandacht voor de softwarearchitectuur. [...]

‘Testing is hot’, maar wat is ‘hot’ in testing?

Regelmatig krijg ik de vraag wat er ‘hot’ is op het gebied van testen maar meestal moet ik dan toch [...]

Testers zouden eens wat vaker naar de tandarts moeten gaan…

Onlangs moest ik een behandeling bij de tandarts ondergaan waarbij ik geruime tijd volledig aan haar was overgeleverd. Want zo [...]