Tutorial · Beginner · 25 min
Holonome aandrijvingen: omni, mecanum en swerve vergeleken
Wat holonome aandrijving betekent, waarom een differentiële robot niet zijwaarts kan parkeren, en een eerlijke vergelijking van omni, mecanum en swerve.
Het woord, en wat het je kost
Een robot op een vlakke vloer heeft drie vrijheidsgraden: hij kan bij een x staan, bij een y staan, en in een richting θ wijzen. Dat is wat een positie op een vloer is.
Een aandrijflijn is holonoom wanneer hij alle drie onafhankelijk kan regelen — wanneer het aantal richtingen waarin hij zich ogenblikkelijk kan bewegen gelijk is aan het aantal richtingen waarin hij kan eindigen. Een aandrijflijn is niet-holonoom wanneer dat niet kan: hij kan uiteindelijk elke pose bereiken, maar niet door er rechtstreeks heen te rijden.
Het alledaagse voorbeeld is een auto. Een auto kan in elke parkeerplaats op straat terechtkomen, ook in die direct links van hem. Hij kan er alleen niet naartoe rijden — hij moet schuifelen. Dat is een niet-holonome randvoorwaarde, en het is de enige reden dat parallel parkeren een vaardigheid is.
Een robot met differentiële aandrijving heeft hetzelfde probleem in een mildere vorm. Hij kan ter plaatse draaien, wat een auto niet kan, dus hij heeft slechts twee regelbare snelheden — vooruit en draaien — tegen drie vrijheidsgraden. Zijwaarts ontbreekt. Om 20 cm naar links te gaan moet hij draaien, rijden en terugdraaien, wat tijd kost die hij misschien niet heeft en koersnauwkeurigheid kost die hij misschien niet kan missen.
Een holonome aandrijflijn gaat gewoon links.
Waarom het belangrijker is dan het klinkt
“Het kan zijwaarts” klinkt als een truc voor op de verjaardag. Waar het daadwerkelijk oplevert:
- Krappe ruimtes. Een robot die nooit draairuimte nodig heeft, past door een gang die precies zijn eigen breedte is. Magazijn-AGV’s zijn om die reden mecanum, en om geen andere.
- Een koers vasthouden tijdens het bewegen. Een camera, een sensormast of een grijper die dezelfde kant op moet blijven kijken terwijl de basis zich herpositioneert. Niet-holonome aandrijflijnen kunnen dat helemaal niet.
- Ontkoppelde padvolging. Een pure-pursuit-regelaar op een differentiële basis moet positiefout afwisselen tegen koersfout, omdat ze één aandrijver delen. Een holonome basis regelt elk met een eigen as.
- Correcties die geen koers kosten. Drijf 3 cm van een lijn, en een holonome robot stapt 3 cm terug. Een differentiële robot moet een boog naar buiten en een boog naar binnen maken, en op een gladde vloer ontstaat de fout juist in die twee extra bochten. In de simulator eindigt een vierkant dat met zijwaartse stapjes op een gladde vloer wordt gereden nog steeds met een koers van precies 0,0°, omdat er nooit een draai is gecommandeerd; hetzelfde vierkant, gereden door op de hoeken te draaien, eindigt tientallen graden ernaast en rijdt daarna elke volgende zijde in de verkeerde richting. Elke spin is weer een kans om de koers kwijt te raken, en de holonome robot neemt er nooit een.
En waar het niet op betaalt: alles wat moet duwen, klimmen of een drempel over. Elk holonoom wiel ruilt grip in voor vrijheid.
De vier opties
Differentiële aandrijving — de referentie
Twee aangedreven wielen, één zwenkwiel. Niet holonoom, en nog steeds het juiste antwoord voor de meeste robots. De volledige tractie van een gewoon wiel, twee motoren, en dertig jaar aan bibliotheken die precies deze geometrie aannemen.
Omniwielen in een X (“X-drive”)
Vier omniwielen — rollen onder 90° ten opzichte van het wiel, niet 45° — gemonteerd op de vier hoeken, elk 45° gedraaid zodat zijn looprichting naar de hoek wijst. Elk wiel duwt langs een diagonaal; de vier diagonalen tellen op tot van alles.
- Het is de snelheidsruimte van mecanum, 45° gedraaid en √2 groter. Beide aandrijflijnen kunnen een ruitvormige verzameling snelheden bereiken; bij mecanum zijn de snelle richtingen recht vooruit en recht zijwaarts, bij een X-drive zijn dat de diagonalen van het chassis. Bij dezelfde wielrandsnelheid gaat een X-drive 1,41× sneller vooruit — en levert √2 minder kracht. Het is een overbrengingsverhouding, geen gratis lunch.
- Inbouw is omslachtig. De wielen staan 45° ten opzichte van het chassis, wat hoekruimte verspilt en meestal direct drive afdwingt.
- Tractie is slecht en de wielen zijn kwetsbaar — kleine rollen, klein loopvlak.
Mecanum — rollen onder 45°
Vier wielen die op gewone wielen lijken, op de gewone manier gemonteerd, met de 45° verborgen in het wiel. Twee linkshandig, twee rechtshandig, in een X-patroon.
- Bouwt zoals een normale aandrijflijn. Dat is de echte reden dat mecanum in de praktijk wint van de X-drive.
- Vooruit en zijwaarts zijn even snel; de diagonalen kosten 1/√2. Een commando op 45° vraagt twee wielen om alles te geven en twee om niets, dus de robot haalt maximaal 71% van zijn snelheid rechtdoor. (Een X-drive heeft dezelfde 71%-straf — die geldt alleen voor een ander paar richtingen.)
- Tractie kost 1/√2. De kracht op de grond zit vast op 45°, de wrijving begrensst de hele vector, en alleen de component langs de looprichting is bruikbaar.
- Duwkracht is zwak. Een mecanumbasis verliest een duwpartij altijd tegen een robot met gewone wielen van hetzelfde gewicht.
Swerve — elk wiel sturen
Vier modules, elk met een aandrijfmotor en een stuurmotor. Richt alle vier waar je wilt en rijd.
- Holonoom met volledige tractie. Geen rol, geen 45°, geen straf. Dit is de enige optie in de lijst die geen grip inruilt voor vrijheid.
- Acht motoren, acht encoders, slipringen of kabelbeheer, en een regelprobleem met echte singulariteiten. Ongeveer vier keer het werk van mecanum voor een robot die dezelfde drie dingen doet, sneller en harder.
De vergelijking, eerlijk
De snelheden zijn gegeven tegen de eigen topsnelheid recht vooruit van elke aandrijflijn, behalve de rij “per wiel snelheid”, die ze alle op dezelfde motoren en wielen vergelijkt.
| Differentieel | Omni X-drive | Mecanum | Swerve | |
|---|---|---|---|---|
| Holonoom | Nee | Ja | Ja | Ja |
| Motoren | 2 | 4 | 4 | 8 |
| Snelheid zijwaarts | — | 100% | 100% | 100% |
| Snelheid diagonaal | — | 71% | 71% | 100% |
| Vooruitsnelheid per wiel snelheid | 100% | 141% | 100% | 100% |
| Tractie tegenover gewone wielen | 100% | 71%, en slechter rubber | 71% vóór rolrubber | ~100% |
| Terrein | Goed | Alleen vlak | Alleen vlak | Goed |
| Odometrie van de aandrijfwielen | Redelijk | Slecht | Slecht | Redelijk |
| Inbouw | Makkelijk | Omslachtig | Makkelijk | Moeilijk |
| Kosten en bouwtijd | ★ | ★★ | ★★ | ★★★★★ |
Alleen swerve ontkomt aan de ruit: omdat hij elk wiel dezelfde kant op kan richten, vormen zijn bereikbare snelheden een volledige cirkel, dus geen enkele richting kost iets. Elke rolgebaseerde aandrijflijn koopt zijwaartse beweging met een krachtvector op 45° en betaalt dezelfde √2 twee keer.
Kiezen
Een kort beslispad dat het meestal goed heeft:
- Moet hij zijwaarts kunnen, of een koers vasthouden tijdens het bewegen? Nee → differentiële aandrijving. Stop hier; je hebt net twee motoren, vier draden en een maand bespaard.
- Is de vloer elke keer vlak, hard en schoon? Nee → differentiële aandrijving, of swerve als het budget onrealistisch is.
- Moet hij iets duwen, slepen of schuiven? Ja → geen mecanum. De 71% geldt vóór je het rolrubber meetelt, en echte mecanumbases verliezen duwpartijen grof.
- Is de inbouw krap, of moet hij eruitzien als een normale robot? Ja → mecanum. Nee → een omni X-drive is eenvoudiger te begrijpen en op dezelfde motoren 1,41× sneller.
- Is dit een wedstrijd waarin iemand je bewust gaat duwen? → swerve, of accepteer dat je geduwd wordt.
Wat holonoom je niet geeft
Drie dingen die mensen verwachten en niet krijgen:
Het geeft je geen betere odometrie. Het geeft je een slechtere. Een rol die slipt doet zijn taak, dus wielencoders op een holonome basis meten het wiel en niet de vloer zelfs nog vaker dan anders. Reserveer vanaf het begin budget voor een IMU, of voor ongedreven dode wielen.
Het neemt de noodzaak om te plannen niet weg. Een holonome robot moet nog steeds om obstakels heen; hij heeft alleen meer manieren. A* op een bezettingsraster en dekkingsplanning werken hetzelfde, en het pad is makkelijker te volgen dan makkelijker te vinden.
Het maakt het niet intuïtief om mee te rijden. Juist het omgekeerde: een mens die een robot met zijwaartse stapjes bestuurt, raakt binnen ongeveer tien seconden kwijt welke kant die op wijst. De oplossing is veldgeoriënteerde regeling, een klein stuk wiskunde dat verplicht is.
Volgende stap
De wiskunde die alle vier de krachtvectoren laat optellen: mecanumwiel-kinematica. Bestuur er daarna één en probeer hem kapot te krijgen in de mecanum drive simulator — de preset met de gladde vloer is de snelste manier om te voelen wat holonome aandrijving werkelijk kost.
Verken de graaf
Onderdeel van deze bouwprojecten
Projecten en leerroutes waarin deze tutorial voorkomt.
Verder lezen