Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

setup

Configurar el propagador de estado del robot móvil

Desde R2021b

Descripción

ejemplo

setup(mobileProp) configura el objeto mobileRobotPropagator en función de las propiedades del objeto. Si cambia las propiedades del objeto, utilice esta función de objeto antes de utilizar el objeto para muestrear controles, propagar el sistema o calcular distancias.

Nota

Anule esta función para implementar una funcionalidad personalizada para ejecutar en la configuración.

Ejemplos

contraer todo

Cree un propagador de estado y especifique la métrica de distancia para estimar el coste de propagación.

propagator = mobileRobotPropagator(DistanceEstimator="dubins");

Crea un espacio de estados de Dubins.

dubinsSpace = stateSpaceDubins([0 25; 0 25; -pi pi]);

Actualice el espacio de estados del propagador de estados utilizando el espacio de estados creado.

propagator.StateSpace = dubinsSpace;
setup(propagator)

Cree un objeto navPath basado en múltiples puntos de referencia en un espacio Dubins.

path = navPath(dubinsSpace);
waypoints = [8 10 pi/2;
             7 14 pi/4;
             10 17 pi/2;
             10 10 -pi];
append(path,waypoints)

Interpola esa ruta para que contenga exactamente 250 puntos.

numStates = 250;
interpolate(path,numStates)

Extrae la secuencia de movimientos de la ruta.

q1 = path.States(1:end-1,:); % Initial states
q2 = path.States(2:end,:);   % Final states

Calcule el coste de propagación al estado objetivo.

cost = distance(propagator,q1,q2);

Generar una serie de comandos de control y número de pasos para pasar del estado actual q1 con el comando de control u hacia el estado objetivo q2.

u = zeros(size(q1,1),propagator.NumControlOutput);
steps = zeros(size(q1,1),1);
for i = 1:size(q1,1)
    [u(i+1,:),steps(i)] = sampleControl(propagator,q1(i,:),u(i,:),q2(i,:));
end

Cree un objeto de ruta basado en control con el propagador de estado especificado y una secuencia de estados, controles, objetivos y duraciones especificados.

states = path.States;
controls = u(2:end,:);
targets = q2;
durations = steps*propagator.ControlStepSize;
path2 = navPathControl(propagator,states,controls,targets,durations);

Visualiza los resultados.

figure
grid on
axis equal
hold on
plot(path2.States(:,1),path2.States(:,2),".b")
plot(waypoints(:,1),waypoints(:,2),"*r","MarkerSize",10)

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

Argumentos de entrada

contraer todo

Propagador de estado de robot móvil, especificado como un objeto mobileRobotPropagator .

Historial de versiones

Introducido en R2021b