Main Content

show

Visualize the UAV trajectory

Since R2022b

    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.0000
        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
    
    
    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.0000
        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])

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

    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

    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
    show(fwmTraj,FrameSize=20,NumSamples=75);
    title("Fixed-Wing Flight Trajectory")
    axis equal

    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

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

    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