Hallo allemaal,
ik heb een oude Asea 5-assige irb62 robotarm op de kop kunnen tikken, waarvan de besturingekast defect is.
Omdat deze kast nogal fors is uitgevallen (325kg) heb ik ervoor gekozen deze te gaan vervangen door een moderne besturing dmv een aantal servo kaarten AX3500 van roboteq.
Deze kaarten zijn uitgerust met RS232 poorten.

Ik ben bezig een routine (VB6) te schijven om deze robotarm aan te kunnen sturen. Hiervoor ben ik op zoek naar formules om van de ene xyz positie naar de volgende xyz positie te gaan in vloeiende beweging.
Wie heeft ervaring hiermee en weet waar ik de benodigde interpolatieformules kan vinden?

Vloeiende beweging:

[1] Lineair (CP),Circulair (CP),PTP.
[2] Positie XYZ en....orientatie (RPY, ZYZ,.....)?
[3] Geen 5-assige CNC software module(n)
van drive leverancier?
[4] Inverse kinematics nodig om de ashoeken te bepalen?
[5] ....

in eerste instantie point to point. Ik heb wel stuurprogramma's voor 5-assige CNC machines, maar deze zijn compleet anders van opbouw.
Besturing in X,Y,Z,a, waarbij de basis, schouder, elleboog en polshoek verrekend moeten kunnen worden.

Groet,
Jules

Hallo Belleblaas,

Mag ik iets vragen, wat voor merk robots programmeer jij.

Vr

Ben geen programmeur maar doe aan meer applicatie ontwikkeling (dedicated applications), ondersteuning van robot programmeurs en eindgebruikers.

Merken: Pansonic, Nachi en Fanuc.

Ontwerp robotcellen en de besturingen hiervoor.

Welding, handling, milling/grinding en wat er op ons pad komt.

Ontwikkeling/testen van nieuwe concepten in industriele robotica.

[Bericht gewijzigd door Belleblaas op ]

Belleblaas,

Bedankt voor je reactie.

Heb jij ook ervaring met het overzetten van Robot programmaas?
Probeer programmaas van een Robot die op console staat over te zetten naar een Robot die op de kop hangt aan een poort.
Is dat mogelijk? Het zijn Reis robots.

Vr.

Ik denk wel dat dit met een Reis kan al zal dit niet eenvoudig zijn.

Jammergenoeg ken ik je applicatie en opstelling niet.

Met elke robot moet dit mogenlijk zijn als de je de juiste tools maar tot je beschikking hebt.

Dit is dus niet enkel afhankelijk van de mechanische constructie van de robot maar van de beschikbare tools erachter.

Natuurlijk is dit nooit een een op een conversie..in de vorm van....druk op de knop en draaien maar (maar let op.. het is soms mogelijk).

Als je echt interesse hebt laat me dit dan weten via dit forum ik denk dat ik je verder kan helpen.

Ik raak nu een beetje de draad kwijt?!?
Wie week waar ik de formules kan vinden om ee robotarm in cartesiaanse coordinaten te besturen?

Op het Internet kwam ik 'robotscript' tegen, maar kan weinig aanvullende info tegen, net zoals een linux distrib waanin het een en andere in mogelijk was, maar hoe??
ortom Wie heeft ervaring in het zelf programmeren, of het besturen van een robotarm, vanaf de basis

Alvast bedankt,
Groet,
Jules

je kan dit door opeenvolgende assenstelsel met hun permutaties in elkaar te supperponeren.

assenstelsel 1 = basis
assenstelsel 2 = draaipunt eerste as

door telkens het nulpunt van het volgende assenstelsel te beschrijving als een vergelijking in het vorige, krijg je na superpositie een stelsel van 3 vgl (x,y,z)

deze beschrijft de coordinaten van het TCP tov vaste ground of referentiepunt

hoe je ze juist opstelt is te lang geleden.

google gaf dit
http://www.ingveh.ulg.ac.be/fr/cours/Notes_de_Cours_Meca_0089/Robotics…

was naar mijn weten zelfs een stuk van een cursus vroeger

[Bericht gewijzigd door Jonathan op ]

Ik heb momenteel geen andere manier op het een en ander uit te leggen...dus maar op deze manier.

Een simpele pad generator.

Begin om het te proberen met een polynoom van de derde graad welke je positie gaat beschrijven of gezette tijdsstippen.

x(t)= p(t)= a0 + a1*t + a2*t2 + a3*t3 [1]

De eerste afgeleide hiervan p(t)' zal is de snelheid.
v(t)= p(t)'= a1 + 2*a2*2t + 3*a3*t2 [2]

De de tweede afgeleide p(t)'' is de acceleratie.
a(t)= p(t)''= 2*a2 + 6*a3*t3 [3]

Als voorbeeld een as welke je uit stilstand van 20 graden naar 40 graden moet draaien in 10 sec.

start positie x(t=0) = 20
eind positie x(t=10) = 40

start snelheid v(t=0) = 0
eind snelheid v(t=10) = 0

Vergelijking [1] invullen met t=0
dan a0 = 20

Vergelijking [2] invullen met t=0 en v(0)=0
dan a1 =0.

Nu de condities voor de eindpositie en de eindsnelheid nog:
p(t=10)-> 40 = 20 + 0 + a2*102 + a3 *103
20 = 100a2 + 1000a3

v(t=10 -> 0 = 20a2 + 3a3*102
0= 20a2 + 300a3

twee vergelijkingen met 2 onbekenden (a2 en a3) oplossen.

resultaat:

a0= 20
a1= 0
a2= 0.6
a3= -0.04

Maak een Excel sheet aan met een kolom tijd [0..10], een kolom positie (vergelijking 1), kolom snelheid (vergelijking 2) en een kolom acceleratie (vergelijking 3).

Het gebruik van de derde graads polynoom legt echter wel beperkingen op..je hebt namelijk niet alle drie de parameters (max.2) in de hand wat kan leiden tot bijv heftige acceleratie pieken.

Volgende stap is dan een vijfde graads polynoom zodat je ook de derde parameter kan sturen.

Let op dat dit systeem op twee manieren kan worden uitgevoerd.

[1] Joint space (ashoek standen)
[2] Operational space (xyz waarden)

Er zal altijd wel inverse kinematics (ashoeken terug rekenen bij xyz positie)moeten worden bedreven maar dat moet met een 5-asser wel te doen zijn)

hallo,

Ik heb even de versie met 5de graads polynoom geprobeerd, maar ik kan deze niet goed oplossen. Ik weet niet hoe ik a2 t/m a5 op moet lossen.
a0 en a1 gaan op dezelfde manier als de 3e graads vergelijking... maar ik weet niet hoe de rest op te lossen.
Ik heb nu namelijk 2 vergelijkingen met 4 onbekenden. Dat is dus niet op te lossen.

wie weet wat ik fout doe??

grt. corne.

P.s. ik heb hetzelfde voorbeeldje gebruikt als hierboven.... dus van 20 naar 40 in 10 sec.

Op 11 juni 2006 20:52:59 schreef Cornee:
hallo,

Ik heb even de versie met 5de graads polynoom geprobeerd, maar ik kan deze niet goed oplossen. Ik weet niet hoe ik a2 t/m a5 op moet lossen.
a0 en a1 gaan op dezelfde manier als de 3e graads vergelijking... maar ik weet niet hoe de rest op te lossen.
Ik heb nu namelijk 2 vergelijkingen met 4 onbekenden. Dat is dus niet op te lossen.

wie weet wat ik fout doe??

grt. corne.

P.s. ik heb hetzelfde voorbeeldje gebruikt als hierboven.... dus van 20 naar 40 in 10 sec.

Je bent niet BoJu he maar toch.

Lees het voorbeeld nog even goed en begrijp de bedoeling.

Door die vijfde graad krijg je de mogelijkheid om de acceleratie op het start en eindpunt te vast te leggen.
Dus uiteindelijk wel degelijk 4 vergelijkingen met vier onbekenden.

Let wel dat de vijfde graads benadering niet meer de meest geoptimaliseerde prestatie index geeft.

Ik heb dit niet allemaal zelf verzonnen hoor.

De derde en vijfde -graad benadering zijn enkel bedoeld als schoolvoorbeelden maar zijn praktish wel toe te passen .

Sorry Belleblaas, ik kan je ook niet meer volgen.
Ja antwoord zal kloppen, maar ik kom tekort aan wiskunde om te begrijpen wat je bedoeld.
Kun je een voorbeeld geven in een aantal formules die ik rechtstreeks kan gebruiken?

Toepassing, ik sta op een huidig XYZ punt en wil naar en ander XYZ punt, in een rechte baan.

Alvast bedankt,
Groet,
Jules

Bedankt bellblaas. Ik heb nu de de 2e afgeleide formule (acceleratie dus) ook 2 waarden gegeven. dit zijn dus de acceleratie en decceleratie. hierdoor elimineer ik parameter a2. Nu houd ik 3 vergelijkingen over met de drie onbekenden a3, a4 , en a5. Dit is dus op te lossen!!

Ik heb onderstaand voorbeeld genomen.:

van 20 graden naar 90 graden draaien in 10 sec.

Dit werd de volgende formule:

x(t) = 20 + t^2 + 0,4t^3 - 0,075t^4 + 0,0032t^5

Deze formule heb ik even geplot in mijn grafische rekenmachine, en er komt een hele mooie kromme uit. Perfect!!! Ik ga dit gebruiken om mijn stappenmotoren in en uit te laten schakelen.

Op 12 juni 2006 09:25:07 schreef Cornee:
Bedankt bellblaas. Ik heb nu de de 2e afgeleide formule (acceleratie dus) ook 2 waarden gegeven. dit zijn dus de acceleratie en decceleratie. hierdoor elimineer ik parameter a2. Nu houd ik 3 vergelijkingen over met de drie onbekenden a3, a4 , en a5. Dit is dus op te lossen!!

Ik heb onderstaand voorbeeld genomen.:

van 20 graden naar 90 graden draaien in 10 sec.

Dit werd de volgende formule:

x(t) = 20 + t^2 + 0,4t^3 - 0,075t^4 + 0,0032t^5

Deze formule heb ik even geplot in mijn grafische rekenmachine, en er komt een hele mooie kromme uit. Perfect!!! Ik ga dit gebruiken om mijn stappenmotoren in en uit te laten schakelen.

Let op......

Dit was een theoretische benadering c.q. oplossing.
Kunnen je motoren de acceleraties en/of deacceleraties aan?

Zoals eerder genoemd zijn er andere (meer toegepaste) snelheids/acceleratie profielen.

Er is meer!!!!

Zoals eerder genoemd zijn er andere (meer toegepaste) snelheids/acceleratie profielen.

wat voor andere profielen bedoel je belleblaas??? en waar staan die... kan ze niet vinden..

Ja, de robot is uitgerust met vijf gelijkstroom motoren met encoders. Voor de aansturing gebruik ik de roboteq 3500AX-kaarten (3x) met encoderingang.
Daarachter zit een vrij forse vertraging en lange stangen die de overbrenging overbrengen van de 'schouders' naar de 'eleboog, pols en hand'
Elke gewicht heeft zijn eigen vrijheden en dus beperkingen.

ASEA specificaties;
Basisrotaties 340gr snelheid 95gr/s
Schouder rotatie +/- 40gr radiale snelheid 0,75M/s
Eleboogrotatie +/- 25gr verticale snelheid 1,1M/s
'wrist'(pols) +/- 90gr 115gr/s
Kopdraaing +/- 180gr 195gr/s

Maximale afwijking 0,2mm

Heb je hier voldoende informatie aan?
Groet,
Jules

Welke profielen bedoel je belleblaas???

kun je aangeven waar dat staat??

Op 11 juni 2006 22:43:45 schreef BoJu:
Sorry Belleblaas, ik kan je ook niet meer volgen.
Ja antwoord zal kloppen, maar ik kom tekort aan wiskunde om te begrijpen wat je bedoeld.
Kun je een voorbeeld geven in een aantal formules die ik rechtstreeks kan gebruiken?

Toepassing, ik sta op een huidig XYZ punt en wil naar en ander XYZ punt, in een rechte baan.

Alvast bedankt,
Groet,
Jules

De formules heb ik gegeven.
Trouwens je had het eerst over een PTP beweging en niet over een rechte lijn. Das heel wat anders.!

Op 13 juni 2006 10:34:05 schreef Cornee:
Welke profielen bedoel je belleblaas???

kun je aangeven waar dat staat??

Sorry staat nergens.

Je moet de resulterende snelheids en acceleratie curven (profielen) eens bekijken en je zelf afvragen of de motor dit leuk gaat vinden.

Verder heb je met de polynoom benadering optimalisering toegepast (te leveren koppel) het resultaat is dan dat je geen controlle over je path snelheid hebt.

Zou je geen constante snelheid willen hebben?
Langzaam versnellen...op snelheid lopen...langzaam vertragen.

[1] rechthoek profiel
[2] trapezium
[3] parabolisch

Ik wil aan de kop van de robotarm een bovenfreesmotor bevestigen en er zo mee gaan frezen. Ik het zowel PtP als baan besturing nodig.
Groet,
Jules