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.

Twee gestapelde grafieken tegen de vingeraplengte van 10 tot 60 millimeter. De bovenste grafiek heeft twee verticale assen: een cyaankleurige kromme van continue bekkenkracht daalt van 12,5 newton naar 2,1 newton naarmate de arm langer wordt, gemarkeerd op 10,3 newton bij 12 millimeter, 4,1 newton bij 30 en 2,1 newton bij 60; een amberkleurige lijn van vingerverplaatsing per servostap stijgt van ongeveer 0,18 naar 1,05 millimeter. De titel luidt kort koopt kracht en resolutie. De onderste grafiek toont de bekkenopening over een hoornsweep van 120 graden lineair oplopend van ongeveer 21 naar 126 millimeter, met gestreepte referentielijnen op 30 millimeter voor een blok, 44 voor een ei en 65 voor een fles.

De arm is de enige vrije keuze, en hij wordt bepaald door het grootste werkstuk dat je moet omvatten. Kracht en resolutie zijn wat eruit valt — beide beter naarmate de arm korter wordt, en daarom is de afweging bereik en niet sterkte. SVG downloaden

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
Twee gestapelde panelen. Het bovenste is een grafiek van greepkracht in newton tegen bekkensluiting voorbij contact in millimeter voor een geprinte flexuurvinger met 0.35 newton per millimeter. Een rechte, hellende lijn toont de kracht die stijgt met de sluiting; een rood gebied onder 0.29 newton is de glijvloer, een rode gestreepte lijn op 3 newton is de verplettergrens, en het groene gebied daartussen is het bruikbare venster. Een kam van korte verticale streepjes langs de onderste as markeert telkens één servostap, en vijftien daarvan vallen binnen het groene gebied. Het onderste paneel is een horizontale staafdiagram op een logaritmische as van het bruikbare venster in millimeter voor vier vingertypen: star geprint bij 25 newton per millimeter geeft 0.108 millimeter, schuimstuk bij 4 geeft 0.677, veer in serie bij 0.8 geeft 3.386 en geprinte flexuur bij 0.35 geeft 7.739. Een verticale lijn markeert één servostap op 0.524 millimeter, en alleen de star geprinte staaf komt daar niet aan.
Elke keer dezelfde twee krachtmuren; alleen de stijfheid verandert. Onder de lijn van de servostap is er geen commando dat in het venster landt — en dat is waar een starre geprinte vinger staat, met een factor vijf. SVG downloaden

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:

  1. 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.
  2. 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.
  3. Voed de servo uit een eigen voeding, niet uit de regelaor van het bord, met een paar honderd µF in de buurt.
  4. Voeg een mechanische vergrendeling of een over-centrumverbinding toe voor lange vasthoudtijden. Dat is wat productiegrijpers doen, en het verbruikt geen enkele stroom.
  5. 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

  1. L, de arm — bepaald door het breedste werkstuk. Al het andere volgt.
  2. k, de ketelstijfheid — gemeten, door gewichten aan een geprinte testvinger te hangen.
  3. F_crush — gemeten, met een keukenweegschaal en een paar offerstukken.
  4. 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

Verken de graaf

Onderdeel van deze bouwprojecten

Projecten en leerroutes waarin deze tutorial voorkomt.

Verder lezen

Bronnen