-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #43 from una-auxme/4-feature-pylot-planning-PAF21/…
…2-Perception 4 feature pylot planning paf21/2 perception
- Loading branch information
Showing
1 changed file
with
67 additions
and
0 deletions.
There are no files selected for viewing
67 changes: 67 additions & 0 deletions
67
doc/03_research/research_PAF_23/Research_Pylot-Planning_PAF21-Perception.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Sprint 0: Research Samuel Kühnel | ||
|
||
## Pylot | ||
|
||
## Planning | ||
|
||
- 4 different options | ||
- **Waypoint Planner**: Auto follows predefined waypoints. It recognizes traffic lights and stops at obstacles, but cannot avoid them | ||
- **Freenet-Optimal-Trajecotry-Planner**: CPP code with Python wrapper ([GitHub](https://github.com/erdos-project/frenet_optimal_trajectory_planner)) | ||
→ Predefined line that is used for orientation → Can avoid obstacles! | ||
|
||
![freenet_gif](https://github.com/erdos-project/frenet_optimal_trajectory_planner/raw/master/img/fot2.gif) | ||
|
||
- **RRT\*-Planner**: RRT* algorithm for path planning ([GitHub](https://github.com/erdos-project/rrt_star_planner)) | ||
- Creates random nodes | ||
- Adds nodes to the graph that are not blocked by objects on the road | ||
- Generally terminates as soon as a node is found in the target area | ||
- RRT*: Searches for the shortest path | ||
|
||
![rrt_star_gif](https://github.com/erdos-project/rrt_star_planner/raw/master/img/rrtstar.gif) | ||
|
||
- **Hybrid A\* planner**: Hybrid A* algorithm for path planning ([GitHub](https://github.com/erdos-project/hybrid_astar_planner)) | ||
- Calculates the shortest path between two nodes from a graph | ||
- Similar to Dijkstra's algorithm | ||
- Nodes are estimated based on their costs and promising nodes are selected first | ||
- Hybrid A* algorithm: Not always optimal solution, but in the neighborhood of the optimal solution. | ||
|
||
![hybrid_astar_gif](https://github.com/erdos-project/hybrid_astar_planner/raw/master/img/straight_obstacle.gif) | ||
|
||
## PAF 21-2 | ||
|
||
### Perception | ||
|
||
### Obstacle detection | ||
|
||
- Detect objects via semantic lidar sensor | ||
- Provides x and y coordinates, as well as distance value | ||
- Additional information on position change in a time interval → Calculation of speed possible | ||
- Detects the object and returns either the value "Vehicle" or "Pedestrian" | ||
|
||
### TrafficLightDetection | ||
|
||
![diagramm.png](https://github.com/ll7/paf21-2/raw/main/docs/imgs/trafficlightdetection_diagram.jpg) | ||
|
||
- **FusionCamera** saves images from **RGBCamera** and **DepthCamera** with timestamp and then synchronizes with **SegmentationCamera** | ||
- Neural network based on [ResNet18](https://pytorch.org/hub/pytorch_vision_resnet/) (predefined PyTorch network) | ||
- Generally only traffic lights up to 100m distance | ||
- Canny algorithm to filter contours | ||
|
||
### Problems and solutions | ||
|
||
- Red background distorts traffic light phase detection → **Solution**: Narrow section of the traffic light image for phase detection | ||
- Yellow painted traffic lights distort traffic light phase detection → **Solution**: Filter out red and green sections beforehand using masks and convert remaining image to grayscale and add masks again. | ||
- **Problem without solution**: European traffic lights can sometimes not be recognized at the stop line. | ||
|
||
## Resumee | ||
|
||
### Perception | ||
|
||
- Status quo: LIDAR Sensor and Big Neural Network | ||
- Possible focus: Using smaller (pretrained) models to improve overall performance fast | ||
- Taking known issues into account | ||
|
||
### Planning | ||
|
||
- Currently decision tree for evaluating the current position | ||
- Trying out different heuristics → already given as repo |