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.

  1. Zet de robot met de wielen naar beneden op de werkbank.
  2. Ga erboven staan en kijk recht naar beneden.
  3. Volg op elk wiel de lijn van de roljes die je bovenop ziet.
  4. 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.

Twee bovenaanzichten van dezelfde robot met vier wielen, met de neus naar boven. In het bovenste paneel, getiteld correct, vormen de lijnen een X en is de draaiarm lx plus ly gelijk aan 160 millimeter. De gestippelde cyaan lijnen, verlengd vanaf de zichtbare roljes van elk wiel, kruisen elkaar in het midden van de robot. In het onderste paneel, getiteld onjuist, staat een O en is de draaiarm de absolute waarde van lx min ly gelijk aan 10 millimeter. Dezelfde lijnen vanaf de rood gemarkeerde wielen vormen een ruit om de robot en lopen nooit door het midden. Een bijschrift zegt dat je boven de robot moet staan en de roljes bovenop moet volgen: vier lijnen door het midden die een X vormen, iets anders betekent een paar verwisselen, en de O kost zestien keer de draaikracht, of alles als lx gelijk is aan ly.
De vijf seconden durende bouwcontrole, en het getal erachter. Met de X-opstelling heeft elk wiel een draaiarm van lx + ly; de O geeft |lx − ly| — hier 16× kleiner, en op een vierkant chassis precies nul. SVG downloaden

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

Bronnen