Stap 5: Controle voor robotarm
4.1 mens-computer interactie
Aangezien ESPduino reeds ingebouwde de Telnet-functie, kunnen we ons realiseren de mens-computer interactie, controleren de running-state, huidige positie, de stroomsnelheid en enzovoort, door Telnet. Op hetzelfde moment, kunnen wij het model van het verkeer voor één of meerdere assen en verkeer locatie configureren.
ESPduino verbinding maakt met de draadloze router, PC verbinding kan maken het IP-adres van de ESPduino door Telnet-Tools (zoals SecureCRT). De poort verbinden is 23, die wordt weergegeven in figuur 6.
Door Telnet, kunnen we de controle van de robotarm door
de volgende opdrachten, die als volgt zijn gedefinieerd.
"h": afdrukken van de help-informatie;
"z": laat de axises voor robotarm terug naar nul locatie (dat wil zeggen, de oorspronkelijke standaardlocatie gedefinieerd in de bovenstaande secties), die worden gedefinieerd wanneer wij opgericht naar de D-H-matrix. Dan is de locatie bezwaar na macht, 0 voor elke as, zoals weergegeven in figuur 7.
"p": afdrukken van de huidige stand van de robot
arm, zoals in de volgende afbeelding. De informatie omvat staat, instelling snelheid, huidige hoek voor elke as object hoek en de huidige positie matrix voor de bedieningssleutel einde.
"d": controleren of instellen van de huidige snelheid, waarvan de rang van de snelheid wordt gedefinieerd als 1 ~ 10, waarbij "1" de laagste snelheid en '10' is de snelste snelheid.
"c": houden van de huidige positie voor de bedieningssleutel van het einde en laat bedieningssleutel respectievelijk samen met de x-as, y-as en z-as in Cartesiaanse coördinaten verplaatsen. De unite is mm.
"t": houden van de huidige positie voor de bedieningssleutel en laat bedieningssleutel respectievelijk samen met de x-as, y-as en z-as in de Tool coördinaten verplaatsen. De unite is mm.
"s": single-as beweging. Aan het begin, is elke as op de nul locatie, en de hoek is gedefinieerd als 0, de werkingssfeer is-90 mate ~ 90 graden. De positieve en negatieve wordt bepaald door de regel van de rechterhand.
"w": naar de ontworpen locatie verplaatsen.
"g": controle van de grijper (poot). Bijvoorbeeld, is g:45 bedoeld om te laten de poot hoek van 45 graden open door het besturingselement voor de servo.
Vergelijkbaar met de slimme 3-kleuren LED, DoArm broncode kan worden verstrekt web configuratie en OTA bijgewerkt functie, zoals weergegeven in figuur 7.
4.2 label en initialisatie
Wanneer u de servo verlengkabel willekeurig op de gedreven bestuur aansluit, ten eerste, we moeten elke as van robot arm is overeenkomt met het kanaal op het gedreven bord, respectievelijk. Bevestig de excursie voor de nul locatie; tot slot bevestigen het toegestaan voortbewegende toepassingsgebied.
(1) bevestigen het zendernummer op het aangedreven bord voor elke robotarm
Wanneer u de servo verlengkabel op de gedreven bestuur aansluit, is het zeer moeilijk te onderscheiden van het getal dat overeenkomt met het kanaalnummer op het bord. Dus, we gewoon invoegen de servo verlengkabel op het bord willekeurig, zoals weergegeven in figuur 8.
Figuur 8 Servo verlengkabel op het gedreven bord
In de broncode, laat de functie initParseData() instellen van de bias [6] als {0,0,0,0,0,0}, en de bewegende scope voor elk zwaartepunt binnen-90 ° ~ 90 °.
Bias afstand voor elke as verplaatsen
zweven bias [6] = {0, 0, 0, 0, 0, 0};
arm.setServoBias (bias, 6);
ruimte voor elke as verplaatsen
arm.setServoRange (-90, 90,-90, 90,-90, 90,-90, 90,-90, 90,-90, 90,);
laat arm.setChannel() worden de werkelijke toegang-kanaal. Zoals aangetoond in figuur 8, het kanaal van toegang is 1,3,4,9,11,13, respectievelijk, dan laat
arm.setChannel (1, 3, 4, 9, 11, 13);
Compileren van de code en het downloaden van ESPduino, de mens-computer-interface openen met behulp van Telnet, gebruik van de opdracht "s:x, y" om te bevestigen de bijbehorende relatie voor elk zwaartepunt. Bijvoorbeeld,
Met behulp van "s:1, 10", laat zwaartepunt 5 zet, waarna kanaal "1" schrijven in de 5e as;
Met behulp van "s:2, 10", laat as 6 verplaatsen, en vervolgens kanaal "3" schrijven in de 6de as;
Met behulp van "s:3, 10", laat as 4 zet, waarna kanaal "4" schrijven in de 4e as;
Met behulp van "s:4, 10", laat as 2 beweging, en vervolgens kanaal "9" schrijven in de 2de as;
Met behulp van "s:5, 10", laat zwaartepunt 1 beweging, en vervolgens kanaal "11" het schrijven in de 1e as;
Met behulp van "s:6, 10", laat zwaartepunt 3 beweging, en vervolgens kanaal "13" schrijven in de 3e as;
Vervolgens kunnen we de uiteindelijke juiste bijbehorende relatie tussen de as voor de robotarm en het kanaal op de gedreven bestuur, zoals in de volgende functie.
arm.setChannel (11, 9, 13, 4, 1, 3);
Aangezien de gripper slechts een is, laat het invoegen van een niet-actieve kanaal en stel deze toepassing door
arm. setGripperChannel () 。
instellen van het kanaalnummer voor de grijper
arm.setGripperChannel(14);
(2) bevestigen de excursie (voor de nul locatie van de elke as)
Na bevestigen dat de bijbehorende relatie tussen de as en het kanaal, de source code is nodig om opnieuw gecompileerd en downloaden naar de ESPduino opnieuw uit te voeren. We kunnen de excursie bias voor elk zwaartepunt bevestigen met behulp van de opdracht Telnet.
Ten eerste is de snelheid als de laagste rang, de opdracht set d:1, 1
Figuur 9 instellen de laagste rang van de snelheid
Vervolgens, met behulp van "s:x, y" te laten enkele as om de nul locatie verplaatsen. In het algemeen, de nul locatie (middellange locatie) o. gebruiken is "s:x, y" om te bevestigen of de as op nul locatie ligt. Als niet, vervolgens opdracht "s" te laten deze as naar nul locatie. "S:1, 65" wordt bijvoorbeeld aangegeven dat deze as verplaatsen van 65 graden moet om de nul locatie. In dit geval wordt de opdracht als volgt vermeld.
excursie voor middelgrote locatie
zweven bias [6] = {65, 5 -8, 5, 0, 0};
arm.setServoBias (bias, 6);
Vervolgens na compilatie, zal de robotarm automatisch worden hersteld naar de nul locatie, zoals in figuur 10.
Figuur 10 DoArm op de beginstatus
(3) bevestigen de bewegende scope voor elk zwaartepunt
Na bevestiging voor nul locatie, we kunnen bevestigen het bewegende toepassingsgebied voor elke as met behulp van "s:x, y" met Telnet mens-computer interactie. Vanwege de beperkingen, het toepassingsgebied van de hoek voor servo is ingesteld als-90 ° defaultly ~ 90 °. In dit geval is het bewegende toepassingsgebied als volgt. Merk op dat, als het bewegende toepassingsgebied wordt overtroffen, wordt de servo zou worden gestopt.
in dit geval ruimte voor elke as verplaatsen
arm.setServoRange (-90, 30 -30, 60, -40, 35,-90, 90, -50, 90, -80, 80);
(4) controle voor grijper
Het besturingselement axises voor grijper los op de andere 6 staat, zodat we "g:x" commando gebruiken kunnen om te controleren de grijper, zoals weergegeven in figuur 11.
(a) standpunt voor grijper op 0 graden
(b) positie voor grijper op 20 graden
(c) positie voor grijper op 45 graden
Figuur 11 controle voor grijper
4.3 interne asbesturing
In de Telnet-interface, wij "s:x, y" opdracht kunt bepalen van de enkele as, waar x duidt de ontworpen bewegende as, toepassingsgebied is 1 ~ 6; y geeft de absolute hoek, het toepassingsgebied is toegestaan op grond van elke as met float type. Na elke actie, kan de huidige status voor robotarm automatisch worden weergegeven.
Figuur 12 de output voor enkele as verkeer
4.4 gezamenlijk controle
Gezamenlijk geeft controle dat de 6 axises verkeer op hetzelfde moment. Het heeft 3 standen: 1. verkeer blijft door de vaste locatie; 2. verkeer van einde bedieningssleutel in de cartesiaanse coördinaten; 3. verplaatsing van einde bedieningssleutel in het hulpprogramma coördineert.
(1) blijft verkeer door de vaste locatie
Wij bieden de methoden arm.setWaitPosition () en de arm.gotoWaitPosition(), die is vastgesteld de vaste locatie, en zet op deze plaats, respectievelijk. Wij bieden in onze broncode, de broncode voor 9 gezamenlijk controleren. DoArm kan worden verplaatst door "w:x", waarbij "x" staat voor 0 ~ 8. Vooral de opdracht "w:9" kunt beginnen 9 blijven bewegingen. Deze video is te zien op:
http://v.Youku.com/v_show/id_XMTQ5ODk0NzEyMA==.html?from=Y1.7-1.2
(2) beweging van eind bedieningssleutel in de Cartesische coördinaten
De omgekeerde cinematica functie calcReverseKinematics() kan worden verstrekt voor het berekenen van de ontworpen positie of omgekeerde hoek voor de robot arm einde actuator. Vooral, biedt Telnet interactie de opdracht samen met x, y, z-as in de cartesiaanse coördinaten; dat wil zeggen, "c:x, y, z", waarbij x, y, z, duidt de prijs samen met x, y en z-as met verenigen mm type zweven.
Bijvoorbeeld, als laat eindigen actuator 20mm samen met de z-as te verplaatsen, de opdracht is "c:0, 0, 20", en vervolgens terug te keren "c:0, 0, -20". De robotarm zou 20mm verplaatsen in verticale richting, en verplaats vervolgens 20mm in de omgekeerde richting. Tot slot, de arm zou terugkeren naar de oorspronkelijke locatie. Op dit moment is de locatie nul. Toen kreeg de opdracht "c:0, 0, 20", is de locatie (0.000,2.358,-11.361,0.000,9.003,0.000); Hierna voert de opdracht "c:0, 0, -20", de locatie is (0.000,-0.000, 0.000, 0.000,-0.000, 0.000), zoals afgebeeld in figuur 13.
Figuur 13 beweging in Cartesiaanse coördinaten
(3) beweging van eind bedieningssleutel in Tool coördinaten
Vergelijkbaar met de beweging in de cartesiaanse coördinaten, het verschil is dat de actuator in de coördinaten van de Tool beweegt (overeenkomend met de O6). De opdracht is "t:x, y, z", waarbij x, y, z zijn de increasements samen met de x, y, z-as met mm verenigen en type zweven.
Bijvoorbeeld, laat de bedieningssleutel van de eind 20mm aan de initiële status samen met X-as bewegen. De opdracht is "t:20, 0, 0", en terugkeer naar de oorspronkelijke locatie is "t:-20,0,0". Vervolgens zou de bedieningssleutel einde worden in de eerste 20mm langs met x-as te verplaatsen, en vervolgens gemakkelijk teruggaan 20mm door de omgekeerde richting. We kunnen het analyseren van de resultaten in de Telnet-interface. Vanaf de eerste locatie 0.000, toen kreeg de opdracht "t:20, 0, 0", is de locatie (0.000,2.358,-11.361,0.000,9.003,0.000); Daarna voert de opdracht "t:-20,0,0", is de locatie (0.000,-0.000, 0.000, 0.000,-0.000, 0.000).
Figuur 14 beweging in het hulpprogramma coördineert