主要内容

updateSensors

Update sensor readings in UAV scenario

    Description

    updateSensors(scene) updates all sensor readings based on latest states of all platforms in the UAV scenario, scene.

    Examples

    collapse all

    Create a UAV scenario and set its local origin.

    scene = uavScenario("UpdateRate",200,"StopTime",2,"ReferenceLocation",[46, 42, 0]); 

    Add an inertial frame called MAP to the scenario.

    scene.addInertialFrame("ENU","MAP",trvec2tform([1 0 0])); 

    Add one ground mesh and two cylindrical obstacle meshes to the scenario.

    scene.addMesh("Polygon", {[-100 0; 100 0; 100 100; -100 100],[-5 0]},[0.3 0.3 0.3]);
    scene.addMesh("Cylinder", {[20 10 10],[0 30]}, [0 1 0]); 
    scene.addMesh("Cylinder", {[46 42 5],[0 20]}, [0 1 0], "UseLatLon", true); 

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

    traj = waypointTrajectory("Waypoints", [0 -20 -5; 20 -20 -5; 20 0 -5],"TimeOfArrival",[0 1 2]); 
    uavPlat = uavPlatform("UAV",scene,"Trajectory",traj); 
    updateMesh(uavPlat,"quadrotor", {4}, [1 0 0],eul2tform([0 0 pi])); 
    addGeoFence(uavPlat,"Polygon", {[-50 0; 50 0; 50 50; -50 50],[0 100]},true,"ReferenceFrame","ENU"); 

    Attach an INS sensor to the front of the UAV platform.

    insModel = insSensor(); 
    ins = uavSensor("INS",uavPlat,insModel,"MountingLocation",[4 0 0]); 

    Visualize the scenario in 3-D.

    ax = show3D(scene); 
    axis(ax,"equal"); 

    Simulate the scenario.

    setup(scene); 
    while advance(scene) 
        % Update sensor readings 
        updateSensors(scene); 
    
        % Visualize the scenario 
        show3D(scene,"Parent",ax,"FastUpdate",true); 
        drawnow limitrate 
    end 

    Figure contains an axes object. The axes object with xlabel East (m), ylabel North (m) contains 4 objects of type patch.

    Input Arguments

    collapse all

    UAV scenario, specified as a uavScenario object.

    Version History

    Introduced in R2020b