Muchas gracias por tu trabajo, aprecio bastante que puedas compartir contenido valioso e importante de robótica. Sería aún más increíble si es que me pudieras compartir el software que haz usado para lograr este tipo de movimiento, realmente aprecio lo que haces, muchas gracias
Hola Gabriel, el código mostraba los resultados en el monitor serie, lamentablemente ya no tenemos el código debido a un problema que tuvimos con el PC :(
Hola! Good work! Did you only use Arduino for this project or did you use Matlab too? Can you share/upload the code you used for inverse kinematics (CIManipulador2.ino) ? Thank you!
Si te ha servido este vídeo. no te pierdas ninguno!
Suscribete YAAA:
👉 👉 bit.ly/latamecatronica
buena explicacion bro! serias amable de brindarme tu codigo?
Muchas gracias por tu trabajo, aprecio bastante que puedas compartir contenido valioso e importante de robótica. Sería aún más increíble si es que me pudieras compartir el software que haz usado para lograr este tipo de movimiento, realmente aprecio lo que haces, muchas gracias
consulta, este codigo te muestra las ecuaciones en el Monitor serie. gracias muy buen video.
Hola Gabriel, el código mostraba los resultados en el monitor serie, lamentablemente ya no tenemos el código debido a un problema que tuvimos con el PC :(
Fantástico, me encantó el trabajo, podrías ser amable de facilitar el código?
Hola! Good work! Did you only use Arduino for this project or did you use Matlab too?
Can you share/upload the code you used for inverse kinematics (CIManipulador2.ino) ? Thank you!
no tendras el codigo bro? eres un capo.
te comparto el código, no lo puedo probar pero si tuvieras algún detalle coméntame y lo tratare de resolver
#include //
#include
byte posicion =0;
//posiciones finales en el espacio
float px=0;
float py=0;
float pz=0;
// parametros para calculo de cinematica
float q1real;
float q2real;
float q3real;
float q1;
float q2;
float q3;
int num2;
int raiznumq3;
float cq3;
float cosq3num;
float cosq3den;
float Beta;
float numx;
float denx;
float x;
float y;
float r;
//longitud de las articulaciones
float D11 = 9.5;
float D12 = 10.5;
float D13 = 11.5;
Servo s1;
Servo s2;
Servo s3;
Servo s4;
void setup(){
s1.attach(2);
s2.attach(3);
s3.attach(4);
s4.attach(5);
//pocicion inicial manupuladores
s1.write(90);
delay(1000);
s2.write(90);
delay(1000);
s3.write(90);
delay(1000);
s4.write(90);
delay(1000);
//_________________________
Serial.begin(9600);
Serial.println("cinematica inversa");
Serial.println("pocivion px");
Serial.print("Px=");
Serial.println(px);
Serial.println("pocision py");
Serial.print("Py=");
Serial.println(py);
Serial.println("pocision pz");
Serial.print("Pz=");
Serial.println (pz);
Serial.println ("");
//calculo cinematica inv
q1=atan(py/px)*(180/3.1416);
q1real=q1+90;
Serial.print("Angulo q1=");
Serial.println(q1); //_-------------- final
r=sqrt(px*px)+(py*py);
cosq3num= (r*r)+((pz+D11)*(pz+D11))-((D12)*(D12))-((D13)*(D13));
cosq3den=(2*D12*D13);
cq3=cosq3num/cosq3den;
q3=atan(sqrt(1-(cq3*cq3)/cq3))*(180/3.1416);
Serial.print("Angulo q3=");
Serial.println(q3);//_-------------- final
Beta=atan(pz-D11)/(r)*(180/3.1416);
Serial.print("Beta=");
Serial.println(Beta);
numx=(D13*sin(q3*(180/3.1416)));
denx=(D12+D13*cos(q3*(180/3.1416)));
x=atan(numx/denx)*(180/3.1416);
Serial.print("x:");
Serial.println(x);
q2=Beta-x;
Serial.print("Angulo q2=");
Serial.println(q2);//_-------------- final
q2real=q2+90;
q3real=q3+90;
delay(50);
Serial.println("-q1 Real-");
Serial.print("q1 Real=");
Serial.println(q1real);
Serial.println("-q2 Real-");
Serial.print("q2 Real=");
Serial.println(q2real);
Serial.println("-q3 Real-");
Serial.print("q3 Rea=l");
Serial.println(q3real);
}
void loop () {}
muy bueno, como llegaste
al codigo?. lo podrias compartir.
si te lo compartio?
@@jorgeluismarquezl.5583 si lo conseguiste? jajaja ocupo hacer lo mismo
Muy buen trabajo, crees que puedas compartirme tu código?
en q1 porque le sumas +90°
Magnifico trabajo, si pudieras compartirme el programa (Código) te lo agredecería mucho; saludos cordiales.
aqui esta el codigo
#include //
#include
byte posicion =0;
//posiciones finales en el espacio
float px=0;//tota
float py=11.5;
float pz=20;
// parametros para calculo de cinematica
float q1real;
float q2real;
float q3real;
float q1;
float q2;
float q3;
int num2;
int raiznumq3;
float cq3;
float cosq3num;
float cosq3den;
float Beta;
float numx;
float denx;
float x;
float y;
float r;
//longitud de las articulaciones
float D11 = 9.5;
float D12 = 10.5;
float D13 = 11.5;
Servo s1;
Servo s2;
Servo s3;
Servo s4;
void setup(){
s1.attach(2);
s2.attach(3);
s3.attach(4);
s4.attach(5);
//pocicion inicial manupuladores
s1.write(90);
delay(1000);
s2.write(90);
delay(1000);
s3.write(90);
delay(1000);
s4.write(90);
delay(1000);
//_________________________
Serial.begin(9600);
Serial.println("cinematica inversa");
Serial.println("pocivion px");
Serial.print("Px=");
Serial.println(px);
Serial.println("pocision py");
Serial.print("Py=");
Serial.println(py);
Serial.println("pocision pz");
Serial.print("Pz=");
Serial.println (pz);
Serial.println ("");
//calculo cinematica inv
q1=atan(py/px)*(180/3.1416);
q1real=q1+90;
Serial.print("Angulo q1=");
Serial.println(q1); //_-------------- final
r=sqrt(px*px)+(py*py);
//cos q3 = ((px*px)+(py*py))+((pz+D11)*(pz+D11))-((D12)*(D12))-((D13)*(D13)); referencia de lo que es cos q3
q3=atan(sqrt(1-((((px*px)+(py*py))+((pz+D11)*(pz+D11))-((D12)*(D12))-((D13)*(D13)))/(2*D12*D13)*(((px*px)+(py*py))+((pz+D11)*(pz+D11))-((D12)*(D12))-((D13)*(D13)))/(2*D12*D13))/(((px*px)+(py*py))+((pz+D11)*(pz+D11))-((D12)*(D12))-((D13)*(D13)))/(2*D12*D13)));//formula q3=atan(sqrt(1-(cos q3*cosq3)/cos q3))
Serial.print("Angulo q3=");
Serial.println(q3);//_-------------- final
Beta=atan(pz-D11)/(r)*(180/3.1416);
Serial.print("Beta=");
Serial.println(Beta);
numx=(D13*sin(q3*(180/3.1416)));
denx=(D12+D13*cos(q3*(180/3.1416)));
x=atan(numx/denx)*(180/3.1416);
Serial.print("x:");
Serial.println(x);
q2=Beta-x;
Serial.print("Angulo q2=");
Serial.println(q2);//_-------------- final
q2real=q2+90;
q3real=q3+90;
delay(50);
Serial.println("-q1 Real-");
Serial.print("q1 Real=");
Serial.println(q1real);
Serial.println("-q2 Real-");
Serial.print("q2 Real=");
Serial.println(q2real);
Serial.println("-q3 Real-");
Serial.print("q3 Rea=l");
Serial.println(q3real);
}
void loop () {}