Tutorial · Gevorderd · 30 min
Servogrijperkracht, vastlopen en waarom meegevendheid wint
Een servo bepaalt een positie; je werkstuk heeft het over kracht. De wisselkoers is de stijfheid, en met starre vingers is het venster fijner dan één servostap.
Een eenhedenprobleem, geen afstelprobleem
Dit is de hele moeilijkheid met een hobby-servogrijper, in twee regels:
- Het werkstuk gaat om kracht. Onder een vloer valt het eruit, boven een plafond wordt het vernield.
- De servo neemt een positie.
writeMicroseconds(1300)is een hoek, en de servo houdt die hoek tegen wat het ook kost.
Dat zijn verschillende eenheden, en het ding dat ertussen omzet is de ketelstijfheid van alles tussen het servohoren en het werkstuk — de verbinding, de vinger, het contactstuk, het werkstuk zelf, allemaal in serie. Heeft die keten stijfheid k, dan levert Δc voorbij het eerste contact door de bekken duwen
N = k · Δc
op, en het krachtvenster dat je moet raken, uitgedrukt in de millimeters die je daadwerkelijk kunt aansturen, is
Δc_window = ( F_ceiling − F_floor ) / k
Alles op deze pagina valt uit die ene vergelijking, inclusief de reden dat een stijvere, beter geprinte vinger je grijper slechter maakt.
Wat een servo werkelijk kan onderscheiden
De bruikbare resolutie van een hobbyservo is ongeveer één graad als je rekening houdt met de dode band, de rondgang in de overbrenging en de kwantisatie van wat de puls ook maar opwekt. Die graad wordt via de arm L vingerverplaatsing:
step = L · (π/180)
| Arm | Vingerverplaatsing per stap | Vastloopkracht met een SG90 | Continukracht (≈70%) |
|---|---|---|---|
| 12 mm | 0.209 mm | 14.67 N | 10.27 N |
| 20 mm | 0.349 mm | 8.80 N | 6.16 N |
| 30 mm | 0.524 mm | 5.87 N | 4.11 N |
| 45 mm | 0.785 mm | 3.91 N | 2.74 N |
| 60 mm | 1.047 mm | 2.93 N | 2.05 N |
Twee dingen vallen op. Een korte arm levert beide meer kracht en fijnere resolutie — hij is beter op beide assen die de grijper interest vindt. Wat hij kost is bereik: de vingerverplaatsing over een hoornsweep van θ is nu eenmaal L·θ, dus een arm van 12 mm over 120° opent 25 mm en komt niet om een fles van 65 mm heen.
De arm wordt gekozen door het grootste dat je moet oppakken, en kracht en resolutie zijn wat eruit valt. Wil je bereik en kracht, dan is dat waarvoor een verbinding of een rack bestaat.
En de tweede zaak: een PCA9685 op 12 bits geeft ongeveer 0.09° aanstuurresolutie, wat klinkt alsof dit het probleem oplost. Dat doet het niet. De muur is de dode band en de overbrenging van de servo, niet de pulsbron. Fijnere commando’s leveren gladdere beweging, niet fijnere kracht — dezelfde vorm als microstappen dat volgen in plaats van nauwkeurigheid koopt.
Het venster, gemeten
Zet nu de twee helften samen. Neem een aardbei: 15 g, μ 0.6, verplettering rond 3 N, en een SG90 aan een arm van 30 mm die 4.11 N continu geeft. Bij een lift van 250 mm in 0.9 s is de glijvloer 0.29 N en het plafond min(3, 4.11) = 3 N, dus het krachtvenster is 2.71 N. Deel door de stijfheid:
| Vinger | k | Venster | Tegenover een stap van 0.524 mm | Servoposities die werken |
|---|---|---|---|---|
| Starre geprinte PLA-vinger | 25 N/mm | 0.108 mm | 5× te fijn | 0 |
| Starre vinger, schuimstuk | 4 N/mm | 0.677 mm | net iets breder | 1 |
| Verhuisveer in serie | 0.8 N/mm | 3.386 mm | 6× breder | 7 |
| Geprinte flexuurvinger | 0.35 N/mm | 7.739 mm | 15× breder | 15 |
Het venster schaalt precies als 1/k. 25 gedeeld door 0,35 is eenenzeventig, en 7.739 / 0.108 is ook eenenzeventig. Er zit niets benaderends in, en je kunt de twee getallen tegen elkaar op en neer zien bewegen door de stijfheidschuif in de grijpersimulator te slepen.
Onder één servostap is er geen instelling die werkt. Niet “lastig af te stellen” — er is geen commando-waarde die in het venster landt, en geen firmwarewijziging komt daar. Dit is het nuttigste om te weten voordat je een vinger print.
Waarom werkt dan toch iemands starre grijper?
Omdat hij nooit in het venster landt. Hij schiet over en blijft vastgezet op het eigen krachtplafond van de servo, en dat werkt alleen zolang dat plafond toevallig onder de verpletterkracht van het werkstuk ligt.
Doorloop de werkstukken in de simulator met een starre vinger en de kolom “instellingen die werken” is voor elk ervan nul — en toch worden er vier van de zes prima vastgehouden:
| Werkstuk | Verplettergrens | Wat er met starre vingers gebeurt |
|---|---|---|
| Houten blok | 500 N | vastgehouden — servo zit vast op 4.11 N |
| M6-bout | 2000 N | vastgehouden — servo zit vast |
| Kippenei | 30 N | vastgehouden — servo zit vast |
| PET-fles | 8 N | vastgehouden — servo zit vast |
| Papieren beker | 4 N | verpletterd |
| Aardbei | 3 N | verpletterd |
De servo werkt als een koppeling die je niet hebt ontworpen en niet kunt afstellen. Hij staat op wat τ·0.7/L toevallig is, en alles dat zwakker is wordt vernield.
Dit heeft een echt tegenintuïtief gevolg: een grotere servo maken maakt de grijper slechter. Schuif de vastloopschuif van een SG90 naar een MG996R en de onbedoelde koppeling schuift voorbij de verplettergrens van het ei, en nu breek je die ook. Meer koppelmoment is bijna net zo vaak het verkeerde antwoord op “het laat dingen vallen” als het juiste.
Wat vasthouden door vastlopen kost
Een servo die tegen een werkstuk is vastgezet, is een vastgelopen servo. Hij draait niet, levert dus geen mechanisch vermogen, en alles wat de wikkeling trekt gaat naar warmte.
- Een SG90 trekt bij vastlopen op 4.8 V ongeveer 650–750 mA. Op 70% van het vastloopkoppelmoment duw je nog altijd ongeveer 0.49 A door een motor zonder luchtstroom en met een kunststofkast.
- Ze worden warm in tientallen seconden en gaan in minuten dood. Het gebruikelijke symptoom is een servo die werkt, dan slap en schokkerig wordt, dan gaat zoemen en niets meer doet.
- Een goedkope 5 V-regelaor die er een paar voedt, gaat brown-out, en reset je microcontroller midden in een greep.
Dingen die het verhelpen, ongeveer in volgorde van wat ze je kosten:
- Houd vast wat je niet vast hoeft te houden. Open de grijper op het moment dat het werkstuk is geplaatst. De meest voorkomende bug is een toestandsmachine die de bekken de hele terugreis gesloten houdt op een lege grijper.
- Laat los na het grijpen. Sluit stevig en reduceer daarna het commando met een of twee stappen. Met meegevendheid in serie houd je het meeste van de kracht; zonder die verlies je alles, en dat is nog een argument voor meegevendheid.
- Voed de servo uit een eigen voeding, niet uit de regelaor van het bord, met een paar honderd µF in de buurt.
- Voeg een mechanische vergrendeling of een over-centrumverbinding toe voor lange vasthoudtijden. Dat is wat productiegrijpers doen, en het verbruikt geen enkele stroom.
- Meet de kasttemperatuur met een vinger na een minuut vasthouden. Warm is prima. Te heet om je vinger erop te houden betekent dat je misschien nog een week inschakelduur hebt.
Meegevendheid inbouwen
Meegevendheid is de oplossing voor beide problemen tegelijk — ze opent het venster en haalt de servo van de vastlooppen. Vier manieren om hem te krijgen, goedkoopste eerst:
Een schuim- of TPU-stuk (k ≈ 4 N/mm)
Zelfklevend EVA-schuim, of een geprinte TPU-stuk van 3–4 mm dik. Kost niets, duurt vijf minuten, en brengt je van nul werkbare instellingen naar ongeveer één. Het is de minimaal haalbare oplossing en op zichzelf niet genoeg voor kwetsbaar werk.
Een verhuisveer in serie (k ≈ 0.8 N/mm)
Zet de veer tussen het servohoren en de vinger, met een sleuf en een pen zodat de verbinding uitleg kan nemen. De servo bepaalt nu een veerverbuiging, en dat is een krachtcommando met echte tolerantie. Dit is een reekselastische aktuator gebouwd uit een onderdeel van 40 p, en het is de beste waarde voor je geld in de hele grijper.
De ontwerpregels: kies een veer waarvan de bedrijfsverbuiging je venster dekt (een paar millimeter), bel hem licht voor zodat er bij het eerste contact geen dode zone is, en voeg een harde aanslag toe zodat een doorlopend commando hem niet kan vastklemmen en alsnog het volle vastloopkoppelmoment door de verbinding sturen.
Een geprinte flexuurvinger (k ≈ 0.35 N/mm)
Een vinger met een bewust dunne doorsnede die buigt. Gratis bij het printen, geen extra onderdelen, en hij geeft je van de vier het breedste venster. Print hem in PETG of nylon in plaats van PLA — PLA kruipt onder blijvende belasting en je flexuur neemt binnen enkele weken vasthouden een blijvende vorm aan.
Dikte overheerst: de stijfheid van een gebogen balk gaat met de derde macht van de dikte, dus 2 mm tegenover 1.5 mm is een factor 2.4. Print een teststrookje, hang er bekende gewichten aan, meet de verbuiging, en je hebt binnen tien minuten je k. Dat gemeten getal hoort in de simulator, niet de voorkeur.
Fin-rayvingers
De hele vinger is een vakwerk dat zich om het werkstuk sluit naarmate het belast wordt. Dat geeft je meegevendheid en gedeeltelijke vormsluiting tegelijk, en daarom hebben ze de hobbygrijpers voor onregelmatige werkstukken overgenomen. Lastiger te modelleren — de effectieve stijfheid verandert naarmate de vinger zich sluit — dus meet in plaats van te rekenen.
Wat meegevendheid kost
Hij is niet gratis, en het is de moeite waard eerlijk te zijn over de afweging:
- Nauwkeurigheid in positie van het werkstuk. Het werkstuk belandt waar de meegevendheid het heeft gelegd, niet waar je het beval. Moet je taak het werkstuk tot 0.2 mm plaatsen, dan werkt meegevendheid tegen je in en wil je een stijve grijper met echte krachtmeting.
- Inzettijd. Een zachte vinger blijft naveren na een snelle beweging. Voeg na het sluiten een korte pauze toe voor je optilt, anders meet je het naveren in plaats van de greep.
- Kruip. Alles van kunststof vervormt langzaam onder blijvende belasting. Veren en PETG-flexuren zijn hier veel beter in dan PLA.
- Je kunt het werkstuk niet voelen. Meegevendheid maakt de eigen positie van de servo een slechtere maat voor wat er aan de vingertip gebeurt, dus voor griepdetectie heb je een schakelaar of sensor nodig — zie de pick-and-place-toestandsmachine.
De vier getallen die je nodig hebt voor het printen
L, de arm — bepaald door het breedste werkstuk. Al het andere volgt.k, de ketelstijfheid — gemeten, door gewichten aan een geprinte testvinger te hangen.F_crush— gemeten, met een keukenweegschaal en een paar offerstukken.step = L·(π/180)— rekenwerk.
Controleer daarna of (min(F_crush, τ·0.7/L) − F_floor)/k > step. Klopt dat niet, dan maakt geen firmware die je schrijft de grijper werkend, en de oplossing is altijd k verlagen — nooit het koppelmoment verhogen.
Volgende
- Wrijving, krachtsluiting en waarom twee raakvlakken een gok zijn — de fout die kracht niet kan verhelpen
- Typen robotgrijpers en greepkracht — waar de vloer vandaan komt
- De grijpersimulator — sleep aan de stijfheid en zie het venster schalen als 1/k
- De SG90-servo — het onderdeel dat deze pagina veronderstelt
- Servo’s aansturen met een PCA9685 — wanneer één servo er zes wordt
Verken de graaf
Onderdeel van deze bouwprojecten
Projecten en leerroutes waarin deze tutorial voorkomt.
Verder lezen