TODOPIC
Mecatrónica => Robótica => Mensaje iniciado por: FlyingVector en 16 de Febrero de 2009, 16:42:13
-
Hola,
Tengo una duda... me descargue la version de microsoft robotics studio de la pagina official, perro todavia no se como es que funciona, alguien me podria orientar un poco o recomendar algun manual de este programa...
básicamente mi intención primordial, por lo que quise probar el programa, es por la capacidad de simular, en mi caso un robot de varias patas con servos en ellas, mi proposito es simular el robot con las ecuaciones que obtuve de la cinemática inversa...
Gracias.
-
y por que no te probas el MARILOU robotic studio :mrgreen:
pegale una ojeada http://www.todopic.com.ar/foros/index.php?topic=19805.msg193520#msg193520
saludos
-
puedo meter ecuaciones?? de manera que los servos respondan a los valores obtenidos por cada iteracion de las ecuaciones.
-
puedo meter ecuaciones?? de manera que los servos respondan a los valores obtenidos por cada iteracion de las ecuaciones.
muy tranquilamente :mrgreen:. yo incluso he utilizado unas toolbox de robotica de MatLab :o. Si te animas a marilou yo te doy una mano en lo que pueda....
:shock: hiciste el modelo cinematico inverso de un hexapodo, quisiera poder ver esas ecuaciones deben ser larguitas... yo una vez hice uno de uno bien simple y me costo bastante y las formulas eran bien grosas :).
Saludos.
-
asi es estoy trabajando en eso....
Las ecuaciones las obtuve a travez de métodos geometricos, habia trabajado con la matriz jacobiana, pero me resulta un poco mas engorroso pasar el metodo al micro, por eso preferí realizar la cinemática por metodos geométricos. Me encontré un ejemplo en un libro y era de un manipulador que tenia similitudes con la pata y de ahi me base un poco. Los resultados ya los simule en MatLab, y ahora estoy buscando un simulador en el que pueda ver como se vera el proyecto... en lo que espero a que lleguen mis muestras de los dsPIC's que pedí a microchip.
en cuanto a las ecuaciones... esta es la función que use para resolver la cinemática inversa en una pata.
esta en Visual Basic es un pedazo de un programa en el que estuve trabajando:
'---------------------------------------------------------------------------------------------
'Por Hector H. Torres O. 2009
'Funcion para resolver la cinematica inversa de una pata del hexapodo
'---------------------------------------------------------------------------------------------
'Ac = Angulo de la pata
'---------------------------------------------------------------------------------------------
Private Sub IKleg(ByVal X As Double, ByVal Y As Double, ByVal Z As Double, ByVal AC As Double)
Dim qc As Double ' Angle of coxa
Dim qt As Double ' Angle of tibia
Dim qf As Double ' Angle of femur
Dim qf1, qf2 As Double
Dim xx As Double
Dim XYcox As Double
qc = Atan2(Z, X) - ((AC * PI) / 180)
xx = Sqrt((X * X) + (Z * Z))
XYcox = Sqrt(((xx - LCoxa) * (xx - LCoxa)) + (Y * Y))
qt = Acos(((LFemur * LFemur) + (LTibia * LTibia) - (XYcox * XYcox)) / ((2 * LFemur) * LTibia))
qf1 = Atan2((xx - LCoxa), Y)
qf2 = Acos(((LFemur * LFemur) - (LTibia * LTibia) + (XYcox * XYcox)) / ((2 * LFemur) * XYcox))
qf = qf1 + qf2
Acoxa = qc 'Angulo de la coxa
Afemur = (-qf) + 1.57 'Angulo del femur
Atibia = -1.57 + (qt) 'Angulo de la Tibia
End Sub
por lo pronto instalare el Marilou y me pondre a moverle para ver que tanto puedo hacer con el :)
-
:) mucho nas sencillo de lo que pensaba, en nuestro caso eran bastantes mas largas... hay dos formas de jugar con marilou una es que permite cargar un ejecutable generado en otro compilador y la otra es por medio de una libreria (creo que las ultimas versiones ya traen un wizard para MatLab). Te paso una libreria que tiene las funciones de mover los servos por si queres ir jugando :mrgreen:
% Matlab primero debe cargar las librerias donde estan programadas las
% funciones
loadlibrary('marilou.dll','libreriah.h'); % Carga de la libreria
%--------------------------------------------------------------------------
nombre{1}='Rob1/teta1/a1/servo';
nombre{2}='Rob1/teta2/a1/servo';
nombre{3}='Rob1/teta3/a1/servo';
%nombre = char('Rob1/teta1/a1/servo','Rob1/teta2/a1/servo','Rob1/teta3/a1/servo');
Nombres=cellstr(nombre);
[aux numero_de_motores]=size(Nombres);
%---------------------------------------------------------------------------
tiempo=10; %permite modificar los tiempos utilizados por los motores
calllib('marilou','coneccion');
for n=0:90
angulos= [90 0 0]; %no interesa si el vector es fila o columna
calllib('marilou','mover_motores',numero_de_motores,angulos,Nombres,tiempo);
end
calllib('marilou','desconectar');
unloadlibrary('marilou');
En ese caso simplemente mueve un manipulador RRR.
Saludos