Component · Chassis
Mecanum-wheelset
Het wiel dat onder 45° duwt. Welke van de vier linkshandig is, de X-controle die verkeerde montage opspoort en de tractie die je inruilt voor zijwaarts bewegen.
Wat het is
Een Mecanum-wiel is een gewoon wiel met een ring van vrij draaiende roljes rond de rand, elk met een as op 45° ten opzichte van de eigen wielas. Bengt Ilon patenteerde het in 1972 bij het Zweedse bedrijf Mecanum AB, waar de naam vandaan komt, en magazijnrobots gebruiken het sindsdien stilletjes.
Het gevolg van die 45° is het hele verhaal. Een normaal wiel kan alleen duwen langs de richting waarin het rolt. Een Mecanum-wiel kan alleen duwen langs de as van zijn rolje — omdat het rolje in elke andere richting vrij draait en daar eenvoudig geen kracht op overbrengt. De grondkracht van één Mecanum-wiel staat daardoor permanent op 45° ten opzichte van het chassis, ongeacht wat de motor doet.
Eén zo’n wiel is nutteloos. Vier wielen, met twee linkervarianten en twee rechtervarianten, geven je vier krachtvectoren op afwisselende 45°-hoeken, en de som van vier vectoren kan overal op de vloer wijzen en een draaiing bevatten. Dat is een holonome basis: drie bestuurbare vrijheidsgraden — vooruit, zijwaarts, rotatie — met vier gewone motoren zonder stuurhoek.
Linkervarianten en rechtervarianten, en waarom die niet optioneel zijn
Mecanum-wheels bestaan in twee spiegelbeeldvarianten, meestal verkocht als linkervariant (A) en rechtervariant (B), of alleen met L en R op de naaf. Een robot heeft twee van elke nodig, met dezelfde variant op beide diagonale hoeken:
| Hoek | Wielvariant | Krachtvector van boven gezien |
|---|---|---|
| Links voor | Linkervariant (A) | Wijst vooruit-rechts wanneer het wiel vooruit rijdt |
| Rechts voor | Rechtervariant (B) | Wijst vooruit-links |
| Links achter | Rechtervariant (B) | Wijst vooruit-links |
| Rechts achter | Linkervariant (A) | Wijst vooruit-rechts |
Aan beide diagonale hoeken hoort dezelfde wielvariant. Vier wielen van dezelfde variant kopen is een echte en veelvoorkomende fout — een “set van vier Mecanum-wheels” van een goede verkoper bevat twee van elke, maar twee losse wielen die apart worden besteld bevatten dat vaak niet.
De X-controle
De betrouwbare test vergt helemaal geen markeringen.
- Zet de robot met de wielen naar beneden op de werkbank.
- Ga erboven staan en kijk recht naar beneden.
- Volg op elk wiel de lijn van de roljes die je bovenop ziet.
- Die vier lijnen moeten naar het midden van de robot wijzen en een X vormen.
Als ze een ruit (een O) vormen, verwissel dan twee wielen diagonaal en controleer opnieuw.
Eén subtiliteit waarover mensen struikelen als ze proberen het te redeneren in plaats van te kijken: de roljes die je bovenop ziet, zijn gespiegeld ten opzichte van de roljes die de vloer raken, omdat een rolje bovenop het wiel hetzelfde rolje is dat een halve omwenteling verderop zit. De roljes die duwen wijzen de andere kant op. Dat maakt niet uit — de X die je ziet blijft de juiste test, en iedereen gebruikt die precies omdat je hem kunt zien.
Vier wielen aansluiten op een Arduino
Mecanum is een aandrijflijn met vier motoren, dus één L298N is niet genoeg. Gebruik twee dubbele H-bruggen, of één bord met vier kanalen:
| Wiel | Motordriver | Richtingspinnen | PWM-pin | Encoder A/B |
|---|---|---|---|---|
| Links voor | Motordriver 1, kanaal A | 2, 4 | 3 | 18, 30 |
| Rechts voor | Motordriver 1, kanaal B | 7, 8 | 5 | 19, 31 |
| Links achter | Motordriver 2, kanaal A | 24, 26 | 6 | 20, 32 |
| Rechts achter | Motordriver 2, kanaal B | 28, 22 | 11 | 21, 33 |
Twee details die problemen geven:
- Vier PWM-kanalen die één timer delen werken niet allemaal. Op een Uno zijn er zes PWM-pins verdeeld over drie timers, en de Servo-bibliotheek of
tone()neemt er een in. Een Mega of een ESP32 maakt dit een niet-probleem; controleer op een Uno de timerindeling voordat je soldeert. - Vier encoders vragen vier interrupt-pinnen. Een Uno heeft er twee. Dit is de meest voorkomende reden dat een Mecanum-ontwerp op een Mega 2560 of ESP32 eindigt.
Minimaal werkende code
De inverse kinematica bestaat uit vier regels. Al het andere is bedrading en aansluitingen.
// Mecanum inverse kinematics: a chassis command in, four wheel speeds out.
// x is forward, y is to the robot's LEFT, omega is counter-clockwise.
const float LX = 0.075; // half the wheelbase, m
const float LY = 0.085; // half the track, m
const float K = LX + LY; // the only place geometry enters
void driveMecanum(float vx, float vy, float omega) {
float fl = vx - vy - K * omega;
float fr = vx + vy + K * omega;
float rl = vx + vy - K * omega;
float rr = vx - vy + K * omega;
// Scale, do not clip. Clipping each wheel on its own keeps the speed and
// throws the direction away, which is a bug you will chase for a week.
float peak = max(max(fabs(fl), fabs(fr)), max(fabs(rl), fabs(rr)));
if (peak > V_MAX) {
float s = V_MAX / peak;
fl *= s; fr *= s; rl *= s; rr *= s;
}
setWheel(FL, fl); setWheel(FR, fr);
setWheel(RL, rl); setWheel(RR, rr);
}
setWheel() is de plek waar de snelheidsregeling zit, als je die hebt. In een open lus is het alleen een PWM-schrijfactie, en een open-lus-Mecanum-aandrijving verliest vanzelf haar koers — zie de snelheid van de wielen in een gesloten lus regelen.
De getallen die ertoe doen
Drie getallen, en alle drie komen ze voort uit de geometrie en niet uit iets dat je kunt kopen.
| Grootheid | Mecanum | Gewone wielen | Waarom |
|---|---|---|---|
| Tractie recht vooruit | 71% (1/√2) | 100% | Wrijving begrenst de volledige 45°-krachtvector; alleen de voorwaartse component verplaatst je |
| Acceleratiegrens bij μ = 0.85 | 5,9 m/s² | 8,3 m/s² | Dezelfde verhouding, en de massa van de robot valt in beide gevallen weg |
| Maximale diagonale snelheid | 71% van de maximale wielsnelheid | n.v.t. | Een 45°-commando vraagt twee wielen om alles te doen en twee om niets |
| Vrijheidsgraden | 3 | 2 | Waar je ze voor koopt |
Die laatste rij is wat je betaalt. De eerste drie zijn de rekening.
Problemen oplossen
| Klacht | Oorzaak | Oplossing |
|---|---|---|
| Vooruit werkt, zijwaarts boogt en draait | Een wiel in de verkeerde hoek | Doe de X-controle; verwissel twee wielen diagonaal |
| Beweegt de robot bij zijwaartse beweging de verkeerde kant op | Alle vier de wielen gespiegeld — de X is binnenstebuiten | Verwissel het linkerpaar met het rechterpaar |
| Drift op een lange rechte lijn iets naar één kant | Motoren komen onder belasting niet overeen | Gebruik voor elk wiel een gesloten snelheidsregeling, of lijk de motoren op elkaar af en kalibreer ze |
| Diagonaal is veel langzamer dan vooruit | Werkt zoals ontworpen, geen fout | De grens van 1/√2; verhoog de topsnelheid of gebruik geen diagonalen |
| Robot schokt en piept bij zijwaarts bewegen | Roljes slippen in plaats van te rollen — te veel grip, te weinig belasting of een vastgelopen rolje | Draai elk rolje met de hand; elk moet vrij kunnen draaien |
| Odometrie is goed vooruit, hopeloos zijwaarts | De roljes slippen per ontwerp, dus de encoder meet niet de vloer | Voeg een IMU toe voor de koers en hulpwielen zonder aandrijving voor de positie |
| Een hoek klinkt anders dan de andere | Het lager van een rolje is bezweken | Vervang het rolje; een vastgelopen rolje maakt van die hoek een gewoon wiel dat 45° scheef staat |
Mecanum of de alternatieven?
| Optie | Beweegt zijwaarts | Duwkracht | Terrein | Kosten en complexiteit |
|---|---|---|---|---|
| Mecanum, 4 motoren | Ja, elke richting, elke koers | Slecht — slechts 71% van de duwkracht, vóór de extra rolweerstand | Alleen vlakke, harde vloeren | 4 motoren, 4 motordrivers, 4 encoders |
| Omni-wheels in X, 4 motoren | Ja — dezelfde ruitvormige ruimte, 45° gedraaid en √2 hoger | Slecht, en √2 minder kracht voor die snelheid | Alleen vlakke vloeren | Zelfde aantal motoren, omslachtig in te pakken |
| Differentiële aandrijving, 2 motoren | Nee — moet eerst draaien | Beste met dezelfde wielen | Verwerkt veel meer | 2 motoren, goedkoop, eenvoudig, robuust |
| Swerve, 8 motoren | Ja, met volledige tractie | Uitstekend | Goed | Vier keer het werk en de kosten |
Kort gezegd: een Mecanum-basis is het juiste antwoord wanneer de vloer vlak en schoon is, de ruimte krap is en de robot tijdens het bewegen zijn koers moet vasthouden — een magazijngang, een wedstrijdveld, een cameraplatform. Het is het verkeerde antwoord wanneer de robot moet duwen, klimmen of alleen op basis van de wielen precies moet weten waar hij is.
Waar het wordt gebruikt
Plaats deze onder een chassis en je bouwt de Mecanum-omnidirectionele robot. Voordat je metaal snijdt, besteed je twintig minuten aan de Mecanum-aandrijfsimulator — daar kost een wiel in de verkeerde variant niets, en juist die fout maak je het vaakst.
Verken de graaf
Gebruikt in deze bouwprojecten
Projecten, leerroutes en simulators waarin de Mecanum-wheelset voorkomt.
Vergelijken
Alternatieven
Vragen
FAQ over de Mecanum-wheelset
Hoe weet ik welke wielvariant waar hoort?
Zet de robot op de werkbank, ga erboven staan en kijk recht naar beneden. Volg de lijn van de roljes die je aan de bovenkant van elk wiel ziet. Bij een correct gebouwde basis wijzen die vier lijnen naar het midden van de robot en vormen ze samen een X. Als ze een ruit (een O) vormen, staan twee wielen in de verkeerde hoeken. Deze controle duurt vijf seconden, vergt geen markeringen en vindt de meest voorkomende fout bij het bouwen van een Mecanum-chassis. L- en R-stempels op de naaf helpen, maar de X-controle is waarop je vertrouwt, omdat die test wat er werkelijk toe doet.
Wat gebeurt er als één Mecanum-wiel verkeerd is gemonteerd?
De robot rijdt nog steeds, en juist dat maakt het zo verwarrend. Vooruit en achteruit lijken normaal omdat de zijwaartse componenten elkaar nog steeds grotendeels opheffen. Het zijwaartse rijden gaat mis: een verkeerd geplaatst wiel van de verkeerde variant duwt dwars op het commando in plaats van ernaartoe, waardoor een zijwaarts commando uitkomt als een langzame bocht met een draai erin. In de simulator eindigt een zijwaartse rechthoek die met vier goede wielen op 17 mm sluit, met één wiel in de verkeerde variant meer dan een meter verderop en tientallen graden gedraaid. Er staat niets verkeerd in de code, en geen hoeveelheid PID-afstelling die dat oplost. Op een echte robot herken je dit aan de restwaarde van de encoder, die van nul naar ongeveer 0,28 gaat en daar blijft.
Hebben Mecanum-wheels encoders nodig?
Ze hebben er meer behoefte aan dan een robot met differentiële aandrijving, maar halen er minder uit. Meer, omdat alle vier de wielen hun snelheidsverhoudingen moeten vasthouden zodat de robot gaat waar hij heen wijst, en een motor die onder belasting in snelheid terugvalt stuurt je stilletjes uit de koers. Minder, omdat de roljes per ontwerp slippen, dus een wielencoder meet het wiel en niet de grond — de zijwaartse component van je odometrie is het minst betrouwbare getal op de robot. Serieuze Mecanum-ontwerpen houden encoders voor de snelheidsregeling en voegen een IMU of ongedreven omni-hulpwielen toe voor de positie.
Waarom is mijn Mecanum-robot zo makkelijk te duwen?
Omdat een Mecanum-wiel alleen grip langs de as van zijn rolje kan pakken, en die as staat op 45° ten opzichte van de richting waarin je wilt bewegen. Wrijving begrenst de hele krachtvector, maar alleen de component langs de rolrichting verplaatst de robot — je krijgt dus 1/√2, oftewel slechts 71% van de duwkracht, vóór de extra rolweerstand, tegenover de tractie die dezelfde robot op dezelfde vloer met gewone wielen zou krijgen. Rubberen roljes hebben meestal meer grip dan dat klinkt, maar de geometrische beperking is reëel en geen instelling maakt haar ongedaan. Als stevig duwen het doel is, gebruik dan geen Mecanum-wheels.
Kan ik Mecanum-wheels op tapijt of buiten gebruiken?
Tapijt werkt, maar eet snelheid en nauwkeurigheid op: de roljes graven zich in plaats van te glijden, waardoor zijwaartse beweging ruisachtig wordt en de odometrie slechter. Buiten kan niet. Grind, gras en alles met een randje laten een rolje vastlopen of stoppen het volledig, en een vastgelopen rolje maakt van die hoek een gewoon wiel dat 45° scheef staat — opnieuw de fout van een wiel in de verkeerde variant, maar dan af en toe. Mecanum-wheels zijn voor vlakke, harde, schone vloeren, precies waar magazijnen en wedstrijdvelden zijn.
Hoeveel motoren heeft een Mecanum-robot nodig?
Vier, één per wiel, elk onafhankelijk in beide richtingen bestuurbaar. Een Mecanum-aandrijving met twee motoren bestaat niet — het hele mechanisme bestaat uit vier krachtvectoren die opleveren wat je hebt gevraagd, en twee wielen aan één motor koppelen haalt er twee daarvan weg. Dat betekent vier H-brugkanalen, vier sets encoderdraden als je een snelheidsregeling wilt, en een stroombudget voor vier motoren in plaats van voor twee.
Verder lezen