Main Content

advance

Advance robot scenario simulation by one time step

    Description

    example

    isrunning = advance(scenario) advances the robot scenario simulation by one time step. The UpdateRate property of the robotScenario object determines the time step during simulation. The function returns the running status of the simulation. The function only updates a platform location if the platform has an assigned trajectory.

    Examples

    collapse all

    Create a robot scenario.

    scenario = robotScenario(UpdateRate=100,StopTime=1);

    Add the ground plane and a cylinder as meshes.

    addMesh(scenario,"Plane",Size=[30 30],Color=[0.7 0.7 0.7])
    addMesh(scenario,"Cylinder",Position=[-2 4 0.5],Color=[0 1 1])

    Create a robot platform with a specified waypoint trajectory in the scenario. Define the mesh for the robot platform.

    traj = waypointTrajectory("Waypoints",[0 -10 0; 10 0 0; -10 10 0; 0 -10 0], ...
                              "TimeOfArrival",[0 0.33 0.66 1], ...
                              "ReferenceFrame","ENU");
    platform = robotPlatform("Robot",scenario, ...
                             BaseTrajectory=traj);
    updateMesh(platform,"GroundVehicle",Scale=3);

    Simulate and visualize the scenario.

    setup(scenario); 
    idx = 1;
    while advance(scenario)
        motion(idx,:) = read(platform);
        show3D(scenario); 
        drawnow update
        idx = idx+1;
    end

    Figure contains an axes object. The axes object contains 3 objects of type patch.

    restart(scenario);

    Input Arguments

    collapse all

    Robot scenario, specified as a robotScenario object.

    Output Arguments

    collapse all

    Running state of the simulation, returned as true or false. If isrunning is returned as true, then the simulation is running. If isrunning is returned as false, the simulation has stopped. A simulation stops when the stop time is reached.

    Version History

    Introduced in R2022a