Main Content

show

Visualize the UAV trajectory

    Description

    example

    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.

    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);

    Figure contains an axes object. The axes object 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 mission and the flight trajectories separately.

    figure
    subplot(1,2,1)
    show(mrmTraj);
    title("Multirotor Trajectory")
    axis square
    subplot(1,2,2)
    show(fwmTraj);
    title("Fixed-Wing Trajectory")
    axis square

    Figure contains 2 axes objects. Axes object 1 with title Multirotor Trajectory contains 501 objects of type patch, line. Axes object 2 with title Fixed-Wing Trajectory contains 428 objects of type patch, line.

    Plot the mission and flight trajectories overlapping.

    figure
    show(mission);
    hold on
    show(mrmTraj);
    hold off
    title("Mission Using Multirotor Trajectory")
    axis square

    Figure contains an axes object. The axes object with title Mission Using Multirotor Trajectory contains 511 objects of type patch, line, text.

    show(mission);
    hold on
    show(fwmTraj);
    hold off
    title("Mission Using Fixed-Wing Trajectory")
    axis square

    Figure contains an axes object. The axes object with title Mission Using Fixed-Wing Trajectory contains 438 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