Professional Documents
Culture Documents
DE SISTEMAS Y AUTOMTICA
Robtica
Cristina Gmez Gmez
Ejercicio 4. Movimiento de un robot diferencial
mediante comandos de velocidad
El cdigo adjunto implementa la conduccin de una base robtica con sistema diferencial mediante
comandos de velocidad u =(v,w), v: velocidad lineal y w: velocidad angular. A partir de este cdigo
se pide:
1. Modifique el programa introduciendo una estructura if-then-else para que contemple el caso
de velocidad angular (w) cero (movimiento en lnea recta). En este apartado no existe
incertidumbre en el sistema: ni en la pose inicial (matriz P3x3), ni en el movimiento (v,w)
(matriz Q2x2).
Existen dos casos diferentes: en el que la velocidad angular sea 0, es decir, que no haya
rotacin y en el que la velocidad angular sea distinta de 0, que el robot rote.
La funcin DIfferentialModel se encarga de calcular:
Los jacobianos del movimiento con respecto a la pose son diferentes en ambos casos, por lo
que necesitamos diferenciarlos.
-
w=0:
DEPARTAMENTO DE INGENIERA
DE SISTEMAS Y AUTOMTICA
w != 0:
DEPARTAMENTO DE INGENIERA
DE SISTEMAS Y AUTOMTICA
%draw occasionally
if(mod(k-1,20)==0)
DrawRobot(x,'r'); %dibujamos movimiento "ideal" del robot
end;
end;
DEPARTAMENTO DE INGENIERA
DE SISTEMAS Y AUTOMTICA
DEPARTAMENTO DE INGENIERA
DE SISTEMAS Y AUTOMTICA
%draw occasionally
if(mod(k-1,20)==0)
DrawRobot(x,'r'); %dibujamos movimiento "ideal" del robot
PlotEllipse(x,P,2); % dibujamos la elipse de la matriz de
covarianza P
plot(xtrue(1),xtrue(2),'ko'); %dibujamos movimiento del robot con
error
end;
end;
DEPARTAMENTO DE INGENIERA
DE SISTEMAS Y AUTOMTICA