Main Content

Aero.trajectory.spaceFillingTrajectory

R2026b

Generate reference signals for space-filling trajectory

Since R2026b

    Description

    refSignals = Aero.trajectory.spaceFillingTrajectory(Name=Value) generates reference signals for a space-filling trajectory. Space-filling curves pass through every point in a region, providing uniform and nonredundant search patterns. Use name-value arguments to define the search pattern.

    The function supports these space-filling trajectory types:

    • Hilbert — Fractal-based recursive pattern based on the Hilbert curve. Use this pattern for surface vehicle exploration. The coverage is uniform and nonredundant.

    • Peano — Fractal-based recursive pattern based on the Peano curve. Use this pattern for surface vehicle exploration. The coverage is uniform and nonredundant.

    • LawnMower — Coverage along parallel swathes. The coverage is uniform and nonredundant.

    The Generate Trajectory task does not have a functional equivalent for space-filling trajectory.

    example

    Examples

    collapse all

    This example shows how to generate reference signals for a space filling trajectory.

    refSignals = Aero.trajectory.spaceFillingTrajectory( ...
        TrajectoryType="Hilbert", ...
        FieldLength=100, ...
        FieldWidth=100, ...
        Order=2, ...
        Speed=10)
    refSignals = struct with fields:
                 xNorth: [1×1 timeseries]
                  yEast: [1×1 timeseries]
                  Speed: [1×1 timeseries]
               Altitude: [1×1 timeseries]
                Heading: [1×1 timeseries]
        FlightPathAngle: [1×1 timeseries]
          WaypointIndex: [1×1 timeseries]
    
    

    Name-Value Arguments

    collapse all

    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: TrajectoryType = "Hilbert"

    Type of space-filling curve, specified as Hilbert, Peano, or LawnMower.

    TypeDescriptionExample

    Hilbert

    Fractal-based recursive pattern based on the Hilbert curve. Use this pattern for surface vehicle exploration. The coverage is uniform and nonredundant.

    Peano

    Fractal-based recursive pattern based on the Peano curve. Use this pattern for surface vehicle exploration. The coverage is uniform and nonredundant.

    LawnMower

    Coverage along parallel swathes. The coverage is uniform and nonredundant.

    Example: TrajectoryType = "Peano"

    Data Types: string

    Length of the field the curve covers, specified as a positive scalar.

    Example: FieldLength = 30

    Data Types: double

    Width of the field the curve covers, specified as a positive scalar.

    Example: FieldWidth = 35

    Data Types: double

    Order of the space-filling curve, specified as a positive integer. Higher orders produce finer coverage patterns.

    Example: Order = 2

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Hilbert" or "Peano".

    Data Types: double

    Field center, specified as a 1-by-2 or 2-by-1 vector of finite real doubles in the units specified in Units.

    Data Types: double

    Bearing, specified as a finite real scalar double between 0 and 2*pi.

    Example: Bearing = pi/4

    Data Types: double

    Tilt of the field to form a parallelepiped, specified as a scalar in radians in the range [0, 2*pi].

    Example: Tilt = 30*pi/180

    Data Types: double

    Orientation of the space-filling pattern, specified as a positive integer.

    Example: Orientation = 2

    Dependencies

    • For "Hilbert" trajectories, valid values are 0, 1, and 2.

    • For "Peano" and "LawnMower" trajectories, valid values are 0, 1, 2, and 3.

    Data Types: double

    Number of swathes in the lawnmower pattern, specified as a positive integer.

    Example: NumberOfSwathes = 15

    Dependencies

    To enable this name-value argument, set TrajectoryType to "LawnMower".

    Data Types: double

    Initial position of trajectory, specified as a 1-by-2 or 2-by-1 vector in the units specified in Units.

    Example: InitialPosition = [0,0]

    Data Types: double

    Speed of trajectory, specified as a finite real double scalar in the units specified in Units.

    Example: Speed = 10

    Data Types: double

    Initial altitude of trajectory, specified as a scalar in the units specified in Units.

    Example: InitialAltitude = 10

    Data Types: double

    Initial heading of trajectory, specified as a finite real double scalar between 0 and 2*pi, in radians.

    Example: InitialHeading = pi

    Data Types: double

    Type of reference signal, specified as None, lateral-acceleration, or turnrate.

    Example: ReferenceSignalType = "turnrate"

    Output format of reference signals data, specified as a timeseries or timetable object.

    Example: OutputFormat = timeseries

    Input and output units, specified as one of these values.

    Units

    Position

    Altitude

    Speed

    Metric (MKS)

    Meters

    Meters

    Meters per second

    English (Velocity in ft/s)

    Feet

    Feet

    Feet per second

    English (Velocity in kts)

    Nautical miles

    Feet

    Knots

    Example: Units = 'Metric (MKS)'

    Initial time of trajectory operation, specified as a datetime object.

    Example: StartTime = datetime('now')

    Prior trajectory tracking data, specified as a timeseries or timetable object. These objects must contain these fields:

    • Altitude

    • Heading

    • Speed

    • WaypointIndex

    • xNorth

    • yEast

    • LateralAcceleraion/Turnrate

    Output Arguments

    collapse all

    Trajectory reference signals, returned as a timeseries struct or timetable object.

    Version History

    Introduced in R2026b