Skip to content

Commit

Permalink
Merge pull request #142 from una-auxme/139-feature-reduce-decision-tree
Browse files Browse the repository at this point in the history
139 feature reduce decision tree
  • Loading branch information
samuelkuehnel authored Dec 19, 2023
2 parents 1c9342e + 29f4a85 commit 1c51e23
Show file tree
Hide file tree
Showing 17 changed files with 14 additions and 54 deletions.
42 changes: 1 addition & 41 deletions code/planning/behavior_agent/src/behavior_agent/behavior_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,47 +61,7 @@ def grow_a_tree(role_name):
("Leave Change")
])
]),
Inverter(Selector("Overtaking", children=[
behaviours.traffic_objects.NotSlowedByCarInFront
("Not Slowed By Car in Front?"),
Selector("Number of Lanes", children=[
Sequence("Multi Lane", children=[
behaviours.road_features.MultiLane("Multi Lane?"),
behaviours.road_features.LeftLaneAvailable
("Left Lane Available?"),
behaviours.traffic_objects.WaitLeftLaneFree
("Wait for Left Lane Free"),
behaviours.maneuvers.SwitchLaneLeft("Switch Lane Left")
]),
Sequence("Single Lane", children=[
behaviours.road_features.SingleLineDotted
("Single Lane with dotted Line?"),
behaviours.traffic_objects.WaitLeftLaneFree
("Wait for Left Lane Free"),
behaviours.maneuvers.SwitchLaneLeft
("Switch Lane Left"),
Selector("Driving on Left Side", children=[
Sequence("Overtake", children=[
behaviours.traffic_objects.OvertakingPossible
("Overtaking Possible?"),
behaviours.maneuvers.Overtake("Overtake"),
behaviours.maneuvers.SwitchLaneRight
("Switch Lane Right")
]),
behaviours.maneuvers.SwitchLaneRight("Switch Lane Right")
])
])
]),
Running("Can't Overtake")
])),
Sequence("Back to Right Lane", children=[
behaviours.road_features.RightLaneAvailable("Right Lane Available"),
behaviours.traffic_objects.NotSlowedByCarInFrontRight
("Not Slowed By Car in Front Right?"),
behaviours.traffic_objects.
WaitRightLaneFree("Wait for Right Lane Free"),
behaviours.maneuvers.SwitchLaneRight("Switch Lane Right")
])

]),
behaviours.maneuvers.Cruise("Cruise")
])
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
4 changes: 2 additions & 2 deletions doc/03_research/03_planning/00_paf23/01_Planning.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Finding the optimal path from start to goal, taking into account the static and

### [PAF21 - 2](https://github.com/ll7/paf21-2)

![Planning](Planning_paf21.png)
![Planning](../../../00_assets/planning/Planning_paf21.png)

Input:

Expand Down Expand Up @@ -55,7 +55,7 @@ Map Manager

### [Autoware](https://github.com/autowarefoundation/autoware)

![https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/planning/](Planning.png)
![https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/planning/](../../../00_assets/planning/Planning.png)

Input:

Expand Down
2 changes: 1 addition & 1 deletion doc/03_research/03_planning/00_paf23/02_PlanningPaf22.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## Architecture

![overview](overview.jpg)
![overview](../../../00_assets/planning/overview.jpg)

### Preplanning

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Provide an overview for a possible planning architecture consisting of Global P

## Overview

![overview](overview.png)
![overview](../../../00_assets/planning/overview.png)

The **Global Plan** gathers all data relevant to build a copy of the town the car is driving in. It also computes an optimal global path, which includes all waypoints. The Decision Making can order a recalculation of the global path.

Expand All @@ -19,7 +19,7 @@ Motions like lane changing must be approved by the decision making and they get

### Global Plan

![overview](Globalplan.png)
![overview](../../../00_assets/planning/Globalplan.png)

*Map Generator:* Gathers map data from Carla and prepares it for the PrePlanner

Expand Down Expand Up @@ -69,7 +69,7 @@ See Behaviour Tree.

### Local Plan

![Local Plan](localplan.png)
![Local Plan](../../../00_assets/planning/localplan.png)

*Local Preplan:* Segements the global path and calculates the middle of the lane. Is not called in every cycle.

Expand Down Expand Up @@ -128,4 +128,4 @@ See Behaviour Tree.

Red must have for next Milestone, Orange needed for future milestones, Green can already be used or is not that important

![prios](prios.png)
![prios](../../../00_assets/planning/prios.png)
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Julius Miller

Paper: [Behavior Planning for Autonomous Driving: Methodologies, Applications, and Future Orientation](https://www.researchgate.net/publication/369181112_Behavior_Planning_for_Autonomous_Driving_Methodologies_Applications_and_Future_Orientation)

![Overview_interfaces](overview_paper1.png)
![Overview_interfaces](../../../00_assets/planning/overview_paper1.png)

Rule-based planning

Expand Down Expand Up @@ -49,7 +49,7 @@ Leader, Track-Speed

Github: [Decision Making with Behaviour Tree](https://github.com/kirilcvetkov92/Path-planning?source=post_page-----8db1575fec2c--------------------------------)

![github_tree](BehaviorTree_medium.png)
![github_tree](../../../00_assets/planning/BehaviorTree_medium.png)

- No Intersection
- Collision Detection in behaviour Tree
Expand All @@ -58,7 +58,7 @@ Paper: [Behavior Trees for
decision-making in Autonomous
Driving](https://www.diva-portal.org/smash/get/diva2:907048/FULLTEXT01.pdf)

![Behaviour Tree](BT_paper.png)
![Behaviour Tree](../../../00_assets/planning/BT_paper.png)

- simple simulation
- Car only drives straight
Expand All @@ -81,17 +81,17 @@ Low Level Decision:
- Emergency Brake
- ACC

![localplan](localplan.png)
![localplan](../../../00_assets/planning/localplan.png)

Scenarios:

![Intersection](intersection_scenario.png)
![Intersection](../../../00_assets/planning/intersection_scenario.png)

Left: Behaviour Intersection is triggered for motion planning, acc publishes speed. -> Lower speed is used to approach intersection

Right: Behaviour Intersection is used for motion planning, acc is ignored (no object in front)

![Overtake](overtaking_scenario.png)
![Overtake](../../../00_assets/planning/overtaking_scenario.png)

Left: Overtake gets triggered to maintain speed, acc is ignored

Expand Down

0 comments on commit 1c51e23

Please sign in to comment.