Door Julian Huijbregts

Nieuwsredacteur

Project March VI-exoskelet

Meer vrijheid dankzij dieptecamera’s

24-09-2021 • 06:00

13

March VI

De exoskeletten die in de afgelopen jaren zijn gemaakt door de studententeams van Project March, werden gemaakt om een vooraf gedefinieerde hindernisbaan af te leggen. Dat is ingegeven door de Cybathlon, een internationale competitie waarin teams meedoen aan onderdelen als de Powered Exoskeleton Race. Vanwege de coronapandemie is het doorgaan van dergelijke evenementen erg onzeker en het team dat vorig jaar in september aan March VI begon, besloot een andere weg in te slaan. Het doel van dit team was om het exoskelet meer bewegingsvrijheid te geven in onbekende ruimten of de buitenlucht, met als eindresultaat een wandeling door het centrum van Delft met piloot Koen van Zeeland.

Project March

Sinds 2015 werkt ieder jaar een team van studenten aan Project March. Het doel van het project van de TU Delft is om de kwaliteit van leven van mensen met een dwarslaesie te verbeteren. Het gaat er niet om een exoskelet te maken dat daadwerkelijk op de markt komt, maar het project is gericht op onderzoek naar en de ontwikkeling van technieken. Deelnemende studenten zetten hun studie een jaar stop om zich volledig op het project te kunnen focussen.

Eerdere uitvoeringen van het March-exoskelet konden al traplopen en hellingen beklimmen, maar tot nu toe was altijd bekend hoe die obstakels eruitzagen en konden de bewegingen van het exoskelet daarop worden afgestemd. Die voorgaande versies zouden dus niet zomaar in een onbekende omgeving gebruikt kunnen worden.

Om met wisselende omstandigheden te kunnen omgaan, moet het exoskelet zijn omgeving kunnen waarnemen. De belangrijkste vernieuwing in het March VI-exoskelet is dan ook de toevoeging van dieptecamera's. We spraken met Thijs Veen, die zijn masterstudie Systeem en Regeltechniek onderbrak om zich aan te sluiten bij Project March. In de rol van Data Analyst werkte hij in het afgelopen jaar veel met de dieptecamera's van het exoskelet.

Piloot Koen van Zeeland met March VI-exoskeletDe keuze voor die camera's werd gemaakt nadat het team bepaald had om als einddoel een route door Delft te lopen. "Daar komt bij dat je trappen of hellingen op moet waarvan je niet weet hoe hoog of steil ze zijn. We hebben allerlei concepten bedacht om dat soort problemen te tackelen", vertelt Veen. Implementaties met laser en afstandssensoren bleken niet nauwkeurig genoeg. Dat zou misschien werken voor een stoepje, maar om een trap op te lopen, is hoge precisie vereist en dus koos het team voor Intel RealSense-dieptecamera's.

Dat was voor de studenten een flinke sprong in het diepe. "Niemand in het team had gewerkt met dieptecamera's en pointclouds. Het was lastig om te schatten hoe moeilijk dat is en het was vrij intimiderend om zo'n belangrijk deel van ons teamdoel hieraan te koppelen zonder dat we wisten of we het werkend zouden krijgen. We waren ervan overtuigd dat het nuttig was, maar of we het konden laten zien aan het einde van het jaar, was de vraag."

Na overleg met een oud-projectlid dat al wel praktijkervaring heeft opgedaan met RealSense-camera's, besloot het team om ervoor te gaan. Ook als het niet af zou komen, zou het immers een goede stap zijn om later op voort te bouwen door een ander team. Nadat de knoop eenmaal was doorgehakt, verdwenen de zorgen al snel. "Alles wat werkte in de simulatie, werkte binnen een of twee keer proberen ook in het echt."

Hardware en software

Bij de zoektocht naar dieptecamera's kwam het team al snel uit bij die van Intel, zegt Veen. "Het voordeel van de RealSense-camera's is dat ze heel goed aansluiten op het Robot Operating System. Je kunt meteen beginnen met het schrijven van je eigen implementaties."

De RealSense D435i die het team gebruikt, heeft verschillende sensoren. Voor het meten van diepte gebruikt de module twee camera's en een infraroodprojector. Dat werkt door een patroon van infrarood licht te projecteren en dat met de camera's aan weerszijden vast te leggen. Een Intel D4 Vision Processor in de RealSense-module vergelijkt die beelden en kan zo de afstand van de infraroodpunten bepalen. Dat wordt omgezet in een pointcloud; een soort 3d-weergave van de omgeving die uit duizenden punten bestaat.

Intel RealSense D435i
Intel RealSense D435i

In de RealSense D435i zitten dieptecamera's met een resolutie van 1280x720 pixels en de pointcloud kan maximaal negentig keer per seconde worden ververst. Ook heeft deze i-uitvoering van de D435 een imu, ofwel inertial measurement unit. Die bestaat uit diverse sensoren en gyroscopen die de beweging van de module over zes assen bijhouden. Die data wordt gecombineerd met de diepte-informatie en dat zorgt ervoor dat de pointcloud ook nauwkeurig is als de camera in beweging is. De D435i kan diepte zien op afstanden van 0,3 tot 10 meter afstand, maar het optimale bereik gaat volgens Intel tot 3 meter. Daarna neemt de nauwkeurigheid af.

RealSense-camera in March VI-exoskeletIn het March VI-exoskelet zitten twee RealSense D435i-modules. Rechts, vlak boven de heup zit een module die schuin naar beneden kijkt om het gebied voor het exoskelet in kaart te brengen. Aan de achterkant zit nog een naar beneden gerichte module die gebruikt wordt om de hoogte van bijvoorbeeld een bankje vast te stellen om daarop te gaan zitten.

ASRock Industrial 4X4-V2000
ASRock Industrial 4X4-V2000

Via USB zijn de RealSense-camera's verbonden met het rekenhart van het March VI-exoskelet: een ASRock Industrial 4X4-V2000M-moederbord met een AMD Ryzen Embedded V2718-processor. Die is gebaseerd op de Zen 2-architectuur, heeft acht cores en zestien threads, en een Vega 7-gpu.

Voor het verwerken van de diepte-informatie gebruikt het team Point Cloud Library. Dat is een opensourceframework dat goed aansluit op het Robot Operating System. ROS is software voor het aansturen van robots, die draait boven op een ander OS, in dit geval Linux. Ook eerdere uitvoeringen van het Project March-exoskelet gebruikten ROS en het team bouwde daar in het afgelopen jaar op verder.

Het team heeft ook de transitie naar ROS 2 ingezet, maar het exoskelet draait nog op een combinatie van beide versies, vertelt Veen. "In ROS 1 zitten bepaalde beperkingen die niet makkelijk zijn op te lossen binnen het systeem zelf, maar we kunnen niet zomaar alles overzetten naar ROS 2, want niet alle packages die we gebruiken, zijn daarvoor geschikt. Een van de library's die we gebruiken voor de camera's, werkt bijvoorbeeld nog niet met ROS 2. Als daar updates of alternatieven voor beschikbaar komen, wordt dat ook overgezet."

Het March VI-exoskelet borduurt voort op het model van vorig jaar, maar naast de toevoeging van de camera's zijn er ook andere onderdelen verbeterd. Veel aanpassingen zijn gericht op het gebruik in de buitenlucht. Zo is de accucapaciteit verdubbeld en is de accu eenvoudiger te wisselen. Ook gebruikt het nieuwe exoskelet minder materiaal voor het frame, waardoor het lichter is. Verder is een scharnier toegevoegd om het been van het exoskelet zestig graden open te klappen. Dat maakt het gemakkelijker voor de piloot om in en uit te stappen.

Project March VI-exoskelet

Van pointcloud naar traplopen

Het March VI-exoskelet werkt met een afstandsbediening waarmee de piloot aangeeft welke beweging er gemaakt moet worden. Op een vlakke ondergrond gaat dat zonder de omgeving te scannen. De diepte-informatie van de RealSense-camera's wordt gebruikt voor complexere scenario's, zoals traplopen, lopen op een helling, of een stoepje op- of afstappen.

In het kort gaat dat als volgt: de pointcloud met diepte-informatie wordt naar een ROS-package gestuurd, dat denkt de te nemen stap uit en stuurt die vervolgens door naar andere onderdelen in ROS, waarmee de motoren van het exoskelet in gang worden gezet. De werking van het exoskelet staat uitgebreid gedocumenteerd op de Project March-website en de software die daarvoor geschreven is, staat op GitLab.

Project March VI

Het omzetten van de pointcloud in een beweging begint met het weggooien van veel informatie, legt Veen uit. "We krijgen een pointcloud binnen met ongeveer tienduizend punten. Alles met een afstand van meer dan anderhalve meter gooien we weg. Ook alle vlakken die rechtop staan, gooien we weg. Zo blijven alleen de oppervlakten over die gebruikt kunnen worden om een stap op te zetten." Door de overbodige informatie weg te gooien, kunnen berekeningen sneller uitgevoerd worden.

Vervolgens worden de overgebleven punten gegroepeerd. "Elke traptrede krijgt zijn eigen kleur. Punten die niet bij de gedefinieerde regio’s horen, worden rood gemarkeerd en later weggegooid." In de volgende stap gaat de software op zoek naar een vlak waar de voet neergezet kan worden. Daarvoor worden de traptreden eerst afgebakend, zodat de randen waarbinnen de stap gezet zal worden, bekend zijn. Vervolgens wordt de stap vooruit berekend en geprojecteerd op het afgebakende vlak. De software bekijkt alle punten waar de voet geplaatst kan worden en wijst zelf één positie aan die uiteindelijk gebruikt zal worden.

Project March VIProject March VIProject March VIProject March VI

De diepte-informatie is het gedetailleerdst in de voorgrond en neemt snel af, dus niet alle traptreden kunnen in één keer in kaart worden gebracht. Wel is het mogelijk om een gemaakte stap te herhalen. Bij een trap met gelijke treden is het dus mogelijk om die op te lopen na het berekenen van de eerste stappen. Dat is echter niet zonder risico, want een kleine afwijking kan na het zetten van een aantal stappen toenemen, wat kan resulteren in een misstap. Bij de demonstratie die het team uitvoerde, werd de trap dan ook stap voor stap beklommen, met voor iedere stap een nieuwe berekening.

Met verbeteringen in de software moet het mogelijk zijn om stappen te herhalen en dan steeds te controleren, zegt Veen. "Daar zijn al opzetjes voor gemaakt, maar we hebben geen tijd gehad om dat uit te werken." Bij het lopen op een helling hoeft er niet voor iedere stap een nieuwe berekening gemaakt te worden. "Daarbij konden we na een berekening gewoon zes à zeven meter lopen, dat luistert minder nauw."

Eind augustus vond de publieke demonstratie van het March VI-exoskelet plaats. Het plan was om een 240 meter lange wandeling door het oude centrum van Delft te maken om te eindigen in het Prinsenhof. De buitenwandeling viel tijdens het evenement in het water, omdat er op het geplande moment net een zware regenbui over kwam. Het team besloot daarom de demonstratie naar binnen te verplaatsen. Enkele dagen voor het evenement had het team samen met piloot Koen van Zeeland tijdens een generale repetitie het geplande traject wel succesvol afgelegd.

Nieuw jaar, nieuw team

Met het ingaan van het nieuwe studiejaar is er inmiddels een nieuw team opgezet dat aan de slag gaat met Project March en zelf nieuwe doelen zal bepalen. Tijdens een overgangsperiode zijn de kennis en de bevindingen van het huidige team overgedragen. Volgens Veen is het nieuwe team onder andere enthousiast over het dynamischer maken van de bewegingen van het exoskelet. "Nu moet je steeds stoppen als je wilt wisselen tussen bijvoorbeeld lopen, traplopen of op een helling lopen." Als dat met een vloeiende overgang kan, wordt het exoskelet gebruiksvriendelijker.

Andere punten waar het nieuwe team aan denkt, zijn het toevoegen van obstakelherkenning en het verbeteren van de balans. Ook daarbij komen de RealSense-camera's goed van pas, dus het is goed mogelijk dat die ook hun weg weer vinden naar de volgende iteratie van het exoskelet. Dat Intel inmiddels gestopt is met het ontwikkelen van RealSense-camera's, is daarvoor geen bezwaar. De fabrikant heeft toegezegd de bestaande modellen te blijven ondersteunen.

Welke keuzes het nieuwe team zal maken, hangt voornamelijk af van het einddoel, zegt Veen. "Stel dat er weer een Cybathlon is met een voorgeprogrammeerde route, dan heb je geen dieptecamera nodig en dus is het niet slim om die te gebruiken als je de wedstrijd wilt winnen."

Juist het niet doorgaan van de wedstrijd leidde ertoe dat het team in het afgelopen jaar een andere weg koos. Ook veranderingen aan het reglement zouden dat kunnen stimuleren, denkt Veen. "Verander de opzet van de wedstrijd, bijvoorbeeld met een parcours waarin de exacte afmetingen van de te overwinnen obstakels niet bekend zijn. Er zijn nu teams die razendsnel over het parcours gaan. Ik denk dat innovatie ergens anders gehaald moet worden."

Reacties (13)

13
13
8
1
0
3
Wijzig sortering
Heeft zo'n skelet ook een paniekknop? Voor als de software of sensors in storing raken waarbij de servomotoren letsel zouden kunnen veroorzaken?
Er wordt altijd gewerkt met een noodknop die bediend wordt door een teamlid die achter het exoskelet aan loopt.

Plotselinge storingen of bewegingen in de motoren of aansturing komt vrijwel nooit voor, misschien alleen nog tijdens tests zonder 'piloot'. Mocht dat toch gebeuren, dan zijn de gewrichten mechanisch softwarematig en hardwarematig gelimiteerd (endstops) zodat de menselijk ledenmaten niet voorbij de natuurlijke stand kunnen.

src: teamlid March geweest aantal jaar terug
Leuk gedaan. Waarom is er gekozen voor een Intel Realsense t.o.v. bijvoorbeeld een Zedd mini, en een X86 platform ipv de Jetson reeks?

Vraag me af of het mogenlijk zou zijn om de inverse kinematics via ML te doen of dat het dan iets te QWOP achtig wordt
Inverse Kinematics is een wiskundig probleem, dus als je die kan oplossen heb je al je Servo posities. ML is goed in het clusteren van data dus ik zie niet direct hoe dit IK helpt...
Excuses ik denk dat ik Motion Planning had moeten gebruiken ipv inverse kinematics (alhoewel de IK ook met ML zou moeten kunnen). Met twee benen is het een stuk lastiger om in balans te blijven dan met vier. Wanneer er heel veel variabelen zijn doet ML het vaak beter dan pure wiskundige formules omdat deze vaak incompleet zijn.

Als mens lopen wij natuurlijk ook niet op een wiskundige formule. Paar keer vallen en opstaan en ons brein krijgt het op een gegeven moment onder de knie.
Motion planning is een nogal ingewikkeld probleem, voor hoever ik weet is het meest praktische een mixed-integer nonlinear controller te ontwerpen voor in een simulatie. Mits dat goed gedaan wordt kan het motion planning zelf doen, terwijl het iets anders optimaliseert (zoals energieverbruik). Dit soort controllers zijn echter vaak te traag, dus wat men dan doet is de functie benaderen met behulp van een neuraal netwerk waarna het meer real-time toegepast kan worden. Vergelijkbaar wat er met autonoom rijden wordt gedaan eigenlijk.
(alhoewel de IK ook met ML zou moeten kunnen)
Ik ben nog nooit een IK probleem tegengekomen die zo absurd ingewikkeld is dat een statistische benadering een betere uitkomst biedt.
Wanneer er heel veel variabelen zijn doet ML het vaak beter dan pure wiskundige formules omdat deze vaak incompleet zijn.
Een wiskundige benadering in deze context is het omgekeerde van incompleet. Ik begrijp hier niet direct waar je naar toe gaat.

[Reactie gewijzigd door Aduen op 23 juli 2024 03:08]

Leuk om wat meer van te horen en zien van dit soort innovaties! Het enige wat inefficient lijkt met zo'n jaarlijkse wisseling van de wacht, is dat veel kennis die je in één keer moet overdragen. Je zou waarschijnlijk sneller door kunnen ontwikkelen als je om het halve jaar de helft van je team laat wisselen. Maar goed: dan moet je wel mensen twee halve studiejaren laten stoppen ipv één netjes 'afgesloten' jaar en de teambuilding wordt er waarschijnlijk ook niet beter op. ;)
Ik denk dat je de spijker op z'n kop slaat. Enerzijds is dit natuurlijk een innovatieproject, anderzijds is het ook een vrijwilligers project, een zogeheten Dream Team, van studenten. Het moet natuurlijk ook een beetje leuk blijven.
In het ziekenhuis van Herentals (België) is er een ganse afdeling gewijd aan "To walk again". Zij gebruiken al jaren staprobots als revalidatie bij personen met dwarslaesie, bijvoorbeeld om secundaire gezondheidsproblemen te voorkomen.
Fantasties project.
Ik wou dat ik het mocht uitproberen.
Dit vind ik een mooi iets, het geeft deze mensen perspectief. Helaas zelf mee mogen maken met een familielid die door een auto ongeluk midden jaren 80 niet meer kon lopen. En ze konden toen al een hoop, Maar de rolstoel heeft ze helaas nooit meer verlaten. Al is dit nog steeds niet voor jan en alleman beschikbaar en hierin deden ze toen ook al ontwikkelen maar toch heb je de hoop dat een ieder daar van mag genieten. Niet dat de rolstoel minder is, maar je ziet de frustratie, al doe je nog alsof ze niet in een rolstoel zitten en je ze als gelijk behandeld.

Op dit item kan niet meer gereageerd worden.