Go Down

Topic: braccio robotico- aiuto con il software (Read 363 times) previous topic - next topic

MauMX

ciao ragazzi.. ho da poco realizzato un braccio meccanico. Mi manca ancora la pinza ma volevo cominciare a fargli fare qualche movimento. siccome di cinematica inversa essendo in 4 liceo non so niente ho pensato di copiare il codeice presente a questa pagina: http://www.circuitsathome.com/mcu/robotic-arm-inverse-kinematics-on-arduino mettendo a ulna e humerus i miei valori che sono 200mm per l' Humerus e 150 per l' ulna ma non mi prende l' angolo dell gomito, ciò che invece succede con le misure iniziali, allego le foto del braccio  :)

PaoloP

Verifica che i valori impostati per i servi: servos.setbounds e servos.setposition siano corretti.

Inoltre, ma te ne sarai già accorto, quel codice usa una libreria specifica e non la servo di Arduino --> http://www.renbotics.com/servoshield.php

MauMX

#2
Jul 04, 2013, 05:55 pm Last Edit: Jul 04, 2013, 06:05 pm by MauMX Reason: 1
appunto a me serve solo il calcolo degli angoli...(quello della base va) questo  é il mio codice:
Code: [Select]

float angoloSpalla,angoloGomito,angoloRotazione;
float l1=200;
float l2=150;
void setup()
{
Serial.begin(9600);
}
void loop()
{
  calcoloAngoli(200,200,1);
}
void calcoloAngoli(float x,float y,float z)
{
 float D2,q1,q2,a1,a2,a3;
 angoloRotazione=atan2(x,y);
 angoloRotazione=degrees(angoloRotazione);
 
 
 x=y;
 y=z;
 
 D2=((x*x)+(y*y));
 float D=sqrt(D2);
 float l12=l1*l1;
 float l22=l2*l2;
angoloSpalla=atan2(x,y);
angoloSpalla=acos((l12-l22+D2)/(2*l1*D));
 a1=q1+q2;
 angoloGomito=acos((l12+l22-D2)/(2*l1*l2));
 

 
}

PaoloP

Includi il codice nelle apposite TAG
Punto 7 --> http://forum.arduino.cc/index.php?topic=149082.0

Scusa, ma sono passati lustri dalla laurea, sono un po' arrugginito.  :smiley-sweat:

MauMX

ecco fatto!scusa me ne ero dimenticato  :~

Go Up