model
Planning.Examples.DubinsAircraftFlightPlan
General figure eight whose two traversal headings share one center position
Public declarations
Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| parameter | waypointCount | Integer | (min=2) = 7 | |
| parameter | waypointPosition | Real | [waypointCount, 2] = [
0.0, 0.0;
12.0, 7.0;
12.0, -7.0;
0.0, 0.0;
-12.0, 7.0;
-12.0, -7.0;
0.0, 0.0] | Two outer poses per lobe and three center occurrences |
| parameter | waypointHeading | Real | [waypointCount] = {
0.7853981633974483,
0.0,
3.141592653589793,
2.356194490192345,
3.141592653589793,
0.0,
0.7853981633974483} | |
| parameter | planningTurnRadius | Real | (min=0.0) = 2.5 | |
| parameter | aircraftMinimumTurnRadius | Real | (min=0.0) = 1.0 | |
| parameter | flightSpeed | Real | (min=0.0) = 1.5 | |
| parameter | maximumBankAngle | Real | (min=0.0) = 0.5 | |
| parameter | maximumRollRate | Real | (min=0.0) = 3.0 |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
model DubinsAircraftFlightPlan
"General figure eight whose two traversal headings share one center position"
parameter Integer waypointCount(min=2) = 7;
parameter Real waypointPosition[waypointCount, 2] = [
0.0, 0.0;
12.0, 7.0;
12.0, -7.0;
0.0, 0.0;
-12.0, 7.0;
-12.0, -7.0;
0.0, 0.0]
"Two outer poses per lobe and three center occurrences";
parameter Real waypointHeading[waypointCount] = {
0.7853981633974483,
0.0,
3.141592653589793,
2.356194490192345,
3.141592653589793,
0.0,
0.7853981633974483};
parameter Real planningTurnRadius(min=0.0) = 2.5;
parameter Real aircraftMinimumTurnRadius(min=0.0) = 1.0;
parameter Real flightSpeed(min=0.0) = 1.5;
parameter Real maximumBankAngle(min=0.0) = 0.5;
parameter Real maximumRollRate(min=0.0) = 3.0;
Planning.Examples.DubinsAircraftTrajectory leg[waypointCount - 1](
startPosition=waypointPosition[1:waypointCount - 1, :],
startHeading=waypointHeading[1:waypointCount - 1],
goalPosition=waypointPosition[2:waypointCount, :],
goalHeading=waypointHeading[2:waypointCount],
each turnRadius=planningTurnRadius,
each aircraftMinimumTurnRadius=aircraftMinimumTurnRadius,
each flightSpeed=flightSpeed,
each maximumBankAngle=maximumBankAngle,
each maximumRollRate=maximumRollRate);
annotation(experiment(StartTime=0.0, StopTime=1.0, Interval=0.0025));
end DubinsAircraftFlightPlan;