Main Content

show

Visualize the UAV trajectory

Since R2022b

    Description

    AX = show(traj) visualizes the UAV trajectory in 3-D. The visualization includes the waypoints, velocity direction at each waypoint, flight trajectory and UAV body frames along flight trajectory.

    example

    AX = show(___,Name=Value) specifies options using one or more name-value arguments. For example, show(traj,NumSamples=300) draws 300 body frames for the UAV.

    Examples

    collapse all

    Create a set of waypoints for both the multirotor and the fixed-wing UAV to follow.

    wpts = [0  0  0;
            2  2 -2;
           10 10 -3;
           12 12 -6];
    numwpts = size(wpts);

    Specify additional trajectory information, such as desired velocities, accelerations, jerks, snaps, and yaws, as well as start time, an end time, and times of arrival.

    vels = 2*ones(numwpts);
    accs = ones(numwpts);
    jerks = zeros(numwpts);
    snaps = zeros(numwpts);
    yaws = zeros(1,numwpts(1));
    starttime = 0;
    endtime = 8;
    toas = linspace(starttime,endtime,numwpts(1));

    Use the trajectory information to create the flight trajectories for the multirotor and the fixed-wing UAVs. Query and display the trajectories.

    mrft = multirotorFlightTrajectory(wpts,vels,accs,jerks,snaps,yaws,toas);
    fwft = fixedwingFlightTrajectory(wpts,vels,toas);
    query(mrft,1:4)
    ans = 4×16
    
        1.6184    1.6184    0.7520   -0.0243   -0.0243   -2.8758   -4.6045   -4.6045   -9.1669    0.9863   -0.1179    0.1147   -0.0137    0.0732   -0.0732   -0.0000
        1.0236    1.0236   -2.7807    0.5482    0.5482   -0.6198    3.9704    3.9704    8.6424    0.7429    0.5559   -0.2987   -0.2235   -1.3257    1.3257         0
        2.7277    2.7277   -1.2947    2.4069    2.4069    2.1026    1.7442    1.7442   -1.3857    0.9941    0.0770   -0.0761   -0.0059    0.1950   -0.1950         0
        6.4028    6.4028   -2.0972    4.4609    4.4609   -3.8447   -1.1875   -1.1875   -1.1875    0.9971   -0.0537    0.0534   -0.0029   -1.2364    1.2364   -0.0000
    
    
    query(fwft,1:4)
    ans = 4×16
    
        0.9453    0.9453   -0.3203    0.2422    0.2422   -1.8672   -0.7031   -0.7031   -1.5469    0.7098   -0.2450    0.5914    0.2940   -0.4683    0.4683    0.0000
        1.1875    1.1875   -2.1875    0.5938    0.5938   -1.0938    1.4063    1.4062    3.0938    0.8287   -0.1692    0.4085    0.3432    1.7750   -1.7750         0
        2.7813    2.7812   -1.6055    2.6563    2.6562    0.4414    1.6875    1.6875   -4.0078    0.9223    0.0224   -0.0540    0.3820   -0.7962    0.7962   -0.0000
        6.0000    6.0000   -2.5000    3.5000    3.5000   -1.5625   -0.0000   -0.0000    0.0000    0.9131   -0.0583    0.1407    0.3782   -0.0000   -0.0000    0.0000
    
    

    Visualize both the multirotor flight trajectory and the fixed-wing flight trajectory.

    ax = show(mrft,NumSamples=200);
    title("Multirotor Flight Trajectory")
    view([0 0])

    Figure contains an axes object. The axes object with title Multirotor Flight Trajectory contains 806 objects of type patch, line.

    show(fwft,NumSamples=50);
    title("Fixed-Wing UAV Flight Trajectory")
    view([0 0])

    Figure contains an axes object. The axes object with title Fixed-Wing UAV Flight Trajectory contains 206 objects of type patch, line.

    Create a UAV mission by using the flight plan stored in a .plan file and show the mission.

    mission = uavMission(PlanFile="flight.plan");
    show(mission);
    axis equal

    Figure contains an axes object. The axes object with xlabel East (m), ylabel North (m) contains 10 objects of type line, text.

    Create parsers for a multirotor UAV and a fixed-wing UAV.

    mrmParser = multirotorMissionParser(TransitionRadius=2,TakeoffSpeed=2);
    fwmParser = fixedwingMissionParser(TransitionRadius=15,TakeoffPitch=10);

    Generate one flight trajectory using each parser.

    mrmTraj = parse(mrmParser,mission);
    fwmTraj = parse(fwmParser,mission);

    Visualize the waypoints, flight trajectory and body frames for each UAV.

    figure
    show(mrmTraj,FrameSize=20,NumSamples=75);
    title("Multirotor Flight Trajectory")
    axis equal

    Figure contains an axes object. The axes object with title Multirotor Flight Trajectory contains 322 objects of type patch, line.

    figure
    show(fwmTraj,FrameSize=20,NumSamples=75);
    title("Fixed-Wing Flight Trajectory")
    axis equal

    Figure contains an axes object. The axes object with title Fixed-Wing Flight Trajectory contains 328 objects of type patch, line.

    Plot the mission, waypoints, flight trajectory and UAV body frames in the same plot for each UAV.

    figure
    show(mission);
    hold on
    show(mrmTraj,FrameSize=20,NumSamples=75);
    hold off
    title("Mission Using Multirotor Trajectory")
    axis equal

    Figure contains an axes object. The axes object with title Mission Using Multirotor Trajectory, xlabel East (m), ylabel North (m) contains 332 objects of type patch, line, text.

    show(mission);
    hold on
    show(fwmTraj,FrameSize=20,NumSamples=75);
    hold off
    title("Mission Using Fixed-Wing Trajectory")
    axis equal

    Figure contains an axes object. The axes object with title Mission Using Fixed-Wing Trajectory, xlabel East (m), ylabel North (m) contains 338 objects of type patch, line, text.

    Input Arguments

    collapse all

    Flight trajectory, specified as a multirotorFlightTrajectory or fixedwingFlightTrajectory object.

    Name-Value Arguments

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: show(traj,NumSamples=300) draws 300 body frames for the UAV.

    Parent axes, specified as an Axes object.

    Number of UAV body frames to draw, specified as a positive integer.

    Example: show(traj,NumSamples=300)

    Start time of trajectory drawing, specified as a nonnegative numeric scalar, in seconds.

    Example: show(traj,StartTime=2)

    End time of trajectory drawing, specified as a positive numeric scalar, in seconds.

    Example: show(traj,EndTime=8)

    Length of the UAV frame axes, specified as a positive numeric scalar, in meters.

    Example: show(traj,FrameSize=1.8)

    Length of the velocity direction lines, specified as a nonnegative numeric scalar, in meters.

    Example: show(traj,VelocityLineSize=2.3)

    Width of the velocity direction lines, specified as a nonnegative numeric scalar, in meters.

    Example: show(traj,VelocityLineWidth=2.3)

    Version History

    Introduced in R2022b