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.

propagateWhileValid

Propagar el sistema y devolver un movimiento válido.

Desde R2021b

    Descripción

    ejemplo

    [q,u,steps] = propagateWhileValid(mobileProp,q0,u0,qTgt,maxSteps) propaga iterativamente el sistema desde el estado actual q0 hacia un estado objetivo qTgt con una entrada de control inicial u0 para un número máximo de pasos maxSteps.

    Al final de cada paso de propagación i, el sistema devuelve estos valores:

    • q(i,:) — Estado actual del sistema

    • u(i,:) — Entrada de control para el paso i + 1

    • steps(i) — Número de pasos entre i - 1 y i

    La función valida todas las propagaciones y devuelve información del sistema entre q0 y el último estado válido.

    Ejemplos

    contraer todo

    Cargue una matriz de mapa ternario y cree un objeto occupancyMap . Cree el propagador de estado usando el mapa.

    load("exampleMaps","ternaryMap")
    map = occupancyMap(ternaryMap,10);
    propagator = mobileRobotPropagator(Environment=map);

    Establezca los límites estatales en el espacio de estados según los límites del mundo del mapa.

    propagator.StateSpace.StateBounds(1:2,:) = [map.XWorldLimits; 
                                                map.YWorldLimits];

    Especifique los estados de inicio y objetivo.

    start = [10 15 0];
    goal  = [40 30 0];

    Especifique el control inicial y el número máximo de pasos.

    u0 = [0.2 -0.2];
    maxSteps = 2000;

    Propagar el estado del robot sin validación.

    [q1,u1,steps1] = propagate(propagator,start,u0,goal,maxSteps);

    Visualiza los resultados.

    figure
    show(map)
    hold on
    plot(start(1),start(2),"rx")
    plot(goal(1),goal(2),"go")
    plot(q1(:,1),q1(:,2),"m")
    hold off

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 4 objects of type image, line. One or more of the lines displays its values using only markers

    Propagar el estado del robot y devolver un movimiento válido.

    [q2,u2,steps2] = propagateWhileValid(propagator,start,u0,goal,maxSteps);

    Visualiza los resultados.

    figure
    show(map)
    hold on
    plot(start(1),start(2),"rx")
    plot(goal(1),goal(2),"go")
    plot(q2(:,1),q2(:,2),"m")
    hold off

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 4 objects of type image, 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 .

    Estado inicial del sistema, especificado como un vector de elemento s. s es el número de variables de estado en el espacio de estados.

    Control inicial sobre el estado inicial, especificado como un vector de elemento c. c es el número de entradas de control.

    Estado objetivo del sistema, especificado como un vector de elemento s. s es el número de variables de estado en el espacio de estados.

    Número máximo de pasos, especificado como escalar positivo.

    Argumentos de salida

    contraer todo

    Estados propagados del sistema, devueltos como un vector de elemento s. s es el número de variables de estado en el espacio de estados.

    Entradas de control para estados de propagación, devueltas como una matriz n-por- c . c es el número de entradas de control

    Número de pasos desde cada estado y entrada de control al siguiente, devuelto como un vector de elemento n de enteros positivos.

    Historial de versiones

    Introducido en R2021b

    Consulte también

    Objetos

    Funciones