From 622ff16c638b82423592ceb92c3320840d9143b9 Mon Sep 17 00:00:00 2001 From: JulianTrommer Date: Wed, 9 Oct 2024 14:06:38 +0200 Subject: [PATCH 1/6] Removed leading numbers from folders & files --- .flake8 | 4 +- README.md | 8 ++-- build/README.md | 2 +- code/acting/readme.md | 14 +++--- .../src/coordinate_transformation.py | 2 +- .../plots/data_26_MAE_Boxed.png | Bin .../plots/data_26_MSE_Boxed.png | Bin .../plots/data_26_RMSPE_Boxed.png | Bin .../Position_Heading_Datasets/viz.py | 2 +- code/perception/src/kalman_filter.py | 4 +- code/perception/src/lidar_distance.py | 2 +- .../src/position_heading_filter_debug_node.py | 8 ++-- .../src/position_heading_publisher_node.py | 2 +- .../src/traffic_light_detection/Readme.md | 2 +- .../behavior_agent/behaviours/maneuvers.py | 2 +- doc/03_research/01_acting/Readme.md | 11 ----- doc/03_research/02_perception/Readme.md | 12 ----- doc/03_research/04_requirements/Readme.md | 7 --- doc/03_research/Readme.md | 10 ---- doc/05_acting/Readme.md | 10 ---- doc/06_perception/Readme.md | 22 --------- doc/acting/Readme.md | 10 ++++ .../acting_testing.md} | 0 .../architecture_documentation.md} | 2 +- .../main_frame_publisher.md} | 2 +- .../steering_controllers.md} | 8 ++-- .../vehicle_controller.md} | 4 +- .../velocity_controller.md} | 8 ++-- doc/{00_assets => assets}/2_15_layover.png | Bin doc/{00_assets => assets}/2_layover.png | Bin doc/{00_assets => assets}/3_layover.png | Bin doc/{00_assets => assets}/3d_2d_formula.png | Bin .../3d_2d_projection.png | Bin doc/{00_assets => assets}/4_layover.png | Bin doc/{00_assets => assets}/Back_Detection.png | Bin doc/{00_assets => assets}/Comment_PR.png | Bin doc/{00_assets => assets}/Comment_viewed.png | Bin .../Commit_suggestion.png | Bin doc/{00_assets => assets}/Driving_SM.png | Bin doc/{00_assets => assets}/Files_Changed.png | Bin doc/{00_assets => assets}/Front_Detection.png | Bin doc/{00_assets => assets}/Global_Plan.png | Bin doc/{00_assets => assets}/Intersection_SM.png | Bin doc/{00_assets => assets}/Lane_Change_SM.png | Bin doc/{00_assets => assets}/Lanelets.png | Bin doc/{00_assets => assets}/Left_Detection.png | Bin doc/{00_assets => assets}/PR_overview.png | Bin .../Planning_Implementierung.png | Bin doc/{00_assets => assets}/Pycharm_PR.png | Bin .../Resolve_conversation.png | Bin doc/{00_assets => assets}/Review_changes.png | Bin doc/{00_assets => assets}/Right_Detection.png | Bin doc/{00_assets => assets}/Right_lane.png | Bin doc/{00_assets => assets}/Road0_cutout.png | Bin .../Stop_sign_OpenDrive.png | Bin doc/{00_assets => assets}/Suggestion.png | Bin doc/{00_assets => assets}/Super_SM.png | Bin doc/{00_assets => assets}/TR01.png | Bin doc/{00_assets => assets}/TR02.png | Bin doc/{00_assets => assets}/TR03.png | Bin doc/{00_assets => assets}/TR04.png | Bin doc/{00_assets => assets}/TR05.png | Bin doc/{00_assets => assets}/TR06.png | Bin doc/{00_assets => assets}/TR07.png | Bin doc/{00_assets => assets}/TR08.png | Bin doc/{00_assets => assets}/TR09.png | Bin doc/{00_assets => assets}/TR10.png | Bin doc/{00_assets => assets}/TR11.png | Bin doc/{00_assets => assets}/TR12.png | Bin doc/{00_assets => assets}/TR14.png | Bin doc/{00_assets => assets}/TR15.png | Bin doc/{00_assets => assets}/TR16.png | Bin doc/{00_assets => assets}/TR17.png | Bin doc/{00_assets => assets}/TR18.png | Bin doc/{00_assets => assets}/TR19.png | Bin doc/{00_assets => assets}/TR20.png | Bin doc/{00_assets => assets}/TR21.png | Bin doc/{00_assets => assets}/TR22.png | Bin doc/{00_assets => assets}/TR23.png | Bin doc/{00_assets => assets}/Traffic_SM.png | Bin .../acting/Architecture_Acting.png | Bin .../acting/Steering_PurePursuit.png | Bin .../acting/Steering_PurePursuit_Tuning.png | Bin .../acting/Steering_Stanley.png | Bin .../Steering_Stanley_ComparedToPurePur.png | Bin .../VelContr_PID_BrakingWithThrottlePID.png | Bin .../acting/VelContr_PID_StepResponse.png | Bin .../VelContr_PID_differentVelocities.png | Bin .../acting/emergency_brake_stats_graph.png | Bin .../acting/main_frame_publisher_bug.png | Bin doc/{00_assets => assets}/behaviour_tree.png | Bin .../berechnungsmodell.png | Bin doc/{00_assets => assets}/branch_overview.png | Bin doc/{00_assets => assets}/bug_template.png | Bin doc/{00_assets => assets}/create_issue.png | Bin .../distance_visualization.png | Bin .../efficientps_structure.png | Bin .../fahrzeugapproximation.png | Bin .../fahrzeugpositionsberechnung.png | Bin .../fahrzeugwinkelberechnung.png | Bin .../feature_template.png | Bin .../filter_img/avg_10_w_0_500.png | Bin .../filter_img/avg_10_w_0_750.png | Bin .../filter_img/avg_10_w_1_000.png | Bin .../filter_img/avg_1_w_0_500.png | Bin .../filter_img/avg_1_w_0_750.png | Bin .../filter_img/avg_1_w_1_000.png | Bin .../filter_img/avg_20_w_0_750.png | Bin .../filter_img/avg_7_w_0_500.png | Bin .../filter_img/avg_7_w_0_750.png | Bin .../filter_img/avg_7_w_1_000.png | Bin .../filter_img/rolling_avg_1.png | Bin .../filter_img/rolling_avg_10.png | Bin .../filter_img/rolling_avg_20.png | Bin .../filter_img/rolling_avg_5.png | Bin doc/{00_assets => assets}/gdrive-paf.png | Bin .../gdrive-permissions.png | Bin .../gewinnerteam19-architektur.png | Bin doc/{00_assets => assets}/git-flow.svg | 0 .../github-action-md.png | Bin .../github-action-py.png | Bin .../github_create_a_branch.png | Bin .../global_trajectory.png | Bin .../gnss_ohne_rolling_average.png | Bin .../implementation_plan_perception.jpg | Bin doc/{00_assets => assets}/intersection.png | Bin doc/{00_assets => assets}/intersection_2.png | Bin doc/{00_assets => assets}/issue_wizard.png | Bin doc/{00_assets => assets}/junction.png | Bin .../kollisionsberechnung.png | Bin doc/{00_assets => assets}/kreuzungszonen.png | Bin doc/{00_assets => assets}/lane_midpoint.png | Bin doc/{00_assets => assets}/leaderboard-1.png | Bin doc/{00_assets => assets}/leaderboard-2.png | Bin doc/{00_assets => assets}/legend_bt.png | Bin doc/{00_assets => assets}/lidar_filter.png | Bin .../lidarhinderniserkennung.png | Bin .../local_trajectory.png | Bin doc/{00_assets => assets}/multi_lane.png | Bin doc/{00_assets => assets}/nvcc_version.png | Bin doc/{00_assets => assets}/occupancygrid.png | Bin .../optimierungsvisualisierung.png | Bin .../overtaking_overview.png | Bin doc/{00_assets => assets}/overview.jpg | Bin .../adding_new_position_methods.png | Bin .../perception/data_26_MAE_Boxed.png | Bin .../perception/data_26_MSE_Boxed.png | Bin .../perception/kalman_installation_guide.png | Bin .../perception/modular_subscriber_example.png | Bin .../perception/new_heading_pub_example.png | Bin .../perception/non_linear_kalman_example.png | Bin .../perception/quat_to_angle.png | Bin .../perception/sensor_debug_change.png | Bin .../perception/sensor_debug_data_saving.png | Bin .../perception/sensor_debug_viz_config.png | Bin .../assets/planning \303\274bersicht.png" | Bin .../planning/BT_paper.png | Bin .../planning/BehaviorTree_medium.png | Bin .../planning/Globalplan.png | Bin .../planning/Overtake_car_trajectory.png | Bin .../planning/Planning.png | Bin .../planning/Planning_architecture.png | Bin .../planning/Planning_paf21.png | Bin .../planning/collision_check.png | Bin .../planning/intersection_scenario.png | Bin .../planning/localplan.png | Bin .../planning/overtaking_scenario.png | Bin .../planning/overview.jpg | Bin .../planning/overview.png | Bin .../planning/overview_paper1.png | Bin .../plot_full_trajectory_1_degree.png | Bin doc/{00_assets => assets}/planning/prios.png | Bin .../planning/simple_final_tree.png | Bin .../planning/test_frenet_results.png | Bin .../planning/three_scenarios.png | Bin .../planning/vector_calculation.png | Bin .../planning/vision_objects_filter_cc.png | Bin doc/{00_assets => assets}/positionsvektor.png | Bin .../preplanning_start.png | Bin .../pytree_PAF_status.drawio.png | Bin doc/{00_assets => assets}/reference.png | Bin doc/{00_assets => assets}/reference_xodr.png | Bin .../research_assets/bicyclegeometry.png | Bin .../research_assets/chattering.gif | Bin .../curve_detection_paf21_1.png | Bin .../danglingcarrotgeometry.png | Bin .../research_assets/messages_paf21_2.png | Bin .../research_assets/mpc.png | Bin .../research_assets/pure_pursuit.png | Bin .../standard_routine_paf21_2.png | Bin .../research_assets/stanley_controller.png | Bin .../research_assets/stanley_paf21_1.png | Bin .../research_assets/stanleyerror.png | Bin doc/{00_assets => assets}/road_option.png | Bin .../road_options_concept.png | Bin doc/{00_assets => assets}/roads_vis.png | Bin doc/{00_assets => assets}/segmentation.png | Bin doc/{00_assets => assets}/sensoranordnung.png | Bin doc/{00_assets => assets}/statemachines.png | Bin doc/{00_assets => assets}/top-level.png | Bin .../trajectory_roads.png | Bin .../trajekorienfehlermin.png | Bin .../trajektorienberechnung.png | Bin .../vulkan_device_not_available.png | Bin .../paf23/sprint_1.md | 0 .../paf23/sprint_2.md | 0 .../paf23/sprint_3.md | 0 .../paf23/sprint_4.md | 0 .../paf23/sprint_5.md | 0 .../paf23/sprint_6.md | 0 .../paf23/sprint_7.md | 0 .../paf24/mermaid_paf24.md | 0 .../paf24/student_roles24.md | 0 doc/{02_development => development}/Readme.md | 26 +++++------ .../build_action.md} | 0 .../coding_style.md} | 0 .../discord_webhook.md} | 0 .../distributed_simulation.md} | 0 .../documentation_requirements.md} | 6 +-- .../11_dvc.md => development/dvc.md} | 12 ++--- .../git_workflow.md} | 10 ++-- .../installing_cuda.md | 2 +- .../installing_python_packages.md} | 0 .../linter_action.md} | 8 ++-- .../02_linting.md => development/linting.md} | 0 .../project_management.md} | 12 ++--- .../review_guideline.md} | 18 +++---- .../templates/template_class.py | 0 .../templates/template_class_no_comments.py | 0 .../templates/template_component_readme.md | 0 .../templates/template_wiki_page.md | 0 .../templates/template_wiki_page_empty.md | 0 .../dvc_example/.gitignore | 0 .../dvc_example/dataset.dvc | 0 .../gps_example/gps_signal_example.md | 20 ++++---- doc/{01_general => general}/Readme.md | 4 +- .../architecture.md} | 32 ++++++------- .../installation.md} | 2 +- doc/perception/Readme.md | 22 +++++++++ .../coordinate_transformation.md} | 8 ++-- .../dataset_generator.md} | 0 .../dataset_structure.md} | 2 +- .../distance_to_objects.md} | 12 ++--- .../efficientps.md} | 4 +- .../experiments/README.md | 0 .../experiments/lanenet_evaluation/README.md | 0 .../lanenet_evaluation/assets/1600_lanes.jpg | Bin .../assets/1600_lanes_mask.jpg | Bin .../lanenet_evaluation/assets/1619_lanes.jpg | Bin .../assets/1619_lanes_mask.jpg | Bin .../lanenet_evaluation/assets/1660_lanes.jpg | Bin .../assets/1660_lanes_mask.jpg | Bin .../lanenet_evaluation/assets/1663_lanes.jpg | Bin .../assets/1663_lanes_mask.jpg | Bin .../README.md | 0 .../1619_PT_fasterrcnn_resnet50_fpn_v2.jpg | Bin .../asset-copies/1619_TF_faster-rcnn.jpg | Bin .../asset-copies/1619_yolo_nas_l.jpg | Bin .../asset-copies/1619_yolo_rtdetr_x.jpg | Bin .../asset-copies/1619_yolov8x.jpg | Bin .../asset-copies/1619_yolov8x_seg.jpg | Bin .../globals.py | 0 .../object-detection-model_evaluation/pt.py | 0 .../pylot.py | 0 .../requirements.txt | 0 .../object-detection-model_evaluation/yolo.py | 0 .../README.md | 0 .../assets/back_1.png | Bin .../assets/back_14.jpg | Bin .../assets/green_22.jpg | Bin .../assets/green_4.png | Bin .../assets/red_10.png | Bin .../assets/red_20.png | Bin .../assets/yellow_1.png | Bin .../assets/yellow_18.jpg | Bin .../kalman_filter.md} | 6 +-- .../lidar_distance_utility.md} | 2 +- .../position_heading_filter_debug_node.md} | 18 +++---- .../position_heading_publisher_node.md} | 12 ++--- .../traffic_light_detection.md} | 0 .../vision_node.md} | 24 +++++----- doc/{07_planning => planning}/ACC.md | 0 .../Behavior_tree.md | 8 ++-- .../Collision_Check.md | 0 .../Global_Planner.md | 0 .../Local_Planning.md | 14 +++--- doc/{07_planning => planning}/Preplanning.md | 14 +++--- doc/{07_planning => planning}/README.md | 6 +-- .../Unstuck_Behavior.md | 4 +- .../motion_planning.md | 0 .../01_py_trees.md => planning/py_trees.md} | 2 +- .../Leaderboard-2/changes_leaderboard2.md | 2 +- doc/research/Readme.md | 10 ++++ doc/research/acting/Readme.md | 11 +++++ .../acting/autoware_acting.md} | 0 .../acting/basics_acting.md} | 10 ++-- .../acting/implementation_acting.md} | 2 +- .../acting/paf21_1_acting.md} | 4 +- .../acting/paf21_2_and_pylot_acting.md} | 14 +++--- .../perception}/LIDAR_data.md | 2 +- doc/research/perception/Readme.md | 12 +++++ .../perception/Research_PAF21-Perception.md} | 0 .../perception/autoware-perception.md} | 0 .../perception/basics.md} | 0 .../perception/first_implementation_plan.md} | 4 +- .../perception/paf_21_1_perception.md} | 0 .../perception/pylot.md} | 0 .../planning}/Readme.md | 4 +- .../planning/paf22/Implementation.md} | 12 ++--- .../planning/paf22/Navigation_Data.md} | 0 .../planning/paf22/OpenDrive.md} | 14 +++--- .../planning/paf22/basics.md} | 30 ++++++------ .../planning/paf22/decision_making.md} | 0 .../paf22/reevaluation_desicion_making.md} | 0 .../planning/paf22/state_machine_design.md} | 10 ++-- .../Local_planning_for_first_milestone.md} | 12 ++--- .../planning/paf23/PlannedArchitecture.md} | 8 ++-- .../planning/paf23/Planning.md} | 4 +- .../planning/paf23/PlanningPaf22.md} | 2 +- .../paf23/Research_Pylot_Planning.md} | 0 .../Testing_frenet_trajectory_planner.md | 2 +- .../planning/paf23/paf21-1.md} | 2 +- .../planning/paf23}/test_traj.py | 0 doc/research/requirements/Readme.md | 7 +++ .../informations_from_leaderboard.md} | 0 .../requirements/requirements.md} | 2 +- .../requirements/use_cases.md} | 44 +++++++++--------- 327 files changed, 348 insertions(+), 344 deletions(-) rename code/perception/src/{00_Experiments => experiments}/Position_Heading_Datasets/plots/data_26_MAE_Boxed.png (100%) rename code/perception/src/{00_Experiments => experiments}/Position_Heading_Datasets/plots/data_26_MSE_Boxed.png (100%) rename code/perception/src/{00_Experiments => experiments}/Position_Heading_Datasets/plots/data_26_RMSPE_Boxed.png (100%) rename code/perception/src/{00_Experiments => experiments}/Position_Heading_Datasets/viz.py (99%) delete mode 100644 doc/03_research/01_acting/Readme.md delete mode 100644 doc/03_research/02_perception/Readme.md delete mode 100644 doc/03_research/04_requirements/Readme.md delete mode 100644 doc/03_research/Readme.md delete mode 100644 doc/05_acting/Readme.md delete mode 100644 doc/06_perception/Readme.md create mode 100644 doc/acting/Readme.md rename doc/{05_acting/05_acting_testing.md => acting/acting_testing.md} (100%) rename doc/{05_acting/01_architecture_documentation.md => acting/architecture_documentation.md} (98%) rename doc/{05_acting/06_main_frame_publisher.md => acting/main_frame_publisher.md} (94%) rename doc/{05_acting/03_steering_controllers.md => acting/steering_controllers.md} (93%) rename doc/{05_acting/04_vehicle_controller.md => acting/vehicle_controller.md} (95%) rename doc/{05_acting/02_velocity_controller.md => acting/velocity_controller.md} (91%) rename doc/{00_assets => assets}/2_15_layover.png (100%) rename doc/{00_assets => assets}/2_layover.png (100%) rename doc/{00_assets => assets}/3_layover.png (100%) rename doc/{00_assets => assets}/3d_2d_formula.png (100%) rename doc/{00_assets => assets}/3d_2d_projection.png (100%) rename doc/{00_assets => assets}/4_layover.png (100%) rename doc/{00_assets => assets}/Back_Detection.png (100%) rename doc/{00_assets => assets}/Comment_PR.png (100%) rename doc/{00_assets => assets}/Comment_viewed.png (100%) rename doc/{00_assets => assets}/Commit_suggestion.png (100%) rename doc/{00_assets => assets}/Driving_SM.png (100%) rename doc/{00_assets => assets}/Files_Changed.png (100%) rename doc/{00_assets => assets}/Front_Detection.png (100%) rename doc/{00_assets => assets}/Global_Plan.png (100%) rename doc/{00_assets => assets}/Intersection_SM.png (100%) rename doc/{00_assets => assets}/Lane_Change_SM.png (100%) rename doc/{00_assets => assets}/Lanelets.png (100%) rename doc/{00_assets => assets}/Left_Detection.png (100%) rename doc/{00_assets => assets}/PR_overview.png (100%) rename doc/{00_assets => assets}/Planning_Implementierung.png (100%) rename doc/{00_assets => assets}/Pycharm_PR.png (100%) rename doc/{00_assets => assets}/Resolve_conversation.png (100%) rename doc/{00_assets => assets}/Review_changes.png (100%) rename doc/{00_assets => assets}/Right_Detection.png (100%) rename doc/{00_assets => assets}/Right_lane.png (100%) rename doc/{00_assets => assets}/Road0_cutout.png (100%) rename doc/{00_assets => assets}/Stop_sign_OpenDrive.png (100%) rename doc/{00_assets => assets}/Suggestion.png (100%) rename doc/{00_assets => assets}/Super_SM.png (100%) rename doc/{00_assets => assets}/TR01.png (100%) rename doc/{00_assets => assets}/TR02.png (100%) rename doc/{00_assets => assets}/TR03.png (100%) rename doc/{00_assets => assets}/TR04.png (100%) rename doc/{00_assets => assets}/TR05.png (100%) rename doc/{00_assets => assets}/TR06.png (100%) rename doc/{00_assets => assets}/TR07.png (100%) rename doc/{00_assets => assets}/TR08.png (100%) rename doc/{00_assets => assets}/TR09.png (100%) rename doc/{00_assets => assets}/TR10.png (100%) rename doc/{00_assets => assets}/TR11.png (100%) rename doc/{00_assets => assets}/TR12.png (100%) rename doc/{00_assets => assets}/TR14.png (100%) rename doc/{00_assets => assets}/TR15.png (100%) rename doc/{00_assets => assets}/TR16.png (100%) rename doc/{00_assets => assets}/TR17.png (100%) rename doc/{00_assets => assets}/TR18.png (100%) rename doc/{00_assets => assets}/TR19.png (100%) rename doc/{00_assets => assets}/TR20.png (100%) rename doc/{00_assets => assets}/TR21.png (100%) rename doc/{00_assets => assets}/TR22.png (100%) rename doc/{00_assets => assets}/TR23.png (100%) rename doc/{00_assets => assets}/Traffic_SM.png (100%) rename doc/{00_assets => assets}/acting/Architecture_Acting.png (100%) rename doc/{00_assets => assets}/acting/Steering_PurePursuit.png (100%) rename doc/{00_assets => assets}/acting/Steering_PurePursuit_Tuning.png (100%) rename doc/{00_assets => assets}/acting/Steering_Stanley.png (100%) rename doc/{00_assets => assets}/acting/Steering_Stanley_ComparedToPurePur.png (100%) rename doc/{00_assets => assets}/acting/VelContr_PID_BrakingWithThrottlePID.png (100%) rename doc/{00_assets => assets}/acting/VelContr_PID_StepResponse.png (100%) rename doc/{00_assets => assets}/acting/VelContr_PID_differentVelocities.png (100%) rename doc/{00_assets => assets}/acting/emergency_brake_stats_graph.png (100%) rename doc/{00_assets => assets}/acting/main_frame_publisher_bug.png (100%) rename doc/{00_assets => assets}/behaviour_tree.png (100%) rename doc/{00_assets => assets}/berechnungsmodell.png (100%) rename doc/{00_assets => assets}/branch_overview.png (100%) rename doc/{00_assets => assets}/bug_template.png (100%) rename doc/{00_assets => assets}/create_issue.png (100%) rename doc/{00_assets => assets}/distance_visualization.png (100%) rename doc/{00_assets => assets}/efficientps_structure.png (100%) rename doc/{00_assets => assets}/fahrzeugapproximation.png (100%) rename doc/{00_assets => assets}/fahrzeugpositionsberechnung.png (100%) rename doc/{00_assets => assets}/fahrzeugwinkelberechnung.png (100%) rename doc/{00_assets => assets}/feature_template.png (100%) rename doc/{00_assets => assets}/filter_img/avg_10_w_0_500.png (100%) rename doc/{00_assets => assets}/filter_img/avg_10_w_0_750.png (100%) rename doc/{00_assets => assets}/filter_img/avg_10_w_1_000.png (100%) rename doc/{00_assets => assets}/filter_img/avg_1_w_0_500.png (100%) rename doc/{00_assets => assets}/filter_img/avg_1_w_0_750.png (100%) rename doc/{00_assets => assets}/filter_img/avg_1_w_1_000.png (100%) rename doc/{00_assets => assets}/filter_img/avg_20_w_0_750.png (100%) rename doc/{00_assets => assets}/filter_img/avg_7_w_0_500.png (100%) rename doc/{00_assets => assets}/filter_img/avg_7_w_0_750.png (100%) rename doc/{00_assets => assets}/filter_img/avg_7_w_1_000.png (100%) rename doc/{00_assets => assets}/filter_img/rolling_avg_1.png (100%) rename doc/{00_assets => assets}/filter_img/rolling_avg_10.png (100%) rename doc/{00_assets => assets}/filter_img/rolling_avg_20.png (100%) rename doc/{00_assets => assets}/filter_img/rolling_avg_5.png (100%) rename doc/{00_assets => assets}/gdrive-paf.png (100%) rename doc/{00_assets => assets}/gdrive-permissions.png (100%) rename doc/{00_assets => assets}/gewinnerteam19-architektur.png (100%) rename doc/{00_assets => assets}/git-flow.svg (100%) rename doc/{00_assets => assets}/github-action-md.png (100%) rename doc/{00_assets => assets}/github-action-py.png (100%) rename doc/{00_assets => assets}/github_create_a_branch.png (100%) rename doc/{00_assets => assets}/global_trajectory.png (100%) rename doc/{00_assets => assets}/gnss_ohne_rolling_average.png (100%) rename doc/{00_assets => assets}/implementation_plan_perception.jpg (100%) rename doc/{00_assets => assets}/intersection.png (100%) rename doc/{00_assets => assets}/intersection_2.png (100%) rename doc/{00_assets => assets}/issue_wizard.png (100%) rename doc/{00_assets => assets}/junction.png (100%) rename doc/{00_assets => assets}/kollisionsberechnung.png (100%) rename doc/{00_assets => assets}/kreuzungszonen.png (100%) rename doc/{00_assets => assets}/lane_midpoint.png (100%) rename doc/{00_assets => assets}/leaderboard-1.png (100%) rename doc/{00_assets => assets}/leaderboard-2.png (100%) rename doc/{00_assets => assets}/legend_bt.png (100%) rename doc/{00_assets => assets}/lidar_filter.png (100%) rename doc/{00_assets => assets}/lidarhinderniserkennung.png (100%) rename doc/{00_assets => assets}/local_trajectory.png (100%) rename doc/{00_assets => assets}/multi_lane.png (100%) rename doc/{00_assets => assets}/nvcc_version.png (100%) rename doc/{00_assets => assets}/occupancygrid.png (100%) rename doc/{00_assets => assets}/optimierungsvisualisierung.png (100%) rename doc/{00_assets => assets}/overtaking_overview.png (100%) rename doc/{00_assets => assets}/overview.jpg (100%) rename doc/{00_assets => assets}/perception/adding_new_position_methods.png (100%) rename doc/{00_assets => assets}/perception/data_26_MAE_Boxed.png (100%) rename doc/{00_assets => assets}/perception/data_26_MSE_Boxed.png (100%) rename doc/{00_assets => assets}/perception/kalman_installation_guide.png (100%) rename doc/{00_assets => assets}/perception/modular_subscriber_example.png (100%) rename doc/{00_assets => assets}/perception/new_heading_pub_example.png (100%) rename doc/{00_assets => assets}/perception/non_linear_kalman_example.png (100%) rename doc/{00_assets => assets}/perception/quat_to_angle.png (100%) rename doc/{00_assets => assets}/perception/sensor_debug_change.png (100%) rename doc/{00_assets => assets}/perception/sensor_debug_data_saving.png (100%) rename doc/{00_assets => assets}/perception/sensor_debug_viz_config.png (100%) rename "doc/00_assets/planning \303\274bersicht.png" => "doc/assets/planning \303\274bersicht.png" (100%) rename doc/{00_assets => assets}/planning/BT_paper.png (100%) rename doc/{00_assets => assets}/planning/BehaviorTree_medium.png (100%) rename doc/{00_assets => assets}/planning/Globalplan.png (100%) rename doc/{00_assets => assets}/planning/Overtake_car_trajectory.png (100%) rename doc/{00_assets => assets}/planning/Planning.png (100%) rename doc/{00_assets => assets}/planning/Planning_architecture.png (100%) rename doc/{00_assets => assets}/planning/Planning_paf21.png (100%) rename doc/{00_assets => assets}/planning/collision_check.png (100%) rename doc/{00_assets => assets}/planning/intersection_scenario.png (100%) rename doc/{00_assets => assets}/planning/localplan.png (100%) rename doc/{00_assets => assets}/planning/overtaking_scenario.png (100%) rename doc/{00_assets => assets}/planning/overview.jpg (100%) rename doc/{00_assets => assets}/planning/overview.png (100%) rename doc/{00_assets => assets}/planning/overview_paper1.png (100%) rename doc/{00_assets => assets}/planning/plot_full_trajectory_1_degree.png (100%) rename doc/{00_assets => assets}/planning/prios.png (100%) rename doc/{00_assets => assets}/planning/simple_final_tree.png (100%) rename doc/{00_assets => assets}/planning/test_frenet_results.png (100%) rename doc/{00_assets => assets}/planning/three_scenarios.png (100%) rename doc/{00_assets => assets}/planning/vector_calculation.png (100%) rename doc/{00_assets => assets}/planning/vision_objects_filter_cc.png (100%) rename doc/{00_assets => assets}/positionsvektor.png (100%) rename doc/{00_assets => assets}/preplanning_start.png (100%) rename doc/{00_assets => assets}/pytree_PAF_status.drawio.png (100%) rename doc/{00_assets => assets}/reference.png (100%) rename doc/{00_assets => assets}/reference_xodr.png (100%) rename doc/{00_assets => assets}/research_assets/bicyclegeometry.png (100%) rename doc/{00_assets => assets}/research_assets/chattering.gif (100%) rename doc/{00_assets => assets}/research_assets/curve_detection_paf21_1.png (100%) rename doc/{00_assets => assets}/research_assets/danglingcarrotgeometry.png (100%) rename doc/{00_assets => assets}/research_assets/messages_paf21_2.png (100%) rename doc/{00_assets => assets}/research_assets/mpc.png (100%) rename doc/{00_assets => assets}/research_assets/pure_pursuit.png (100%) rename doc/{00_assets => assets}/research_assets/standard_routine_paf21_2.png (100%) rename doc/{00_assets => assets}/research_assets/stanley_controller.png (100%) rename doc/{00_assets => assets}/research_assets/stanley_paf21_1.png (100%) rename doc/{00_assets => assets}/research_assets/stanleyerror.png (100%) rename doc/{00_assets => assets}/road_option.png (100%) rename doc/{00_assets => assets}/road_options_concept.png (100%) rename doc/{00_assets => assets}/roads_vis.png (100%) rename doc/{00_assets => assets}/segmentation.png (100%) rename doc/{00_assets => assets}/sensoranordnung.png (100%) rename doc/{00_assets => assets}/statemachines.png (100%) rename doc/{00_assets => assets}/top-level.png (100%) rename doc/{00_assets => assets}/trajectory_roads.png (100%) rename doc/{00_assets => assets}/trajekorienfehlermin.png (100%) rename doc/{00_assets => assets}/trajektorienberechnung.png (100%) rename doc/{00_assets => assets}/vulkan_device_not_available.png (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_1.md (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_2.md (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_3.md (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_4.md (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_5.md (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_6.md (100%) rename doc/{08_dev_talks => dev_talks}/paf23/sprint_7.md (100%) rename doc/{08_dev_talks => dev_talks}/paf24/mermaid_paf24.md (100%) rename doc/{08_dev_talks => dev_talks}/paf24/student_roles24.md (100%) rename doc/{02_development => development}/Readme.md (67%) rename doc/{02_development/10_build_action.md => development/build_action.md} (100%) rename doc/{02_development/04_coding_style.md => development/coding_style.md} (100%) rename doc/{02_development/12_discord_webhook.md => development/discord_webhook.md} (100%) rename doc/{02_development/14_distributed_simulation.md => development/distributed_simulation.md} (100%) rename doc/{02_development/13_documentation_requirements.md => development/documentation_requirements.md} (95%) rename doc/{02_development/11_dvc.md => development/dvc.md} (96%) rename doc/{02_development/05_git_workflow.md => development/git_workflow.md} (85%) rename doc/{02_development => development}/installing_cuda.md (97%) rename doc/{02_development/10_installing_python_packages.md => development/installing_python_packages.md} (100%) rename doc/{02_development/09_linter_action.md => development/linter_action.md} (93%) rename doc/{02_development/02_linting.md => development/linting.md} (100%) rename doc/{02_development/08_project_management.md => development/project_management.md} (92%) rename doc/{02_development/07_review_guideline.md => development/review_guideline.md} (92%) rename doc/{02_development => development}/templates/template_class.py (100%) rename doc/{02_development => development}/templates/template_class_no_comments.py (100%) rename doc/{02_development => development}/templates/template_component_readme.md (100%) rename doc/{02_development => development}/templates/template_wiki_page.md (100%) rename doc/{02_development => development}/templates/template_wiki_page_empty.md (100%) rename doc/{04_examples => examples}/dvc_example/.gitignore (100%) rename doc/{04_examples => examples}/dvc_example/dataset.dvc (100%) rename doc/{04_examples => examples}/gps_example/gps_signal_example.md (86%) rename doc/{01_general => general}/Readme.md (50%) rename doc/{01_general/04_architecture.md => general/architecture.md} (93%) rename doc/{01_general/02_installation.md => general/installation.md} (97%) create mode 100644 doc/perception/Readme.md rename doc/{06_perception/00_coordinate_transformation.md => perception/coordinate_transformation.md} (92%) rename doc/{06_perception/01_dataset_generator.md => perception/dataset_generator.md} (100%) rename doc/{06_perception/02_dataset_structure.md => perception/dataset_structure.md} (97%) rename doc/{06_perception/10_distance_to_objects.md => perception/distance_to_objects.md} (92%) rename doc/{06_perception/04_efficientps.md => perception/efficientps.md} (94%) rename doc/{06_perception => perception}/experiments/README.md (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/README.md (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1600_lanes.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1600_lanes_mask.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1619_lanes.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1619_lanes_mask.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1660_lanes.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1660_lanes_mask.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1663_lanes.jpg (100%) rename doc/{06_perception => perception}/experiments/lanenet_evaluation/assets/1663_lanes_mask.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/README.md (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/asset-copies/1619_PT_fasterrcnn_resnet50_fpn_v2.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/asset-copies/1619_TF_faster-rcnn.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_nas_l.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_rtdetr_x.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/globals.py (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/pt.py (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/pylot.py (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/requirements.txt (100%) rename doc/{06_perception => perception}/experiments/object-detection-model_evaluation/yolo.py (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/README.md (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/back_1.png (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/back_14.jpg (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/green_22.jpg (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/green_4.png (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/red_10.png (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/red_20.png (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/yellow_1.png (100%) rename doc/{06_perception => perception}/experiments/traffic-light-detection_evaluation/assets/yellow_18.jpg (100%) rename doc/{06_perception/08_kalman_filter.md => perception/kalman_filter.md} (97%) rename doc/{06_perception/03_lidar_distance_utility.md => perception/lidar_distance_utility.md} (98%) rename doc/{06_perception/07_position_heading_filter_debug_node.md => perception/position_heading_filter_debug_node.md} (92%) rename doc/{06_perception/09_position_heading_publisher_node.md => perception/position_heading_publisher_node.md} (89%) rename doc/{06_perception/11_traffic_light_detection.md => perception/traffic_light_detection.md} (100%) rename doc/{06_perception/06_vision_node.md => perception/vision_node.md} (75%) rename doc/{07_planning => planning}/ACC.md (100%) rename doc/{07_planning => planning}/Behavior_tree.md (96%) rename doc/{07_planning => planning}/Collision_Check.md (100%) rename doc/{07_planning => planning}/Global_Planner.md (100%) rename doc/{07_planning => planning}/Local_Planning.md (93%) rename doc/{07_planning => planning}/Preplanning.md (96%) rename doc/{07_planning => planning}/README.md (92%) rename doc/{07_planning => planning}/Unstuck_Behavior.md (91%) rename doc/{07_planning => planning}/motion_planning.md (100%) rename doc/{07_planning/01_py_trees.md => planning/py_trees.md} (97%) rename doc/{03_research => research}/Leaderboard-2/changes_leaderboard2.md (96%) create mode 100644 doc/research/Readme.md create mode 100644 doc/research/acting/Readme.md rename doc/{03_research/01_acting/05_autoware_acting.md => research/acting/autoware_acting.md} (100%) rename doc/{03_research/01_acting/01_basics_acting.md => research/acting/basics_acting.md} (96%) rename doc/{03_research/01_acting/02_implementation_acting.md => research/acting/implementation_acting.md} (96%) rename doc/{03_research/01_acting/03_paf21_1_acting.md => research/acting/paf21_1_acting.md} (87%) rename doc/{03_research/01_acting/04_paf21_2_and_pylot_acting.md => research/acting/paf21_2_and_pylot_acting.md} (97%) rename doc/{03_research/02_perception => research/perception}/LIDAR_data.md (96%) create mode 100644 doc/research/perception/Readme.md rename doc/{03_research/02_perception/05_Research_PAF21-Perception.md => research/perception/Research_PAF21-Perception.md} (100%) rename doc/{03_research/02_perception/05-autoware-perception.md => research/perception/autoware-perception.md} (100%) rename doc/{03_research/02_perception/02_basics.md => research/perception/basics.md} (100%) rename doc/{03_research/02_perception/03_first_implementation_plan.md => research/perception/first_implementation_plan.md} (97%) rename doc/{03_research/02_perception/06_paf_21_1_perception.md => research/perception/paf_21_1_perception.md} (100%) rename doc/{03_research/02_perception/04_pylot.md => research/perception/pylot.md} (100%) rename doc/{03_research/03_planning => research/planning}/Readme.md (81%) rename doc/{03_research/03_planning/00_paf22/03_Implementation.md => research/planning/paf22/Implementation.md} (94%) rename doc/{03_research/03_planning/00_paf22/05_Navigation_Data.md => research/planning/paf22/Navigation_Data.md} (100%) rename doc/{03_research/03_planning/00_paf22/07_OpenDrive.md => research/planning/paf22/OpenDrive.md} (97%) rename doc/{03_research/03_planning/00_paf22/02_basics.md => research/planning/paf22/basics.md} (93%) rename doc/{03_research/03_planning/00_paf22/04_decision_making.md => research/planning/paf22/decision_making.md} (100%) rename doc/{03_research/03_planning/00_paf22/07_reevaluation_desicion_making.md => research/planning/paf22/reevaluation_desicion_making.md} (100%) rename doc/{03_research/03_planning/00_paf22/06_state_machine_design.md => research/planning/paf22/state_machine_design.md} (97%) rename doc/{03_research/03_planning/00_paf23/04_Local_planning_for_first_milestone.md => research/planning/paf23/Local_planning_for_first_milestone.md} (82%) rename doc/{03_research/03_planning/00_paf23/03_PlannedArchitecture.md => research/planning/paf23/PlannedArchitecture.md} (91%) rename doc/{03_research/03_planning/00_paf23/01_Planning.md => research/planning/paf23/Planning.md} (95%) rename doc/{03_research/03_planning/00_paf23/02_PlanningPaf22.md => research/planning/paf23/PlanningPaf22.md} (92%) rename doc/{03_research/03_planning/00_paf23/09_Research_Pylot_Planning.md => research/planning/paf23/Research_Pylot_Planning.md} (100%) rename doc/{03_research/03_planning/00_paf23 => research/planning/paf23}/Testing_frenet_trajectory_planner.md (97%) rename doc/{03_research/03_planning/00_paf23/08_paf21-1.md => research/planning/paf23/paf21-1.md} (93%) rename doc/{03_research/03_planning/00_paf23 => research/planning/paf23}/test_traj.py (100%) create mode 100644 doc/research/requirements/Readme.md rename doc/{03_research/04_requirements/02_informations_from_leaderboard.md => research/requirements/informations_from_leaderboard.md} (100%) rename doc/{03_research/04_requirements/03_requirements.md => research/requirements/requirements.md} (89%) rename doc/{03_research/04_requirements/04_use_cases.md => research/requirements/use_cases.md} (97%) diff --git a/.flake8 b/.flake8 index 6cce5018..042f2345 100644 --- a/.flake8 +++ b/.flake8 @@ -3,5 +3,5 @@ exclude= code/planning/src/behavior_agent/behavior_tree.py, code/planning/src/behavior_agent/behaviours/__init__.py, code/planning/src/behavior_agent/behaviours, code/planning/__init__.py, - doc/02_development/templates/template_class_no_comments.py, - doc/02_development/templates/template_class.py \ No newline at end of file + doc/development/templates/template_class_no_comments.py, + doc/development/templates/template_class.py \ No newline at end of file diff --git a/README.md b/README.md index 48c48f93..03c77c38 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Praktikum Autonomes Fahren - PAF -This repository contains the source code for the "Praktikum Autonomes Fahren" at the Chair of Mechatronics from the University of Augsburg in the winter semester of 2023/2024. +This repository contains the source code for the "Praktikum Autonomes Fahren" at the Chair of Mechatronics from the University of Augsburg. The goal of the project is to develop a self-driving car that can navigate through a simulated environment. The project is based on the [CARLA simulator](https://carla.org/) and uses the [ROS](https://www.ros.org/) framework for communication between the different components. In the future, the project aims to contribute to the [CARLA Autonomous Driving Challenge](https://leaderboard.carla.org/challenge/). @@ -27,12 +27,12 @@ To run the project you have to install [docker](https://docs.docker.com/engine/i [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). `docker` and `nvidia-docker` are used to run the project in a containerized environment with GPU support. -More detailed instructions about setup and execution can be found [here](./doc/01_general/Readme.md). +More detailed instructions about setup and execution can be found [here](./doc/general/Readme.md). ## Development -If you contribute to this project please read the guidelines first. They can be found [here](./doc/02_development/Readme.md). +If you contribute to this project please read the guidelines first. They can be found [here](./doc/development/Readme.md). ## Research -The research on existing projects we did can be found [here](./doc/03_research/Readme.md). +The research on existing projects we did can be found [here](./doc/research/Readme.md). diff --git a/build/README.md b/build/README.md index 6a4e7861..1f3ddeca 100644 --- a/build/README.md +++ b/build/README.md @@ -145,7 +145,7 @@ Distributed execution separates the agent and the CARLA simulator onto different - Running large vision models that require extensive VRAM. - The single machine's resources are insufficient to handle both the agent and simulator. -**Note**: In distributed execution, the CARLA simulator must be running on a second desktop PC, and the `CARLA_SIM_HOST` environment variable should be set accordingly. Further information can be found in [here](../doc/02_development/14_distributed_simulation.md). +**Note**: In distributed execution, the CARLA simulator must be running on a second desktop PC, and the `CARLA_SIM_HOST` environment variable should be set accordingly. Further information can be found in [here](../doc/development/distributed_simulation.md). ## Usage diff --git a/code/acting/readme.md b/code/acting/readme.md index abc85d83..39c73fbc 100644 --- a/code/acting/readme.md +++ b/code/acting/readme.md @@ -28,22 +28,22 @@ Alexander Hellmann ## Acting Documentation -In order to further understand the general idea of the taken approach to the acting component please refer to the documentation of the [research](../../doc/03_research/01_acting/Readme.md) done and see the planned [general definition](../../doc/01_general/04_architecture.md#acting). +In order to further understand the general idea of the taken approach to the acting component please refer to the documentation of the [research](../../doc/research/acting/Readme.md) done and see the planned [general definition](../../doc/general/architecture.md#acting). -It is also highly recommended to go through the indepth [Acting-Documentation](../../doc/05_acting/Readme.md)! +It is also highly recommended to go through the indepth [Acting-Documentation](../../doc/acting/Readme.md)! ## Test/Debug/Tune Acting-Components The Acting_Debug_Node can be used as a simulated Planning package, publishing adjustable target velocities, steerings and trajectories as needed. -For more information about this node and how to use it, please read the [documentation](../../doc/05_acting/05_acting_testing.md). +For more information about this node and how to use it, please read the [documentation](../../doc/acting/acting_testing.md). You can also find more information in the commented [code](./src/acting/Acting_Debug_Node.py). ## Longitudinal controllers (Velocity Controller) The longitudinal controller is implemented as a PID velocity controller. -For more information about this controller, either read the [documentation](../../doc/05_acting/02_velocity_controller.md) or go through the commented [code](./src/acting/velocity_controller.py). +For more information about this controller, either read the [documentation](../../doc/acting/velocity_controller.md) or go through the commented [code](./src/acting/velocity_controller.py). ## Lateral controllers (Steering Controllers) @@ -52,7 +52,7 @@ There are two steering controllers currently implemented, both providing live te - Pure Persuit Controller (paf/hero/pure_p_debug) - Stanley Controller (paf/hero/stanley_debug) -For further information about the steering controllers, either read the [documentation](./../../doc/05_acting/03_steering_controllers.md) or go through the commented code of [stanley_controller](./src/acting/stanley_controller.py) or [purepursuit_controller](./src/acting/pure_pursuit_controller.py). +For further information about the steering controllers, either read the [documentation](./../../doc/acting/steering_controllers.md) or go through the commented code of [stanley_controller](./src/acting/stanley_controller.py) or [purepursuit_controller](./src/acting/pure_pursuit_controller.py). ## Vehicle controller @@ -60,8 +60,8 @@ The VehicleController collects all necessary msgs from the other controllers and It also executes emergency-brakes and the unstuck-routine, if detected. -For more information about this controller, either read the [documentation](../../doc/05_acting/04_vehicle_controller.md) or go through the commented [code](./src/acting/vehicle_controller.py). +For more information about this controller, either read the [documentation](../../doc/acting/vehicle_controller.md) or go through the commented [code](./src/acting/vehicle_controller.py). ## Visualization of the HeroFrame in rviz -For information about vizualizing the upcomming path in rviz see [Main frame publisher](../../doc/05_acting/06_main_frame_publisher.md) +For information about vizualizing the upcomming path in rviz see [Main frame publisher](../../doc/acting/main_frame_publisher.md) diff --git a/code/perception/src/coordinate_transformation.py b/code/perception/src/coordinate_transformation.py index fd570e0a..4f062770 100755 --- a/code/perception/src/coordinate_transformation.py +++ b/code/perception/src/coordinate_transformation.py @@ -118,7 +118,7 @@ def ecef_to_enu(x, y, z, lat0, lon0, h0): def quat_to_heading(quaternion): """ Converts a quaternion to a heading of the car in radians - (see ../../doc/06_perception/00_coordinate_transformation.md) + (see ../../doc/perception/coordinate_transformation.md) :param quaternion: quaternion of the car as a list [q.x, q.y, q.z, q.w] where q is the quaternion :return: heading of the car in radians (float) diff --git a/code/perception/src/00_Experiments/Position_Heading_Datasets/plots/data_26_MAE_Boxed.png b/code/perception/src/experiments/Position_Heading_Datasets/plots/data_26_MAE_Boxed.png similarity index 100% rename from code/perception/src/00_Experiments/Position_Heading_Datasets/plots/data_26_MAE_Boxed.png rename to code/perception/src/experiments/Position_Heading_Datasets/plots/data_26_MAE_Boxed.png diff --git a/code/perception/src/00_Experiments/Position_Heading_Datasets/plots/data_26_MSE_Boxed.png b/code/perception/src/experiments/Position_Heading_Datasets/plots/data_26_MSE_Boxed.png similarity index 100% rename from code/perception/src/00_Experiments/Position_Heading_Datasets/plots/data_26_MSE_Boxed.png rename to code/perception/src/experiments/Position_Heading_Datasets/plots/data_26_MSE_Boxed.png diff --git a/code/perception/src/00_Experiments/Position_Heading_Datasets/plots/data_26_RMSPE_Boxed.png b/code/perception/src/experiments/Position_Heading_Datasets/plots/data_26_RMSPE_Boxed.png similarity index 100% rename from code/perception/src/00_Experiments/Position_Heading_Datasets/plots/data_26_RMSPE_Boxed.png rename to code/perception/src/experiments/Position_Heading_Datasets/plots/data_26_RMSPE_Boxed.png diff --git a/code/perception/src/00_Experiments/Position_Heading_Datasets/viz.py b/code/perception/src/experiments/Position_Heading_Datasets/viz.py similarity index 99% rename from code/perception/src/00_Experiments/Position_Heading_Datasets/viz.py rename to code/perception/src/experiments/Position_Heading_Datasets/viz.py index 979ff345..bee260b8 100644 --- a/code/perception/src/00_Experiments/Position_Heading_Datasets/viz.py +++ b/code/perception/src/experiments/Position_Heading_Datasets/viz.py @@ -4,7 +4,7 @@ """ The documentation on how to use this file can be found in -docs/perception/07_perception_heading_filter_debug_node.md +docs/perception/perception_heading_filter_debug_node.md since it is used to visualize the data of the heading filter debug node. """ diff --git a/code/perception/src/kalman_filter.py b/code/perception/src/kalman_filter.py index 6fa537cf..6a44bc22 100755 --- a/code/perception/src/kalman_filter.py +++ b/code/perception/src/kalman_filter.py @@ -18,7 +18,7 @@ ''' For more information see the documentation in: -../../doc/06_perception/08_kalman_filter.md +../../doc/perception/kalman_filter.md This class implements a Kalman filter for a 3D object tracked in 2D space. It implements the data of the IMU and the GPS Sensors. @@ -75,7 +75,7 @@ class KalmanFilter(CompatibleNode): This class implements a Kalman filter for the Heading and Position of the car. For more information see the documentation in: - ../../doc/06_perception/08_kalman_filter.md + ../../doc/perception/kalman_filter.md """ def __init__(self): """ diff --git a/code/perception/src/lidar_distance.py b/code/perception/src/lidar_distance.py index 16fdc4ac..f5f7c964 100755 --- a/code/perception/src/lidar_distance.py +++ b/code/perception/src/lidar_distance.py @@ -12,7 +12,7 @@ class LidarDistance(): - """ See doc/06_perception/03_lidar_distance_utility.md on + """ See doc/perception/lidar_distance_utility.md on how to configute this node """ diff --git a/code/perception/src/position_heading_filter_debug_node.py b/code/perception/src/position_heading_filter_debug_node.py index f43763e1..25d4c901 100755 --- a/code/perception/src/position_heading_filter_debug_node.py +++ b/code/perception/src/position_heading_filter_debug_node.py @@ -189,7 +189,7 @@ def save_position_data(self): """ This method saves the current location errors in a csv file. in the folders of - paf/doc/06_perception/00_Experiments/kalman_datasets + paf/doc/perception/experiments/kalman_datasets It does this for a limited amount of time. """ # stop saving data when max is reached @@ -199,7 +199,7 @@ def save_position_data(self): # Specify the path to the folder where you want to save the data base_path = ('/workspace/code/perception/' - 'src/00_Experiments/' + FOLDER_PATH) + 'src/experiments/' + FOLDER_PATH) folder_path_x = base_path + '/x_error' folder_path_y = base_path + '/y_error' # Ensure the directories exist @@ -222,7 +222,7 @@ def save_heading_data(self): """ This method saves the current heading errors in a csv file. in the folders of - paf/doc/06_perception/00_Experiments/kalman_datasets + paf/doc/perception/experiments/kalman_datasets It does this for a limited amount of time. """ # if rospy.get_time() > 45 stop saving data: @@ -232,7 +232,7 @@ def save_heading_data(self): # Specify the path to the folder where you want to save the data base_path = ('/workspace/code/perception/' - 'src/00_Experiments' + FOLDER_PATH) + 'src/experiments' + FOLDER_PATH) folder_path_heading = base_path + '/heading_error' # Ensure the directories exist diff --git a/code/perception/src/position_heading_publisher_node.py b/code/perception/src/position_heading_publisher_node.py index 832121a8..f5b62e72 100755 --- a/code/perception/src/position_heading_publisher_node.py +++ b/code/perception/src/position_heading_publisher_node.py @@ -36,7 +36,7 @@ class PositionHeadingPublisherNode(CompatibleNode): must be added in the constructor for clean modular programming! For more information: - ../../doc/06_perception/09_position_heading_publisher_node.md + ../../doc/perception/position_heading_publisher_node.md """ def __init__(self): diff --git a/code/perception/src/traffic_light_detection/Readme.md b/code/perception/src/traffic_light_detection/Readme.md index a9641884..efea630c 100644 --- a/code/perception/src/traffic_light_detection/Readme.md +++ b/code/perception/src/traffic_light_detection/Readme.md @@ -1,7 +1,7 @@ # Traffic light detection The training is configured as DVC experiment. -More details about dvc experiments can be found [here](../../../../doc/02_development/11_dvc.md). +More details about dvc experiments can be found [here](../../../../doc/development/dvc.md). ## Training diff --git a/code/planning/src/behavior_agent/behaviours/maneuvers.py b/code/planning/src/behavior_agent/behaviours/maneuvers.py index 64e3ab85..2a37f7a1 100755 --- a/code/planning/src/behavior_agent/behaviours/maneuvers.py +++ b/code/planning/src/behavior_agent/behaviours/maneuvers.py @@ -405,7 +405,7 @@ class UnstuckRoutine(py_trees.behaviour.Behaviour): """ Documentation to this behavior can be found in - /doc/07_planning/Behavior_detailed.md + /doc/planning/Behavior_detailed.md This behavior is triggered when the vehicle is stuck and needs to be unstuck. The behavior will then try to reverse and steer to the left or diff --git a/doc/03_research/01_acting/Readme.md b/doc/03_research/01_acting/Readme.md deleted file mode 100644 index 5bc58da5..00000000 --- a/doc/03_research/01_acting/Readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Acting - -This folder contains all the results of our research on acting: - -- **PAF22** -- [Basics](./01_basics_acting.md) -- [Implementation](./02_implementation_acting.md) -- **PAF23** -- [PAF21_1 Acting](./03_paf21_1_acting.md) -- [PAF21_2 Acting & Pylot Control](./04_paf21_2_and_pylot_acting.md) -- [Autoware Control](./05_autoware_acting.md) diff --git a/doc/03_research/02_perception/Readme.md b/doc/03_research/02_perception/Readme.md deleted file mode 100644 index 170fe63f..00000000 --- a/doc/03_research/02_perception/Readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# Perception - -This folder contains all the results of research on perception: - -- **PAF22** - - [Basics](./02_basics.md) - - [First implementation plan](./03_first_implementation_plan.md) -- **PAF23** - - [Pylot Perception](./04_pylot.md) - - [PAF_21_2 Perception](./05_Research_PAF21-Perception.md) - - [PAF_21_1_Perception](./06_paf_21_1_perception.md) -- [Autoware Perception](./05-autoware-perception.md) diff --git a/doc/03_research/04_requirements/Readme.md b/doc/03_research/04_requirements/Readme.md deleted file mode 100644 index a2f40164..00000000 --- a/doc/03_research/04_requirements/Readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Requirements - -This folder contains all the results of our research on requirements: - -- [Leaderboard information](./02_informations_from_leaderboard.md) -- [Reqirements for agent](./03_requirements.md) -- [Use case scenarios](./04_use_cases.md) diff --git a/doc/03_research/Readme.md b/doc/03_research/Readme.md deleted file mode 100644 index 04591a65..00000000 --- a/doc/03_research/Readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Research - -This folder contains every research we did before we started the project. - -The research is structured in the following folders: - -- [Acting](./01_acting/Readme.md) -- [Perception](./02_perception/Readme.md) -- [Planning](./03_planning/Readme.md) -- [Requirements](./04_requirements/Readme.md) diff --git a/doc/05_acting/Readme.md b/doc/05_acting/Readme.md deleted file mode 100644 index d84fdf21..00000000 --- a/doc/05_acting/Readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Documentation of acting component - -This folder contains the documentation of the acting component. - -1. [Architecture](./01_architecture_documentation.md) -2. [Overview of the Velocity Controller](./02_velocity_controller.md) -3. [Overview of the Steering Controllers](./03_steering_controllers.md) -4. [Overview of the Vehicle Controller Component](./04_vehicle_controller.md) -5. [How to test/tune acting components independedly](./05_acting_testing.md) -6. [Main frame publisher](./06_mainframe_publisher.md) diff --git a/doc/06_perception/Readme.md b/doc/06_perception/Readme.md deleted file mode 100644 index 56f169a4..00000000 --- a/doc/06_perception/Readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# Documentation of perception component - -This folder contains further documentation of the perception components. - -1. [Vision Node](./06_vision_node.md) - - The Visison Node provides an adaptive interface that is able to perform object-detection and/or image-segmentation on multiple cameras at the same time. -2. [Position Heading Filter Debug Node](./07_position_heading_filter_debug_node.md) -3. [Kalman Filter](./08_kalman_filter.md) -4. [Position Heading Publisher Node](./09_position_heading_publisher_node.md) -5. [Distance to Objects](./10_distance_to_objects.md) -6. [Traffic Light Detection](./11_traffic_light_detection.md) -7. [Coordinate Transformation (helper functions)](./00_coordinate_transformation.md) -8. [Dataset Generator](./01_dataset_generator.md) -9. [Dataset Structure](./02_dataset_structure.md) -10. [Lidar Distance Utility](./03_lidar_distance_utility.md) - 1. not used since paf22 -11. [Efficient PS](./04_efficientps.md) - 1. not used scince paf22 and never successfully tested - -## Experiments - -- The overview of performance evaluations is located in the [experiments](./experiments/README.md) folder. diff --git a/doc/acting/Readme.md b/doc/acting/Readme.md new file mode 100644 index 00000000..f55e66eb --- /dev/null +++ b/doc/acting/Readme.md @@ -0,0 +1,10 @@ +# Documentation of acting component + +This folder contains the documentation of the acting component. + +1. [Architecture](./architecture_documentation.md) +2. [Overview of the Velocity Controller](./velocity_controller.md) +3. [Overview of the Steering Controllers](./steering_controllers.md) +4. [Overview of the Vehicle Controller Component](./vehicle_controller.md) +5. [How to test/tune acting components independedly](./acting_testing.md) +6. [Main frame publisher](./mainframe_publisher.md) diff --git a/doc/05_acting/05_acting_testing.md b/doc/acting/acting_testing.md similarity index 100% rename from doc/05_acting/05_acting_testing.md rename to doc/acting/acting_testing.md diff --git a/doc/05_acting/01_architecture_documentation.md b/doc/acting/architecture_documentation.md similarity index 98% rename from doc/05_acting/01_architecture_documentation.md rename to doc/acting/architecture_documentation.md index 33031b0a..6eefb3cd 100644 --- a/doc/05_acting/01_architecture_documentation.md +++ b/doc/acting/architecture_documentation.md @@ -26,7 +26,7 @@ Alexander Hellmann ## Acting Architecture -![MISSING: Acting-ARCHITECTURE](../00_assets/acting/Architecture_Acting.png) +![MISSING: Acting-ARCHITECTURE](../assets/acting/Architecture_Acting.png) ## Summary of Acting Components diff --git a/doc/05_acting/06_main_frame_publisher.md b/doc/acting/main_frame_publisher.md similarity index 94% rename from doc/05_acting/06_main_frame_publisher.md rename to doc/acting/main_frame_publisher.md index 5999eda3..0a12bfc6 100644 --- a/doc/05_acting/06_main_frame_publisher.md +++ b/doc/acting/main_frame_publisher.md @@ -38,4 +38,4 @@ There are issues if the vehicle drives upwards or downwards. In this case the path will start to rise above the street (see picture) or start to move bellow the street. You can counteract this by changing the z offset of the path in rviz. -![main frame publisher bug](./../00_assets/acting/main_frame_publisher_bug.png) +![main frame publisher bug](./../assets/acting/main_frame_publisher_bug.png) diff --git a/doc/05_acting/03_steering_controllers.md b/doc/acting/steering_controllers.md similarity index 93% rename from doc/05_acting/03_steering_controllers.md rename to doc/acting/steering_controllers.md index 46101b9e..a15a3c02 100644 --- a/doc/05_acting/03_steering_controllers.md +++ b/doc/acting/steering_controllers.md @@ -35,7 +35,7 @@ For more indepth information about the PurePursuit Controller, click [this link] At every moment it checks a point of the trajectory in front of the vehicle with a distance of **$d_{la}$** and determines a steering-angle so that the vehicle will aim straight to this point of the trajectory. -![MISSING: PurePursuit-ShowImage](../00_assets/acting/Steering_PurePursuit.png) +![MISSING: PurePursuit-ShowImage](../assets/acting/Steering_PurePursuit.png) This **look-ahead-distance $d_{la}$** is velocity-dependent, as at higher velocities, the controller should look further ahead onto the trajectory. @@ -46,7 +46,7 @@ $$ \delta = arctan({2 \cdot L_{vehicle} \cdot sin(\alpha) \over d_{la}})$$ To tune the PurePursuit Controller, you can tune the factor of this velocity-dependence **$k_{ld}$**. Also, for an unknown reason, we needed to add an amplification to the output-steering signal before publishing aswell **$k_{pub}$**, which highly optimized the steering performance in the dev-launch: -![MISSING: PurePursuit-Optimization_Image](../00_assets/acting/Steering_PurePursuit_Tuning.png) +![MISSING: PurePursuit-Optimization_Image](../assets/acting/Steering_PurePursuit_Tuning.png) **NOTE:** The **look-ahead-distance $d_{la}$** should be highly optimally tuned already for optimal sensor data and on the dev-launch! In the Leaderboard-Launch this sadly does not work the same, so it requires different tuning and needs to be optimized/fixed. @@ -56,7 +56,7 @@ In the Leaderboard-Launch this sadly does not work the same, so it requires diff The [Stanley Controller's](../../code/acting/src/acting/stanley.py) main features to determine a steering-output is the so-called **cross-track-error** (e_fa in Image) and the **trajectory-heading** (theta_e in Image). For more indepth information about the Stanley Controller, click [this link](https://medium.com/roboquest/understanding-geometric-path-tracking-algorithms-stanley-controller-25da17bcc219) and [this link](https://ai.stanford.edu/~gabeh/papers/hoffmann_stanley_control07.pdf). -![MISSING: Stanley-SHOW-IMAGE](../00_assets/acting/Steering_Stanley.png) +![MISSING: Stanley-SHOW-IMAGE](../assets/acting/Steering_Stanley.png) At every moment it checks the closest point of the trajectory to itself and determines a two steering-angles: @@ -69,7 +69,7 @@ $$ \delta = \theta_e - arctan({k_{ce} \cdot e_{fa} \over v})$$ To tune the Stanley Controller, you tune the factor **$k_{ce}$**, which amplifies (or diminishes) how strong the **cross-track-error**-calculated steering-angle will "flow" into the output steering-angle. -![MISSING: Stanley-Compared to PurePursuit](../00_assets/acting/Steering_Stanley_ComparedToPurePur.png) +![MISSING: Stanley-Compared to PurePursuit](../assets/acting/Steering_Stanley_ComparedToPurePur.png) As for the PurePursuit Controller, sadly the achieved good tuning in the Dev-Launch was by far too strong for the Leaderboard-Launch, which is why we needed to Hotfix the Steering in the last week to Tune Stanley alot "weaker". We do not exactly know, why the two launches are this different. (Dev-Launch and Leaderboard-Launch differentiate in synchronicity, Dev-Launch is synchronous, Leaderboard-Launch is asynchronous?) diff --git a/doc/05_acting/04_vehicle_controller.md b/doc/acting/vehicle_controller.md similarity index 95% rename from doc/05_acting/04_vehicle_controller.md rename to doc/acting/vehicle_controller.md index 1bb45558..b8a2d2a3 100644 --- a/doc/05_acting/04_vehicle_controller.md +++ b/doc/acting/vehicle_controller.md @@ -64,7 +64,7 @@ This is done to prevent firing the emergency brake each time the main loop is re Comparison between normal braking and emergency braking: -![Braking Comparison](/doc/00_assets/acting/emergency_brake_stats_graph.png) +![Braking Comparison](/doc/assets/acting/emergency_brake_stats_graph.png) _Please be aware, that this bug abuse might not work in newer updates!_ @@ -72,7 +72,7 @@ _Please be aware, that this bug abuse might not work in newer updates!_ The Vehicle Controller also reads ```current_behavior```-Messages, published by Planning, currently reacting to the **unstuck-behavior**: -This is done to drive in a specific way whenever we get into a stuck situation and the [Unstuck Behavior](/doc/07_planning/Behavior_detailed.md) is persued. +This is done to drive in a specific way whenever we get into a stuck situation and the [Unstuck Behavior](/doc/planning/Behavior_detailed.md) is persued. Inside the Unstuck Behavior we want drive backwards without steering, which is why it is the only case, where we do not use any of our steering controllers. diff --git a/doc/05_acting/02_velocity_controller.md b/doc/acting/velocity_controller.md similarity index 91% rename from doc/05_acting/02_velocity_controller.md rename to doc/acting/velocity_controller.md index 645cae21..9d8bbe3d 100644 --- a/doc/05_acting/02_velocity_controller.md +++ b/doc/acting/velocity_controller.md @@ -31,18 +31,18 @@ For more information about PID-Controllers and how they work, follow [this link] Currently, we use a tuned PID-Controller which was tuned for the speed of 14 m/s (around 50 km/h), as this is the most commonly driven velocity in this simulation: -![MISSING: PID-TUNING-IMAGE](../00_assets/acting/VelContr_PID_StepResponse.png) +![MISSING: PID-TUNING-IMAGE](../assets/acting/VelContr_PID_StepResponse.png) Be aware, that the CARLA-Vehicle shifts gears automatically, resulting in the bumps you see! As PID-Controllers are linear by nature, the velocity-system is therefore linearized around 50 km/h, meaning the further you deviate from 50 km/h the worse the controller's performance gets: -![MISSING: PID-LINEARIZATION-IMAGE](../00_assets/acting/VelContr_PID_differentVelocities.png) +![MISSING: PID-LINEARIZATION-IMAGE](../assets/acting/VelContr_PID_differentVelocities.png) As the Velocity Controller also has to handle braking, we currently use ```throttle```-optimized PID-Controller to calculate ```brake``` aswell (Since adding another Controller, like a P-Controller, did not work nearly as well!): -![MISSING: PID-BRAKING-IMAGE](../00_assets/acting/VelContr_PID_BrakingWithThrottlePID.png) +![MISSING: PID-BRAKING-IMAGE](../assets/acting/VelContr_PID_BrakingWithThrottlePID.png) -Currently, there is no general backwards-driving implemented here, as this was not needed (other than the [Unstuck Routine](/doc/07_planning/Behavior_detailed.md)). +Currently, there is no general backwards-driving implemented here, as this was not needed (other than the [Unstuck Routine](/doc/planning/Behavior_detailed.md)). Negative ```target_velocity``` signals are currently taken care off by braking until we stand still. The ONLY exception is a ```target_velocity``` of **-3!**! diff --git a/doc/00_assets/2_15_layover.png b/doc/assets/2_15_layover.png similarity index 100% rename from doc/00_assets/2_15_layover.png rename to doc/assets/2_15_layover.png diff --git a/doc/00_assets/2_layover.png b/doc/assets/2_layover.png similarity index 100% rename from doc/00_assets/2_layover.png rename to doc/assets/2_layover.png diff --git a/doc/00_assets/3_layover.png b/doc/assets/3_layover.png similarity index 100% rename from doc/00_assets/3_layover.png rename to doc/assets/3_layover.png diff --git a/doc/00_assets/3d_2d_formula.png b/doc/assets/3d_2d_formula.png similarity index 100% rename from doc/00_assets/3d_2d_formula.png rename to doc/assets/3d_2d_formula.png diff --git a/doc/00_assets/3d_2d_projection.png b/doc/assets/3d_2d_projection.png similarity index 100% rename from doc/00_assets/3d_2d_projection.png rename to doc/assets/3d_2d_projection.png diff --git a/doc/00_assets/4_layover.png b/doc/assets/4_layover.png similarity index 100% rename from doc/00_assets/4_layover.png rename to doc/assets/4_layover.png diff --git a/doc/00_assets/Back_Detection.png b/doc/assets/Back_Detection.png similarity index 100% rename from doc/00_assets/Back_Detection.png rename to doc/assets/Back_Detection.png diff --git a/doc/00_assets/Comment_PR.png b/doc/assets/Comment_PR.png similarity index 100% rename from doc/00_assets/Comment_PR.png rename to doc/assets/Comment_PR.png diff --git a/doc/00_assets/Comment_viewed.png b/doc/assets/Comment_viewed.png similarity index 100% rename from doc/00_assets/Comment_viewed.png rename to doc/assets/Comment_viewed.png diff --git a/doc/00_assets/Commit_suggestion.png b/doc/assets/Commit_suggestion.png similarity index 100% rename from doc/00_assets/Commit_suggestion.png rename to doc/assets/Commit_suggestion.png diff --git a/doc/00_assets/Driving_SM.png b/doc/assets/Driving_SM.png similarity index 100% rename from doc/00_assets/Driving_SM.png rename to doc/assets/Driving_SM.png diff --git a/doc/00_assets/Files_Changed.png b/doc/assets/Files_Changed.png similarity index 100% rename from doc/00_assets/Files_Changed.png rename to doc/assets/Files_Changed.png diff --git a/doc/00_assets/Front_Detection.png b/doc/assets/Front_Detection.png similarity index 100% rename from doc/00_assets/Front_Detection.png rename to doc/assets/Front_Detection.png diff --git a/doc/00_assets/Global_Plan.png b/doc/assets/Global_Plan.png similarity index 100% rename from doc/00_assets/Global_Plan.png rename to doc/assets/Global_Plan.png diff --git a/doc/00_assets/Intersection_SM.png b/doc/assets/Intersection_SM.png similarity index 100% rename from doc/00_assets/Intersection_SM.png rename to doc/assets/Intersection_SM.png diff --git a/doc/00_assets/Lane_Change_SM.png b/doc/assets/Lane_Change_SM.png similarity index 100% rename from doc/00_assets/Lane_Change_SM.png rename to doc/assets/Lane_Change_SM.png diff --git a/doc/00_assets/Lanelets.png b/doc/assets/Lanelets.png similarity index 100% rename from doc/00_assets/Lanelets.png rename to doc/assets/Lanelets.png diff --git a/doc/00_assets/Left_Detection.png b/doc/assets/Left_Detection.png similarity index 100% rename from doc/00_assets/Left_Detection.png rename to doc/assets/Left_Detection.png diff --git a/doc/00_assets/PR_overview.png b/doc/assets/PR_overview.png similarity index 100% rename from doc/00_assets/PR_overview.png rename to doc/assets/PR_overview.png diff --git a/doc/00_assets/Planning_Implementierung.png b/doc/assets/Planning_Implementierung.png similarity index 100% rename from doc/00_assets/Planning_Implementierung.png rename to doc/assets/Planning_Implementierung.png diff --git a/doc/00_assets/Pycharm_PR.png b/doc/assets/Pycharm_PR.png similarity index 100% rename from doc/00_assets/Pycharm_PR.png rename to doc/assets/Pycharm_PR.png diff --git a/doc/00_assets/Resolve_conversation.png b/doc/assets/Resolve_conversation.png similarity index 100% rename from doc/00_assets/Resolve_conversation.png rename to doc/assets/Resolve_conversation.png diff --git a/doc/00_assets/Review_changes.png b/doc/assets/Review_changes.png similarity index 100% rename from doc/00_assets/Review_changes.png rename to doc/assets/Review_changes.png diff --git a/doc/00_assets/Right_Detection.png b/doc/assets/Right_Detection.png similarity index 100% rename from doc/00_assets/Right_Detection.png rename to doc/assets/Right_Detection.png diff --git a/doc/00_assets/Right_lane.png b/doc/assets/Right_lane.png similarity index 100% rename from doc/00_assets/Right_lane.png rename to doc/assets/Right_lane.png diff --git a/doc/00_assets/Road0_cutout.png b/doc/assets/Road0_cutout.png similarity index 100% rename from doc/00_assets/Road0_cutout.png rename to doc/assets/Road0_cutout.png diff --git a/doc/00_assets/Stop_sign_OpenDrive.png b/doc/assets/Stop_sign_OpenDrive.png similarity index 100% rename from doc/00_assets/Stop_sign_OpenDrive.png rename to doc/assets/Stop_sign_OpenDrive.png diff --git a/doc/00_assets/Suggestion.png b/doc/assets/Suggestion.png similarity index 100% rename from doc/00_assets/Suggestion.png rename to doc/assets/Suggestion.png diff --git a/doc/00_assets/Super_SM.png b/doc/assets/Super_SM.png similarity index 100% rename from doc/00_assets/Super_SM.png rename to doc/assets/Super_SM.png diff --git a/doc/00_assets/TR01.png b/doc/assets/TR01.png similarity index 100% rename from doc/00_assets/TR01.png rename to doc/assets/TR01.png diff --git a/doc/00_assets/TR02.png b/doc/assets/TR02.png similarity index 100% rename from doc/00_assets/TR02.png rename to doc/assets/TR02.png diff --git a/doc/00_assets/TR03.png b/doc/assets/TR03.png similarity index 100% rename from doc/00_assets/TR03.png rename to doc/assets/TR03.png diff --git a/doc/00_assets/TR04.png b/doc/assets/TR04.png similarity index 100% rename from doc/00_assets/TR04.png rename to doc/assets/TR04.png diff --git a/doc/00_assets/TR05.png b/doc/assets/TR05.png similarity index 100% rename from doc/00_assets/TR05.png rename to doc/assets/TR05.png diff --git a/doc/00_assets/TR06.png b/doc/assets/TR06.png similarity index 100% rename from doc/00_assets/TR06.png rename to doc/assets/TR06.png diff --git a/doc/00_assets/TR07.png b/doc/assets/TR07.png similarity index 100% rename from doc/00_assets/TR07.png rename to doc/assets/TR07.png diff --git a/doc/00_assets/TR08.png b/doc/assets/TR08.png similarity index 100% rename from doc/00_assets/TR08.png rename to doc/assets/TR08.png diff --git a/doc/00_assets/TR09.png b/doc/assets/TR09.png similarity index 100% rename from doc/00_assets/TR09.png rename to doc/assets/TR09.png diff --git a/doc/00_assets/TR10.png b/doc/assets/TR10.png similarity index 100% rename from doc/00_assets/TR10.png rename to doc/assets/TR10.png diff --git a/doc/00_assets/TR11.png b/doc/assets/TR11.png similarity index 100% rename from doc/00_assets/TR11.png rename to doc/assets/TR11.png diff --git a/doc/00_assets/TR12.png b/doc/assets/TR12.png similarity index 100% rename from doc/00_assets/TR12.png rename to doc/assets/TR12.png diff --git a/doc/00_assets/TR14.png b/doc/assets/TR14.png similarity index 100% rename from doc/00_assets/TR14.png rename to doc/assets/TR14.png diff --git a/doc/00_assets/TR15.png b/doc/assets/TR15.png similarity index 100% rename from doc/00_assets/TR15.png rename to doc/assets/TR15.png diff --git a/doc/00_assets/TR16.png b/doc/assets/TR16.png similarity index 100% rename from doc/00_assets/TR16.png rename to doc/assets/TR16.png diff --git a/doc/00_assets/TR17.png b/doc/assets/TR17.png similarity index 100% rename from doc/00_assets/TR17.png rename to doc/assets/TR17.png diff --git a/doc/00_assets/TR18.png b/doc/assets/TR18.png similarity index 100% rename from doc/00_assets/TR18.png rename to doc/assets/TR18.png diff --git a/doc/00_assets/TR19.png b/doc/assets/TR19.png similarity index 100% rename from doc/00_assets/TR19.png rename to doc/assets/TR19.png diff --git a/doc/00_assets/TR20.png b/doc/assets/TR20.png similarity index 100% rename from doc/00_assets/TR20.png rename to doc/assets/TR20.png diff --git a/doc/00_assets/TR21.png b/doc/assets/TR21.png similarity index 100% rename from doc/00_assets/TR21.png rename to doc/assets/TR21.png diff --git a/doc/00_assets/TR22.png b/doc/assets/TR22.png similarity index 100% rename from doc/00_assets/TR22.png rename to doc/assets/TR22.png diff --git a/doc/00_assets/TR23.png b/doc/assets/TR23.png similarity index 100% rename from doc/00_assets/TR23.png rename to doc/assets/TR23.png diff --git a/doc/00_assets/Traffic_SM.png b/doc/assets/Traffic_SM.png similarity index 100% rename from doc/00_assets/Traffic_SM.png rename to doc/assets/Traffic_SM.png diff --git a/doc/00_assets/acting/Architecture_Acting.png b/doc/assets/acting/Architecture_Acting.png similarity index 100% rename from doc/00_assets/acting/Architecture_Acting.png rename to doc/assets/acting/Architecture_Acting.png diff --git a/doc/00_assets/acting/Steering_PurePursuit.png b/doc/assets/acting/Steering_PurePursuit.png similarity index 100% rename from doc/00_assets/acting/Steering_PurePursuit.png rename to doc/assets/acting/Steering_PurePursuit.png diff --git a/doc/00_assets/acting/Steering_PurePursuit_Tuning.png b/doc/assets/acting/Steering_PurePursuit_Tuning.png similarity index 100% rename from doc/00_assets/acting/Steering_PurePursuit_Tuning.png rename to doc/assets/acting/Steering_PurePursuit_Tuning.png diff --git a/doc/00_assets/acting/Steering_Stanley.png b/doc/assets/acting/Steering_Stanley.png similarity index 100% rename from doc/00_assets/acting/Steering_Stanley.png rename to doc/assets/acting/Steering_Stanley.png diff --git a/doc/00_assets/acting/Steering_Stanley_ComparedToPurePur.png b/doc/assets/acting/Steering_Stanley_ComparedToPurePur.png similarity index 100% rename from doc/00_assets/acting/Steering_Stanley_ComparedToPurePur.png rename to doc/assets/acting/Steering_Stanley_ComparedToPurePur.png diff --git a/doc/00_assets/acting/VelContr_PID_BrakingWithThrottlePID.png b/doc/assets/acting/VelContr_PID_BrakingWithThrottlePID.png similarity index 100% rename from doc/00_assets/acting/VelContr_PID_BrakingWithThrottlePID.png rename to doc/assets/acting/VelContr_PID_BrakingWithThrottlePID.png diff --git a/doc/00_assets/acting/VelContr_PID_StepResponse.png b/doc/assets/acting/VelContr_PID_StepResponse.png similarity index 100% rename from doc/00_assets/acting/VelContr_PID_StepResponse.png rename to doc/assets/acting/VelContr_PID_StepResponse.png diff --git a/doc/00_assets/acting/VelContr_PID_differentVelocities.png b/doc/assets/acting/VelContr_PID_differentVelocities.png similarity index 100% rename from doc/00_assets/acting/VelContr_PID_differentVelocities.png rename to doc/assets/acting/VelContr_PID_differentVelocities.png diff --git a/doc/00_assets/acting/emergency_brake_stats_graph.png b/doc/assets/acting/emergency_brake_stats_graph.png similarity index 100% rename from doc/00_assets/acting/emergency_brake_stats_graph.png rename to doc/assets/acting/emergency_brake_stats_graph.png diff --git a/doc/00_assets/acting/main_frame_publisher_bug.png b/doc/assets/acting/main_frame_publisher_bug.png similarity index 100% rename from doc/00_assets/acting/main_frame_publisher_bug.png rename to doc/assets/acting/main_frame_publisher_bug.png diff --git a/doc/00_assets/behaviour_tree.png b/doc/assets/behaviour_tree.png similarity index 100% rename from doc/00_assets/behaviour_tree.png rename to doc/assets/behaviour_tree.png diff --git a/doc/00_assets/berechnungsmodell.png b/doc/assets/berechnungsmodell.png similarity index 100% rename from doc/00_assets/berechnungsmodell.png rename to doc/assets/berechnungsmodell.png diff --git a/doc/00_assets/branch_overview.png b/doc/assets/branch_overview.png similarity index 100% rename from doc/00_assets/branch_overview.png rename to doc/assets/branch_overview.png diff --git a/doc/00_assets/bug_template.png b/doc/assets/bug_template.png similarity index 100% rename from doc/00_assets/bug_template.png rename to doc/assets/bug_template.png diff --git a/doc/00_assets/create_issue.png b/doc/assets/create_issue.png similarity index 100% rename from doc/00_assets/create_issue.png rename to doc/assets/create_issue.png diff --git a/doc/00_assets/distance_visualization.png b/doc/assets/distance_visualization.png similarity index 100% rename from doc/00_assets/distance_visualization.png rename to doc/assets/distance_visualization.png diff --git a/doc/00_assets/efficientps_structure.png b/doc/assets/efficientps_structure.png similarity index 100% rename from doc/00_assets/efficientps_structure.png rename to doc/assets/efficientps_structure.png diff --git a/doc/00_assets/fahrzeugapproximation.png b/doc/assets/fahrzeugapproximation.png similarity index 100% rename from doc/00_assets/fahrzeugapproximation.png rename to doc/assets/fahrzeugapproximation.png diff --git a/doc/00_assets/fahrzeugpositionsberechnung.png b/doc/assets/fahrzeugpositionsberechnung.png similarity index 100% rename from doc/00_assets/fahrzeugpositionsberechnung.png rename to doc/assets/fahrzeugpositionsberechnung.png diff --git a/doc/00_assets/fahrzeugwinkelberechnung.png b/doc/assets/fahrzeugwinkelberechnung.png similarity index 100% rename from doc/00_assets/fahrzeugwinkelberechnung.png rename to doc/assets/fahrzeugwinkelberechnung.png diff --git a/doc/00_assets/feature_template.png b/doc/assets/feature_template.png similarity index 100% rename from doc/00_assets/feature_template.png rename to doc/assets/feature_template.png diff --git a/doc/00_assets/filter_img/avg_10_w_0_500.png b/doc/assets/filter_img/avg_10_w_0_500.png similarity index 100% rename from doc/00_assets/filter_img/avg_10_w_0_500.png rename to doc/assets/filter_img/avg_10_w_0_500.png diff --git a/doc/00_assets/filter_img/avg_10_w_0_750.png b/doc/assets/filter_img/avg_10_w_0_750.png similarity index 100% rename from doc/00_assets/filter_img/avg_10_w_0_750.png rename to doc/assets/filter_img/avg_10_w_0_750.png diff --git a/doc/00_assets/filter_img/avg_10_w_1_000.png b/doc/assets/filter_img/avg_10_w_1_000.png similarity index 100% rename from doc/00_assets/filter_img/avg_10_w_1_000.png rename to doc/assets/filter_img/avg_10_w_1_000.png diff --git a/doc/00_assets/filter_img/avg_1_w_0_500.png b/doc/assets/filter_img/avg_1_w_0_500.png similarity index 100% rename from doc/00_assets/filter_img/avg_1_w_0_500.png rename to doc/assets/filter_img/avg_1_w_0_500.png diff --git a/doc/00_assets/filter_img/avg_1_w_0_750.png b/doc/assets/filter_img/avg_1_w_0_750.png similarity index 100% rename from doc/00_assets/filter_img/avg_1_w_0_750.png rename to doc/assets/filter_img/avg_1_w_0_750.png diff --git a/doc/00_assets/filter_img/avg_1_w_1_000.png b/doc/assets/filter_img/avg_1_w_1_000.png similarity index 100% rename from doc/00_assets/filter_img/avg_1_w_1_000.png rename to doc/assets/filter_img/avg_1_w_1_000.png diff --git a/doc/00_assets/filter_img/avg_20_w_0_750.png b/doc/assets/filter_img/avg_20_w_0_750.png similarity index 100% rename from doc/00_assets/filter_img/avg_20_w_0_750.png rename to doc/assets/filter_img/avg_20_w_0_750.png diff --git a/doc/00_assets/filter_img/avg_7_w_0_500.png b/doc/assets/filter_img/avg_7_w_0_500.png similarity index 100% rename from doc/00_assets/filter_img/avg_7_w_0_500.png rename to doc/assets/filter_img/avg_7_w_0_500.png diff --git a/doc/00_assets/filter_img/avg_7_w_0_750.png b/doc/assets/filter_img/avg_7_w_0_750.png similarity index 100% rename from doc/00_assets/filter_img/avg_7_w_0_750.png rename to doc/assets/filter_img/avg_7_w_0_750.png diff --git a/doc/00_assets/filter_img/avg_7_w_1_000.png b/doc/assets/filter_img/avg_7_w_1_000.png similarity index 100% rename from doc/00_assets/filter_img/avg_7_w_1_000.png rename to doc/assets/filter_img/avg_7_w_1_000.png diff --git a/doc/00_assets/filter_img/rolling_avg_1.png b/doc/assets/filter_img/rolling_avg_1.png similarity index 100% rename from doc/00_assets/filter_img/rolling_avg_1.png rename to doc/assets/filter_img/rolling_avg_1.png diff --git a/doc/00_assets/filter_img/rolling_avg_10.png b/doc/assets/filter_img/rolling_avg_10.png similarity index 100% rename from doc/00_assets/filter_img/rolling_avg_10.png rename to doc/assets/filter_img/rolling_avg_10.png diff --git a/doc/00_assets/filter_img/rolling_avg_20.png b/doc/assets/filter_img/rolling_avg_20.png similarity index 100% rename from doc/00_assets/filter_img/rolling_avg_20.png rename to doc/assets/filter_img/rolling_avg_20.png diff --git a/doc/00_assets/filter_img/rolling_avg_5.png b/doc/assets/filter_img/rolling_avg_5.png similarity index 100% rename from doc/00_assets/filter_img/rolling_avg_5.png rename to doc/assets/filter_img/rolling_avg_5.png diff --git a/doc/00_assets/gdrive-paf.png b/doc/assets/gdrive-paf.png similarity index 100% rename from doc/00_assets/gdrive-paf.png rename to doc/assets/gdrive-paf.png diff --git a/doc/00_assets/gdrive-permissions.png b/doc/assets/gdrive-permissions.png similarity index 100% rename from doc/00_assets/gdrive-permissions.png rename to doc/assets/gdrive-permissions.png diff --git a/doc/00_assets/gewinnerteam19-architektur.png b/doc/assets/gewinnerteam19-architektur.png similarity index 100% rename from doc/00_assets/gewinnerteam19-architektur.png rename to doc/assets/gewinnerteam19-architektur.png diff --git a/doc/00_assets/git-flow.svg b/doc/assets/git-flow.svg similarity index 100% rename from doc/00_assets/git-flow.svg rename to doc/assets/git-flow.svg diff --git a/doc/00_assets/github-action-md.png b/doc/assets/github-action-md.png similarity index 100% rename from doc/00_assets/github-action-md.png rename to doc/assets/github-action-md.png diff --git a/doc/00_assets/github-action-py.png b/doc/assets/github-action-py.png similarity index 100% rename from doc/00_assets/github-action-py.png rename to doc/assets/github-action-py.png diff --git a/doc/00_assets/github_create_a_branch.png b/doc/assets/github_create_a_branch.png similarity index 100% rename from doc/00_assets/github_create_a_branch.png rename to doc/assets/github_create_a_branch.png diff --git a/doc/00_assets/global_trajectory.png b/doc/assets/global_trajectory.png similarity index 100% rename from doc/00_assets/global_trajectory.png rename to doc/assets/global_trajectory.png diff --git a/doc/00_assets/gnss_ohne_rolling_average.png b/doc/assets/gnss_ohne_rolling_average.png similarity index 100% rename from doc/00_assets/gnss_ohne_rolling_average.png rename to doc/assets/gnss_ohne_rolling_average.png diff --git a/doc/00_assets/implementation_plan_perception.jpg b/doc/assets/implementation_plan_perception.jpg similarity index 100% rename from doc/00_assets/implementation_plan_perception.jpg rename to doc/assets/implementation_plan_perception.jpg diff --git a/doc/00_assets/intersection.png b/doc/assets/intersection.png similarity index 100% rename from doc/00_assets/intersection.png rename to doc/assets/intersection.png diff --git a/doc/00_assets/intersection_2.png b/doc/assets/intersection_2.png similarity index 100% rename from doc/00_assets/intersection_2.png rename to doc/assets/intersection_2.png diff --git a/doc/00_assets/issue_wizard.png b/doc/assets/issue_wizard.png similarity index 100% rename from doc/00_assets/issue_wizard.png rename to doc/assets/issue_wizard.png diff --git a/doc/00_assets/junction.png b/doc/assets/junction.png similarity index 100% rename from doc/00_assets/junction.png rename to doc/assets/junction.png diff --git a/doc/00_assets/kollisionsberechnung.png b/doc/assets/kollisionsberechnung.png similarity index 100% rename from doc/00_assets/kollisionsberechnung.png rename to doc/assets/kollisionsberechnung.png diff --git a/doc/00_assets/kreuzungszonen.png b/doc/assets/kreuzungszonen.png similarity index 100% rename from doc/00_assets/kreuzungszonen.png rename to doc/assets/kreuzungszonen.png diff --git a/doc/00_assets/lane_midpoint.png b/doc/assets/lane_midpoint.png similarity index 100% rename from doc/00_assets/lane_midpoint.png rename to doc/assets/lane_midpoint.png diff --git a/doc/00_assets/leaderboard-1.png b/doc/assets/leaderboard-1.png similarity index 100% rename from doc/00_assets/leaderboard-1.png rename to doc/assets/leaderboard-1.png diff --git a/doc/00_assets/leaderboard-2.png b/doc/assets/leaderboard-2.png similarity index 100% rename from doc/00_assets/leaderboard-2.png rename to doc/assets/leaderboard-2.png diff --git a/doc/00_assets/legend_bt.png b/doc/assets/legend_bt.png similarity index 100% rename from doc/00_assets/legend_bt.png rename to doc/assets/legend_bt.png diff --git a/doc/00_assets/lidar_filter.png b/doc/assets/lidar_filter.png similarity index 100% rename from doc/00_assets/lidar_filter.png rename to doc/assets/lidar_filter.png diff --git a/doc/00_assets/lidarhinderniserkennung.png b/doc/assets/lidarhinderniserkennung.png similarity index 100% rename from doc/00_assets/lidarhinderniserkennung.png rename to doc/assets/lidarhinderniserkennung.png diff --git a/doc/00_assets/local_trajectory.png b/doc/assets/local_trajectory.png similarity index 100% rename from doc/00_assets/local_trajectory.png rename to doc/assets/local_trajectory.png diff --git a/doc/00_assets/multi_lane.png b/doc/assets/multi_lane.png similarity index 100% rename from doc/00_assets/multi_lane.png rename to doc/assets/multi_lane.png diff --git a/doc/00_assets/nvcc_version.png b/doc/assets/nvcc_version.png similarity index 100% rename from doc/00_assets/nvcc_version.png rename to doc/assets/nvcc_version.png diff --git a/doc/00_assets/occupancygrid.png b/doc/assets/occupancygrid.png similarity index 100% rename from doc/00_assets/occupancygrid.png rename to doc/assets/occupancygrid.png diff --git a/doc/00_assets/optimierungsvisualisierung.png b/doc/assets/optimierungsvisualisierung.png similarity index 100% rename from doc/00_assets/optimierungsvisualisierung.png rename to doc/assets/optimierungsvisualisierung.png diff --git a/doc/00_assets/overtaking_overview.png b/doc/assets/overtaking_overview.png similarity index 100% rename from doc/00_assets/overtaking_overview.png rename to doc/assets/overtaking_overview.png diff --git a/doc/00_assets/overview.jpg b/doc/assets/overview.jpg similarity index 100% rename from doc/00_assets/overview.jpg rename to doc/assets/overview.jpg diff --git a/doc/00_assets/perception/adding_new_position_methods.png b/doc/assets/perception/adding_new_position_methods.png similarity index 100% rename from doc/00_assets/perception/adding_new_position_methods.png rename to doc/assets/perception/adding_new_position_methods.png diff --git a/doc/00_assets/perception/data_26_MAE_Boxed.png b/doc/assets/perception/data_26_MAE_Boxed.png similarity index 100% rename from doc/00_assets/perception/data_26_MAE_Boxed.png rename to doc/assets/perception/data_26_MAE_Boxed.png diff --git a/doc/00_assets/perception/data_26_MSE_Boxed.png b/doc/assets/perception/data_26_MSE_Boxed.png similarity index 100% rename from doc/00_assets/perception/data_26_MSE_Boxed.png rename to doc/assets/perception/data_26_MSE_Boxed.png diff --git a/doc/00_assets/perception/kalman_installation_guide.png b/doc/assets/perception/kalman_installation_guide.png similarity index 100% rename from doc/00_assets/perception/kalman_installation_guide.png rename to doc/assets/perception/kalman_installation_guide.png diff --git a/doc/00_assets/perception/modular_subscriber_example.png b/doc/assets/perception/modular_subscriber_example.png similarity index 100% rename from doc/00_assets/perception/modular_subscriber_example.png rename to doc/assets/perception/modular_subscriber_example.png diff --git a/doc/00_assets/perception/new_heading_pub_example.png b/doc/assets/perception/new_heading_pub_example.png similarity index 100% rename from doc/00_assets/perception/new_heading_pub_example.png rename to doc/assets/perception/new_heading_pub_example.png diff --git a/doc/00_assets/perception/non_linear_kalman_example.png b/doc/assets/perception/non_linear_kalman_example.png similarity index 100% rename from doc/00_assets/perception/non_linear_kalman_example.png rename to doc/assets/perception/non_linear_kalman_example.png diff --git a/doc/00_assets/perception/quat_to_angle.png b/doc/assets/perception/quat_to_angle.png similarity index 100% rename from doc/00_assets/perception/quat_to_angle.png rename to doc/assets/perception/quat_to_angle.png diff --git a/doc/00_assets/perception/sensor_debug_change.png b/doc/assets/perception/sensor_debug_change.png similarity index 100% rename from doc/00_assets/perception/sensor_debug_change.png rename to doc/assets/perception/sensor_debug_change.png diff --git a/doc/00_assets/perception/sensor_debug_data_saving.png b/doc/assets/perception/sensor_debug_data_saving.png similarity index 100% rename from doc/00_assets/perception/sensor_debug_data_saving.png rename to doc/assets/perception/sensor_debug_data_saving.png diff --git a/doc/00_assets/perception/sensor_debug_viz_config.png b/doc/assets/perception/sensor_debug_viz_config.png similarity index 100% rename from doc/00_assets/perception/sensor_debug_viz_config.png rename to doc/assets/perception/sensor_debug_viz_config.png diff --git "a/doc/00_assets/planning \303\274bersicht.png" "b/doc/assets/planning \303\274bersicht.png" similarity index 100% rename from "doc/00_assets/planning \303\274bersicht.png" rename to "doc/assets/planning \303\274bersicht.png" diff --git a/doc/00_assets/planning/BT_paper.png b/doc/assets/planning/BT_paper.png similarity index 100% rename from doc/00_assets/planning/BT_paper.png rename to doc/assets/planning/BT_paper.png diff --git a/doc/00_assets/planning/BehaviorTree_medium.png b/doc/assets/planning/BehaviorTree_medium.png similarity index 100% rename from doc/00_assets/planning/BehaviorTree_medium.png rename to doc/assets/planning/BehaviorTree_medium.png diff --git a/doc/00_assets/planning/Globalplan.png b/doc/assets/planning/Globalplan.png similarity index 100% rename from doc/00_assets/planning/Globalplan.png rename to doc/assets/planning/Globalplan.png diff --git a/doc/00_assets/planning/Overtake_car_trajectory.png b/doc/assets/planning/Overtake_car_trajectory.png similarity index 100% rename from doc/00_assets/planning/Overtake_car_trajectory.png rename to doc/assets/planning/Overtake_car_trajectory.png diff --git a/doc/00_assets/planning/Planning.png b/doc/assets/planning/Planning.png similarity index 100% rename from doc/00_assets/planning/Planning.png rename to doc/assets/planning/Planning.png diff --git a/doc/00_assets/planning/Planning_architecture.png b/doc/assets/planning/Planning_architecture.png similarity index 100% rename from doc/00_assets/planning/Planning_architecture.png rename to doc/assets/planning/Planning_architecture.png diff --git a/doc/00_assets/planning/Planning_paf21.png b/doc/assets/planning/Planning_paf21.png similarity index 100% rename from doc/00_assets/planning/Planning_paf21.png rename to doc/assets/planning/Planning_paf21.png diff --git a/doc/00_assets/planning/collision_check.png b/doc/assets/planning/collision_check.png similarity index 100% rename from doc/00_assets/planning/collision_check.png rename to doc/assets/planning/collision_check.png diff --git a/doc/00_assets/planning/intersection_scenario.png b/doc/assets/planning/intersection_scenario.png similarity index 100% rename from doc/00_assets/planning/intersection_scenario.png rename to doc/assets/planning/intersection_scenario.png diff --git a/doc/00_assets/planning/localplan.png b/doc/assets/planning/localplan.png similarity index 100% rename from doc/00_assets/planning/localplan.png rename to doc/assets/planning/localplan.png diff --git a/doc/00_assets/planning/overtaking_scenario.png b/doc/assets/planning/overtaking_scenario.png similarity index 100% rename from doc/00_assets/planning/overtaking_scenario.png rename to doc/assets/planning/overtaking_scenario.png diff --git a/doc/00_assets/planning/overview.jpg b/doc/assets/planning/overview.jpg similarity index 100% rename from doc/00_assets/planning/overview.jpg rename to doc/assets/planning/overview.jpg diff --git a/doc/00_assets/planning/overview.png b/doc/assets/planning/overview.png similarity index 100% rename from doc/00_assets/planning/overview.png rename to doc/assets/planning/overview.png diff --git a/doc/00_assets/planning/overview_paper1.png b/doc/assets/planning/overview_paper1.png similarity index 100% rename from doc/00_assets/planning/overview_paper1.png rename to doc/assets/planning/overview_paper1.png diff --git a/doc/00_assets/planning/plot_full_trajectory_1_degree.png b/doc/assets/planning/plot_full_trajectory_1_degree.png similarity index 100% rename from doc/00_assets/planning/plot_full_trajectory_1_degree.png rename to doc/assets/planning/plot_full_trajectory_1_degree.png diff --git a/doc/00_assets/planning/prios.png b/doc/assets/planning/prios.png similarity index 100% rename from doc/00_assets/planning/prios.png rename to doc/assets/planning/prios.png diff --git a/doc/00_assets/planning/simple_final_tree.png b/doc/assets/planning/simple_final_tree.png similarity index 100% rename from doc/00_assets/planning/simple_final_tree.png rename to doc/assets/planning/simple_final_tree.png diff --git a/doc/00_assets/planning/test_frenet_results.png b/doc/assets/planning/test_frenet_results.png similarity index 100% rename from doc/00_assets/planning/test_frenet_results.png rename to doc/assets/planning/test_frenet_results.png diff --git a/doc/00_assets/planning/three_scenarios.png b/doc/assets/planning/three_scenarios.png similarity index 100% rename from doc/00_assets/planning/three_scenarios.png rename to doc/assets/planning/three_scenarios.png diff --git a/doc/00_assets/planning/vector_calculation.png b/doc/assets/planning/vector_calculation.png similarity index 100% rename from doc/00_assets/planning/vector_calculation.png rename to doc/assets/planning/vector_calculation.png diff --git a/doc/00_assets/planning/vision_objects_filter_cc.png b/doc/assets/planning/vision_objects_filter_cc.png similarity index 100% rename from doc/00_assets/planning/vision_objects_filter_cc.png rename to doc/assets/planning/vision_objects_filter_cc.png diff --git a/doc/00_assets/positionsvektor.png b/doc/assets/positionsvektor.png similarity index 100% rename from doc/00_assets/positionsvektor.png rename to doc/assets/positionsvektor.png diff --git a/doc/00_assets/preplanning_start.png b/doc/assets/preplanning_start.png similarity index 100% rename from doc/00_assets/preplanning_start.png rename to doc/assets/preplanning_start.png diff --git a/doc/00_assets/pytree_PAF_status.drawio.png b/doc/assets/pytree_PAF_status.drawio.png similarity index 100% rename from doc/00_assets/pytree_PAF_status.drawio.png rename to doc/assets/pytree_PAF_status.drawio.png diff --git a/doc/00_assets/reference.png b/doc/assets/reference.png similarity index 100% rename from doc/00_assets/reference.png rename to doc/assets/reference.png diff --git a/doc/00_assets/reference_xodr.png b/doc/assets/reference_xodr.png similarity index 100% rename from doc/00_assets/reference_xodr.png rename to doc/assets/reference_xodr.png diff --git a/doc/00_assets/research_assets/bicyclegeometry.png b/doc/assets/research_assets/bicyclegeometry.png similarity index 100% rename from doc/00_assets/research_assets/bicyclegeometry.png rename to doc/assets/research_assets/bicyclegeometry.png diff --git a/doc/00_assets/research_assets/chattering.gif b/doc/assets/research_assets/chattering.gif similarity index 100% rename from doc/00_assets/research_assets/chattering.gif rename to doc/assets/research_assets/chattering.gif diff --git a/doc/00_assets/research_assets/curve_detection_paf21_1.png b/doc/assets/research_assets/curve_detection_paf21_1.png similarity index 100% rename from doc/00_assets/research_assets/curve_detection_paf21_1.png rename to doc/assets/research_assets/curve_detection_paf21_1.png diff --git a/doc/00_assets/research_assets/danglingcarrotgeometry.png b/doc/assets/research_assets/danglingcarrotgeometry.png similarity index 100% rename from doc/00_assets/research_assets/danglingcarrotgeometry.png rename to doc/assets/research_assets/danglingcarrotgeometry.png diff --git a/doc/00_assets/research_assets/messages_paf21_2.png b/doc/assets/research_assets/messages_paf21_2.png similarity index 100% rename from doc/00_assets/research_assets/messages_paf21_2.png rename to doc/assets/research_assets/messages_paf21_2.png diff --git a/doc/00_assets/research_assets/mpc.png b/doc/assets/research_assets/mpc.png similarity index 100% rename from doc/00_assets/research_assets/mpc.png rename to doc/assets/research_assets/mpc.png diff --git a/doc/00_assets/research_assets/pure_pursuit.png b/doc/assets/research_assets/pure_pursuit.png similarity index 100% rename from doc/00_assets/research_assets/pure_pursuit.png rename to doc/assets/research_assets/pure_pursuit.png diff --git a/doc/00_assets/research_assets/standard_routine_paf21_2.png b/doc/assets/research_assets/standard_routine_paf21_2.png similarity index 100% rename from doc/00_assets/research_assets/standard_routine_paf21_2.png rename to doc/assets/research_assets/standard_routine_paf21_2.png diff --git a/doc/00_assets/research_assets/stanley_controller.png b/doc/assets/research_assets/stanley_controller.png similarity index 100% rename from doc/00_assets/research_assets/stanley_controller.png rename to doc/assets/research_assets/stanley_controller.png diff --git a/doc/00_assets/research_assets/stanley_paf21_1.png b/doc/assets/research_assets/stanley_paf21_1.png similarity index 100% rename from doc/00_assets/research_assets/stanley_paf21_1.png rename to doc/assets/research_assets/stanley_paf21_1.png diff --git a/doc/00_assets/research_assets/stanleyerror.png b/doc/assets/research_assets/stanleyerror.png similarity index 100% rename from doc/00_assets/research_assets/stanleyerror.png rename to doc/assets/research_assets/stanleyerror.png diff --git a/doc/00_assets/road_option.png b/doc/assets/road_option.png similarity index 100% rename from doc/00_assets/road_option.png rename to doc/assets/road_option.png diff --git a/doc/00_assets/road_options_concept.png b/doc/assets/road_options_concept.png similarity index 100% rename from doc/00_assets/road_options_concept.png rename to doc/assets/road_options_concept.png diff --git a/doc/00_assets/roads_vis.png b/doc/assets/roads_vis.png similarity index 100% rename from doc/00_assets/roads_vis.png rename to doc/assets/roads_vis.png diff --git a/doc/00_assets/segmentation.png b/doc/assets/segmentation.png similarity index 100% rename from doc/00_assets/segmentation.png rename to doc/assets/segmentation.png diff --git a/doc/00_assets/sensoranordnung.png b/doc/assets/sensoranordnung.png similarity index 100% rename from doc/00_assets/sensoranordnung.png rename to doc/assets/sensoranordnung.png diff --git a/doc/00_assets/statemachines.png b/doc/assets/statemachines.png similarity index 100% rename from doc/00_assets/statemachines.png rename to doc/assets/statemachines.png diff --git a/doc/00_assets/top-level.png b/doc/assets/top-level.png similarity index 100% rename from doc/00_assets/top-level.png rename to doc/assets/top-level.png diff --git a/doc/00_assets/trajectory_roads.png b/doc/assets/trajectory_roads.png similarity index 100% rename from doc/00_assets/trajectory_roads.png rename to doc/assets/trajectory_roads.png diff --git a/doc/00_assets/trajekorienfehlermin.png b/doc/assets/trajekorienfehlermin.png similarity index 100% rename from doc/00_assets/trajekorienfehlermin.png rename to doc/assets/trajekorienfehlermin.png diff --git a/doc/00_assets/trajektorienberechnung.png b/doc/assets/trajektorienberechnung.png similarity index 100% rename from doc/00_assets/trajektorienberechnung.png rename to doc/assets/trajektorienberechnung.png diff --git a/doc/00_assets/vulkan_device_not_available.png b/doc/assets/vulkan_device_not_available.png similarity index 100% rename from doc/00_assets/vulkan_device_not_available.png rename to doc/assets/vulkan_device_not_available.png diff --git a/doc/08_dev_talks/paf23/sprint_1.md b/doc/dev_talks/paf23/sprint_1.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_1.md rename to doc/dev_talks/paf23/sprint_1.md diff --git a/doc/08_dev_talks/paf23/sprint_2.md b/doc/dev_talks/paf23/sprint_2.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_2.md rename to doc/dev_talks/paf23/sprint_2.md diff --git a/doc/08_dev_talks/paf23/sprint_3.md b/doc/dev_talks/paf23/sprint_3.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_3.md rename to doc/dev_talks/paf23/sprint_3.md diff --git a/doc/08_dev_talks/paf23/sprint_4.md b/doc/dev_talks/paf23/sprint_4.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_4.md rename to doc/dev_talks/paf23/sprint_4.md diff --git a/doc/08_dev_talks/paf23/sprint_5.md b/doc/dev_talks/paf23/sprint_5.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_5.md rename to doc/dev_talks/paf23/sprint_5.md diff --git a/doc/08_dev_talks/paf23/sprint_6.md b/doc/dev_talks/paf23/sprint_6.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_6.md rename to doc/dev_talks/paf23/sprint_6.md diff --git a/doc/08_dev_talks/paf23/sprint_7.md b/doc/dev_talks/paf23/sprint_7.md similarity index 100% rename from doc/08_dev_talks/paf23/sprint_7.md rename to doc/dev_talks/paf23/sprint_7.md diff --git a/doc/08_dev_talks/paf24/mermaid_paf24.md b/doc/dev_talks/paf24/mermaid_paf24.md similarity index 100% rename from doc/08_dev_talks/paf24/mermaid_paf24.md rename to doc/dev_talks/paf24/mermaid_paf24.md diff --git a/doc/08_dev_talks/paf24/student_roles24.md b/doc/dev_talks/paf24/student_roles24.md similarity index 100% rename from doc/08_dev_talks/paf24/student_roles24.md rename to doc/dev_talks/paf24/student_roles24.md diff --git a/doc/02_development/Readme.md b/doc/development/Readme.md similarity index 67% rename from doc/02_development/Readme.md rename to doc/development/Readme.md index d4a35baf..0d4e7bde 100644 --- a/doc/02_development/Readme.md +++ b/doc/development/Readme.md @@ -3,22 +3,22 @@ If you contribute to this project please read the following guidelines first: 1. [Start the docker container to simulate the car](../../build/README.md) -2. [Documentation Requirements](./13_documentation_requirements.md) -3. [Commit](./03_commit.md) -4. [Linting](./02_linting.md) -5. [Coding style](./04_coding_style.md) -6. [Git Style](./05_git_workflow.md) -7. [Reviewing](./07_review_guideline.md) -8. [Project management](./08_project_management.md) +2. [Documentation Requirements](./documentation_requirements.md) +3. [Commit](./commit.md) +4. [Linting](./linting.md) +5. [Coding style](./coding_style.md) +6. [Git Style](./git_workflow.md) +7. [Reviewing](./review_guideline.md) +8. [Project management](./project_management.md) 9. Github actions - 1. [linting action](./09_linter_action.md) - 2. [build action](./10_build_action.md) -10. [Install python packages](./10_installing_python_packages.md) -11. [Discord Webhook Documentation](./12_discord_webhook.md) + 1. [linting action](./linter_action.md) + 2. [build action](./build_action.md) +10. [Install python packages](./installing_python_packages.md) +11. [Discord Webhook Documentation](./discord_webhook.md) ## Templates -Some templates are provided in [`doc/02_development/templates`](./templates). +Some templates are provided in [`doc/development/templates`](./templates). ### [`template_class.py`](./templates/template_class.py) @@ -42,4 +42,4 @@ This template functions a template for who to build knowledge articles for every ## Discord Webhook -[Discord Webhook Documentation](./12_discord_webhook.md) +[Discord Webhook Documentation](./discord_webhook.md) diff --git a/doc/02_development/10_build_action.md b/doc/development/build_action.md similarity index 100% rename from doc/02_development/10_build_action.md rename to doc/development/build_action.md diff --git a/doc/02_development/04_coding_style.md b/doc/development/coding_style.md similarity index 100% rename from doc/02_development/04_coding_style.md rename to doc/development/coding_style.md diff --git a/doc/02_development/12_discord_webhook.md b/doc/development/discord_webhook.md similarity index 100% rename from doc/02_development/12_discord_webhook.md rename to doc/development/discord_webhook.md diff --git a/doc/02_development/14_distributed_simulation.md b/doc/development/distributed_simulation.md similarity index 100% rename from doc/02_development/14_distributed_simulation.md rename to doc/development/distributed_simulation.md diff --git a/doc/02_development/13_documentation_requirements.md b/doc/development/documentation_requirements.md similarity index 95% rename from doc/02_development/13_documentation_requirements.md rename to doc/development/documentation_requirements.md index 4b06ab81..a1f1dcb6 100644 --- a/doc/02_development/13_documentation_requirements.md +++ b/doc/development/documentation_requirements.md @@ -12,8 +12,8 @@ Lennart Luttkus 1. **Readability and Maintainability:** - **Consistent Formatting:** Code should follow a consistent and readable formatting style. Tools like linters or formatters can help enforce a consistent code style. - - [02_linting](./02_linting.md) - - [04_coding_style](./04_coding_style.md) + - [linting](./linting.md) + - [coding_style](./coding_style.md) - **Meaningful Names:** Variable and function names should be descriptive and convey the purpose of the code. - **Comments:** Clear and concise comments should be used where necessary to explain complex logic or provide context. 2. **Code Structure:** @@ -36,7 +36,7 @@ Lennart Luttkus - **README Files:** Include a well-written README file that provides an overview of the project, installation instructions, and usage examples. 8. **Version Control:** - **Commit Messages:** Use descriptive and meaningful commit messages to track changes effectively. - - [03_commit](./03_commit.md) + - [commit](./commit.md) - **Branching Strategy:** Follow a consistent and well-defined branching strategy to manage code changes. 9. **Scalability:** - **Avoid Hardcoding:** Parameterize values that might change, making it easier to scale the application. diff --git a/doc/02_development/11_dvc.md b/doc/development/dvc.md similarity index 96% rename from doc/02_development/11_dvc.md rename to doc/development/dvc.md index 61436128..acd8462d 100644 --- a/doc/02_development/11_dvc.md +++ b/doc/development/dvc.md @@ -67,11 +67,11 @@ An administrator has to add your Google Account by doing the following. 1. Go to `https://drive.google.com` and login with our user 2. Click the folder `paf22`: -![paf22 folder](../00_assets/gdrive-paf.png) +![paf22 folder](../assets/gdrive-paf.png) 3. click on `Manage permissions` on the right side 4. Add the user as `Collaborator` -![paf22 folder](../00_assets/gdrive-permissions.png) +![paf22 folder](../assets/gdrive-permissions.png) ## Using DVC @@ -241,15 +241,15 @@ Storing a model file can be done the same way. > The commands below are not meant to execute, since the example is already added in git. > It should give a brief overview about how DVC works. -> However, the process is adaptable for any file or folder if you replace `doc/04_examples/dvc_example/dataset` with your path. +> However, the process is adaptable for any file or folder if you replace `doc/examples/dvc_example/dataset` with your path. -1. Add the folder `doc/04_examples/dvc_example/dataset` to DVC +1. Add the folder `doc/examples/dvc_example/dataset` to DVC ```shell - dvc add doc/04_examples/dvc_example/dataset + dvc add doc/examples/dvc_example/dataset ``` - > ❗️ if you already added the directory to git you have to remove it by running `git rm -r --cached 'doc/04_examples/dvc_example/dataset'` + > ❗️ if you already added the directory to git you have to remove it by running `git rm -r --cached 'doc/examples/dvc_example/dataset'` 2. Commit your changes in git diff --git a/doc/02_development/05_git_workflow.md b/doc/development/git_workflow.md similarity index 85% rename from doc/02_development/05_git_workflow.md rename to doc/development/git_workflow.md index 7e721190..a90a7d1e 100644 --- a/doc/02_development/05_git_workflow.md +++ b/doc/development/git_workflow.md @@ -28,6 +28,10 @@ Josef Kircher - [Git style](#git-style-1) - [Branch naming](#branch-naming) - [For example](#for-example) + - [Branch naming workflow](#branch-naming-workflow) + - [Branch Creation Settings](#branch-creation-settings) + - [Creating a Branch in the Web Interface](#creating-a-branch-in-the-web-interface) + - [Creating a Branch in VSCode](#creating-a-branch-in-vscode) - [Commit messages](#commit-messages) - [Git commands cheat sheet](#git-commands-cheat-sheet) - [Sources](#sources) @@ -37,7 +41,7 @@ Josef Kircher ### Git Feature Branch -![Git Feature](../00_assets/git-flow.svg) +![Git Feature](../assets/git-flow.svg) #### Branch strategy @@ -76,7 +80,7 @@ The `.vscode/settings.json` file in this repository contains settings that autom To create a branch in the web interface, follow these steps: -![Create Branch](../00_assets/github_create_a_branch.png) +![Create Branch](../assets/github_create_a_branch.png) #### Creating a Branch in VSCode @@ -90,7 +94,7 @@ In Visual Studio Code, use the "GitHub.vscode-pull-request-github" extension. --- -- proceed to [Commit Messages](./03_commit.md) +- proceed to [Commit Messages](./commit.md) ### Git commands cheat sheet diff --git a/doc/02_development/installing_cuda.md b/doc/development/installing_cuda.md similarity index 97% rename from doc/02_development/installing_cuda.md rename to doc/development/installing_cuda.md index 832325b1..566c3b1a 100644 --- a/doc/02_development/installing_cuda.md +++ b/doc/development/installing_cuda.md @@ -37,7 +37,7 @@ export LD_LIBRARY_PATH="/usr/local/cuda-x.y/lib64:$LD_LIBRARY_PATH" The path may be different depending on the system. You can get the path by executing ```which nvcc``` in the console. You can find your installed version of cuda-toolkit by executing ```nvcc-version```. The output should look like this: -![Implementation](../00_assets/nvcc_version.png) +![Implementation](../assets/nvcc_version.png) `release x.y` in the fourth column represents the version of the installed cuda-toolkit. diff --git a/doc/02_development/10_installing_python_packages.md b/doc/development/installing_python_packages.md similarity index 100% rename from doc/02_development/10_installing_python_packages.md rename to doc/development/installing_python_packages.md diff --git a/doc/02_development/09_linter_action.md b/doc/development/linter_action.md similarity index 93% rename from doc/02_development/09_linter_action.md rename to doc/development/linter_action.md index d041ba00..c71154dc 100644 --- a/doc/02_development/09_linter_action.md +++ b/doc/development/linter_action.md @@ -39,7 +39,7 @@ This is done by limiting the execution of the action by the following line: on: pull_request ``` -The actions uses the same linters described in the section [Linting](./02_linting.md). +The actions uses the same linters described in the section [Linting](./linting.md). Event though the linters are already executed during commit, the execution on pull request ensures that nobody skips the linter during commit. @@ -59,7 +59,7 @@ To enforce this behaviour, we set the action as requirement as described in the > > [(Source)](https://stackoverflow.com/questions/60776412/github-actions-is-there-a-way-to-make-it-mandatory-for-pull-request-to-merge) -More information about creating and merging pull requests can be found [here](./08_project_management.md). +More information about creating and merging pull requests can be found [here](./project_management.md). ## 🚨 Common Problems @@ -68,14 +68,14 @@ More information about creating and merging pull requests can be found [here](./ If there are errors in any file which need to be fixed, the output of the action will look similar to this: -![markdown lint error](../00_assets/github-action-md.png) +![markdown lint error](../assets/github-action-md.png) ### 2. Error in the python linter If there are errors in any python file, the output of the action will look similar to this: -![python lint error](../00_assets/github-action-py.png) +![python lint error](../assets/github-action-py.png) This step even runs if the markdown linter has already failed. This way, all errors of different steps are directly visible diff --git a/doc/02_development/02_linting.md b/doc/development/linting.md similarity index 100% rename from doc/02_development/02_linting.md rename to doc/development/linting.md diff --git a/doc/02_development/08_project_management.md b/doc/development/project_management.md similarity index 92% rename from doc/02_development/08_project_management.md rename to doc/development/project_management.md index 97821432..e9917e5f 100644 --- a/doc/02_development/08_project_management.md +++ b/doc/development/project_management.md @@ -42,11 +42,11 @@ Any bugs or features requests are managed in Github. Bugs or features can be added [here](https://github.com/ll7/paf22/issues/new/choose) or via the [issue overview](https://github.com/ll7/paf22/issues). -![create issue](../00_assets/create_issue.png) +![create issue](../assets/create_issue.png) By clicking "New issue" in the overview or using the direct link above a wizard guides you to the creation of an issue: -![issue wizard](../00_assets/issue_wizard.png) +![issue wizard](../assets/issue_wizard.png) The possibilities are described in the following sections. @@ -60,7 +60,7 @@ If something is not expected to work, but you want to have it, please refer to t The documentation says that the vehicle should detect about 90% of the traffic lights. However, for you it ignores almost all traffic lights. -![bug template](../00_assets/bug_template.png) +![bug template](../assets/bug_template.png) ### 💡 Feature @@ -71,7 +71,7 @@ Use this template if you want a new Feature which is not implemented yet. Currently, the vehicle can't make u-turns. Implementing the ability to perform u-turns would be a new feature. -![feature template](../00_assets/feature_template.png) +![feature template](../assets/feature_template.png) ### 🚗 Bug in CARLA Simulator @@ -84,11 +84,11 @@ CARLA simulator crashes on startup on your machine. ## Create a Pull Request To create a pull request, go to the [branches overview](https://github.com/ll7/paf22/branches) and select ``New Pull Request`` for the branch you want to create a PR for. -![img.png](../00_assets/branch_overview.png) +![img.png](../assets/branch_overview.png) Merge the pull request after the review process is complete and all the feedback from the reviewer has been worked in. -For more information about the review process, see [Review process](./07_review_guideline.md). +For more information about the review process, see [Review process](./review_guideline.md). ## Merging a Pull Request diff --git a/doc/02_development/07_review_guideline.md b/doc/development/review_guideline.md similarity index 92% rename from doc/02_development/07_review_guideline.md rename to doc/development/review_guideline.md index e42c4a17..dc0fc446 100644 --- a/doc/02_development/07_review_guideline.md +++ b/doc/development/review_guideline.md @@ -37,19 +37,19 @@ Josef Kircher ## How to review 1. Select der PR you want to review on GitHub -![img.png](../00_assets/PR_overview.png) +![img.png](../assets/PR_overview.png) 2. Go to Files Changed -![img.png](../00_assets/Files_Changed.png) +![img.png](../assets/Files_Changed.png) 3. Hover over the line where you want to add a comment and click on the blue `+` at the beginning of the line to add a comment -![img.png](../00_assets/Comment_PR.png) +![img.png](../assets/Comment_PR.png) 4. If you want to comment on multiple lines click and drag over these lines 5. In the comment field type your comment. How to write a good comment is handled in the next section. 6. You can also add a suggestion by using ``Ctrl+G`` or the small paper icon in the header line of the comment -![img.png](../00_assets/Suggestion.png) +![img.png](../assets/Suggestion.png) 7. If you finished with the file you can check ``Viewed`` in the top right corner and the file collapses -![img.png](../00_assets/Comment_viewed.png) +![img.png](../assets/Comment_viewed.png) 8. To finish your review click ``Review Changes`` -![img.png](../00_assets/Review_changes.png) +![img.png](../assets/Review_changes.png) 9. Type a comment summarizing your review 10. Select the type of review you like to leave: 11. Comment - General feedback without approval @@ -90,8 +90,8 @@ If the reviewer not only left comments but also made specific suggestions on cod 2. Navigate to the first suggested change 3. If you want to commit that change in a single commit, click ``Commit suggestion`` 4. If you want to put more changes together to a single commit, click ``Add suggestion to batch`` -![img.png](../00_assets/Commit_suggestion.png) -5. In the commit message field, type a short and meaningful commit message according to the [commit rules](./03_commit.md) +![img.png](../assets/Commit_suggestion.png) +5. In the commit message field, type a short and meaningful commit message according to the [commit rules](./commit.md) 6. Click ``Commit changes`` ### Re-requesting a review @@ -102,7 +102,7 @@ If you made substantial changes to your pull request and want to a fresh review If a comment of a review was resolved by either, a new commit or a discussion between the reviewer and the team that created the pull request, the conversation can be marked as resolved by clicking ``Resolve conversation`` in the ``Conversation`` or ``Files Changed`` tab of the pull request on GitHub. If a new commit took place it is encouraged to comment the commit SHA to have a connection between comment and resolving commit -![img.png](../00_assets/Resolve_conversation.png) +![img.png](../assets/Resolve_conversation.png) --- diff --git a/doc/02_development/templates/template_class.py b/doc/development/templates/template_class.py similarity index 100% rename from doc/02_development/templates/template_class.py rename to doc/development/templates/template_class.py diff --git a/doc/02_development/templates/template_class_no_comments.py b/doc/development/templates/template_class_no_comments.py similarity index 100% rename from doc/02_development/templates/template_class_no_comments.py rename to doc/development/templates/template_class_no_comments.py diff --git a/doc/02_development/templates/template_component_readme.md b/doc/development/templates/template_component_readme.md similarity index 100% rename from doc/02_development/templates/template_component_readme.md rename to doc/development/templates/template_component_readme.md diff --git a/doc/02_development/templates/template_wiki_page.md b/doc/development/templates/template_wiki_page.md similarity index 100% rename from doc/02_development/templates/template_wiki_page.md rename to doc/development/templates/template_wiki_page.md diff --git a/doc/02_development/templates/template_wiki_page_empty.md b/doc/development/templates/template_wiki_page_empty.md similarity index 100% rename from doc/02_development/templates/template_wiki_page_empty.md rename to doc/development/templates/template_wiki_page_empty.md diff --git a/doc/04_examples/dvc_example/.gitignore b/doc/examples/dvc_example/.gitignore similarity index 100% rename from doc/04_examples/dvc_example/.gitignore rename to doc/examples/dvc_example/.gitignore diff --git a/doc/04_examples/dvc_example/dataset.dvc b/doc/examples/dvc_example/dataset.dvc similarity index 100% rename from doc/04_examples/dvc_example/dataset.dvc rename to doc/examples/dvc_example/dataset.dvc diff --git a/doc/04_examples/gps_example/gps_signal_example.md b/doc/examples/gps_example/gps_signal_example.md similarity index 86% rename from doc/04_examples/gps_example/gps_signal_example.md rename to doc/examples/gps_example/gps_signal_example.md index 5314652c..92069b4f 100644 --- a/doc/04_examples/gps_example/gps_signal_example.md +++ b/doc/examples/gps_example/gps_signal_example.md @@ -2,7 +2,7 @@ **Summary:** This page explains how the GPS sensor is handled including a short example on how to use it. -**The Filter that's currently in use: [Kalman Filter](../../06_perception/08_kalman_filter.md)** +**The Filter that's currently in use: [Kalman Filter](../../perception/kalman_filter.md)** --- @@ -34,7 +34,7 @@ While latitude and longitude are measured in degrees, altitude is measured in me ## Filters for the sensor data As with all sensors provided by Carla, the GPS sensor output contains artificial noise. -![Unfiltered GPS signal](../../00_assets/filter_img/avg_1_w_1_000.png) +![Unfiltered GPS signal](../../assets/filter_img/avg_1_w_1_000.png) Right now there are multiple types of filters implemented. ### Intuitive filter @@ -49,11 +49,11 @@ parameters. The following graphs were taken while the car was stationary, the time on the bottom is therefore irrelevant. Shown is the position translated to a local coordinate system, the transformation will be discussed later. -![GPS signal (m=1, w=0,5)](../../00_assets/filter_img/avg_1_w_0_500.png) +![GPS signal (m=1, w=0,5)](../../assets/filter_img/avg_1_w_0_500.png) Using $w = 0.5$ clearly reduces the magnitude of the noise, however such a small value reduces the responsiveness of the output signal. -![GPS signal (m=1, w=0,5)](../../00_assets/filter_img/avg_10_w_1_000.png) +![GPS signal (m=1, w=0,5)](../../assets/filter_img/avg_10_w_1_000.png) Using a large number of data points ( $m = 10$ ) also improves the magnitude of the noise. The main drawback here is the reduced frequency of the output signal, as the frequency of the output signal is $\frac{1}{m}$ that of the input signal. @@ -61,7 +61,7 @@ This can be avoided through the use of a rolling average where for every output the last $m$ inputs are taken into account. Combining these two parameters can lead to further improve the result. -![GPS signal (m=1, w=0,5)](../../00_assets/filter_img/avg_20_w_0_750.png) +![GPS signal (m=1, w=0,5)](../../assets/filter_img/avg_20_w_0_750.png) The output signals frequency has now been reduced to 1Hz compared to the original 20Hz frequency, with the weight now being set to $w = 0.75$ @@ -76,7 +76,7 @@ whenever a new signal is received. Once new data is received the matrix is rotated by one position and the oldest measurement is overwritten. The output is equal to the average of all $n$ vectors. -![Rolling average filter (n=20)](../../00_assets/filter_img/rolling_avg_20.png) +![Rolling average filter (n=20)](../../assets/filter_img/rolling_avg_20.png) More arguments smooth out the gps signal, however the also add sluggishness to the output. The number of arguments taken into account can be adjusted using the @@ -84,21 +84,21 @@ The number of arguments taken into account can be adjusted using the This was the method ultimately chosen with $n=10$, leading to the following gps signal. -![Final gps signal (n=10)](../../00_assets/filter_img/rolling_avg_10.png) +![Final gps signal (n=10)](../../assets/filter_img/rolling_avg_10.png) ### Kalman Filter -A little more complex, but quicker reacting filter is the [Kalman Filter](../../06_perception/08_kalman_filter.md). +A little more complex, but quicker reacting filter is the [Kalman Filter](../../perception/kalman_filter.md). It is heavily dependent on which system model you use and how you tune its parameters. When done correctly it reduces the GPS noise greatly without adding any delay to the output such as the filters above do. -![MAE Boxed Graph of Location Error with respect to ideal Location](../../../doc/00_assets/perception/data_26_MAE_Boxed.png) +![MAE Boxed Graph of Location Error with respect to ideal Location](../../../doc/assets/perception/data_26_MAE_Boxed.png) In the upper graph a smaller box indicates less noise. Also the lower values are, the less deviation from the ideal position we have. This is the graph that was used for tuning the kalman parameters: -![MSE Boxed Graph of Location Error with respect to ideal Location](../../../doc/00_assets/perception/data_26_MSE_Boxed.png) +![MSE Boxed Graph of Location Error with respect to ideal Location](../../../doc/assets/perception/data_26_MSE_Boxed.png) It's depciting the MSE (mean squared errors) for the error distace to the ideal position. As you can see the filtered Positions are still noisy, but way closer to the ideal position. In comparison, the running average filter is not as noisy, but constantly wrong by about 1 meter, because it is time delayed. diff --git a/doc/01_general/Readme.md b/doc/general/Readme.md similarity index 50% rename from doc/01_general/Readme.md rename to doc/general/Readme.md index 313b5e96..81105f81 100644 --- a/doc/01_general/Readme.md +++ b/doc/general/Readme.md @@ -2,5 +2,5 @@ This Folder contains instruction how to execute the project and what it does. -1. [Installation](./02_installation.md) -2. [Current architecture of the agent](./04_architecture.md) +1. [Installation](./installation.md) +2. [Current architecture of the agent](./architecture.md) diff --git a/doc/01_general/04_architecture.md b/doc/general/architecture.md similarity index 93% rename from doc/01_general/04_architecture.md rename to doc/general/architecture.md index c1a9de98..6f95c996 100644 --- a/doc/01_general/04_architecture.md +++ b/doc/general/architecture.md @@ -47,7 +47,7 @@ found [here](https://carla.readthedocs.io/projects/ros-bridge/en/latest/ros_sens The msgs necessary to control the vehicle via the Carla bridge can be found [here](https://carla.readthedocs.io/en/0.9.8/ros_msgs/#CarlaEgoVehicleControlmsg) -![Architecture overview](../00_assets/overview.jpg) +![Architecture overview](../assets/overview.jpg) The miro-board can be found [here](https://miro.com/welcomeonboard/a1F0d1dya2FneWNtbVk4cTBDU1NiN3RiZUIxdGhHNzJBdk5aS3N4VmdBM0R5c2Z1VXZIUUN4SkkwNHpuWlk2ZXwzNDU4NzY0NTMwNjYwNzAyODIzfDI=?share_link_id=785020837509). ## Perception @@ -55,8 +55,8 @@ The miro-board can be found [here](https://miro.com/welcomeonboard/a1F0d1dya2Fne The perception is responsible for the efficient conversion of raw sensor and map data into a useful environment representation that can be used by the [Planning](#Planning) for further processing. -Further information regarding the perception can be found [here](../06_perception/Readme.md). -Research for the perception can be found [here](../03_research/02_perception/Readme.md). +Further information regarding the perception can be found [here](../perception/Readme.md). +Research for the perception can be found [here](../research/perception/Readme.md). ### Obstacle Detection and Classification @@ -120,10 +120,10 @@ The planning uses the data from the [Perception](#Perception) to find a path on its destination. It also detects situations and reacts accordingly in traffic. It publishes signals such as a trajecotry or a target speed to acting. -Further information regarding the planning can be found [here](../07_planning/README.md). -Research for the planning can be found [here](../03_research/03_planning/Readme.md). +Further information regarding the planning can be found [here](../planning/README.md). +Research for the planning can be found [here](../research/planning/Readme.md). -### [Global Planning](../07_planning/Global_Planner.md) +### [Global Planning](../planning/Global_Planner.md) Uses information from the map and the path specified by CARLA to find a first concrete path to the next intermediate point. @@ -138,7 +138,7 @@ Publishes: - ```provisional_path``` ([nav_msgs/Path Message](http://docs.ros.org/en/noetic/api/nav_msgs/html/msg/Path.html)) -### [Decision Making](../07_planning/Behavior_tree.md) +### [Decision Making](../planning/Behavior_tree.md) Decides which speed is the right one to pass through a certain situation and also checks if an overtake is necessary. @@ -157,7 +157,7 @@ Publishes: - ```curr_behavior``` ([std_msgs/String](https://docs.ros.org/en/api/std_msgs/html/msg/String.html)) -### [Local Planning](../07_planning/Local_Planning.md) +### [Local Planning](../planning/Local_Planning.md) It consists of three components: @@ -165,7 +165,7 @@ It consists of three components: - ACC: Generates a new speed based on a possible collision recieved from Collision Check and speedlimits recieved from [Global Planner](#global-planning) - Motion Planning: Decides the target speed and modifies trajectory if signal recieved from [Decision Making](#decision-making) -#### [Collision Check](../07_planning//Collision_Check.md) +#### [Collision Check](../planning//Collision_Check.md) Subscriptions: @@ -182,7 +182,7 @@ Publishes: - ```current_wp``` ([std_msgs/Float32](https://docs.ros.org/en/api/std_msgs/html/msg/Float32.html)) - ```speed_limit``` ([std_msgs/Float32](https://docs.ros.org/en/api/std_msgs/html/msg/Float32.html)) -#### [ACC](../07_planning/ACC.md) +#### [ACC](../planning/ACC.md) Subscriptions: @@ -195,7 +195,7 @@ Publishes: - ```collision``` ([std_msgs/Float32MultiArray](https://docs.ros.org/en/api/std_msgs/html/msg/Float32MultiArray.html)) - ```oncoming``` ([std_msgs/Float32](https://docs.ros.org/en/api/std_msgs/html/msg/Float32.html)) -#### [Motion Planning](../07_planning/motion_planning.md) +#### [Motion Planning](../planning/motion_planning.md) Subscriptions: @@ -225,9 +225,9 @@ Publishes: The job of this component is to take the planned trajectory and target-velocities from the [Planning](#Planning) component and convert them into steering and throttle/brake controls for the CARLA-vehicle. -All information regarding research done about acting can be found [here](../03_research/01_acting/Readme.md). +All information regarding research done about acting can be found [here](../research/acting/Readme.md). -Indepth information about the currently implemented acting Components can be found [HERE](../05_acting/Readme.md)! +Indepth information about the currently implemented acting Components can be found [HERE](../acting/Readme.md)! ### Path following with Steering Controllers @@ -245,7 +245,7 @@ Publishes: - ```steering_angle``` for ```vehicle_control_cmd``` ([CarlaEgoVehicleControl.msg](https://carla.readthedocs.io/en/0.9.8/ros_msgs/#CarlaEgoVehicleControlmsg)) -For further indepth information about the currently implemented Steering Controllers click [HERE](../05_acting/03_steering_controllers.md) +For further indepth information about the currently implemented Steering Controllers click [HERE](../acting/steering_controllers.md) ### Velocity control @@ -263,7 +263,7 @@ Publishes: - ```reverse``` for ```vehicle_control_cmd``` ([CarlaEgoVehicleControl.msg](https://carla.readthedocs.io/en/0.9.8/ros_msgs/#CarlaEgoVehicleControlmsg)) -For further indepth information about the currently implemented Velocity Controller click [HERE](../05_acting/02_velocity_controller.md) +For further indepth information about the currently implemented Velocity Controller click [HERE](../acting/velocity_controller.md) ### Vehicle controller @@ -282,7 +282,7 @@ Publishes: - ```vehicle_control_cmd``` ([CarlaEgoVehicleControl.msg](https://carla.readthedocs.io/en/0.9.8/ros_msgs/#CarlaEgoVehicleControlmsg)) -For further indepth information about the currently implemented Vehicle Controller click [HERE](../05_acting/04_vehicle_controller.md) +For further indepth information about the currently implemented Vehicle Controller click [HERE](../acting/vehicle_controller.md) ## Visualization diff --git a/doc/01_general/02_installation.md b/doc/general/installation.md similarity index 97% rename from doc/01_general/02_installation.md rename to doc/general/installation.md index a0a1d332..c3620c60 100644 --- a/doc/01_general/02_installation.md +++ b/doc/general/installation.md @@ -69,7 +69,7 @@ sudo systemctl restart docker Cannot find a compatible Vulkan Device. Try updating your video driver to a more recent version and make sure your video card supports Vulkan. -![Vulkan device not available](../00_assets/vulkan_device_not_available.png) +![Vulkan device not available](../assets/vulkan_device_not_available.png) Verify the issue with the following command: diff --git a/doc/perception/Readme.md b/doc/perception/Readme.md new file mode 100644 index 00000000..9b747565 --- /dev/null +++ b/doc/perception/Readme.md @@ -0,0 +1,22 @@ +# Documentation of perception component + +This folder contains further documentation of the perception components. + +1. [Vision Node](./vision_node.md) + - The Visison Node provides an adaptive interface that is able to perform object-detection and/or image-segmentation on multiple cameras at the same time. +2. [Position Heading Filter Debug Node](./position_heading_filter_debug_node.md) +3. [Kalman Filter](./kalman_filter.md) +4. [Position Heading Publisher Node](./position_heading_publisher_node.md) +5. [Distance to Objects](./distance_to_objects.md) +6. [Traffic Light Detection](./traffic_light_detection.md) +7. [Coordinate Transformation (helper functions)](./coordinate_transformation.md) +8. [Dataset Generator](./dataset_generator.md) +9. [Dataset Structure](./dataset_structure.md) +10. [Lidar Distance Utility](./lidar_distance_utility.md) + 1. not used since paf22 +11. [Efficient PS](./efficientps.md) + 1. not used scince paf22 and never successfully tested + +## Experiments + +- The overview of performance evaluations is located in the [experiments](./experiments/README.md) folder. diff --git a/doc/06_perception/00_coordinate_transformation.md b/doc/perception/coordinate_transformation.md similarity index 92% rename from doc/06_perception/00_coordinate_transformation.md rename to doc/perception/coordinate_transformation.md index 46eea5ca..a6180ec7 100644 --- a/doc/06_perception/00_coordinate_transformation.md +++ b/doc/perception/coordinate_transformation.md @@ -14,12 +14,12 @@ Robert Fischer -- [Coordinate Transformation](#coordonate-transformation) +- [Coordinate Transformation](#coordinate-transformation) - [Author](#author) - [Date](#date) - [Usage](#usage) - [Methods](#methods) - - [quat_to_heading(quaternion)](#quat_to_headingquaternion) + - [quat\_to\_heading(quaternion)](#quat_to_headingquaternion) @@ -95,7 +95,7 @@ $$ So we end up with a vector that's rotated into the x-y plane with the new x and y coordinates being `a` and `d`: -![quat_to_angle](../../doc/00_assets/perception/quat_to_angle.png) +![quat_to_angle](../../doc/assets/perception/quat_to_angle.png) Now all we need to do is calculate the angle $\theta$ around the z-axis which this vector creates between the x-axis and itself using the `atan` function: @@ -112,7 +112,7 @@ $$heading = \theta$$ def quat_to_heading(quaternion): """ Converts a quaternion to a heading of the car in radians - (see ../../doc/06_perception/00_coordinate_transformation.md) + (see ../../doc/perception/coordinate_transformation.md) :param quaternion: quaternion of the car as a list [q.x, q.y, q.z, q.w] where q is the quaternion :return: heading of the car in radians (float) diff --git a/doc/06_perception/01_dataset_generator.md b/doc/perception/dataset_generator.md similarity index 100% rename from doc/06_perception/01_dataset_generator.md rename to doc/perception/dataset_generator.md diff --git a/doc/06_perception/02_dataset_structure.md b/doc/perception/dataset_structure.md similarity index 97% rename from doc/06_perception/02_dataset_structure.md rename to doc/perception/dataset_structure.md index aecd0a40..1ba48dbc 100644 --- a/doc/06_perception/02_dataset_structure.md +++ b/doc/perception/dataset_structure.md @@ -26,7 +26,7 @@ Marco Riedenauer ## Converting the dataset -After creating the dataset with the [Dataset Generator](01_dataset_generator.md) or creating a dataset on your own, +After creating the dataset with the [Dataset Generator](dataset_generator.md) or creating a dataset on your own, execute the [Dataset Converter](../../code/perception/src/dataset_converter.py) to ensure that your dataset has the following structure: diff --git a/doc/06_perception/10_distance_to_objects.md b/doc/perception/distance_to_objects.md similarity index 92% rename from doc/06_perception/10_distance_to_objects.md rename to doc/perception/distance_to_objects.md index f49fb860..684ac59f 100644 --- a/doc/06_perception/10_distance_to_objects.md +++ b/doc/perception/distance_to_objects.md @@ -22,7 +22,7 @@ I found ways online, that seemed to solve this issue though. ### Concept -![3d_2d_porjection](../00_assets/3d_2d_projection.png) +![3d_2d_porjection](../assets/3d_2d_projection.png) The goal is to calculate the projection of point P and find its Pixl-Coordinates (u,v) on the Image-Plain. To do this you need a couple of thins: @@ -39,7 +39,7 @@ To do this you need a couple of thins: The formula for this projection proposed by the literature looks like this: -![3d_2d_formula](../00_assets/3d_2d_formula.png) +![3d_2d_formula](../assets/3d_2d_formula.png) To get the camera-intrinsic matrix we need the width, height and fov of the image produced by the camera. Luckily we cn easly get these values from the sensor configuration in (agent.py) @@ -65,7 +65,7 @@ To reconstruct the depth image, we simply implement the above formulas using num The resulting Image takes the distance in meters as values for its pixels. It therefore is a grayscale image. -![Grayscale Depth Image](../00_assets/2_15_layover.png) +![Grayscale Depth Image](../assets/2_15_layover.png) In the next step we want to get the distance for every bounding box the object-detection found. @@ -92,9 +92,9 @@ If there is no distance found in the depth image, we will return infinity for th This topic came to our attention, as we realised that the LIDAR was flickering, as you can see in the following image series. -![Grayscale Depth Image](../00_assets/2_layover.png) -![Grayscale Depth Image](../00_assets/3_layover.png) -![Grayscale Depth Image](../00_assets/4_layover.png) +![Grayscale Depth Image](../assets/2_layover.png) +![Grayscale Depth Image](../assets/3_layover.png) +![Grayscale Depth Image](../assets/4_layover.png) These are the Grayscale-Depth Images reconstructed within 600 milliseconds. diff --git a/doc/06_perception/04_efficientps.md b/doc/perception/efficientps.md similarity index 94% rename from doc/06_perception/04_efficientps.md rename to doc/perception/efficientps.md index 92ce43a4..7664cd6e 100644 --- a/doc/06_perception/04_efficientps.md +++ b/doc/perception/efficientps.md @@ -28,11 +28,11 @@ Marco Riedenauer ## Model Overview EfficientPS is a neural network designed for panoptic segmentation -(see [Panoptic Segmentation](../03_research/02_perception/03_first_implementation_plan.md#panoptic-segmentation)). +(see [Panoptic Segmentation](../research/perception/first_implementation_plan.md#panoptic-segmentation)). The model itself consists of 4 parts as can be seen in the following figure. The displayed shapes are incorrect in our case, since we used half the image size. -![EfficientPS Structure](../00_assets/efficientps_structure.png) +![EfficientPS Structure](../assets/efficientps_structure.png) [Source](https://arxiv.org/pdf/2004.02307.pdf) - Feature Extraction: diff --git a/doc/06_perception/experiments/README.md b/doc/perception/experiments/README.md similarity index 100% rename from doc/06_perception/experiments/README.md rename to doc/perception/experiments/README.md diff --git a/doc/06_perception/experiments/lanenet_evaluation/README.md b/doc/perception/experiments/lanenet_evaluation/README.md similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/README.md rename to doc/perception/experiments/lanenet_evaluation/README.md diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1600_lanes.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1600_lanes.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1600_lanes.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1600_lanes.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1600_lanes_mask.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1600_lanes_mask.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1600_lanes_mask.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1600_lanes_mask.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1619_lanes.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1619_lanes.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1619_lanes.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1619_lanes.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1619_lanes_mask.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1619_lanes_mask.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1619_lanes_mask.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1619_lanes_mask.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1660_lanes.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1660_lanes.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1660_lanes.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1660_lanes.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1660_lanes_mask.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1660_lanes_mask.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1660_lanes_mask.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1660_lanes_mask.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1663_lanes.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1663_lanes.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1663_lanes.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1663_lanes.jpg diff --git a/doc/06_perception/experiments/lanenet_evaluation/assets/1663_lanes_mask.jpg b/doc/perception/experiments/lanenet_evaluation/assets/1663_lanes_mask.jpg similarity index 100% rename from doc/06_perception/experiments/lanenet_evaluation/assets/1663_lanes_mask.jpg rename to doc/perception/experiments/lanenet_evaluation/assets/1663_lanes_mask.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/README.md b/doc/perception/experiments/object-detection-model_evaluation/README.md similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/README.md rename to doc/perception/experiments/object-detection-model_evaluation/README.md diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_PT_fasterrcnn_resnet50_fpn_v2.jpg b/doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_PT_fasterrcnn_resnet50_fpn_v2.jpg similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_PT_fasterrcnn_resnet50_fpn_v2.jpg rename to doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_PT_fasterrcnn_resnet50_fpn_v2.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_TF_faster-rcnn.jpg b/doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_TF_faster-rcnn.jpg similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_TF_faster-rcnn.jpg rename to doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_TF_faster-rcnn.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_nas_l.jpg b/doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_nas_l.jpg similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_nas_l.jpg rename to doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_nas_l.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_rtdetr_x.jpg b/doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_rtdetr_x.jpg similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_rtdetr_x.jpg rename to doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolo_rtdetr_x.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x.jpg b/doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x.jpg similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x.jpg rename to doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg b/doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg rename to doc/perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/globals.py b/doc/perception/experiments/object-detection-model_evaluation/globals.py similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/globals.py rename to doc/perception/experiments/object-detection-model_evaluation/globals.py diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/pt.py b/doc/perception/experiments/object-detection-model_evaluation/pt.py similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/pt.py rename to doc/perception/experiments/object-detection-model_evaluation/pt.py diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/pylot.py b/doc/perception/experiments/object-detection-model_evaluation/pylot.py similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/pylot.py rename to doc/perception/experiments/object-detection-model_evaluation/pylot.py diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/requirements.txt b/doc/perception/experiments/object-detection-model_evaluation/requirements.txt similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/requirements.txt rename to doc/perception/experiments/object-detection-model_evaluation/requirements.txt diff --git a/doc/06_perception/experiments/object-detection-model_evaluation/yolo.py b/doc/perception/experiments/object-detection-model_evaluation/yolo.py similarity index 100% rename from doc/06_perception/experiments/object-detection-model_evaluation/yolo.py rename to doc/perception/experiments/object-detection-model_evaluation/yolo.py diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/README.md b/doc/perception/experiments/traffic-light-detection_evaluation/README.md similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/README.md rename to doc/perception/experiments/traffic-light-detection_evaluation/README.md diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/back_1.png b/doc/perception/experiments/traffic-light-detection_evaluation/assets/back_1.png similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/back_1.png rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/back_1.png diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/back_14.jpg b/doc/perception/experiments/traffic-light-detection_evaluation/assets/back_14.jpg similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/back_14.jpg rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/back_14.jpg diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/green_22.jpg b/doc/perception/experiments/traffic-light-detection_evaluation/assets/green_22.jpg similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/green_22.jpg rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/green_22.jpg diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/green_4.png b/doc/perception/experiments/traffic-light-detection_evaluation/assets/green_4.png similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/green_4.png rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/green_4.png diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/red_10.png b/doc/perception/experiments/traffic-light-detection_evaluation/assets/red_10.png similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/red_10.png rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/red_10.png diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/red_20.png b/doc/perception/experiments/traffic-light-detection_evaluation/assets/red_20.png similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/red_20.png rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/red_20.png diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/yellow_1.png b/doc/perception/experiments/traffic-light-detection_evaluation/assets/yellow_1.png similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/yellow_1.png rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/yellow_1.png diff --git a/doc/06_perception/experiments/traffic-light-detection_evaluation/assets/yellow_18.jpg b/doc/perception/experiments/traffic-light-detection_evaluation/assets/yellow_18.jpg similarity index 100% rename from doc/06_perception/experiments/traffic-light-detection_evaluation/assets/yellow_18.jpg rename to doc/perception/experiments/traffic-light-detection_evaluation/assets/yellow_18.jpg diff --git a/doc/06_perception/08_kalman_filter.md b/doc/perception/kalman_filter.md similarity index 97% rename from doc/06_perception/08_kalman_filter.md rename to doc/perception/kalman_filter.md index d79833f6..df59b3f7 100644 --- a/doc/06_perception/08_kalman_filter.md +++ b/doc/perception/kalman_filter.md @@ -48,7 +48,7 @@ to **"Kalman"**, depending on if you want to use the Filter for both the Positio In the case of using the Filter for both, it should look like this: -![Kalman Filter for both parameters](../../doc/00_assets/perception/kalman_installation_guide.png) +![Kalman Filter for both parameters](../../doc/assets/perception/kalman_installation_guide.png) No further installation needed. @@ -250,9 +250,9 @@ Smaller boxes mean the data is closer together and less spread. The Kalman Filter was tuned to create the smallest MSE possible, which gives more weight to larger errors which we want to minimise. The MAE on the other hand shows a 1:1 representation in terms of distance from the ideal to the predicted location. -![MSE Boxed Graph of Location Error with respect to ideal Location](../../doc/00_assets/perception/data_26_MSE_Boxed.png) +![MSE Boxed Graph of Location Error with respect to ideal Location](../../doc/assets/perception/data_26_MSE_Boxed.png) -![MAE Boxed Graph of Location Error with respect to ideal Location](../../doc/00_assets/perception/data_26_MAE_Boxed.png) +![MAE Boxed Graph of Location Error with respect to ideal Location](../../doc/assets/perception/data_26_MAE_Boxed.png) As you see this data you might think the unfiltered data seems to be just as good if not even better than the previous rolling average filter (RAF). diff --git a/doc/06_perception/03_lidar_distance_utility.md b/doc/perception/lidar_distance_utility.md similarity index 98% rename from doc/06_perception/03_lidar_distance_utility.md rename to doc/perception/lidar_distance_utility.md index f81d2904..fbcf2b7f 100644 --- a/doc/06_perception/03_lidar_distance_utility.md +++ b/doc/perception/lidar_distance_utility.md @@ -54,7 +54,7 @@ starting from 20cm above the ground you have to set min_z = -1.5. The meaning of the x and y values is described by the following image: -![lidar filter](../00_assets/lidar_filter.png) +![lidar filter](../assets/lidar_filter.png) ### Example diff --git a/doc/06_perception/07_position_heading_filter_debug_node.md b/doc/perception/position_heading_filter_debug_node.md similarity index 92% rename from doc/06_perception/07_position_heading_filter_debug_node.md rename to doc/perception/position_heading_filter_debug_node.md index 34f7ec2c..09b10551 100644 --- a/doc/06_perception/07_position_heading_filter_debug_node.md +++ b/doc/perception/position_heading_filter_debug_node.md @@ -3,7 +3,7 @@ **Summary:** [position_heading_filter_debug_node.py](../../code/perception/src/position_heading_filter_debug_node.py): The position_heading_filter_debug_node node is responsible for collecting sensor data from the IMU and GNSS and process the data in such a way, that it shows the errors between the real is-state and the measured state. -The data can be looked at in rqt_plots or (better) in mathplotlib plots pre-made by the [viz.py](../../code/perception/src/00_Experiments/Position_Heading_Datasets/viz.py) file. +The data can be looked at in rqt_plots or (better) in mathplotlib plots pre-made by the [viz.py](../../code/perception/src/experiments/Position_Heading_Datasets/viz.py) file. !!THIS NODE USES THE CARLA API!! @@ -48,12 +48,12 @@ If you are trying to implement a new position/ heading filter and want to tune i 1. Create a new Filter Node class (if not already done) AND publish a paf/hero/filter_name_pos AND/OR filter_name_heading 2. Change the topic of the test_filter_subscribers to your topic (currently kalman) -![Subscriber Change](/doc/00_assets/perception/sensor_debug_change.png) +![Subscriber Change](/doc/assets/perception/sensor_debug_change.png) If you want to save the debug in csv files for better debugging you should uncomment that part in the main loop of the file: -![Save Files as CSV](/doc/00_assets/perception/sensor_debug_data_saving.png) +![Save Files as CSV](/doc/assets/perception/sensor_debug_data_saving.png) --- @@ -61,18 +61,18 @@ that part in the main loop of the file: Running the node provides you with ideal position and heading topics that can be used to debug your sensor filters by giving you ideal values you should aim for. -It also provides you with helpful data saving methods for plotting your data (with regards to ideal values) by using the [viz.py](../../code/perception/src/00_Experiments/Position_Heading_Datasets/viz.py) file, which is a lot more customizable and nicer to use than rqt plots. +It also provides you with helpful data saving methods for plotting your data (with regards to ideal values) by using the [viz.py](../../code/perception/src/experiments/Position_Heading_Datasets/viz.py) file, which is a lot more customizable and nicer to use than rqt plots. If you want to know more about how to use that, you can go on to [Visualization](#visualization) An Example of rqt plot Output can be seen here: -![Distance from current_pos to ideal_gps_pos (blue) and to carla_pos (red)](../00_assets/gnss_ohne_rolling_average.png) +![Distance from current_pos to ideal_gps_pos (blue) and to carla_pos (red)](../assets/gnss_ohne_rolling_average.png) The file is using a main loop with a fixed refresh rate, that can be changed in the perception launch file. In this loop it does the following things: 1. Refresh the Ideal Position and Heading (using the Carla API) 2. Update & Publish the Position & Heading Debug Values (see [Outputs](#outputs) for more info) -3. Save the debug data in CSV files in the corresponding folder in code/perception/00_Experiments +3. Save the debug data in CSV files in the corresponding folder in code/perception/experiments (can be outcommented if only working with rqt graphs is enough for you) @@ -180,11 +180,11 @@ It can be used to debug X data, Y data and Heading (h) data. To be able to save data in csv files you just need to uncomment the saving methods in the main loop as stated in the [Getting Started](#getting-started) chapter. -To use the [viz.py](../../code/perception/src/00_Experiments/Position_Heading_Datasets/viz.py) file you will have to: +To use the [viz.py](../../code/perception/src/experiments/Position_Heading_Datasets/viz.py) file you will have to: -1. Configure the main method to your likings inside the viz.py: ![picture](/doc/00_assets/perception/sensor_debug_viz_config.png) +1. Configure the main method to your likings inside the viz.py: ![picture](/doc/assets/perception/sensor_debug_viz_config.png) 2. Open up an attached shell -3. Navigate to the code/perception/src/00_Experiments/Position_Heading folder using ```cd``` +3. Navigate to the code/perception/src/experiments/Position_Heading folder using ```cd``` 4. run the viz.py using ```python viz.py``` With this file you can plot: diff --git a/doc/06_perception/09_position_heading_publisher_node.md b/doc/perception/position_heading_publisher_node.md similarity index 89% rename from doc/06_perception/09_position_heading_publisher_node.md rename to doc/perception/position_heading_publisher_node.md index 30064a4f..5ff5daff 100644 --- a/doc/06_perception/09_position_heading_publisher_node.md +++ b/doc/perception/position_heading_publisher_node.md @@ -53,7 +53,7 @@ You can use filters for the heading and for the location independently using the In case of using the Kalman Filter for both, it should look like this: -![Kalman Filter for both parameters](../../doc/00_assets/perception/kalman_installation_guide.png) +![Kalman Filter for both parameters](../../doc/assets/perception/kalman_installation_guide.png) _If you want to create a new Filter in the future, I suggest keeping this template intact. See next Chapter_ 😊 @@ -68,19 +68,19 @@ For example: _Implementing a new non-linear Kalman Filter could look like this_: - _perception.launch file_: -![Non Linear Kalman Filter Example](../../doc/00_assets/perception/non_linear_kalman_example.png) +![Non Linear Kalman Filter Example](../../doc/assets/perception/non_linear_kalman_example.png) - _Subscribers_: -![Non Linear Kalman Filter Example 2](../../doc/00_assets/perception/modular_subscriber_example.png) +![Non Linear Kalman Filter Example 2](../../doc/assets/perception/modular_subscriber_example.png) - _Heading Methods_: -![Non Linear Kalman Filter Example](../../doc/00_assets/perception/adding_new_position_methods.png) +![Non Linear Kalman Filter Example](../../doc/assets/perception/adding_new_position_methods.png) - _Position Methods_: -![Non Linear Kalman Filter Example](../../doc/00_assets/perception/new_heading_pub_example.png) +![Non Linear Kalman Filter Example](../../doc/assets/perception/new_heading_pub_example.png) As you can see, this file is merely for gathering and forwarding the filter values in the form of currentPos and currentHeading. @@ -100,7 +100,7 @@ If `none` is selected for the Filter, it publishes the data as the `current_pos` This method is called when new heading data is received. It handles all necessary updates and publishes the heading as a double value, indicating the cars rotation around the z-axis in rad. -For more info about how the heading is calculated see [here](./00_coordinate_transformation.md). +For more info about how the heading is calculated see [here](./coordinate_transformation.md). ### Position Functions diff --git a/doc/06_perception/11_traffic_light_detection.md b/doc/perception/traffic_light_detection.md similarity index 100% rename from doc/06_perception/11_traffic_light_detection.md rename to doc/perception/traffic_light_detection.md diff --git a/doc/06_perception/06_vision_node.md b/doc/perception/vision_node.md similarity index 75% rename from doc/06_perception/06_vision_node.md rename to doc/perception/vision_node.md index 951350ac..3838c998 100644 --- a/doc/06_perception/06_vision_node.md +++ b/doc/perception/vision_node.md @@ -76,43 +76,43 @@ The object-detection can be run both ultralytics and pyTorch models. Depending o The object-detection can publish images to RViz under their specified camera angle and topic. -![Object-Detection](../06_perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg) +![Object-Detection](../perception/experiments/object-detection-model_evaluation/asset-copies/1619_yolov8x_seg.jpg) -Please refer to the [model evaluation](../06_perception/experiments/object-detection-model_evaluation/README.md) for more detailed information about the performance of each model. +Please refer to the [model evaluation](../perception/experiments/object-detection-model_evaluation/README.md) for more detailed information about the performance of each model. **Center Camera** -![Center Camera](../00_assets/Front_Detection.png) +![Center Camera](../assets/Front_Detection.png) **Back Camera** -![Back Camera](../00_assets/Back_Detection.png) +![Back Camera](../assets/Back_Detection.png) **Left Camera** -![Left Camera](../00_assets/Left_Detection.png) +![Left Camera](../assets/Left_Detection.png) **Right Camera** -![Right Camera](../00_assets/Right_Detection.png) +![Right Camera](../assets/Right_Detection.png) ## 2. Distance-Calculation -The Vision-Node reveives depth-images from the [lidar distance node](10_distance_to_objects.md) for the specified camera angle. It can than find the min x and min abs y distance within each bounding box that has been predicted by a model. This feature is implemented only for utralytics models. +The Vision-Node reveives depth-images from the [lidar distance node](distance_to_objects.md) for the specified camera angle. It can than find the min x and min abs y distance within each bounding box that has been predicted by a model. This feature is implemented only for utralytics models. The depth images have the same dimension as the camera image and contain x, y and z coordinates of the lidar coordinates system in the three RGB-Channels. -![Depth Image](../00_assets/2_15_layover.png) +![Depth Image](../assets/2_15_layover.png) -Read more about the calculation of Depth Image [here](10_distance_to_objects.md) +Read more about the calculation of Depth Image [here](distance_to_objects.md) ## 3. Publishing of Outputs -In order to provide valuble information for the [planning](../07_planning/README.md), the Vision-Node collects a set of information for each object and publishes a list of objects on the "distance_of_objects" Topic. +In order to provide valuble information for the [planning](../planning/README.md), the Vision-Node collects a set of information for each object and publishes a list of objects on the "distance_of_objects" Topic. - Class_Index - Min_X - Min_Abs_Y When no Lidar-Points are found inside a bounding box, the distances will both be set to np.inf. -Check also [here](10_distance_to_objects.md) to learn more about this list. +Check also [here](distance_to_objects.md) to learn more about this list. In order to provide good visual feedback of what is calculated in the Vision-Node, each camera angle publishes images with bounding boxes and the corresponding distance values found for the object. -![Distance of objects](../00_assets/distance_visualization.png) +![Distance of objects](../assets/distance_visualization.png) diff --git a/doc/07_planning/ACC.md b/doc/planning/ACC.md similarity index 100% rename from doc/07_planning/ACC.md rename to doc/planning/ACC.md diff --git a/doc/07_planning/Behavior_tree.md b/doc/planning/Behavior_tree.md similarity index 96% rename from doc/07_planning/Behavior_tree.md rename to doc/planning/Behavior_tree.md index d3db2ca6..11dc3498 100644 --- a/doc/07_planning/Behavior_tree.md +++ b/doc/planning/Behavior_tree.md @@ -48,7 +48,7 @@ Julius Miller ## About -This Package implements a behaviour agent for our autonomous car using **Behaviour Trees**. It uses the [py_trees](./01_py_trees.md) Framework, that works well with ROS. +This Package implements a behaviour agent for our autonomous car using **Behaviour Trees**. It uses the [py_trees](./py_trees.md) Framework, that works well with ROS. For visualization at runtime you might want to also install this [rqt-Plugin](https://wiki.ros.org/rqt_py_trees). ## Our behaviour tree @@ -56,7 +56,7 @@ For visualization at runtime you might want to also install this [rqt-Plugin](ht The following section describes the behaviour tree we use for normal driving using all functionality provided by the agent. In the actual implementation this is part of a bigger tree, that handles things like writing topics to the blackboard, starting and finishing the decision tree. The following tree is a simplification. -![Simple Tree](../00_assets/planning/simple_final_tree.png) +![Simple Tree](../assets/planning/simple_final_tree.png) ### Behavior @@ -86,9 +86,9 @@ Represents a specific task/scenario which is handled by the decision tree. #### Legend -![BT Legend](../00_assets/legend_bt.png) +![BT Legend](../assets/legend_bt.png) -![BT Intersection](../00_assets/intersection.png) +![BT Intersection](../assets/intersection.png) If there is an intersection coming up, the agent executes the following sequence of behaviours: diff --git a/doc/07_planning/Collision_Check.md b/doc/planning/Collision_Check.md similarity index 100% rename from doc/07_planning/Collision_Check.md rename to doc/planning/Collision_Check.md diff --git a/doc/07_planning/Global_Planner.md b/doc/planning/Global_Planner.md similarity index 100% rename from doc/07_planning/Global_Planner.md rename to doc/planning/Global_Planner.md diff --git a/doc/07_planning/Local_Planning.md b/doc/planning/Local_Planning.md similarity index 93% rename from doc/07_planning/Local_Planning.md rename to doc/planning/Local_Planning.md index 87480cba..4624fd83 100644 --- a/doc/07_planning/Local_Planning.md +++ b/doc/planning/Local_Planning.md @@ -38,7 +38,7 @@ The Local Planning component is responsible for evaluating short term decisions The Local Planning in this project is divided in three components. Collision Check, Adaptive Cruise Control (ACC) and Motion Planning. The architecture can be seen below: -![Planning_architecture.png](../00_assets/planning/Planning_architecture.png) +![Planning_architecture.png](../assets/planning/Planning_architecture.png) The theoretical concepts of each Local Planning component are explained below. @@ -46,14 +46,14 @@ The theoretical concepts of each Local Planning component are explained below. The Collision Check is the backbone of the Local Planning. Its task is to detect collisions with objects published by the vision node. The workflow when new objects are recieved looks like this: -![collision_check.png](../00_assets/planning/collision_check.png) +![collision_check.png](../assets/planning/collision_check.png) ### Apply filters The following input is recieved by the perception: $[class, min⁡(𝑎𝑏𝑠(𝑦)), min⁡(𝑥)]$ in a $(nx3)$-matrix Filtering steps: -![vision_objects_filter_cc.png](../00_assets/planning/vision_objects_filter_cc.png) +![vision_objects_filter_cc.png](../assets/planning/vision_objects_filter_cc.png) We filter for the following traffic objects: Pedestrians, bicycles, bikes, cars, busses and trucks. To filter oncoming traffic the $y$-distance is used as a deviation from the cars's middle axis (+ left, - right). @@ -109,7 +109,7 @@ The Motion Planning is the central control of the Local Planning. Controlling th ### Cornering Speed -![Corner Speed - Full Trajectory.png](../00_assets/planning/plot_full_trajectory_1_degree.png) +![Corner Speed - Full Trajectory.png](../assets/planning/plot_full_trajectory_1_degree.png) The cornering speed gets calculated at the beginning of the scenario, when the full trajectory is received: @@ -123,7 +123,7 @@ Lane changes are special, because you can drive the with normal speed eventhough The target velocity is a combination of the acc speed, the behavior speed and the cornering speed. Almost everytime the minimal speed is choosen. Exceptions are overtaking and the parking maneuver. -![Scenario](../00_assets/planning/three_scenarios.png) +![Scenario](../assets/planning/three_scenarios.png) In the first scenario on the left side the green ego vehicle chooses the acc speed to not cause a collision with the red car. In the second scenario the car is waiting at the intersection and chooses the behavior speed (wait at intersection), while the acc would say speedlimit. @@ -131,7 +131,7 @@ In the last scenario the car chooses the cornering speed to smoothly perform a 9 ### Moving the trajectory -![Overtake](../00_assets/planning/Overtake_car_trajectory.png) +![Overtake](../assets/planning/Overtake_car_trajectory.png) The trajectory gets moved a fixed amount of meters to the left if an overtake is triggered. @@ -146,7 +146,7 @@ rotation_adjusted = Rotation.from_euler('z', self.current_heading + After generating our target roatation we generate a offset vector with the number of meters to move our points as x-value. Then we rotate this vector and add it to the desired waypoint (see red vector in figure below) -![Vector math](../00_assets/planning/vector_calculation.png) +![Vector math](../assets/planning/vector_calculation.png) ```python offset = np.array([offset_meters, 0, 0]) diff --git a/doc/07_planning/Preplanning.md b/doc/planning/Preplanning.md similarity index 96% rename from doc/07_planning/Preplanning.md rename to doc/planning/Preplanning.md index 4ed557b9..252e2ce9 100644 --- a/doc/07_planning/Preplanning.md +++ b/doc/planning/Preplanning.md @@ -42,7 +42,7 @@ No extra installation needed. The leaderboard provides target points and instructions. Every target point contains an appropriate instruction. -![img.png](../00_assets/road_option.png) +![img.png](../assets/road_option.png) We need to cover the following instructions for intersections: @@ -65,7 +65,7 @@ clipping of town 12. It visualizes the agent (red triangle) and the first target from the leaderboard. It also shows the final trajectory on the right side. The picture covers a "turn right" and a lane "change left". -![img.png](../00_assets/road_options_concept.png) +![img.png](../assets/road_options_concept.png) ## Road information @@ -85,7 +85,7 @@ only holds id values which have to be solved with the carla API. Also the name o That is why we would need to get the information for every traffic sign id from carla. This would crash with the leaderboard requirements. We are --not-- allowed to use ground truth information from the game engine. -![img.png](../00_assets/Road0_cutout.png) +![img.png](../assets/Road0_cutout.png) The picture shows the clipping of Road 0 from the leaderboard town 12. @@ -99,7 +99,7 @@ If the road would be part of a junction, there would be a id value greater than A junction manages colliding roads. Junctions only exist when roads intersect. -![img.png](../00_assets/junction.png) +![img.png](../assets/junction.png) The picture above shows an intersection of roads. All possible ways through this intersection have to be covered. The picture shows a clipping of town 12. @@ -107,7 +107,7 @@ The picture shows a clipping of town 12. To view a xodr file we used the following [viewer](https://odrviewer.io/). Very helpful tool to get a better understanding of an underlaying town and to debug the trajectory. -![img.png](../00_assets/intersection_2.png) +![img.png](../assets/intersection_2.png) The picture above shows an intersection. The agent is visualized with the red triangle and wants to drive through the intersection. He has three options, which are shown with the orange lines. The yellow point shows a target point @@ -121,12 +121,12 @@ follow to cross the intersection. Every road has a geometry information. This information is important to interpolate the road correctly. -![img.png](../00_assets/reference_xodr.png) +![img.png](../assets/reference_xodr.png) The picture shows the clipping of a road with a curve. The road contains "line" segments and "arc curvature" segments. We have to interpolate this segments in the provided order to reconstruct the reference line of a road. -![img.png](../00_assets/reference.png) +![img.png](../assets/reference.png) The picture above shows the reference line with its different segments. diff --git a/doc/07_planning/README.md b/doc/planning/README.md similarity index 92% rename from doc/07_planning/README.md rename to doc/planning/README.md index db33eda6..7123c208 100644 --- a/doc/07_planning/README.md +++ b/doc/planning/README.md @@ -34,7 +34,7 @@ After finishing that this node initiates the calculation of a trajectory based o from preplanning_trajectory.py. In the end the computed trajectory and prevailing speed limits are published to the other components of this project (acting, decision making,...). -![img.png](../00_assets/Global_Plan.png) +![img.png](../assets/Global_Plan.png) ### [Decision making](./Behavior_tree.md) @@ -42,11 +42,11 @@ The decision making collects most of the available information of the other comp the information. All possible traffic scenarios are covered in this component. The decision making uses a so called decision tree, which is easy to adapt and to expand. -![Simple Tree](../00_assets/planning/simple_final_tree.png) +![Simple Tree](../assets/planning/simple_final_tree.png) ### [Local Planning](./Local_Planning.md) The Local Planning component is responsible for evaluating short term decisions in the local environment of the ego vehicle. It containes components responsible for detecting collisions and reacting e. g. lowering speed. The local planning also executes behaviors e. g. changes the trajectory for an overtake. -![Overtake](../00_assets/planning/Overtake_car_trajectory.png) +![Overtake](../assets/planning/Overtake_car_trajectory.png) diff --git a/doc/07_planning/Unstuck_Behavior.md b/doc/planning/Unstuck_Behavior.md similarity index 91% rename from doc/07_planning/Unstuck_Behavior.md rename to doc/planning/Unstuck_Behavior.md index 025a46cf..3990fa69 100644 --- a/doc/07_planning/Unstuck_Behavior.md +++ b/doc/planning/Unstuck_Behavior.md @@ -69,5 +69,5 @@ Files influenced by this behavior are: - [motion_planning.py](/code/planning/src/local_planner/motion_planning.py), for the target_speed and overtake - [behavior_speed.py](/code/planning/src/behavior_agent/behaviours/behavior_speed.py), for the target_speed - Acting: - - [vehicle_controller.py](/doc/05_acting/04_vehicle_controller.md), because of driving backwards without steering - - [velocity_controller.py](/doc/05_acting/02_velocity_controller.md), because of the sepcial -3 target_speed case + - [vehicle_controller.py](/doc/acting/vehicle_controller.md), because of driving backwards without steering + - [velocity_controller.py](/doc/acting/velocity_controller.md), because of the sepcial -3 target_speed case diff --git a/doc/07_planning/motion_planning.md b/doc/planning/motion_planning.md similarity index 100% rename from doc/07_planning/motion_planning.md rename to doc/planning/motion_planning.md diff --git a/doc/07_planning/01_py_trees.md b/doc/planning/py_trees.md similarity index 97% rename from doc/07_planning/01_py_trees.md rename to doc/planning/py_trees.md index 5d21de8c..bbc9fb91 100644 --- a/doc/07_planning/01_py_trees.md +++ b/doc/planning/py_trees.md @@ -55,7 +55,7 @@ Run rqt visualization for behaviour tree `rqt --standalone rqt_py_trees.behaviour_tree.RosBehaviourTree` -![img.png](../00_assets/behaviour_tree.png) +![img.png](../assets/behaviour_tree.png) Inspect data written to the behaviour tree diff --git a/doc/03_research/Leaderboard-2/changes_leaderboard2.md b/doc/research/Leaderboard-2/changes_leaderboard2.md similarity index 96% rename from doc/03_research/Leaderboard-2/changes_leaderboard2.md rename to doc/research/Leaderboard-2/changes_leaderboard2.md index 39c23951..077cfb7b 100644 --- a/doc/03_research/Leaderboard-2/changes_leaderboard2.md +++ b/doc/research/Leaderboard-2/changes_leaderboard2.md @@ -16,7 +16,7 @@ Samuel Kühnel Leaderboard 1.0 | Leaderboard 2.0 :-------------------------:|:-------------------------: -![leaderboard-1](../../00_assets/leaderboard-1.png) | ![leaderboard-2](../../00_assets/leaderboard-2.png) +![leaderboard-1](../../assets/leaderboard-1.png) | ![leaderboard-2](../../assets/leaderboard-2.png) As shown in the images above the new leaderboard seems to have way more traffic than the previous version. The leaderboard 2.0 uses an enhanced version of CARLA 0.9.14. So be aware that even if the documentation mentions this version tag, there are probably features missing. Therefore it is recommended to use the latest version. diff --git a/doc/research/Readme.md b/doc/research/Readme.md new file mode 100644 index 00000000..179f8c8b --- /dev/null +++ b/doc/research/Readme.md @@ -0,0 +1,10 @@ +# Research + +This folder contains every research we did before we started the project. + +The research is structured in the following folders: + +- [Acting](./acting/Readme.md) +- [Perception](./perception/Readme.md) +- [Planning](./planning/Readme.md) +- [Requirements](./requirements/Readme.md) diff --git a/doc/research/acting/Readme.md b/doc/research/acting/Readme.md new file mode 100644 index 00000000..8d84f895 --- /dev/null +++ b/doc/research/acting/Readme.md @@ -0,0 +1,11 @@ +# Acting + +This folder contains all the results of our research on acting: + +- **PAF22** +- [Basics](./basics_acting.md) +- [Implementation](./implementation_acting.md) +- **PAF23** +- [PAF21_1 Acting](./paf21_1_acting.md) +- [PAF21_2 Acting & Pylot Control](./paf21_2_and_pylot_acting.md) +- [Autoware Control](./autoware_acting.md) diff --git a/doc/03_research/01_acting/05_autoware_acting.md b/doc/research/acting/autoware_acting.md similarity index 100% rename from doc/03_research/01_acting/05_autoware_acting.md rename to doc/research/acting/autoware_acting.md diff --git a/doc/03_research/01_acting/01_basics_acting.md b/doc/research/acting/basics_acting.md similarity index 96% rename from doc/03_research/01_acting/01_basics_acting.md rename to doc/research/acting/basics_acting.md index 1b6b41f2..3b4dce32 100644 --- a/doc/03_research/01_acting/01_basics_acting.md +++ b/doc/research/acting/basics_acting.md @@ -67,12 +67,12 @@ The steering angle $\delta$ is defined as the angle of the front wheel to a line This angle $\delta$ can also be defined as $tan(\delta) = L/R$ with $L$ as the wheelbase and $R$ the radius from the reference point (rear axle) to the Instantaneous Center of Rotation (ICR). Due to the bicycle model we can calculate $R = \frac{L}{tan(\delta)}$. -![Bicycle Model with ICR](../../00_assets/research_assets/bicyclegeometry.png) +![Bicycle Model with ICR](../../assets/research_assets/bicyclegeometry.png) *source: [[2]](https://medium.com/roboquest/understanding-geometric-path-tracking-algorithms-stanley-controller-25da17bcc219)* We now try to aim the circular arc to intersect with a point on our trajectory. This target point is always a defined distance (look ahead distance $l_d$) away from our reference point (dangling carrot). This leads to the following relation: -![Dangling carrot geometry](../../00_assets/research_assets/danglingcarrotgeometry.png) +![Dangling carrot geometry](../../assets/research_assets/danglingcarrotgeometry.png) *source: [[2]](https://medium.com/roboquest/understanding-geometric-path-tracking-algorithms-stanley-controller-25da17bcc219)* $\frac{l_d}{sin(\alpha)}= 2R$, where $\alpha$ is the current heading error. Combining the two equations leads to our desired steering angle. @@ -98,7 +98,7 @@ $$ The Stanley controller, named after an autonomous offroad race car, takes the front axle as a reference, while still using the bicycle model. In addition to looking at the heading error $\psi$, close to what pure pursuit does, stanley also looks at the cross track error $e_e$. The cross track error $e_e$ is defined as the distance between the reference point and the closest point on our trajectory. -![Stanley error with heading and cross track error](../../00_assets/research_assets/stanleyerror.png) +![Stanley error with heading and cross track error](../../assets/research_assets/stanleyerror.png) *source: [[2]](https://medium.com/roboquest/understanding-geometric-path-tracking-algorithms-stanley-controller-25da17bcc219)* The first part of our steering angle tries to correct for this error $arctan(\frac{k_e*e_e}{k_v*v})$ while the second part just corrects for our heading error $\psi$. @@ -115,7 +115,7 @@ With $k_e$ and $k_v$ being tuneable parameters for cross tracking error and spee The basic idea of MPC is to model the future behavior of the vehicle and compute an optimal control input that, minimizes an a priori defined cost functional. -![MPC Controller](../../00_assets/research_assets/mpc.png) +![MPC Controller](../../assets/research_assets/mpc.png) *source: [[5]](https://dingyan89.medium.com/three-methods-of-vehicle-lateral-control-pure-pursuit-stanley-and-mpc-db8cc1d32081)* - cost function can be designed to account for driving comfort @@ -125,7 +125,7 @@ The basic idea of MPC is to model the future behavior of the vehicle and compute SMC systems are designed to drive the system states onto a particular surface in the state space, named sliding surface. Once the sliding surface is reached, sliding mode control keeps the states on the close neighborhood of the sliding surface. Real implementations of sliding mode control approximate theoretical behavior with a high-frequency and generally non-deterministic switching control signal that causes the system to chatter. -![chattering](../../00_assets/research_assets/chattering.gif) +![chattering](../../assets/research_assets/chattering.gif) *source: [[9]](https://ieeexplore.ieee.org/document/1644542)* - simple diff --git a/doc/03_research/01_acting/02_implementation_acting.md b/doc/research/acting/implementation_acting.md similarity index 96% rename from doc/03_research/01_acting/02_implementation_acting.md rename to doc/research/acting/implementation_acting.md index dd7b45d5..fc763b36 100644 --- a/doc/03_research/01_acting/02_implementation_acting.md +++ b/doc/research/acting/implementation_acting.md @@ -25,7 +25,7 @@ Gabriel Schwald - [Next steps](#next-steps) -This document sums up all functions already agreed upon in [#24](https://github.com/ll7/paf22/issues/24) regarding [acting](../01_acting/01_acting.md), that could be implemented in the next sprint. +This document sums up all functions already agreed upon in [#24](https://github.com/ll7/paf22/issues/24) regarding [acting](../acting/acting.md), that could be implemented in the next sprint. ## Planned basic implementation of the Acting domain diff --git a/doc/03_research/01_acting/03_paf21_1_acting.md b/doc/research/acting/paf21_1_acting.md similarity index 87% rename from doc/03_research/01_acting/03_paf21_1_acting.md rename to doc/research/acting/paf21_1_acting.md index c76dad25..0b03937d 100644 --- a/doc/03_research/01_acting/03_paf21_1_acting.md +++ b/doc/research/acting/paf21_1_acting.md @@ -9,7 +9,7 @@ - Can detect curves on the planned trajectory - Calculates the speed in which to drive the detected Curve -![Curve](../../00_assets/research_assets/curve_detection_paf21_1.png) +![Curve](../../assets/research_assets/curve_detection_paf21_1.png) ## Speed Control @@ -24,7 +24,7 @@ - **Stanley Steering Controller** - Calculates steering angle from offset and heading error - includes PID controller - ![Stanley Controller](../../00_assets/research_assets/stanley_paf21_1.png) + ![Stanley Controller](../../assets/research_assets/stanley_paf21_1.png) ### Detected Curves diff --git a/doc/03_research/01_acting/04_paf21_2_and_pylot_acting.md b/doc/research/acting/paf21_2_and_pylot_acting.md similarity index 97% rename from doc/03_research/01_acting/04_paf21_2_and_pylot_acting.md rename to doc/research/acting/paf21_2_and_pylot_acting.md index bb372dd6..8dfa05d6 100644 --- a/doc/03_research/01_acting/04_paf21_2_and_pylot_acting.md +++ b/doc/research/acting/paf21_2_and_pylot_acting.md @@ -9,13 +9,13 @@ - Lateral control - Pure Pursuit controller - ![Untitled](../../00_assets/research_assets/pure_pursuit.png) + ![Untitled](../../assets/research_assets/pure_pursuit.png) - Stanley controller - ![Untitled](../../00_assets/research_assets/stanley_controller.png) + ![Untitled](../../assets/research_assets/stanley_controller.png) -### [List of Inputs/Outputs](https://github.com/una-auxme/paf/blob/main/doc/03_research/01_acting/02_acting_implementation.md#list-of-inputsoutputs) +### [List of Inputs/Outputs](https://github.com/una-auxme/paf/blob/main/doc/research/acting/acting_implementation.md#list-of-inputsoutputs) - Subscribes to: - [nav_msgs/Odometry Message](http://docs.ros.org/en/noetic/api/nav_msgs/html/msg/Odometry.html) : to get the current position and heading @@ -25,7 +25,7 @@ - Publishes: - [CarlaEgoVehicleControl.msg](https://carla.readthedocs.io/projects/ros-bridge/en/latest/ros_msgs/#carlaegovehiclecontrolmsg) : to actually control the vehicles throttle, steering -### [Challenges](https://github.com/una-auxme/paf/blob/main/doc/03_research/01_acting/02_acting_implementation.md#challenges) +### [Challenges](https://github.com/una-auxme/paf/blob/main/doc/research/acting/acting_implementation.md#challenges) A short list of challenges for the implementation of a basic acting domain and how they these could be tackled based on the requirements mentioned above. @@ -42,7 +42,7 @@ A short list of challenges for the implementation of a basic acting domain and h ### [Standardroutine](https://github.com/ll7/paf21-2/tree/main/paf_ros/paf_actor#standardroutine) -![Untitled](../../00_assets/research_assets/standard_routine_paf21_2.png) +![Untitled](../../assets/research_assets/standard_routine_paf21_2.png) - Longitudinal control - PID controller @@ -149,7 +149,7 @@ Timer und Schwellenwerte um Stuck Situation zu erkennen ### [Messages](https://github.com/ll7/paf21-2/tree/main/paf_ros/paf_actor#messages) -![Untitled](../../00_assets/research_assets/messages_paf21_2.png) +![Untitled](../../assets/research_assets/messages_paf21_2.png) ### [StanleyController](https://github.com/ll7/paf21-2/tree/main/paf_ros/paf_actor#stanleycontroller) @@ -224,7 +224,7 @@ implements a longitudinal and lateral controller - Predicts future states using a kinematic model to optimize control inputs. - Parameters include mpc_horizon, mpc_steps, and mpc_weights -![Untitled](../../00_assets/research_assets/mpc.png) +![Untitled](../../assets/research_assets/mpc.png) • cost function can be designed to account for driving comfort diff --git a/doc/03_research/02_perception/LIDAR_data.md b/doc/research/perception/LIDAR_data.md similarity index 96% rename from doc/03_research/02_perception/LIDAR_data.md rename to doc/research/perception/LIDAR_data.md index b55cf7e4..ac62fa87 100644 --- a/doc/03_research/02_perception/LIDAR_data.md +++ b/doc/research/perception/LIDAR_data.md @@ -9,7 +9,7 @@ LIDAR-Data comes in Pointclouds from a specific LIDAR-Topic. `rospy.Subscriber(rospy.get_param('~source_topic', "/carla/hero/LIDAR"), PointCloud2, self.callback)` -Read more about the LIDAR-Sensor [here](https://github.com/una-auxme/paf/blob/main/doc/06_perception/03_lidar_distance_utility.md) +Read more about the LIDAR-Sensor [here](https://github.com/una-auxme/paf/blob/main/doc/perception/lidar_distance_utility.md) ## Processing diff --git a/doc/research/perception/Readme.md b/doc/research/perception/Readme.md new file mode 100644 index 00000000..8e6c5108 --- /dev/null +++ b/doc/research/perception/Readme.md @@ -0,0 +1,12 @@ +# Perception + +This folder contains all the results of research on perception: + +- **PAF22** + - [Basics](./basics.md) + - [First implementation plan](./first_implementation_plan.md) +- **PAF23** + - [Pylot Perception](./pylot.md) + - [PAF_21_2 Perception](./Research_PAF21-Perception.md) + - [PAF_21_1_Perception](./paf_21_1_perception.md) +- [Autoware Perception](./autoware-perception.md) diff --git a/doc/03_research/02_perception/05_Research_PAF21-Perception.md b/doc/research/perception/Research_PAF21-Perception.md similarity index 100% rename from doc/03_research/02_perception/05_Research_PAF21-Perception.md rename to doc/research/perception/Research_PAF21-Perception.md diff --git a/doc/03_research/02_perception/05-autoware-perception.md b/doc/research/perception/autoware-perception.md similarity index 100% rename from doc/03_research/02_perception/05-autoware-perception.md rename to doc/research/perception/autoware-perception.md diff --git a/doc/03_research/02_perception/02_basics.md b/doc/research/perception/basics.md similarity index 100% rename from doc/03_research/02_perception/02_basics.md rename to doc/research/perception/basics.md diff --git a/doc/03_research/02_perception/03_first_implementation_plan.md b/doc/research/perception/first_implementation_plan.md similarity index 97% rename from doc/03_research/02_perception/03_first_implementation_plan.md rename to doc/research/perception/first_implementation_plan.md index 65ddbbc2..4640b2cf 100644 --- a/doc/03_research/02_perception/03_first_implementation_plan.md +++ b/doc/research/perception/first_implementation_plan.md @@ -39,7 +39,7 @@ Marco Riedenauer ## Overview -![Implementation Plan Perception](../../00_assets/implementation_plan_perception.jpg) +![Implementation Plan Perception](../../assets/implementation_plan_perception.jpg) --- @@ -66,7 +66,7 @@ There are three different kinds of image segmentation: - **Panoptic Segmentation**: \ Combination of semantic segmentation and instance segmentation. Detection of stuff plus instances of things. -![Segmentation](../../00_assets/segmentation.png) +![Segmentation](../../assets/segmentation.png) [Source](https://www.v7labs.com/blog/panoptic-segmentation-guide) ### Image Panoptic Segmentation diff --git a/doc/03_research/02_perception/06_paf_21_1_perception.md b/doc/research/perception/paf_21_1_perception.md similarity index 100% rename from doc/03_research/02_perception/06_paf_21_1_perception.md rename to doc/research/perception/paf_21_1_perception.md diff --git a/doc/03_research/02_perception/04_pylot.md b/doc/research/perception/pylot.md similarity index 100% rename from doc/03_research/02_perception/04_pylot.md rename to doc/research/perception/pylot.md diff --git a/doc/03_research/03_planning/Readme.md b/doc/research/planning/Readme.md similarity index 81% rename from doc/03_research/03_planning/Readme.md rename to doc/research/planning/Readme.md index 67c5f196..7ab5f590 100644 --- a/doc/03_research/03_planning/Readme.md +++ b/doc/research/planning/Readme.md @@ -3,5 +3,5 @@ This folder contains all the results of research on planning from PAF 23 and 22. The research documents from the previous project were kept as they contain helpful information. The documents are separated in different folders: -- **[PAF22](./00_paf22/)** -- **[PAF23](./00_paf23/)** +- **[PAF22](./paf22/)** +- **[PAF23](./paf23/)** diff --git a/doc/03_research/03_planning/00_paf22/03_Implementation.md b/doc/research/planning/paf22/Implementation.md similarity index 94% rename from doc/03_research/03_planning/00_paf22/03_Implementation.md rename to doc/research/planning/paf22/Implementation.md index adfaa6dd..4a5c9f7d 100644 --- a/doc/03_research/03_planning/00_paf22/03_Implementation.md +++ b/doc/research/planning/paf22/Implementation.md @@ -34,7 +34,7 @@ Simon Erlbacher, Niklas Vogel ## Overview -![Implementation](../../00_assets/Planning_Implementierung.png) +![Implementation](../../assets/Planning_Implementierung.png) [Link to original](https://miro.com/app/board/uXjVP_LIQpE=/?share_link_id=806357474480) --- @@ -48,7 +48,7 @@ Either you use the given waypoints for start and goal values or alternatively th The Output (Solution of the planning problem) will be a route defined by a sequence of lanelets and a sequence of points (~ 10cm apart). Lanelet Model Example : -![Lanelet Model Example](../../00_assets/Lanelets.png) +![Lanelet Model Example](../../assets/Lanelets.png) [(Source)](https://github.com/ll7/psaf2/tree/main/Planning/global_planner) Input: @@ -66,10 +66,10 @@ Output: ## Decision Making -If an obstacle, which interferes with the own trajectory, is being recognized in the [perception](../02_perception), +If an obstacle, which interferes with the own trajectory, is being recognized in the [perception](../perception), the decision making sends a message to the local path planning where the system then chooses another trajectory/lanelet. With the Lanelets Model it is easier to give a prediction for other objects and the vehicle itself, -by following the lane direction of an object. With the prediction, which is mainly based inside the [perception](../02_perception), +by following the lane direction of an object. With the prediction, which is mainly based inside the [perception](../perception), it's then possible to check weather or not other objects interfere with ourselves. The decision making can be implemented with a state machine. Therefore there must be a state defined for every incoming perception/situation to ensure correct and save behavior. @@ -95,7 +95,7 @@ Local Planner updates the current route, if Decision Making detects an obstacle. The Local Path Planer receives the lanelets, points and the path to drive. The local planner creates a velocity profile on the calculated trajectory based on curvature, crossings and traffic lights. -This will be calculated directly after the preplanning created a trajectory. The velocity value is published to the [acting side](../01_acting). +This will be calculated directly after the preplanning created a trajectory. The velocity value is published to the [acting side](../acting). Input: @@ -125,7 +125,7 @@ Output: ### Measure distance -This module measures the distance to obstacles, especially cars, with the Lidar Sensor. The current distance value is published to the [acting side](../01_acting) for keeping a safe distance (Adaptive Cruise Control). +This module measures the distance to obstacles, especially cars, with the Lidar Sensor. The current distance value is published to the [acting side](../acting) for keeping a safe distance (Adaptive Cruise Control). Input: diff --git a/doc/03_research/03_planning/00_paf22/05_Navigation_Data.md b/doc/research/planning/paf22/Navigation_Data.md similarity index 100% rename from doc/03_research/03_planning/00_paf22/05_Navigation_Data.md rename to doc/research/planning/paf22/Navigation_Data.md diff --git a/doc/03_research/03_planning/00_paf22/07_OpenDrive.md b/doc/research/planning/paf22/OpenDrive.md similarity index 97% rename from doc/03_research/03_planning/00_paf22/07_OpenDrive.md rename to doc/research/planning/paf22/OpenDrive.md index e25b8b60..99999139 100644 --- a/doc/03_research/03_planning/00_paf22/07_OpenDrive.md +++ b/doc/research/planning/paf22/OpenDrive.md @@ -95,7 +95,7 @@ to search for the relevant area - Information about the reference lines (line which seperates lanes) and their layout (linear, arc, cubic curves) - Information about the maximum speed -![OpenDrive stop sign](../../00_assets/Stop_sign_OpenDrive.png) +![OpenDrive stop sign](../../assets/Stop_sign_OpenDrive.png) Impression of the format There are a lot of infomrations in the file. Also a lot of information, which is not relevant for our project. @@ -220,7 +220,7 @@ at the beginning, when the ego-vehicle stays at its start position. is shorter to the target than the upper blue line. The method would choose the lower line because of the smaller distance -![preplanning_start](../../00_assets/preplanning_start.png) +![preplanning_start](../../assets/preplanning_start.png) Road Concepts @@ -233,7 +233,7 @@ the reference line. That is why we have to filter the width information for our - after this we have the information which of the two perpendicular vectors we need to compute the points on the correct side of the reference line - we always choose the biggest width value, to take the rightmost lane -![lane_midpoint](../../00_assets/lane_midpoint.png) +![lane_midpoint](../../assets/lane_midpoint.png) Scenario and concept to compute the midpoint of a lane - the second method takes the target position and the next command from the leaderboard @@ -270,19 +270,19 @@ At the moment we assume they are before a junction. In the following test scenario we added a manual start point on road 8. The following target points and commandos for the next action also have been added manual. -![roads_vis](../../00_assets/roads_vis.png) +![roads_vis](../../assets/roads_vis.png) roads to interpolate -![trajectory_roads](../../00_assets/trajectory_roads.png) +![trajectory_roads](../../assets/trajectory_roads.png) roads chosen by the methods -![global_trajectory](../../00_assets/global_trajectory.png) +![global_trajectory](../../assets/global_trajectory.png) Global trajectory visualised -![local_trajectory](../../00_assets/local_trajectory.png) +![local_trajectory](../../assets/local_trajectory.png) One cutout of the trajectory diff --git a/doc/03_research/03_planning/00_paf22/02_basics.md b/doc/research/planning/paf22/basics.md similarity index 93% rename from doc/03_research/03_planning/00_paf22/02_basics.md rename to doc/research/planning/paf22/basics.md index 16f63ee7..bd40b06e 100644 --- a/doc/03_research/03_planning/00_paf22/02_basics.md +++ b/doc/research/planning/paf22/basics.md @@ -147,17 +147,17 @@ Quellen: - - -![architektur gewinnterteam19](../../00_assets/gewinnerteam19-architektur.png) +![architektur gewinnterteam19](../../assets/gewinnerteam19-architektur.png) Übersicht zu einer möglichen Architektur (Gewinnerteam des ersten Wettbewerbes) -![sensoranordnung](../../00_assets/sensoranordnung.png) +![sensoranordnung](../../assets/sensoranordnung.png) Mögliche Anordnung und Anzahl von Sensoren. (6 Kameras, 1 LIDAR, 2 GPS) ## Planning Unterteilung -![planning uebersicht](../../00_assets/planning%20%C3%BCbersicht.png) +![planning uebersicht](../../assets/planning%20%C3%BCbersicht.png) Planning Übersicht @@ -174,7 +174,7 @@ Die Position des Fahrzeuges kann durch die zwei GPS Tracker bestimmt werden und Alt steht hierbei für altitude und beschreibt die gemessene Höhe durch die GPS Tracker. Der Winkel gibt hierbei die Orientierung des Fahrzeuges an. Der x und y Wert beinhaltet die Koordinaten des hinteren GPS Trackers. -![positionsvektor](../../00_assets/positionsvektor.png) ![fahrzeugwinkelberechnung](../../00_assets/fahrzeugwinkelberechnung.png) +![positionsvektor](../../assets/positionsvektor.png) ![fahrzeugwinkelberechnung](../../assets/fahrzeugwinkelberechnung.png) Positionsvektor und Berechnung des Fahrzeugwinkels zur Zielposition @@ -183,7 +183,7 @@ Wenn das GPS Signal allerdings fehlerhaft ist bzw. Störungen ausgesetzt ist, gi In diesem Fall wird ein Kalman Filter impolementiert. Er kommt mit Störungen zurecht und gibt auf Basis der aktuellen Position eine gute Vorhersage für zukünftige Zustände des Fahrzeuges. -![fahrzeugpositionsberechnung](../../00_assets/fahrzeugpositionsberechnung.png) +![fahrzeugpositionsberechnung](../../assets/fahrzeugpositionsberechnung.png) Berechnung der aktuellen und zukünftigen Fahrzeugposition @@ -193,7 +193,7 @@ Mit dem LIDAR Sensor werden Punktewolken in der Umgebung erzeugt. Diese werden mit dem DBSCAN Algorithmus geclustert. Er kommt gut mit outlinern klar und kann diese entsprechend ignorieren. Mit Calipers Algorithmus aus der OpenCV Bibliothek wird für jedes Cluster das kleinst mögliche Rechteck, welches das Cluster fitted, erzeugt. -![lidarhinderniserkennung](../../00_assets/lidarhinderniserkennung.png) +![lidarhinderniserkennung](../../assets/lidarhinderniserkennung.png) Erkennen von Hindernissen mit dem LIDAR Sensor @@ -205,15 +205,15 @@ Das Skalarprodukt ist hiermit nahe 0. Es wurde also ein Hinderniss erkannt. Der Dies soll einen Outliner darstellen. Druch das Einführen eines Thresholds können diese Detektionen ausgeschlossen werden. Hindernisse mit dem Occupacy Grid erkennen. Somit einfach Abstand der Punkte in einer Gridzelle mit dem Mittelpunkt eines Kreises berechnen und prüfen ob die Distanz kleiner als der Radius ist. -![occupancygrid](../../00_assets/occupancygrid.png) +![occupancygrid](../../assets/occupancygrid.png) 360 Grad Occupacy Grid -![fahrzeugapproximation](../../00_assets/fahrzeugapproximation.png) +![fahrzeugapproximation](../../assets/fahrzeugapproximation.png) Approximation eines Fahrzeuges mit drei Kreisen -![kollisionsberechnung](../../00_assets/kollisionsberechnung.png) +![kollisionsberechnung](../../assets/kollisionsberechnung.png) Einfache Berechnung einer Kollision @@ -239,14 +239,14 @@ Annahme: Alle Verkehrsteilnehmer haben konstante Geschwindigkeit (sonst Berechnu ## Decision Making (Behaviour Planner) -![kreuzungszonen](../../00_assets/kreuzungszonen.png) +![kreuzungszonen](../../assets/kreuzungszonen.png) Verkehrsszenario einer Kreuzung mit verschiedenen Zonen. - Roter Bereich: Fahrzeug verlangsamt seine Geschwindigkeit - Grüner Bereich: Fahrzeug kommt zum stehen - Oranger Bereich (Intersection): Fahrzeug betritt diesen Bereich nur,wenn kein anderer Verkehrsteilnehmer in diesem erkannt wird -![statemachines](../../00_assets/statemachines.png) +![statemachines](../../assets/statemachines.png) Aufteilung in mehrere state machines @@ -271,19 +271,19 @@ Probleme ist hierbei das Umplanen der Trajekotrie durch unerwartete Hindernisse Das Fahrzeug muss seine zukünftigen Aktionen, eigene Zustandsübergange, Zustandsübergänge anderer Agenten einbeziehen (zB. Umschalten einer Ampel). Es wird ein Input Vektor aus dem Bycicle Modell benötigt. -![berechnungsmodell](../../00_assets/berechnungsmodell.png) +![berechnungsmodell](../../assets/berechnungsmodell.png) Modell für die Berechnung der aktuellen und zukünftigen Fahrzeugposition -![trajektorienberechnung](../../00_assets/trajektorienberechnung.png) +![trajektorienberechnung](../../assets/trajektorienberechnung.png) Berechnung einer Trajektorie -![optimierungsvisualisierung](../../00_assets/optimierungsvisualisierung.png) +![optimierungsvisualisierung](../../assets/optimierungsvisualisierung.png) Visualisierung des Optimierungsprozesses bei der Trajektorienbildung -![trajekorienfehlermin](../../00_assets/trajekorienfehlermin.png) +![trajekorienfehlermin](../../assets/trajekorienfehlermin.png) Fehlerminimierung bei der Trajektorienberechnung diff --git a/doc/03_research/03_planning/00_paf22/04_decision_making.md b/doc/research/planning/paf22/decision_making.md similarity index 100% rename from doc/03_research/03_planning/00_paf22/04_decision_making.md rename to doc/research/planning/paf22/decision_making.md diff --git a/doc/03_research/03_planning/00_paf22/07_reevaluation_desicion_making.md b/doc/research/planning/paf22/reevaluation_desicion_making.md similarity index 100% rename from doc/03_research/03_planning/00_paf22/07_reevaluation_desicion_making.md rename to doc/research/planning/paf22/reevaluation_desicion_making.md diff --git a/doc/03_research/03_planning/00_paf22/06_state_machine_design.md b/doc/research/planning/paf22/state_machine_design.md similarity index 97% rename from doc/03_research/03_planning/00_paf22/06_state_machine_design.md rename to doc/research/planning/paf22/state_machine_design.md index ad57715d..53bed6fb 100644 --- a/doc/03_research/03_planning/00_paf22/06_state_machine_design.md +++ b/doc/research/planning/paf22/state_machine_design.md @@ -44,7 +44,7 @@ Josef Kircher ## Super state machine -![img.png](../../00_assets/Super_SM.png) +![img.png](../../assets/Super_SM.png) The super state machine functions as a controller of the main functions of the agent. @@ -56,7 +56,7 @@ Those functions are ## Driving state machine -![img.png](../../00_assets/Driving_SM.png) +![img.png](../../assets/Driving_SM.png) Transition: @@ -87,7 +87,7 @@ Set a new target speed and change back to `KEEP` state afterwards. ## Lane change state machine -![img.png](../../00_assets/Lane_Change_SM.png) +![img.png](../../assets/Lane_Change_SM.png) Transition: @@ -142,7 +142,7 @@ The lane change should be performed if the lane is free and there are no fast mo ## Intersection state machine -![img.png](../../00_assets/Intersection_SM.png) +![img.png](../../assets/Intersection_SM.png) Transition: @@ -201,7 +201,7 @@ Transition: ## Stop sign/traffic light state machine -![img.png](../../00_assets/Traffic_SM.png) +![img.png](../../assets/Traffic_SM.png) Transition: diff --git a/doc/03_research/03_planning/00_paf23/04_Local_planning_for_first_milestone.md b/doc/research/planning/paf23/Local_planning_for_first_milestone.md similarity index 82% rename from doc/03_research/03_planning/00_paf23/04_Local_planning_for_first_milestone.md rename to doc/research/planning/paf23/Local_planning_for_first_milestone.md index 431ffee9..48cbc1c2 100644 --- a/doc/03_research/03_planning/00_paf23/04_Local_planning_for_first_milestone.md +++ b/doc/research/planning/paf23/Local_planning_for_first_milestone.md @@ -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](../../../00_assets/planning/overview_paper1.png) +![Overview_interfaces](../../../assets/planning/overview_paper1.png) Rule-based planning @@ -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](../../../00_assets/planning/BehaviorTree_medium.png) +![github_tree](../../../assets/planning/BehaviorTree_medium.png) - No Intersection - Collision Detection in behaviour Tree @@ -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](../../../00_assets/planning/BT_paper.png) +![Behaviour Tree](../../../assets/planning/BT_paper.png) - simple simulation - Car only drives straight @@ -81,17 +81,17 @@ Low Level Decision: - Emergency Brake - ACC -![localplan](../../../00_assets/planning/localplan.png) +![localplan](../../../assets/planning/localplan.png) Scenarios: -![Intersection](../../../00_assets/planning/intersection_scenario.png) +![Intersection](../../../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](../../../00_assets/planning/overtaking_scenario.png) +![Overtake](../../../assets/planning/overtaking_scenario.png) Left: Overtake gets triggered to maintain speed, acc is ignored diff --git a/doc/03_research/03_planning/00_paf23/03_PlannedArchitecture.md b/doc/research/planning/paf23/PlannedArchitecture.md similarity index 91% rename from doc/03_research/03_planning/00_paf23/03_PlannedArchitecture.md rename to doc/research/planning/paf23/PlannedArchitecture.md index 172cb9ca..2bb98cac 100644 --- a/doc/03_research/03_planning/00_paf23/03_PlannedArchitecture.md +++ b/doc/research/planning/paf23/PlannedArchitecture.md @@ -4,7 +4,7 @@ Provide an overview for a possible planning architecture consisting of Global P ## Overview -![overview](../../../00_assets/planning/overview.png) +![overview](../../../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. @@ -19,7 +19,7 @@ Motions like lane changing must be approved by the decision making and they get ### Global Plan -![overview](../../../00_assets/planning/Globalplan.png) +![overview](../../../assets/planning/Globalplan.png) *Map Generator:* Gathers map data from Carla and prepares it for the PrePlanner @@ -69,7 +69,7 @@ See Behaviour Tree. ### Local Plan -![Local Plan](../../../00_assets/planning/localplan.png) +![Local Plan](../../../assets/planning/localplan.png) *Local Preplan:* Segements the global path and calculates the middle of the lane. Is not called in every cycle. @@ -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](../../../00_assets/planning/prios.png) +![prios](../../../assets/planning/prios.png) diff --git a/doc/03_research/03_planning/00_paf23/01_Planning.md b/doc/research/planning/paf23/Planning.md similarity index 95% rename from doc/03_research/03_planning/00_paf23/01_Planning.md rename to doc/research/planning/paf23/Planning.md index a36283ac..0229ced2 100644 --- a/doc/03_research/03_planning/00_paf23/01_Planning.md +++ b/doc/research/planning/paf23/Planning.md @@ -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](../../../00_assets/planning/Planning_paf21.png) +![Planning](../../../assets/planning/Planning_paf21.png) Input: @@ -55,7 +55,7 @@ Map Manager ### [Autoware](https://github.com/autowarefoundation/autoware) -![https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/planning/](../../../00_assets/planning/Planning.png) +![https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/planning/](../../../assets/planning/Planning.png) Input: diff --git a/doc/03_research/03_planning/00_paf23/02_PlanningPaf22.md b/doc/research/planning/paf23/PlanningPaf22.md similarity index 92% rename from doc/03_research/03_planning/00_paf23/02_PlanningPaf22.md rename to doc/research/planning/paf23/PlanningPaf22.md index 605605e7..85902213 100644 --- a/doc/03_research/03_planning/00_paf23/02_PlanningPaf22.md +++ b/doc/research/planning/paf23/PlanningPaf22.md @@ -4,7 +4,7 @@ ## Architecture -![overview](../../../00_assets/planning/overview.jpg) +![overview](../../../assets/planning/overview.jpg) ### Preplanning diff --git a/doc/03_research/03_planning/00_paf23/09_Research_Pylot_Planning.md b/doc/research/planning/paf23/Research_Pylot_Planning.md similarity index 100% rename from doc/03_research/03_planning/00_paf23/09_Research_Pylot_Planning.md rename to doc/research/planning/paf23/Research_Pylot_Planning.md diff --git a/doc/03_research/03_planning/00_paf23/Testing_frenet_trajectory_planner.md b/doc/research/planning/paf23/Testing_frenet_trajectory_planner.md similarity index 97% rename from doc/03_research/03_planning/00_paf23/Testing_frenet_trajectory_planner.md rename to doc/research/planning/paf23/Testing_frenet_trajectory_planner.md index ea300c31..b2581027 100644 --- a/doc/03_research/03_planning/00_paf23/Testing_frenet_trajectory_planner.md +++ b/doc/research/planning/paf23/Testing_frenet_trajectory_planner.md @@ -33,7 +33,7 @@ A test python file is also located [here](test_traj.py). The below image was gen The orange points represent a possible object and the blue points the old (left) and new (right) trajectory. -![test_trajectory](../../../00_assets/planning/test_frenet_results.png) +![test_trajectory](../../../assets/planning/test_frenet_results.png) ## Inputs diff --git a/doc/03_research/03_planning/00_paf23/08_paf21-1.md b/doc/research/planning/paf23/paf21-1.md similarity index 93% rename from doc/03_research/03_planning/00_paf23/08_paf21-1.md rename to doc/research/planning/paf23/paf21-1.md index 254dd811..a358a641 100644 --- a/doc/03_research/03_planning/00_paf23/08_paf21-1.md +++ b/doc/research/planning/paf23/paf21-1.md @@ -11,7 +11,7 @@ In PAF21-1, they divided the planning stage into two major components: - Global Planner - Local Planner -A more detailed explanation is already present in the [basics](../00_paf22/02_basics.md#paf-2021-1) chapter. +A more detailed explanation is already present in the [basics](../paf22/basics.md#paf-2021-1) chapter. --- diff --git a/doc/03_research/03_planning/00_paf23/test_traj.py b/doc/research/planning/paf23/test_traj.py similarity index 100% rename from doc/03_research/03_planning/00_paf23/test_traj.py rename to doc/research/planning/paf23/test_traj.py diff --git a/doc/research/requirements/Readme.md b/doc/research/requirements/Readme.md new file mode 100644 index 00000000..28fce181 --- /dev/null +++ b/doc/research/requirements/Readme.md @@ -0,0 +1,7 @@ +# Requirements + +This folder contains all the results of our research on requirements: + +- [Leaderboard information](./informations_from_leaderboard.md) +- [Reqirements for agent](./requirements.md) +- [Use case scenarios](./use_cases.md) diff --git a/doc/03_research/04_requirements/02_informations_from_leaderboard.md b/doc/research/requirements/informations_from_leaderboard.md similarity index 100% rename from doc/03_research/04_requirements/02_informations_from_leaderboard.md rename to doc/research/requirements/informations_from_leaderboard.md diff --git a/doc/03_research/04_requirements/03_requirements.md b/doc/research/requirements/requirements.md similarity index 89% rename from doc/03_research/04_requirements/03_requirements.md rename to doc/research/requirements/requirements.md index 953bd900..8612e3c3 100644 --- a/doc/03_research/04_requirements/03_requirements.md +++ b/doc/research/requirements/requirements.md @@ -38,7 +38,7 @@ Josef Kircher, Simon Erlbacher ## Prioritized driving aspects -There are different ways to prioritize the driving aspects mentioned in the document [08_use_cases](https://github.com/ll7/paf22/blob/482c1f5a201b52276d7b77cf402009bd99c93317/doc/03_research/08_use_cases.md). +There are different ways to prioritize the driving aspects mentioned in the document [use_cases](https://github.com/ll7/paf22/blob/482c1f5a201b52276d7b77cf402009bd99c93317/doc/research/use_cases.md). The most important topics, in relation to this project, are the driving score and the safety aspect. Also, it is appropriate to implement the basic features of an autonomous car first. The list is a mixture of the different approaches. Prioritizing from very important functionalities to less important features. diff --git a/doc/03_research/04_requirements/04_use_cases.md b/doc/research/requirements/use_cases.md similarity index 97% rename from doc/03_research/04_requirements/04_use_cases.md rename to doc/research/requirements/use_cases.md index ee58d615..cf9a6570 100644 --- a/doc/03_research/04_requirements/04_use_cases.md +++ b/doc/research/requirements/use_cases.md @@ -179,7 +179,7 @@ Josef Kircher ## 1. Control loss due to bad road condition -![img](../../00_assets/TR01.png) +![img](../../assets/TR01.png) ### Description @@ -207,7 +207,7 @@ None ## 2. Unprotected left turn at intersection with oncoming traffic -![img](../../00_assets/TR08.png) +![img](../../assets/TR08.png) ### Description @@ -254,7 +254,7 @@ Turn left at the intersection without violating traffic rules ## 3. Right turn at an intersection with crossing traffic -![img](../../00_assets/TR09.png) +![img](../../assets/TR09.png) ### Description @@ -300,7 +300,7 @@ Turn right at the intersection without violating traffic rules ## 4. Crossing negotiation at unsignalized intersection -![img](../../00_assets/TR10.png) +![img](../../assets/TR10.png) ### Description @@ -343,7 +343,7 @@ Cross the intersection without violating traffic rules ## 5. Crossing traffic running a red light at intersection -![img](../../00_assets/TR07.png) +![img](../../assets/TR07.png) ### Description @@ -380,7 +380,7 @@ Emergency brake to avoid collision ## 6. Highway merge from on-ramp -![img](../../00_assets/TR18.png) +![img](../../assets/TR18.png) ### Description @@ -420,7 +420,7 @@ Join the highway traffic without any traffic violation ## 7. Highway cut-in from on-ramp -![img](../../00_assets/TR19.png) +![img](../../assets/TR19.png) ### Description @@ -462,7 +462,7 @@ Let vehicle join the highway traffic without any traffic violation ## 8. Static cut-in -![img](../../00_assets/TR20.png) +![img](../../assets/TR20.png) ### Description @@ -504,7 +504,7 @@ Let vehicle join the lane without any traffic violation ## 9. Highway exit -![img](../../00_assets/TR21.png) +![img](../../assets/TR21.png) ### Description @@ -550,7 +550,7 @@ Vehicle exits the highway traffic without any traffic violation ## 10. Yield to emergency vehicle -![img](../../00_assets/TR23.png) +![img](../../assets/TR23.png) ### Description @@ -590,7 +590,7 @@ Let emergency vehicle pass without any traffic violation ## 11. Obstacle in lane -![img](../../00_assets/TR14.png) +![img](../../assets/TR14.png) ### Description @@ -645,7 +645,7 @@ Pass an obstacle without any traffic violation ## 12. Door Obstacle -![img](../../00_assets/TR15.png) +![img](../../assets/TR15.png) ### Description @@ -694,7 +694,7 @@ Pass the open door without any traffic violation ## 13. Slow moving hazard at lane edge -![img](../../00_assets/TR16.png) +![img](../../assets/TR16.png) ### Description @@ -743,7 +743,7 @@ Pass the slow moving hazard without any traffic violation ## 14. Vehicle invading lane on bend -![img](../../00_assets/TR22.png) +![img](../../assets/TR22.png) ### Description @@ -779,7 +779,7 @@ None ## 15. Longitudinal control after leading vehicle brakes -![img](../../00_assets/TR02.png) +![img](../../assets/TR02.png) ### Description @@ -822,7 +822,7 @@ Slow down without crashing in vehicle in front of us ## 16. Obstacle avoidance without prior action -![img](../../00_assets/TR03.png) +![img](../../assets/TR03.png) ### Description @@ -873,7 +873,7 @@ Slow down without crashing in the obstacle in front of us ## 17. Pedestrian emerging from behind parked vehicle -![img](../../00_assets/TR17.png) +![img](../../assets/TR17.png) ### Description @@ -916,7 +916,7 @@ Slow down without crashing into the pedestrian in front of us ## 18. Obstacle avoidance with prior action -![img](../../00_assets/TR04.png) +![img](../../assets/TR04.png) ### Description @@ -955,7 +955,7 @@ Slow down without crashing into the obstacle in our path ## 19. Parking Cut-in -![img](../../00_assets/TR12.png) +![img](../../assets/TR12.png) ### Description @@ -992,7 +992,7 @@ Slow down without crashing into the car joining our lane ## 20. Lane changing to evade slow leading vehicle -![img](../../00_assets/TR05.png) +![img](../../assets/TR05.png) ### Description @@ -1039,7 +1039,7 @@ Change lane without any traffic violations ## 21. Passing obstacle with oncoming traffic -![img](../../00_assets/TR06.png) +![img](../../assets/TR06.png) ### Description @@ -1092,7 +1092,7 @@ Maneuver around obstacle without any traffic violations ## 22. Parking Exit -![img](../../00_assets/TR11.png) +![img](../../assets/TR11.png) ### Description From 2b1dc93b616a173a3d2f785d1254cb0bf4622f7f Mon Sep 17 00:00:00 2001 From: JulianTrommer Date: Wed, 9 Oct 2024 15:28:45 +0200 Subject: [PATCH 2/6] Fixed uppercase for README files --- README.md | 6 +- code/acting/readme.md | 67 ------------------- doc/acting/{Readme.md => README.md} | 0 doc/development/{Readme.md => README.md} | 2 +- doc/development/dvc.md | 2 +- doc/general/{Readme.md => README.md} | 0 doc/general/architecture.md | 10 +-- doc/general/installation.md | 4 ++ doc/perception/{Readme.md => README.md} | 0 doc/research/README.md | 10 +++ doc/research/Readme.md | 10 --- doc/research/acting/{Readme.md => README.md} | 0 .../perception/{Readme.md => README.md} | 0 .../planning/{Readme.md => README.md} | 0 .../requirements/{Readme.md => README.md} | 0 15 files changed, 24 insertions(+), 87 deletions(-) delete mode 100644 code/acting/readme.md rename doc/acting/{Readme.md => README.md} (100%) rename doc/development/{Readme.md => README.md} (96%) rename doc/general/{Readme.md => README.md} (100%) rename doc/perception/{Readme.md => README.md} (100%) create mode 100644 doc/research/README.md delete mode 100644 doc/research/Readme.md rename doc/research/acting/{Readme.md => README.md} (100%) rename doc/research/perception/{Readme.md => README.md} (100%) rename doc/research/planning/{Readme.md => README.md} (100%) rename doc/research/requirements/{Readme.md => README.md} (100%) diff --git a/README.md b/README.md index 03c77c38..f217afd6 100644 --- a/README.md +++ b/README.md @@ -27,12 +27,12 @@ To run the project you have to install [docker](https://docs.docker.com/engine/i [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). `docker` and `nvidia-docker` are used to run the project in a containerized environment with GPU support. -More detailed instructions about setup and execution can be found [here](./doc/general/Readme.md). +More detailed instructions about setup and execution can be found [here](./doc/general/README.md). ## Development -If you contribute to this project please read the guidelines first. They can be found [here](./doc/development/Readme.md). +If you contribute to this project please read the guidelines first. They can be found [here](./doc/development/README.md). ## Research -The research on existing projects we did can be found [here](./doc/research/Readme.md). +The research on existing projects we did can be found [here](./doc/research/README.md). diff --git a/code/acting/readme.md b/code/acting/readme.md deleted file mode 100644 index 39c73fbc..00000000 --- a/code/acting/readme.md +++ /dev/null @@ -1,67 +0,0 @@ -# Acting - -**Summary:** This package contains all functions implemented for the acting component. - ---- - -## Authors - -Alexander Hellmann - -## Date - -01.04.2024 - ---- - - -- [Acting](#acting) - - [Authors](#authors) - - [Date](#date) - - [Acting Documentation](#acting-documentation) - - [Test/Debug/Tune Acting-Components](#testdebugtune-acting-components) - - [Longitudinal controllers (Velocity Controller)](#longitudinal-controllers-velocity-controller) - - [Lateral controllers (Steering Controllers)](#lateral-controllers-steering-controllers) - - [Vehicle controller](#vehicle-controller) - - [Visualization of the HeroFrame in rviz](#visualization-of-the-heroframe-in-rviz) - - -## Acting Documentation - -In order to further understand the general idea of the taken approach to the acting component please refer to the documentation of the [research](../../doc/research/acting/Readme.md) done and see the planned [general definition](../../doc/general/architecture.md#acting). - -It is also highly recommended to go through the indepth [Acting-Documentation](../../doc/acting/Readme.md)! - -## Test/Debug/Tune Acting-Components - -The Acting_Debug_Node can be used as a simulated Planning package, publishing adjustable target velocities, steerings and trajectories as needed. - -For more information about this node and how to use it, please read the [documentation](../../doc/acting/acting_testing.md). -You can also find more information in the commented [code](./src/acting/Acting_Debug_Node.py). - -## Longitudinal controllers (Velocity Controller) - -The longitudinal controller is implemented as a PID velocity controller. - -For more information about this controller, either read the [documentation](../../doc/acting/velocity_controller.md) or go through the commented [code](./src/acting/velocity_controller.py). - -## Lateral controllers (Steering Controllers) - -There are two steering controllers currently implemented, both providing live telemetry via Debug-Messages: - -- Pure Persuit Controller (paf/hero/pure_p_debug) -- Stanley Controller (paf/hero/stanley_debug) - -For further information about the steering controllers, either read the [documentation](./../../doc/acting/steering_controllers.md) or go through the commented code of [stanley_controller](./src/acting/stanley_controller.py) or [purepursuit_controller](./src/acting/pure_pursuit_controller.py). - -## Vehicle controller - -The VehicleController collects all necessary msgs from the other controllers and publishes the [CarlaEgoVehicleControl](https://carla.readthedocs.io/en/0.9.8/ros_msgs/#carlaegovehiclecontrol) for the [Carla ros bridge](https://github.com/carla-simulator/ros-bridge). - -It also executes emergency-brakes and the unstuck-routine, if detected. - -For more information about this controller, either read the [documentation](../../doc/acting/vehicle_controller.md) or go through the commented [code](./src/acting/vehicle_controller.py). - -## Visualization of the HeroFrame in rviz - -For information about vizualizing the upcomming path in rviz see [Main frame publisher](../../doc/acting/main_frame_publisher.md) diff --git a/doc/acting/Readme.md b/doc/acting/README.md similarity index 100% rename from doc/acting/Readme.md rename to doc/acting/README.md diff --git a/doc/development/Readme.md b/doc/development/README.md similarity index 96% rename from doc/development/Readme.md rename to doc/development/README.md index 0d4e7bde..3cee2abe 100644 --- a/doc/development/Readme.md +++ b/doc/development/README.md @@ -30,7 +30,7 @@ If you just want to copy an empty class use this class. ### [`template_component_readme.md`](./templates/template_component_readme.md) -This template functions a template for who to describe a component. IT should be contained in every component as `Readme.md`. +This template functions a template for who to describe a component. IT should be contained in every component as `README.md`. ### [`template_wiki_page.md`](./templates/template_wiki_page.md) diff --git a/doc/development/dvc.md b/doc/development/dvc.md index acd8462d..52491342 100644 --- a/doc/development/dvc.md +++ b/doc/development/dvc.md @@ -162,7 +162,7 @@ navigate among them and commit only the ones that we need to Git." [(Source)](ht Detailed documentation with a [good example](https://github.com/iterative/example-dvc-experiments) can be found [here](https://dvc.org/doc/start/experiment-management/experiments). -A working experiment in this project can be found [here](../../code/perception/src/traffic_light_detection/Readme.md). +A working experiment in this project can be found [here](../../code/perception/src/traffic_light_detection/README.md). #### Setup a new experiment diff --git a/doc/general/Readme.md b/doc/general/README.md similarity index 100% rename from doc/general/Readme.md rename to doc/general/README.md diff --git a/doc/general/architecture.md b/doc/general/architecture.md index 6f95c996..7451a4cf 100644 --- a/doc/general/architecture.md +++ b/doc/general/architecture.md @@ -55,8 +55,8 @@ The miro-board can be found [here](https://miro.com/welcomeonboard/a1F0d1dya2Fne The perception is responsible for the efficient conversion of raw sensor and map data into a useful environment representation that can be used by the [Planning](#Planning) for further processing. -Further information regarding the perception can be found [here](../perception/Readme.md). -Research for the perception can be found [here](../research/perception/Readme.md). +Further information regarding the perception can be found [here](../perception/README.md). +Research for the perception can be found [here](../research/perception/README.md). ### Obstacle Detection and Classification @@ -121,7 +121,7 @@ its destination. It also detects situations and reacts accordingly in traffic. I speed to acting. Further information regarding the planning can be found [here](../planning/README.md). -Research for the planning can be found [here](../research/planning/Readme.md). +Research for the planning can be found [here](../research/planning/README.md). ### [Global Planning](../planning/Global_Planner.md) @@ -225,9 +225,9 @@ Publishes: The job of this component is to take the planned trajectory and target-velocities from the [Planning](#Planning) component and convert them into steering and throttle/brake controls for the CARLA-vehicle. -All information regarding research done about acting can be found [here](../research/acting/Readme.md). +All information regarding research done about acting can be found [here](../research/acting/README.md). -Indepth information about the currently implemented acting Components can be found [HERE](../acting/Readme.md)! +Indepth information about the currently implemented acting Components can be found [HERE](../acting/README.md)! ### Path following with Steering Controllers diff --git a/doc/general/installation.md b/doc/general/installation.md index c3620c60..e8ac3b26 100644 --- a/doc/general/installation.md +++ b/doc/general/installation.md @@ -62,6 +62,10 @@ Restart the Docker daemon to complete the installation after setting the default sudo systemctl restart docker ``` +## VS Code Extensions + +The repository comes with a suite of recommended VS Code extensions. Install them via the `Extensions` tab inside VS Code. + ## 🚨 Common Problems ### Vulkan device not available diff --git a/doc/perception/Readme.md b/doc/perception/README.md similarity index 100% rename from doc/perception/Readme.md rename to doc/perception/README.md diff --git a/doc/research/README.md b/doc/research/README.md new file mode 100644 index 00000000..9367f439 --- /dev/null +++ b/doc/research/README.md @@ -0,0 +1,10 @@ +# Research + +This folder contains every research we did before we started the project. + +The research is structured in the following folders: + +- [Acting](./acting/README.md) +- [Perception](./perception/README.md) +- [Planning](./planning/README.md) +- [Requirements](./requirements/README.md) diff --git a/doc/research/Readme.md b/doc/research/Readme.md deleted file mode 100644 index 179f8c8b..00000000 --- a/doc/research/Readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Research - -This folder contains every research we did before we started the project. - -The research is structured in the following folders: - -- [Acting](./acting/Readme.md) -- [Perception](./perception/Readme.md) -- [Planning](./planning/Readme.md) -- [Requirements](./requirements/Readme.md) diff --git a/doc/research/acting/Readme.md b/doc/research/acting/README.md similarity index 100% rename from doc/research/acting/Readme.md rename to doc/research/acting/README.md diff --git a/doc/research/perception/Readme.md b/doc/research/perception/README.md similarity index 100% rename from doc/research/perception/Readme.md rename to doc/research/perception/README.md diff --git a/doc/research/planning/Readme.md b/doc/research/planning/README.md similarity index 100% rename from doc/research/planning/Readme.md rename to doc/research/planning/README.md diff --git a/doc/research/requirements/Readme.md b/doc/research/requirements/README.md similarity index 100% rename from doc/research/requirements/Readme.md rename to doc/research/requirements/README.md From 4de3c97349a8d5b5bb5ef903733e19c745cb9b15 Mon Sep 17 00:00:00 2001 From: JulianTrommer Date: Wed, 9 Oct 2024 16:06:59 +0200 Subject: [PATCH 3/6] Refactored research docs --- doc/README.md | 50 +++++++++++++++++++ doc/research/README.md | 10 ++-- doc/research/acting/README.md | 11 ---- .../{ => paf22}/acting/basics_acting.md | 0 .../acting/implementation_acting.md | 0 doc/research/{ => paf22}/perception/basics.md | 0 .../perception/first_implementation_plan.md | 0 .../planning}/Implementation.md | 0 .../planning}/Navigation_Data.md | 0 .../paf22 => paf22/planning}/OpenDrive.md | 0 .../paf22 => paf22/planning}/basics.md | 0 .../planning}/decision_making.md | 0 .../planning}/reevaluation_desicion_making.md | 0 .../planning}/state_machine_design.md | 0 .../{ => paf22}/requirements/README.md | 0 .../informations_from_leaderboard.md | 0 .../{ => paf22}/requirements/requirements.md | 0 .../{ => paf22}/requirements/use_cases.md | 0 .../{ => paf23}/acting/autoware_acting.md | 0 .../{ => paf23}/acting/paf21_1_acting.md | 0 .../acting/paf21_2_and_pylot_acting.md | 0 .../leaderboard/changes_leaderboard.md} | 0 .../{ => paf23}/perception/LIDAR_data.md | 0 .../perception/Research_PAF21-Perception.md | 0 .../perception/autoware-perception.md | 0 .../perception/paf_21_1_perception.md | 0 doc/research/{ => paf23}/perception/pylot.md | 0 .../Local_planning_for_first_milestone.md | 0 .../planning}/PlannedArchitecture.md | 0 .../paf23 => paf23/planning}/Planning.md | 0 .../paf23 => paf23/planning}/PlanningPaf22.md | 0 .../planning}/Research_Pylot_Planning.md | 0 .../Testing_frenet_trajectory_planner.md | 0 .../paf23 => paf23/planning}/paf21-1.md | 0 .../paf23 => paf23/planning}/test_traj.py | 0 doc/research/perception/README.md | 12 ----- doc/research/planning/README.md | 7 --- 37 files changed, 54 insertions(+), 36 deletions(-) create mode 100644 doc/README.md delete mode 100644 doc/research/acting/README.md rename doc/research/{ => paf22}/acting/basics_acting.md (100%) rename doc/research/{ => paf22}/acting/implementation_acting.md (100%) rename doc/research/{ => paf22}/perception/basics.md (100%) rename doc/research/{ => paf22}/perception/first_implementation_plan.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/Implementation.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/Navigation_Data.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/OpenDrive.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/basics.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/decision_making.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/reevaluation_desicion_making.md (100%) rename doc/research/{planning/paf22 => paf22/planning}/state_machine_design.md (100%) rename doc/research/{ => paf22}/requirements/README.md (100%) rename doc/research/{ => paf22}/requirements/informations_from_leaderboard.md (100%) rename doc/research/{ => paf22}/requirements/requirements.md (100%) rename doc/research/{ => paf22}/requirements/use_cases.md (100%) rename doc/research/{ => paf23}/acting/autoware_acting.md (100%) rename doc/research/{ => paf23}/acting/paf21_1_acting.md (100%) rename doc/research/{ => paf23}/acting/paf21_2_and_pylot_acting.md (100%) rename doc/research/{Leaderboard-2/changes_leaderboard2.md => paf23/leaderboard/changes_leaderboard.md} (100%) rename doc/research/{ => paf23}/perception/LIDAR_data.md (100%) rename doc/research/{ => paf23}/perception/Research_PAF21-Perception.md (100%) rename doc/research/{ => paf23}/perception/autoware-perception.md (100%) rename doc/research/{ => paf23}/perception/paf_21_1_perception.md (100%) rename doc/research/{ => paf23}/perception/pylot.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/Local_planning_for_first_milestone.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/PlannedArchitecture.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/Planning.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/PlanningPaf22.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/Research_Pylot_Planning.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/Testing_frenet_trajectory_planner.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/paf21-1.md (100%) rename doc/research/{planning/paf23 => paf23/planning}/test_traj.py (100%) delete mode 100644 doc/research/perception/README.md delete mode 100644 doc/research/planning/README.md diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 00000000..7546ccb8 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,50 @@ +# PAF Documentation + +This document provides an overview of the structure of the documentation. + +- [PAF Documentation](#paf-documentation) + - [`general`](#general) + - [`development`](#development) + - [`research`](#research) + - [`examples`](#examples) + - [`perception`](#perception) + - [`planning`](#planning) + - [`acting`](#acting) + - [`assets`](#assets) + - [`dev_talks`](#dev_talks) + +## `general` + +The [`general`](./general/) folder contains installation instructions for the project and an overview of the system architecture. + +## `development` + +The [`development`](./development/) folder contains guidelines for developing inside the project. It also provides templates for documentation files and python classes. Further information can be found in the [README](development/README.md). + +## `research` + +The [`research`](./research/) folder contains the findings of each group during the initial phase of the project. + +## `examples` + +To-do + +## `perception` + +The [`perception`](./perception/) folder contains documentation for the whole perception module and its individual components. + +## `planning` + +The [`planning`](./planning/) folder contains documentation for the whole planning module and its individual components. + +## `acting` + +The [`acting`](./acting/) folder contains documentation for the whole acting module and its individual components. + +## `assets` + +The [`assets`](./assets/) folder contains mainly images that are used inside the documentation. + +## `dev_talks` + +The [`dev_talks`](./dev_talks/) folder contains the protocols of each sprint review and roles that the students fill during the project. diff --git a/doc/research/README.md b/doc/research/README.md index 9367f439..f4703cc3 100644 --- a/doc/research/README.md +++ b/doc/research/README.md @@ -1,10 +1,8 @@ # Research -This folder contains every research we did before we started the project. +This folder contains the research of each individual group at the start of the project. -The research is structured in the following folders: +The research is structured in folders for each year: -- [Acting](./acting/README.md) -- [Perception](./perception/README.md) -- [Planning](./planning/README.md) -- [Requirements](./requirements/README.md) +- [PAF22](./paf22/) +- [PAF23](./paf23/) diff --git a/doc/research/acting/README.md b/doc/research/acting/README.md deleted file mode 100644 index 8d84f895..00000000 --- a/doc/research/acting/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Acting - -This folder contains all the results of our research on acting: - -- **PAF22** -- [Basics](./basics_acting.md) -- [Implementation](./implementation_acting.md) -- **PAF23** -- [PAF21_1 Acting](./paf21_1_acting.md) -- [PAF21_2 Acting & Pylot Control](./paf21_2_and_pylot_acting.md) -- [Autoware Control](./autoware_acting.md) diff --git a/doc/research/acting/basics_acting.md b/doc/research/paf22/acting/basics_acting.md similarity index 100% rename from doc/research/acting/basics_acting.md rename to doc/research/paf22/acting/basics_acting.md diff --git a/doc/research/acting/implementation_acting.md b/doc/research/paf22/acting/implementation_acting.md similarity index 100% rename from doc/research/acting/implementation_acting.md rename to doc/research/paf22/acting/implementation_acting.md diff --git a/doc/research/perception/basics.md b/doc/research/paf22/perception/basics.md similarity index 100% rename from doc/research/perception/basics.md rename to doc/research/paf22/perception/basics.md diff --git a/doc/research/perception/first_implementation_plan.md b/doc/research/paf22/perception/first_implementation_plan.md similarity index 100% rename from doc/research/perception/first_implementation_plan.md rename to doc/research/paf22/perception/first_implementation_plan.md diff --git a/doc/research/planning/paf22/Implementation.md b/doc/research/paf22/planning/Implementation.md similarity index 100% rename from doc/research/planning/paf22/Implementation.md rename to doc/research/paf22/planning/Implementation.md diff --git a/doc/research/planning/paf22/Navigation_Data.md b/doc/research/paf22/planning/Navigation_Data.md similarity index 100% rename from doc/research/planning/paf22/Navigation_Data.md rename to doc/research/paf22/planning/Navigation_Data.md diff --git a/doc/research/planning/paf22/OpenDrive.md b/doc/research/paf22/planning/OpenDrive.md similarity index 100% rename from doc/research/planning/paf22/OpenDrive.md rename to doc/research/paf22/planning/OpenDrive.md diff --git a/doc/research/planning/paf22/basics.md b/doc/research/paf22/planning/basics.md similarity index 100% rename from doc/research/planning/paf22/basics.md rename to doc/research/paf22/planning/basics.md diff --git a/doc/research/planning/paf22/decision_making.md b/doc/research/paf22/planning/decision_making.md similarity index 100% rename from doc/research/planning/paf22/decision_making.md rename to doc/research/paf22/planning/decision_making.md diff --git a/doc/research/planning/paf22/reevaluation_desicion_making.md b/doc/research/paf22/planning/reevaluation_desicion_making.md similarity index 100% rename from doc/research/planning/paf22/reevaluation_desicion_making.md rename to doc/research/paf22/planning/reevaluation_desicion_making.md diff --git a/doc/research/planning/paf22/state_machine_design.md b/doc/research/paf22/planning/state_machine_design.md similarity index 100% rename from doc/research/planning/paf22/state_machine_design.md rename to doc/research/paf22/planning/state_machine_design.md diff --git a/doc/research/requirements/README.md b/doc/research/paf22/requirements/README.md similarity index 100% rename from doc/research/requirements/README.md rename to doc/research/paf22/requirements/README.md diff --git a/doc/research/requirements/informations_from_leaderboard.md b/doc/research/paf22/requirements/informations_from_leaderboard.md similarity index 100% rename from doc/research/requirements/informations_from_leaderboard.md rename to doc/research/paf22/requirements/informations_from_leaderboard.md diff --git a/doc/research/requirements/requirements.md b/doc/research/paf22/requirements/requirements.md similarity index 100% rename from doc/research/requirements/requirements.md rename to doc/research/paf22/requirements/requirements.md diff --git a/doc/research/requirements/use_cases.md b/doc/research/paf22/requirements/use_cases.md similarity index 100% rename from doc/research/requirements/use_cases.md rename to doc/research/paf22/requirements/use_cases.md diff --git a/doc/research/acting/autoware_acting.md b/doc/research/paf23/acting/autoware_acting.md similarity index 100% rename from doc/research/acting/autoware_acting.md rename to doc/research/paf23/acting/autoware_acting.md diff --git a/doc/research/acting/paf21_1_acting.md b/doc/research/paf23/acting/paf21_1_acting.md similarity index 100% rename from doc/research/acting/paf21_1_acting.md rename to doc/research/paf23/acting/paf21_1_acting.md diff --git a/doc/research/acting/paf21_2_and_pylot_acting.md b/doc/research/paf23/acting/paf21_2_and_pylot_acting.md similarity index 100% rename from doc/research/acting/paf21_2_and_pylot_acting.md rename to doc/research/paf23/acting/paf21_2_and_pylot_acting.md diff --git a/doc/research/Leaderboard-2/changes_leaderboard2.md b/doc/research/paf23/leaderboard/changes_leaderboard.md similarity index 100% rename from doc/research/Leaderboard-2/changes_leaderboard2.md rename to doc/research/paf23/leaderboard/changes_leaderboard.md diff --git a/doc/research/perception/LIDAR_data.md b/doc/research/paf23/perception/LIDAR_data.md similarity index 100% rename from doc/research/perception/LIDAR_data.md rename to doc/research/paf23/perception/LIDAR_data.md diff --git a/doc/research/perception/Research_PAF21-Perception.md b/doc/research/paf23/perception/Research_PAF21-Perception.md similarity index 100% rename from doc/research/perception/Research_PAF21-Perception.md rename to doc/research/paf23/perception/Research_PAF21-Perception.md diff --git a/doc/research/perception/autoware-perception.md b/doc/research/paf23/perception/autoware-perception.md similarity index 100% rename from doc/research/perception/autoware-perception.md rename to doc/research/paf23/perception/autoware-perception.md diff --git a/doc/research/perception/paf_21_1_perception.md b/doc/research/paf23/perception/paf_21_1_perception.md similarity index 100% rename from doc/research/perception/paf_21_1_perception.md rename to doc/research/paf23/perception/paf_21_1_perception.md diff --git a/doc/research/perception/pylot.md b/doc/research/paf23/perception/pylot.md similarity index 100% rename from doc/research/perception/pylot.md rename to doc/research/paf23/perception/pylot.md diff --git a/doc/research/planning/paf23/Local_planning_for_first_milestone.md b/doc/research/paf23/planning/Local_planning_for_first_milestone.md similarity index 100% rename from doc/research/planning/paf23/Local_planning_for_first_milestone.md rename to doc/research/paf23/planning/Local_planning_for_first_milestone.md diff --git a/doc/research/planning/paf23/PlannedArchitecture.md b/doc/research/paf23/planning/PlannedArchitecture.md similarity index 100% rename from doc/research/planning/paf23/PlannedArchitecture.md rename to doc/research/paf23/planning/PlannedArchitecture.md diff --git a/doc/research/planning/paf23/Planning.md b/doc/research/paf23/planning/Planning.md similarity index 100% rename from doc/research/planning/paf23/Planning.md rename to doc/research/paf23/planning/Planning.md diff --git a/doc/research/planning/paf23/PlanningPaf22.md b/doc/research/paf23/planning/PlanningPaf22.md similarity index 100% rename from doc/research/planning/paf23/PlanningPaf22.md rename to doc/research/paf23/planning/PlanningPaf22.md diff --git a/doc/research/planning/paf23/Research_Pylot_Planning.md b/doc/research/paf23/planning/Research_Pylot_Planning.md similarity index 100% rename from doc/research/planning/paf23/Research_Pylot_Planning.md rename to doc/research/paf23/planning/Research_Pylot_Planning.md diff --git a/doc/research/planning/paf23/Testing_frenet_trajectory_planner.md b/doc/research/paf23/planning/Testing_frenet_trajectory_planner.md similarity index 100% rename from doc/research/planning/paf23/Testing_frenet_trajectory_planner.md rename to doc/research/paf23/planning/Testing_frenet_trajectory_planner.md diff --git a/doc/research/planning/paf23/paf21-1.md b/doc/research/paf23/planning/paf21-1.md similarity index 100% rename from doc/research/planning/paf23/paf21-1.md rename to doc/research/paf23/planning/paf21-1.md diff --git a/doc/research/planning/paf23/test_traj.py b/doc/research/paf23/planning/test_traj.py similarity index 100% rename from doc/research/planning/paf23/test_traj.py rename to doc/research/paf23/planning/test_traj.py diff --git a/doc/research/perception/README.md b/doc/research/perception/README.md deleted file mode 100644 index 8e6c5108..00000000 --- a/doc/research/perception/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Perception - -This folder contains all the results of research on perception: - -- **PAF22** - - [Basics](./basics.md) - - [First implementation plan](./first_implementation_plan.md) -- **PAF23** - - [Pylot Perception](./pylot.md) - - [PAF_21_2 Perception](./Research_PAF21-Perception.md) - - [PAF_21_1_Perception](./paf_21_1_perception.md) -- [Autoware Perception](./autoware-perception.md) diff --git a/doc/research/planning/README.md b/doc/research/planning/README.md deleted file mode 100644 index 7ab5f590..00000000 --- a/doc/research/planning/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Planning - -This folder contains all the results of research on planning from PAF 23 and 22. -The research documents from the previous project were kept as they contain helpful information. The documents are separated in different folders: - -- **[PAF22](./paf22/)** -- **[PAF23](./paf23/)** From eacde1120fb90701b4ed304601f7d23d122780e6 Mon Sep 17 00:00:00 2001 From: JulianTrommer Date: Thu, 10 Oct 2024 10:56:26 +0200 Subject: [PATCH 4/6] Refactord docs to wiki page template --- doc/acting/acting_testing.md | 14 -- doc/acting/architecture_documentation.md | 12 -- doc/acting/main_frame_publisher.md | 14 -- doc/acting/steering_controllers.md | 14 -- doc/acting/vehicle_controller.md | 14 -- doc/acting/velocity_controller.md | 14 -- doc/development/build_action.md | 26 +-- doc/development/coding_style.md | 23 --- doc/development/discord_webhook.md | 4 +- doc/development/distributed_simulation.md | 14 +- doc/development/documentation_requirements.md | 107 +++++++----- doc/development/dvc.md | 16 -- doc/development/git_workflow.md | 18 -- doc/development/installing_cuda.md | 13 +- doc/development/installing_python_packages.md | 11 +- doc/development/linter_action.md | 18 +- doc/development/linting.md | 7 +- doc/development/project_management.md | 21 --- doc/development/review_guideline.md | 20 --- .../templates/template_component_readme.md | 27 --- .../templates/template_wiki_page.md | 162 +----------------- .../templates/template_wiki_page_empty.md | 39 ----- .../gps_example/gps_signal_example.md | 15 -- doc/general/architecture.md | 15 -- doc/general/installation.md | 12 ++ doc/perception/coordinate_transformation.md | 16 -- doc/perception/dataset_generator.md | 16 -- doc/perception/dataset_structure.md | 14 -- doc/perception/distance_to_objects.md | 13 +- doc/perception/efficientps.md | 14 -- doc/perception/kalman_filter.md | 20 --- doc/perception/lidar_distance_utility.md | 15 -- .../position_heading_filter_debug_node.md | 20 --- .../position_heading_publisher_node.md | 15 -- doc/perception/traffic_light_detection.md | 13 ++ doc/perception/vision_node.md | 9 +- doc/planning/ACC.md | 12 +- doc/planning/Behavior_tree.md | 18 -- doc/planning/Collision_Check.md | 13 +- doc/planning/Global_Planner.md | 20 --- doc/planning/Local_Planning.md | 19 +- doc/planning/Preplanning.md | 22 --- doc/planning/README.md | 18 -- doc/planning/Unstuck_Behavior.md | 15 -- doc/planning/motion_planning.md | 20 --- doc/planning/py_trees.md | 21 +-- doc/research/paf22/acting/basics_acting.md | 28 +-- .../paf22/acting/implementation_acting.md | 18 +- doc/research/paf22/perception/basics.md | 20 ++- .../perception/first_implementation_plan.md | 19 +- doc/research/paf22/planning/Implementation.md | 20 +-- .../paf22/planning/Navigation_Data.md | 15 -- doc/research/paf22/planning/OpenDrive.md | 16 -- doc/research/paf22/planning/basics.md | 13 +- .../paf22/planning/decision_making.md | 18 -- .../planning/reevaluation_desicion_making.md | 19 +- .../paf22/planning/state_machine_design.md | 15 -- .../informations_from_leaderboard.md | 23 --- .../paf22/requirements/requirements.md | 18 -- doc/research/paf22/requirements/use_cases.md | 20 --- doc/research/paf23/acting/autoware_acting.md | 10 ++ doc/research/paf23/acting/paf21_1_acting.md | 10 ++ .../paf23/acting/paf21_2_and_pylot_acting.md | 30 +++- .../paf23/leaderboard/changes_leaderboard.md | 15 +- doc/research/paf23/perception/LIDAR_data.md | 8 +- .../perception/Research_PAF21-Perception.md | 15 +- .../paf23/perception/autoware-perception.md | 7 + .../paf23/perception/paf_21_1_perception.md | 10 ++ doc/research/paf23/perception/pylot.md | 16 +- .../Local_planning_for_first_milestone.md | 12 +- .../paf23/planning/PlannedArchitecture.md | 11 +- doc/research/paf23/planning/Planning.md | 9 + doc/research/paf23/planning/PlanningPaf22.md | 14 ++ .../paf23/planning/Research_Pylot_Planning.md | 5 +- .../Testing_frenet_trajectory_planner.md | 14 +- doc/research/paf23/planning/paf21-1.md | 12 +- 76 files changed, 350 insertions(+), 1103 deletions(-) delete mode 100644 doc/development/templates/template_component_readme.md delete mode 100644 doc/development/templates/template_wiki_page_empty.md diff --git a/doc/acting/acting_testing.md b/doc/acting/acting_testing.md index fafc00c3..a5a67791 100644 --- a/doc/acting/acting_testing.md +++ b/doc/acting/acting_testing.md @@ -2,24 +2,10 @@ **Summary:** This page shows ways to test and tune acting components and to verify that they work as intended. ---- - -## Author - -Alexander Hellmann - -## Date - -01.04.2024 - - - [How to test/tune acting components independedly](#how-to-testtune-acting-components-independedly) - - [Author](#author) - - [Date](#date) - [Acting\_Debug\_Node](#acting_debug_node) - [Setup for Testing with the Debug-Node](#setup-for-testing-with-the-debug-node) - [Operating the Debug-Node](#operating-the-debug-node) - ## Acting_Debug_Node diff --git a/doc/acting/architecture_documentation.md b/doc/acting/architecture_documentation.md index 6eefb3cd..5c1aeb9d 100644 --- a/doc/acting/architecture_documentation.md +++ b/doc/acting/architecture_documentation.md @@ -2,18 +2,7 @@ **Summary**: This documentation shows the current Acting Architecture. -## Authors - -Alexander Hellmann - -## Date - -01.04.2024 - - - [Architecture](#architecture) - - [Authors](#authors) - - [Date](#date) - [Acting Architecture](#acting-architecture) - [Summary of Acting Components](#summary-of-acting-components) - [pure\_pursuit\_controller.py](#pure_pursuit_controllerpy) @@ -22,7 +11,6 @@ Alexander Hellmann - [vehicle\_controller.py](#vehicle_controllerpy) - [helper\_functions.py](#helper_functionspy) - [MainFramePublisher.py](#mainframepublisherpy) - ## Acting Architecture diff --git a/doc/acting/main_frame_publisher.md b/doc/acting/main_frame_publisher.md index 0a12bfc6..706e9c2e 100644 --- a/doc/acting/main_frame_publisher.md +++ b/doc/acting/main_frame_publisher.md @@ -2,24 +2,10 @@ **Summary:** This page informs about the main frame publisher ---- - -## Author - -Julian Graf - -## Date - -29.03.2023 - - - [Main frame publisher](#main-frame-publisher) - - [Author](#author) - - [Date](#date) - [Overview: Main frame publisher](#overview-main-frame-publisher) - [How to use](#how-to-use) - [Known issues](#known-issues) - ## Overview: Main frame publisher diff --git a/doc/acting/steering_controllers.md b/doc/acting/steering_controllers.md index a15a3c02..e7c0a474 100644 --- a/doc/acting/steering_controllers.md +++ b/doc/acting/steering_controllers.md @@ -2,24 +2,10 @@ **Summary:** This page provides an overview of the current status of both steering controllers, the PurePursuit and the Stanley Controller. ---- - -## Author - -Alexander Hellmann - -## Date - -01.04.2024 - - - [Overview of the Steering Controllers](#overview-of-the-steering-controllers) - - [Author](#author) - - [Date](#date) - [General Introduction to Steering Controllers](#general-introduction-to-steering-controllers) - [PurePursuit Controller](#purepursuit-controller) - [Stanley Controller](#stanley-controller) - ## General Introduction to Steering Controllers diff --git a/doc/acting/vehicle_controller.md b/doc/acting/vehicle_controller.md index b8a2d2a3..62dfefe7 100644 --- a/doc/acting/vehicle_controller.md +++ b/doc/acting/vehicle_controller.md @@ -2,25 +2,11 @@ **Summary:** This page provides an overview of the current status of the Vehicle Controller Component. ---- - -## Authors - -Robert Fischer, Alexander Hellmann - -## Date - -01.04.2024 - - - [Overview of the Vehicle Controller Component](#overview-of-the-vehicle-controller-component) - - [Authors](#authors) - - [Date](#date) - [General Introduction to the Vehicle Controller Component](#general-introduction-to-the-vehicle-controller-component) - [Vehicle Controller Output](#vehicle-controller-output) - [Emergency Brake](#emergency-brake) - [Unstuck Routine](#unstuck-routine) - ## General Introduction to the Vehicle Controller Component diff --git a/doc/acting/velocity_controller.md b/doc/acting/velocity_controller.md index 9d8bbe3d..b4715997 100644 --- a/doc/acting/velocity_controller.md +++ b/doc/acting/velocity_controller.md @@ -2,23 +2,9 @@ **Summary:** This page provides an overview of the current status of the velocity_controller. ---- - -## Author - -Alexander Hellmann - -## Date - -01.04.2024 - - - [Overview of the Velocity Controller](#overview-of-the-velocity-controller) - - [Author](#author) - - [Date](#date) - [General Introduction to Velocity Controller](#general-introduction-to-velocity-controller) - [Current Implementation](#current-implementation) - ## General Introduction to Velocity Controller diff --git a/doc/development/build_action.md b/doc/development/build_action.md index ec311b43..77f71011 100644 --- a/doc/development/build_action.md +++ b/doc/development/build_action.md @@ -7,23 +7,7 @@ - create an executable image of our work - evaluate our Agent with the leaderboard ---- - -## Authors - -Tim Dreier, Korbinian Stein - -## Date - -2.12.2022 - -## Table of contents - - - - [GitHub actions](#github-actions) - - [Authors](#authors) - - [Date](#date) - [Table of contents](#table-of-contents) - [General](#general) - [The Dockerfile (`build/docker/build/Dockerfile`)](#the-dockerfile-builddockerbuilddockerfile) @@ -42,16 +26,14 @@ Tim Dreier, Korbinian Stein - [5. Comment result in pull request `actions/github-script@v6`](#5-comment-result-in-pull-request-actionsgithub-scriptv6) - [Simulation results](#simulation-results) - - ## General The workflow defined in [`.github/workflows/build.yml`](../../.github/workflows/build.yml) creates an executable image which can later be submitted to the [CARLA leaderboard](https://leaderboard.carla.org) and pushes it to [GitHub Packages](ghcr.io). -The image can then be pulled with `docker pull ghcr.io/ll7/paf22:latest` to get the latest version -or `docker pull ghcr.io/ll7/paf22:` to get a specific version. +The image can then be pulled with `docker pull ghcr.io/una-auxme/paf:latest` to get the latest version +or `docker pull ghcr.io/una-auxme/paf:` to get a specific version. If action is triggered by a pull request the created image is then used to execute a test run in the leaderboard, using the devtest routes. The results of this simulation are then added as a comment to the pull request. @@ -109,10 +91,10 @@ Same step as in the [build job](#1-checkout-repository--actionscheckoutv3-) ### 2. Run agent with docker-compose -Runs the agent with the [`build/docker-compose.test.yml`](../../build/docker-compose.test.yml) that only contains the +Runs the agent with the [`build/docker-compose.cicd.yaml`](../../build/docker-compose.cicd.yaml) that only contains the bare minimum components for test execution: -- Carla Simulator (running in headless mode) +- Carla Simulator - roscore - Agent container, run through the Carla [`leaderboard_evaluator`](https://github.com/carla-simulator/leaderboard/blob/leaderboard-2.0/leaderboard/leaderboard_evaluator.py). diff --git a/doc/development/coding_style.md b/doc/development/coding_style.md index 390d6859..544c397f 100644 --- a/doc/development/coding_style.md +++ b/doc/development/coding_style.md @@ -4,28 +4,7 @@ **Summary:** This page contains the coding rules we want to follow as a team to improve readability and reviewing of our code.This document is for reference only and should be consolidated in case of uncertainty of following the style guidelines. Based on PEP 8 () ---- - -## Author - -Josef Kircher - -## Date - -04.11.2022 - -## Prerequisite - -VSCode Extensions: - -- autoDostring - Python Docstring Generator by Nils Werner - ---- - - [Coding style guidelines](#coding-style-guidelines) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Code lay-out](#code-lay-out) - [Indentation](#indentation) - [Tabs or Spaces?](#tabs-or-spaces) @@ -65,8 +44,6 @@ VSCode Extensions: - [Footnotes](#footnotes) - [Copyright](#copyright) - [Source](#source) - ---- ## Code lay-out diff --git a/doc/development/discord_webhook.md b/doc/development/discord_webhook.md index b93de316..08de569c 100644 --- a/doc/development/discord_webhook.md +++ b/doc/development/discord_webhook.md @@ -1,6 +1,8 @@ # Discord Webhook -Author: Lennart Luttkus, 15.11.2023 +**Summary**: This page explains the webhook that posts updates of the repository to Discord. + +- [Discord Webhook](#discord-webhook) The discord bot has access to the `#gitupdates` text channel on our discord server. It is an Integration as a Webhook. diff --git a/doc/development/distributed_simulation.md b/doc/development/distributed_simulation.md index 2d7cbe58..0dcf038e 100644 --- a/doc/development/distributed_simulation.md +++ b/doc/development/distributed_simulation.md @@ -3,13 +3,13 @@ If you have not enough compute resources, start the `carla-simulator-server` on a remote machine and execute the agent on your local machine. As far as we know, you need more than **10 GB of VRAM** to run the server and the agent on the same machine. -## Author - -Julian Trommer and Lennart Luttkus - -## Date - -2024-06-28 +- [Distributed Simulation](#distributed-simulation) + - [Remote Machine Setup](#remote-machine-setup) + - [Local Machine Setup](#local-machine-setup) + - [Ensure similarity between normal docker-compose and distributed docker-compose files](#ensure-similarity-between-normal-docker-compose-and-distributed-docker-compose-files) + - [Set the `` of the carla simulator in docker-compose distributed files](#set-the-ip-address-of-the-carla-simulator-in-docker-compose-distributed-files) + - [Start the agent on your local machine](#start-the-agent-on-your-local-machine) + - [How do you know that you do not have enough compute resources?](#how-do-you-know-that-you-do-not-have-enough-compute-resources) ## Remote Machine Setup diff --git a/doc/development/documentation_requirements.md b/doc/development/documentation_requirements.md index a1f1dcb6..f241d244 100644 --- a/doc/development/documentation_requirements.md +++ b/doc/development/documentation_requirements.md @@ -1,45 +1,66 @@ # Documentation Requirements -## Author - -Lennart Luttkus - -## Date - -08.03.2024 - ---- - -1. **Readability and Maintainability:** - - **Consistent Formatting:** Code should follow a consistent and readable formatting style. Tools like linters or formatters can help enforce a consistent code style. - - [linting](./linting.md) - - [coding_style](./coding_style.md) - - **Meaningful Names:** Variable and function names should be descriptive and convey the purpose of the code. - - **Comments:** Clear and concise comments should be used where necessary to explain complex logic or provide context. -2. **Code Structure:** - - **Modularity:** Code should be organized into modular components or functions, promoting reusability and maintainability. - - **Appropriate Use of Functions/Methods:** Functions should have a clear purpose and adhere to the single responsibility principle. - - **Hierarchy and Nesting:** Avoid overly nested structures; use appropriate levels of indentation to enhance readability. -3. **Efficiency and Performance:** - - **Optimized Algorithms:** Code should use efficient algorithms and data structures to achieve good performance. - - **Avoidance of Code Smells:** Detect and eliminate code smells such as duplicated code, unnecessary complexity, or anti-patterns. -4. **Error Handling:** - - **Effective Error Messages:** Error messages should be clear and provide useful information for debugging. - - **Graceful Error Handling:** Code should handle errors gracefully, avoiding crashes and providing appropriate feedback. -5. **Testing:**? - - **Comprehensive Test Coverage:** Code should be accompanied by a suite of tests that cover different scenarios, ensuring reliability and maintainability. - - **Test Readability:** Tests should be clear and easy to understand, serving as documentation for the codebase. -6. **Security:** - - **Input Validation:** Code should validate and sanitize inputs. -7. **Documentation:** - - **Code Comments:** In addition to in-code comments, consider external documentation for the overall project structure, APIs, and configurations. - - **README Files:** Include a well-written README file that provides an overview of the project, installation instructions, and usage examples. -8. **Version Control:** - - **Commit Messages:** Use descriptive and meaningful commit messages to track changes effectively. - - [commit](./commit.md) - - **Branching Strategy:** Follow a consistent and well-defined branching strategy to manage code changes. -9. **Scalability:** - - **Avoid Hardcoding:** Parameterize values that might change, making it easier to scale the application. - - **Optimized Resource Usage:** Ensure efficient utilization of resources to support scalability. -10. **Consistency with Coding Standards:** - - **Adherence to Coding Guidelines:** Follow established coding standards and best practices for the programming language or framework used. +- [Documentation Requirements](#documentation-requirements) + - [Readability and Maintainability](#readability-and-maintainability) + - [Code Structure](#code-structure) + - [Efficiency and Performance](#efficiency-and-performance) + - [Error Handling](#error-handling) + - [Testing](#testing) + - [Security](#security) + - [Documentation](#documentation) + - [Version Control](#version-control) + - [Scalability](#scalability) + - [Consistency with Coding Standards](#consistency-with-coding-standards) + +## Readability and Maintainability + +- **Consistent Formatting:** Code should follow a consistent and readable formatting style. Tools like linters or formatters can help enforce a consistent code style. + - [linting](./linting.md) + - [coding_style](./coding_style.md) +- **Meaningful Names:** Variable and function names should be descriptive and convey the purpose of the code. +- **Comments:** Clear and concise comments should be used where necessary to explain complex logic or provide context. + +## Code Structure + +- **Modularity:** Code should be organized into modular components or functions, promoting reusability and maintainability. +- **Appropriate Use of Functions/Methods:** Functions should have a clear purpose and adhere to the single responsibility principle. +- **Hierarchy and Nesting:** Avoid overly nested structures; use appropriate levels of indentation to enhance readability. + +## Efficiency and Performance + +- **Optimized Algorithms:** Code should use efficient algorithms and data structures to achieve good performance. +- **Avoidance of Code Smells:** Detect and eliminate code smells such as duplicated code, unnecessary complexity, or anti-patterns. + +## Error Handling + +- **Effective Error Messages:** Error messages should be clear and provide useful information for debugging. +- **Graceful Error Handling:** Code should handle errors gracefully, avoiding crashes and providing appropriate feedback. + +## Testing + +- **Comprehensive Test Coverage:** Code should be accompanied by a suite of tests that cover different scenarios, ensuring reliability and maintainability. +- **Test Readability:** Tests should be clear and easy to understand, serving as documentation for the codebase. + +## Security + +- **Input Validation:** Code should validate and sanitize inputs. + +## Documentation + +- **Code Comments:** In addition to in-code comments, consider external documentation for the overall project structure, APIs, and configurations. +- **README Files:** Include a well-written README file that provides an overview of the project, installation instructions, and usage examples. + +## Version Control + +- **Commit Messages:** Use descriptive and meaningful commit messages to track changes effectively. + - [commit](./commit.md) +- **Branching Strategy:** Follow a consistent and well-defined branching strategy to manage code changes. + +## Scalability + +- **Avoid Hardcoding:** Parameterize values that might change, making it easier to scale the application. +- **Optimized Resource Usage:** Ensure efficient utilization of resources to support scalability. + +## Consistency with Coding Standards + +- **Adherence to Coding Guidelines:** Follow established coding standards and best practices for the programming language or framework used. diff --git a/doc/development/dvc.md b/doc/development/dvc.md index 52491342..abaa2ac3 100644 --- a/doc/development/dvc.md +++ b/doc/development/dvc.md @@ -4,22 +4,7 @@ **Summary:** This page describes what DVC is and how/where to use it. ---- - -## Author - -Tim Dreier - -## Date - -8.12.2022 - -## Table of contents - - [Data Version Control (DVC)](#data-version-control-dvc) - - [Author](#author) - - [Date](#date) - - [Table of contents](#table-of-contents) - [General](#general) - [Installation](#installation) - [Storage](#storage) @@ -37,7 +22,6 @@ Tim Dreier - [Commit an experiment](#commit-an-experiment) - [Dvclive](#dvclive) - [Example](#example) - ## General diff --git a/doc/development/git_workflow.md b/doc/development/git_workflow.md index a90a7d1e..b72cb958 100644 --- a/doc/development/git_workflow.md +++ b/doc/development/git_workflow.md @@ -4,24 +4,7 @@ **Summary:** This page gives an overview over different types of git workflows to choose from. ---- - -## Author - -Josef Kircher - -## Date - -07.11.2022 - -## Prerequisite - ---- - - [Git Style](#git-style) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Git workflow](#git-workflow) - [Git Feature Branch](#git-feature-branch) - [Branch strategy](#branch-strategy) @@ -35,7 +18,6 @@ Josef Kircher - [Commit messages](#commit-messages) - [Git commands cheat sheet](#git-commands-cheat-sheet) - [Sources](#sources) - ## Git workflow diff --git a/doc/development/installing_cuda.md b/doc/development/installing_cuda.md index 566c3b1a..622c5fad 100644 --- a/doc/development/installing_cuda.md +++ b/doc/development/installing_cuda.md @@ -4,15 +4,10 @@ **Summary:** This page gives a short overview how to install cuda-toolkit on your computer. ---- - -## Author - -Marco Riedenauer - -## Date - -10.01.2023 +- [Install cuda-toolkit](#install-cuda-toolkit) + - [First install](#first-install) + - [Common Problems](#common-problems) + - [Wrong version of cuda-toolkit installed](#wrong-version-of-cuda-toolkit-installed) ## First install diff --git a/doc/development/installing_python_packages.md b/doc/development/installing_python_packages.md index 7cb876a6..fc908d9a 100644 --- a/doc/development/installing_python_packages.md +++ b/doc/development/installing_python_packages.md @@ -4,15 +4,8 @@ **Summary:** This page gives a short overview how to add python packages to the project. ---- - -## Author - -Tim Dreier - -## Date - -7.12.2022 +- [Install python packages](#install-python-packages) + - [Adding packages with pip](#adding-packages-with-pip) ## Adding packages with pip diff --git a/doc/development/linter_action.md b/doc/development/linter_action.md index c71154dc..3cc5da67 100644 --- a/doc/development/linter_action.md +++ b/doc/development/linter_action.md @@ -4,28 +4,12 @@ **Summary:** This page explains the GitHub lint action we use to unsure Code quality. ---- - -## Author - -Tim Dreier - -## Date - -25.11.2022 - -## Table of contents - - [Github actions](#github-actions) - - [Author](#author) - - [Date](#date) - - [Table of contents](#table-of-contents) - [General](#general) - [Pull requests](#pull-requests) - [🚨 Common Problems](#-common-problems) - [1. Error in the markdown linter](#1-error-in-the-markdown-linter) - [2. Error in the python linter](#2-error-in-the-python-linter) - ## General @@ -41,7 +25,7 @@ on: pull_request The actions uses the same linters described in the section [Linting](./linting.md). -Event though the linters are already executed during commit, +Event though the linters are already active during development, the execution on pull request ensures that nobody skips the linter during commit. ## Pull requests diff --git a/doc/development/linting.md b/doc/development/linting.md index 728a1500..16d887e8 100644 --- a/doc/development/linting.md +++ b/doc/development/linting.md @@ -2,7 +2,12 @@ (Kept from previous group [paf22]) -To ensure unified standards in the project, the following linters are applied during commit. +**Summary:** To ensure unified standards in the project, the following linters are applied during commit. + +- [Linting](#linting) + - [🐍 Python conventions](#-python-conventions) + - [💬 Markdown Linter](#-markdown-linter) + - [🚨 Common Problems](#-common-problems) ## 🐍 Python conventions diff --git a/doc/development/project_management.md b/doc/development/project_management.md index e9917e5f..6ac08813 100644 --- a/doc/development/project_management.md +++ b/doc/development/project_management.md @@ -5,25 +5,7 @@ **Summary:** We use a [Github Project](https://github.com/users/ll7/projects/2) for project management. Any bugs or features requests are managed in Github. ---- - -## Author - -- Tim Dreier -- Josef Kircher - -## Date - -23.11.2022 - -## Prerequisite - ---- - - [Project management](#project-management) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Create bug or feature requests](#create-bug-or-feature-requests) - [🐞 Bug](#-bug) - [Example for "Bug"](#example-for-bug) @@ -34,9 +16,6 @@ Any bugs or features requests are managed in Github. - [Create a Pull Request](#create-a-pull-request) - [Merging a Pull Request](#merging-a-pull-request) - [Deadlines for pull requests and reviews](#deadlines-for-pull-requests-and-reviews) - - ---- ## Create bug or feature requests diff --git a/doc/development/review_guideline.md b/doc/development/review_guideline.md index dc0fc446..5dcd76ff 100644 --- a/doc/development/review_guideline.md +++ b/doc/development/review_guideline.md @@ -4,24 +4,7 @@ **Summary:** This page gives an overview over the steps that should be taken during a review and how to give a helpful and constructive review ---- - -## Author - -Josef Kircher - -## Date - -17.11.2022 - -## Prerequisite - ---- - - [Review Guidelines](#review-guidelines) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [How to review](#how-to-review) - [How to comment on a pull request](#how-to-comment-on-a-pull-request) - [Incorporating feedback](#incorporating-feedback) @@ -30,9 +13,6 @@ Josef Kircher - [Re-requesting a review](#re-requesting-a-review) - [Resolving conversations](#resolving-conversations) - [Sources](#sources) - - ---- ## How to review diff --git a/doc/development/templates/template_component_readme.md b/doc/development/templates/template_component_readme.md deleted file mode 100644 index 4bc2a93b..00000000 --- a/doc/development/templates/template_component_readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Module title (e.g Perception) - -## About - -Description of module - -## Components - -Listing of all components used in this module - -## ROS Data Interface - -### Published topics - -Topics this module publishes to - -### Subscribed topics - -Topics this module subscribed to - -## Build Node + Run Tests - -How to build this component (in Docker) and run the tests if any available - -## Source - -Inspired by PAF 21-1 diff --git a/doc/development/templates/template_wiki_page.md b/doc/development/templates/template_wiki_page.md index 8679286f..95e95bff 100644 --- a/doc/development/templates/template_wiki_page.md +++ b/doc/development/templates/template_wiki_page.md @@ -2,167 +2,23 @@ **Summary:** This page functions a template for who to build knowledge articles for everyone to understand. The basic structure should be kept for all articles. This template further contains a cheat sheet with the most useful markdown syntax. ---- - -## Author - -Josef Kircher - -## Date - -04.11.2022 - -## Prerequisite - -VSCode Extensions: - -- Markdown All in One by Yu Zhang (for TOC) - ---- - -How to generate a TOC in VSCode: - -VSCode: - -1. ``Ctrl+Shift+P`` -2. Command "Create Table of Contents" - - - [Title of wiki page](#title-of-wiki-page) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - - [Cheat Sheet](#cheat-sheet) - - [Basics](#basics) - - [Extended](#extended) - - [My Great Heading {#custom-id}](#my-great-heading-custom-id) + - [Generate Table of Contents](#generate-table-of-contents) + - [Some Content](#some-content) - [more Content](#more-content) - - [Sources](#sources) - - -## Cheat Sheet - -### Basics - ---- - -Headings: - -(# H1) - -(## H2) - -(### H3) - ---- -Bold **bold text** - ---- -Italic *italicized text* - ---- -Blockquote - -> blockquote ---- -Ordered List - -1. First item -2. Second item -3. Third item - ---- -Unordered List - -- First item -- Second item -- Third item + - [Sources](#sources) ---- -Code +## Generate Table of Contents -`code` +How to generate a TOC in VS Code: ---- - -Horizontal Rule - ---- - -Link -[title](https://www.example.com) - ---- -Image -![alt text](image.jpg) - -### Extended - ---- -Table -| Syntax | Description | -| ----------- | ----------- | -| Header | Title | -| Paragraph | Text | - ---- -Fenced Code Block - -```python -{ - "firstName": "John", - "lastName": "Smith", - "age": 25 -} -``` - ---- -Footnote - -Here's a sentence with a footnote. [^1] - -[^1]: This is the footnote. - ---- -Heading ID - -#### My Great Heading {#custom-id} - ---- -Definition List -term -: definition - ---- -Strikethrough - -~~The world is flat.~~ - ---- - -Task List - -- [x] Write the press release -- [ ] Update the website - -- [ ] Contact the media - ---- - -Subscript - -H~2~O - ---- - -Superscript - -X^2^ +1. ``Ctrl+Shift+P`` +2. Command "Create Table of Contents" ---- +## Some Content ## more Content -### Sources +## Sources diff --git a/doc/development/templates/template_wiki_page_empty.md b/doc/development/templates/template_wiki_page_empty.md deleted file mode 100644 index 2992fd64..00000000 --- a/doc/development/templates/template_wiki_page_empty.md +++ /dev/null @@ -1,39 +0,0 @@ -# Title of wiki page - -**Summary:** This page functions a template for who to build knowledge articles for everyone to understand. The basic structure should be kept for all articles. This template further contains a cheat sheet with the most useful markdown syntax. - ---- - -## Author - -Josef Kircher - -## Date - -04.11.2022 - -## Prerequisite - -VSCode Extensions: - -- Markdown All in One by Yu Zhang (for TOC) - ---- - - -- [Title of wiki page](#title-of-wiki-page) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - - [Some Content](#some-content) - - [more Content](#more-content) - - [Sources](#sources) - - -## Some Content - -## more Content - -### Sources - - diff --git a/doc/examples/gps_example/gps_signal_example.md b/doc/examples/gps_example/gps_signal_example.md index 92069b4f..2fb92639 100644 --- a/doc/examples/gps_example/gps_signal_example.md +++ b/doc/examples/gps_example/gps_signal_example.md @@ -4,27 +4,12 @@ **The Filter that's currently in use: [Kalman Filter](../../perception/kalman_filter.md)** ---- - -## Authors - -Gabriel Schwald - -### Date - -07.01.2023 - ---- - - [GPS sensor](#gps-sensor) - - [Authors](#authors) - - [Date](#date) - [Raw sensor data](#raw-sensor-data) - [Filters for the sensor data](#filters-for-the-sensor-data) - [Intuitive filter](#intuitive-filter) - [Rolling average](#rolling-average) - [Kalman Filter](#kalman-filter) - ## Raw sensor data diff --git a/doc/general/architecture.md b/doc/general/architecture.md index 7451a4cf..72eacdce 100644 --- a/doc/general/architecture.md +++ b/doc/general/architecture.md @@ -3,21 +3,7 @@ **Summary:** This page gives an overview over the planned general architecture of the vehicle agent. The document contains an overview over all [nodes](#overview) and [topics](#topics). ---- - -## Authors - -Julius Miller, Alexander Hellmann, Samuel Kühnel - -## Date - -29.03.2024 - ---- - - [Planned architecture of vehicle agent](#planned-architecture-of-vehicle-agent) - - [Authors](#authors) - - [Date](#date) - [Overview](#overview) - [Perception](#perception) - [Obstacle Detection and Classification](#obstacle-detection-and-classification) @@ -35,7 +21,6 @@ Julius Miller, Alexander Hellmann, Samuel Kühnel - [Velocity control](#velocity-control) - [Vehicle controller](#vehicle-controller) - [Visualization](#visualization) - ## Overview diff --git a/doc/general/installation.md b/doc/general/installation.md index e8ac3b26..dd53ce5b 100644 --- a/doc/general/installation.md +++ b/doc/general/installation.md @@ -1,5 +1,17 @@ # 🛠️ Installation +**Summary:** This page explains the installation process for the project. + +- [🛠️ Installation](#️-installation) + - [Installation](#installation) + - [Docker with NVIDIA GPU support](#docker-with-nvidia-gpu-support) + - [Docker](#docker) + - [Allow non-root user to execute Docker commands](#allow-non-root-user-to-execute-docker-commands) + - [NVIDIA Container toolkit](#nvidia-container-toolkit) + - [VS Code Extensions](#vs-code-extensions) + - [🚨 Common Problems](#-common-problems) + - [Vulkan device not available](#vulkan-device-not-available) + To run the project you have to install [docker](https://docs.docker.com/engine/install/) with NVIDIA GPU support, [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). For development, we recommend Visual Studio Code with the plugins that are recommended inside the `.vscode` folder. diff --git a/doc/perception/coordinate_transformation.md b/doc/perception/coordinate_transformation.md index a6180ec7..f4803887 100644 --- a/doc/perception/coordinate_transformation.md +++ b/doc/perception/coordinate_transformation.md @@ -2,27 +2,11 @@ **Summary:** Used for various helper functions such as quat_to_heading, that are useful in a lot of cases. **It is not yet fully documented**. ---- - -## Author - -Robert Fischer - -## Date - -12.01.2024 - - - - [Coordinate Transformation](#coordinate-transformation) - - [Author](#author) - - [Date](#date) - [Usage](#usage) - [Methods](#methods) - [quat\_to\_heading(quaternion)](#quat_to_headingquaternion) - - ## Usage Just importing the coordinate_transformation.py file is enough to use all of its funcions. diff --git a/doc/perception/dataset_generator.md b/doc/perception/dataset_generator.md index e1a71aff..d250b24e 100644 --- a/doc/perception/dataset_generator.md +++ b/doc/perception/dataset_generator.md @@ -3,29 +3,13 @@ **Summary:** The dataset generator located in perception/src/dataset_generator.py is a standalone script, directly hooking into the Carla Python API. It is used to generate a dataset to train perception models. ---- - -## Author - -Korbinian Stein - -## Date - -24.01.2023 - - - - [Dataset generator](#dataset-generator) - - [Author](#author) - - [Date](#date) - [Necessary adjustments](#necessary-adjustments) - [Dockerfile](#dockerfile) - [docker-compose.yml](#docker-composeyml) - [Usage](#usage) - [Using with leaderboard](#using-with-leaderboard) - - ## Necessary adjustments Important to note: The dataset generator uses diff --git a/doc/perception/dataset_structure.md b/doc/perception/dataset_structure.md index 1ba48dbc..4d28e87f 100644 --- a/doc/perception/dataset_structure.md +++ b/doc/perception/dataset_structure.md @@ -2,27 +2,13 @@ **Summary:** This document gives a short overview about the structure of our dataset that is needed to train EfficientPS. ---- - -## Author - -Marco Riedenauer - -## Date - -19.02.2023 - - - [Dataset structure](#dataset-structure) - - [Author](#author) - - [Date](#date) - [Converting the dataset](#converting-the-dataset) - [Preparation of the dataset for training](#preparation-of-the-dataset-for-training) - [Explanation of the conversion of groundtruth images](#explanation-of-the-conversion-of-groundtruth-images) - [Things](#things) - [Stuff](#stuff) - [Explanation of creating json files](#explanation-of-creating-json-files) - ## Converting the dataset diff --git a/doc/perception/distance_to_objects.md b/doc/perception/distance_to_objects.md index 684ac59f..07caf2cc 100644 --- a/doc/perception/distance_to_objects.md +++ b/doc/perception/distance_to_objects.md @@ -1,9 +1,14 @@ # Getting the Distance to Objects -Using the vision node and the lidar distance node we can calculate the distance of detected objects. -We can solve this problem from two directions mapping either pixel into the 3D-World or mapping 3D-LidarPoints into Pixel. - -This file will will explain the mapping of 3D-Points into 2D. +**Summary:** Using the vision node and the lidar distance node we can calculate the distance of detected objects. +We can solve this problem from two directions mapping either pixel into the 3D-World or mapping 3D-LidarPoints into Pixel. This file will explain the mapping of 3D-Points into 2D. + +- [Getting the Distance to Objects](#getting-the-distance-to-objects) + - [Converting 3D-Points into 2D-Camera-Space](#converting-3d-points-into-2d-camera-space) + - [Concept](#concept) + - [Purpose](#purpose) + - [Implementation](#implementation) + - [LIDAR-Configuration](#lidar-configuration) ## Converting 3D-Points into 2D-Camera-Space diff --git a/doc/perception/efficientps.md b/doc/perception/efficientps.md index 7664cd6e..9498b27c 100644 --- a/doc/perception/efficientps.md +++ b/doc/perception/efficientps.md @@ -4,26 +4,12 @@ **Summary:** This document gives a short overview about EfficientPS and its training process. ---- - -## Author - -Marco Riedenauer - -## Date - -28.03.2023 - - - [EfficientPS](#efficientps) - - [Author](#author) - - [Date](#date) - [Model Overview](#model-overview) - [Training](#training) - [Labels](#labels) - [Training parameters](#training-parameters) - [Train](#train) - ## Model Overview diff --git a/doc/perception/kalman_filter.md b/doc/perception/kalman_filter.md index df59b3f7..e7c676e1 100644 --- a/doc/perception/kalman_filter.md +++ b/doc/perception/kalman_filter.md @@ -8,24 +8,7 @@ As of now it is working with a 2D x-y-Transition model, which is why the current This implements the STANDARD Kalman Filter and NOT the Extended Kalman Filter or any other non-linear variant of the Kalman Filter. ---- - -## Author - -Robert Fischer - -## Date - -29.03.2024 - -## Prerequisite - ---- - - [Kalman Filter](#kalman-filter) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Getting started](#getting-started) - [Description](#description) - [1. Predict](#1-predict) @@ -35,9 +18,6 @@ Robert Fischer - [Inputs](#inputs) - [Outputs](#outputs) - [Performance](#performance) - - ---- ## Getting started diff --git a/doc/perception/lidar_distance_utility.md b/doc/perception/lidar_distance_utility.md index fbcf2b7f..4a93449d 100644 --- a/doc/perception/lidar_distance_utility.md +++ b/doc/perception/lidar_distance_utility.md @@ -12,24 +12,9 @@ Additionally, it publishes a [Range](http://docs.ros.org/en/melodic/api/sensor_m containing the closest and the farest point. This can then be used to detect the distance to the closest object in front of us. ---- - -## Author - -Tim Dreier - -## Date - -16.03.2023 - ---- - - [Lidar Distance Utility](#lidar-distance-utility) - - [Author](#author) - - [Date](#date) - [Configuration](#configuration) - [Example](#example) - ## Configuration diff --git a/doc/perception/position_heading_filter_debug_node.md b/doc/perception/position_heading_filter_debug_node.md index 09b10551..14e56443 100644 --- a/doc/perception/position_heading_filter_debug_node.md +++ b/doc/perception/position_heading_filter_debug_node.md @@ -11,32 +11,12 @@ Using the Carla API could disqualify us from the leaderboard when submitting ont Uncomment (maybe even remove) this file when submitting to the official leaderboard. This file is only for debugging! ---- - -## Author - -Robert Fischer - -## Date - -31.03.2024 - -## Prerequisite - ---- - - [position\_heading\_filter\_debug\_node.py](#position_heading_filter_debug_nodepy) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Getting started](#getting-started) - [Description](#description) - [Inputs](#inputs) - [Outputs](#outputs) - [Visualization](#visualization) - - ---- ## Getting started diff --git a/doc/perception/position_heading_publisher_node.md b/doc/perception/position_heading_publisher_node.md index 5ff5daff..d833eef4 100644 --- a/doc/perception/position_heading_publisher_node.md +++ b/doc/perception/position_heading_publisher_node.md @@ -2,22 +2,7 @@ **Summary:** This node publishes the `current_pos` (Location of the car) and `current_heading` (Orientation of the car around the Z- axis) for every Node that needs to work with that. It also publishes all unfiltered Position and Heading signals for the Filter nodes to work with (such as Kalman). ---- - -## Author - -Robert Fischer - -## Date - -14.01.2024 - -## Prerequisite - - [position\_heading\_publisher\_node](#position_heading_publisher_node) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Usage](#usage) - [Modular Extension / Template](#modular-extension--template) - [Heading Functions](#heading-functions) diff --git a/doc/perception/traffic_light_detection.md b/doc/perception/traffic_light_detection.md index 74ed555c..81340251 100644 --- a/doc/perception/traffic_light_detection.md +++ b/doc/perception/traffic_light_detection.md @@ -1,5 +1,18 @@ # Traffic Light Detection +**Summary:** This page explains how traffic lights are detected and interpreted. + +- [Traffic Light Detection](#traffic-light-detection) + - [Vision Node](#vision-node) + - [TrafficLightNode](#trafficlightnode) + - [Attributes](#attributes) + - [Methods](#methods) + - [Functions](#functions) + - [Usage](#usage) + - [Filtering of images](#filtering-of-images) + - [1. Vision Node](#1-vision-node) + - [2. Traffic Light Node](#2-traffic-light-node) + ## Vision Node For each analyzed image, it is checked whether an object with the ID=9 (traffic light) is detected. diff --git a/doc/perception/vision_node.md b/doc/perception/vision_node.md index 3838c998..c73d7688 100644 --- a/doc/perception/vision_node.md +++ b/doc/perception/vision_node.md @@ -1,8 +1,15 @@ # Vision Node -The Visison Node provides an adaptive interface that is able to perform object-detection and/or image-segmentation on multiple cameras at the same time. +**Summary:** The Visison Node provides an adaptive interface that is able to perform object-detection and/or image-segmentation on multiple cameras at the same time. It can also subscribe to the lidar_distance publisher and calculate distances of objects inside the detected bounding boxes. +- [Vision Node](#vision-node) + - [Model overview](#model-overview) + - [How it works](#how-it-works) + - [1. Object-Detection](#1-object-detection) + - [2. Distance-Calculation](#2-distance-calculation) + - [3. Publishing of Outputs](#3-publishing-of-outputs) + ## Model overview The Vision-Node implements an interface for a lot of different models which can be specified in the perception launch file. diff --git a/doc/planning/ACC.md b/doc/planning/ACC.md index 012e45c6..95621f09 100644 --- a/doc/planning/ACC.md +++ b/doc/planning/ACC.md @@ -1,12 +1,12 @@ # ACC (Adaptive Cruise Control) -## About +**Summary:** The ACC module is a ROS node responsible for adaptive speed control in an autonomous vehicle. It receives information about possible collisions, the current speed, the trajectory, and the speed limits. Based on this information, it calculates the desired speed and publishes it. -The ACC module is a ROS node responsible for adaptive speed control in an autonomous vehicle. It receives information about possible collisions, the current speed, the trajectory, and the speed limits. Based on this information, it calculates the desired speed and publishes it. - -## Components - -This module doesn't contain more components. +- [ACC (Adaptive Cruise Control)](#acc-adaptive-cruise-control) + - [ROS Data Interface](#ros-data-interface) + - [Published Topics](#published-topics) + - [Subscribed Topics](#subscribed-topics) + - [Node Creation + Running Tests](#node-creation--running-tests) ## ROS Data Interface diff --git a/doc/planning/Behavior_tree.md b/doc/planning/Behavior_tree.md index 11dc3498..aae559df 100644 --- a/doc/planning/Behavior_tree.md +++ b/doc/planning/Behavior_tree.md @@ -4,24 +4,7 @@ **Disclaimer**: As we mainly built our decision tree on the previous projects [psaf2](https://github.com/ll7/psaf2) and [paf22](https://github.com/ll7/paf22) , most part of the documentation was added here and adjusted to the changes we made. ---- - -## Author - -Julius Miller - -## Date - -01.04.2024 - -## Prerequisite - ---- - - [Behavior Tree](#behavior-tree) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [About](#about) - [Our behaviour tree](#our-behaviour-tree) - [Behavior](#behavior) @@ -44,7 +27,6 @@ Julius Miller - [`initialise()`](#initialise) - [`update()`](#update) - [`terminate()`](#terminate) - ## About diff --git a/doc/planning/Collision_Check.md b/doc/planning/Collision_Check.md index 67382dc5..d3e88572 100644 --- a/doc/planning/Collision_Check.md +++ b/doc/planning/Collision_Check.md @@ -1,9 +1,14 @@ # Collision Check -## Overview - -This module is responsible for detecting collisions and reporting them. It subscribes to topics that provide information about the current speed of the vehicle and the distances to objects detected by a LIDAR sensor. -It publishes topics that provide information about emergency stops, the distance to collisions, the distance to oncoming traffic, and the approximated speed of the obstacle in front +**Summary:** This module is responsible for detecting collisions and reporting them. It subscribes to topics that provide information about the current speed of the vehicle and the distances to objects detected by a LIDAR sensor. +It publishes topics that provide information about emergency stops, the distance to collisions, the distance to oncoming traffic, and the approximated speed of the obstacle in front. + +- [Collision Check](#collision-check) + - [Component](#component) + - [ROS Data Interface](#ros-data-interface) + - [Published Topics](#published-topics) + - [Subscribed Topics](#subscribed-topics) + - [Node Creation + Running Tests](#node-creation--running-tests) ## Component diff --git a/doc/planning/Global_Planner.md b/doc/planning/Global_Planner.md index 10ef74d6..2d3e4ea9 100644 --- a/doc/planning/Global_Planner.md +++ b/doc/planning/Global_Planner.md @@ -7,34 +7,14 @@ After finishing that this node initiates the calculation of a trajectory based o from preplanning_trajectory.py. In the end the computed trajectory and prevailing speed limits are published to the other components of this project (acting, decision making,...). ---- - -## Author - -Samuel Kühnel - -## Date - -29.03.2024 - -## Note - This component and so most of the documentation was taken from the previous project PAF22 (Authors: Simon Erlbacher, Niklas Vogel) ---- - - [Global Planner](#global-planner) - - [Author](#author) - - [Date](#date) - - [Note](#note) - [Getting started](#getting-started) - [Description](#description) - [Inputs](#inputs) - [Outputs](#outputs) - [Testing](#testing) - - ---- ## Getting started diff --git a/doc/planning/Local_Planning.md b/doc/planning/Local_Planning.md index 4624fd83..22930f5d 100644 --- a/doc/planning/Local_Planning.md +++ b/doc/planning/Local_Planning.md @@ -2,24 +2,7 @@ **Summary:** This page contains the conceptual and theoretical explanations for the Local Planning component. For more technical documentation have a look at the other linked documentation files. ---- - -## Author - -Samuel Kühnel - -## Date - -29.03.2024 - -## Prerequisite - ---- - - [Local Planning](#local-planning) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Overview](#overview) - [Collision Check](#collision-check) - [Apply filters](#apply-filters) @@ -31,7 +14,7 @@ Samuel Kühnel - [Selecting the target velocity](#selecting-the-target-velocity) - [Moving the trajectory](#moving-the-trajectory) - [Sources](#sources) - + ## Overview The Local Planning component is responsible for evaluating short term decisions in the local environment of the ego vehicle. Some examples can be collision avoidance, reducing speed or emergency brakes. diff --git a/doc/planning/Preplanning.md b/doc/planning/Preplanning.md index 252e2ce9..4475c290 100644 --- a/doc/planning/Preplanning.md +++ b/doc/planning/Preplanning.md @@ -2,26 +2,7 @@ **Summary:** Preplanner holds the logic to create a trajectory out of an OpenDrive Map with the belonging road options ---- - -## Author - -Authors: Simon Erlbacher, Niklas Vogel - -## Date - -29.03.2023 - -## Note - -The Preplanning component was taken from the previous project PAF22. - ---- - - [Preplanning](#preplanning) - - [Author](#author) - - [Date](#date) - - [Note](#note) - [Getting started](#getting-started) - [Road option concept](#road-option-concept) - [Road information](#road-information) @@ -29,9 +10,6 @@ The Preplanning component was taken from the previous project PAF22. - [Road interpolation](#road-interpolation) - [How to use the implementation](#how-to-use-the-implementation) - [Sources](#sources) - - ---- ## Getting started diff --git a/doc/planning/README.md b/doc/planning/README.md index 7123c208..378d94bd 100644 --- a/doc/planning/README.md +++ b/doc/planning/README.md @@ -1,23 +1,5 @@ # Planning Wiki ---- - -## Structure - -Planning wiki contains different parts: - - - -- [Planning Wiki](#planning-wiki) - - [Structure](#structure) - - [Overview](#overview) - - [Preplanning](#preplanning) - - [Global plan](#global-plan) - - [Decision making](#decision-making) - - [Local Planning](#local-planning) - ---- - ## Overview ### [Preplanning](./Preplanning.md) diff --git a/doc/planning/Unstuck_Behavior.md b/doc/planning/Unstuck_Behavior.md index 3990fa69..99c408d5 100644 --- a/doc/planning/Unstuck_Behavior.md +++ b/doc/planning/Unstuck_Behavior.md @@ -2,23 +2,8 @@ **Summary:** This file explains the unstuck behavior used as a fallback to recover from stuck situations. ---- - -## Author - -Robert Fischer - -## Date - -01.04.2024 - ---- - - [Unstuck Behavior](#unstuck-behavior) - - [Author](#author) - - [Date](#date) - [Explanation](#explanation) - ## Explanation diff --git a/doc/planning/motion_planning.md b/doc/planning/motion_planning.md index 125e4ebe..dd05ed42 100644 --- a/doc/planning/motion_planning.md +++ b/doc/planning/motion_planning.md @@ -3,33 +3,13 @@ **Summary:** [motion_planning.py](.../code/planning/local_planner/src/motion_planning.py): The motion planning is responsible for collecting all the speeds from the different components and choosing the optimal one to be fowarded into the acting. It also is capabale to change the trajectory for a overtaking maneuver. ---- - -## Author - -Julius Miller - -## Date - -31.03.2023 - -## Prerequisite - ---- - - [Motion Planning](#motion-planning) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Overview](#overview) - [Component](#component) - [ROS Data Interface](#ros-data-interface) - [Subscribed Topics](#subscribed-topics) - [Published Topics](#published-topics) - [Node Creation + Running Tests](#node-creation--running-tests) - - ---- ## Overview diff --git a/doc/planning/py_trees.md b/doc/planning/py_trees.md index bbc9fb91..4e12d604 100644 --- a/doc/planning/py_trees.md +++ b/doc/planning/py_trees.md @@ -2,32 +2,13 @@ **Summary:** pytrees is a python library used to generate and inspect decision trees. It has a very clear structure and is easy to understand, so it is used in this project. ---- - -## Author - -Josef Kircher - -## Date - -31.01.2023 - -## Note - -This documentation was taken from the previous project PAF22. - ---- - - [Pytrees](#pytrees) - - [Author](#author) - - [Date](#date) - - [Note](#note) - [Getting started](#getting-started) - [What is Pytrees?](#what-is-pytrees) - [Examples](#examples) - [Common commands](#common-commands) - [Sources](#sources) - + ## Getting started Pytrees is integrated in this project's dockerfile, so no setup is required. diff --git a/doc/research/paf22/acting/basics_acting.md b/doc/research/paf22/acting/basics_acting.md index 3b4dce32..d692baea 100644 --- a/doc/research/paf22/acting/basics_acting.md +++ b/doc/research/paf22/acting/basics_acting.md @@ -2,18 +2,22 @@ **Summary:** On this page you can find the results of the basic research on acting. ---- - -## Authors - -Gabriel Schwald, Julian Graf - -### Date - -14.11.2022 - ---- -[[TOC]] +- [Basic research acting](#basic-research-acting) + - [Objective](#objective) + - [Solutions from old PAF projects](#solutions-from-old-paf-projects) + - [Paf 20/1](#paf-201) + - [Paf 21/1](#paf-211) + - [Paf 20/2 and Paf 21/2](#paf-202-and-paf-212) + - [Lateral control](#lateral-control) + - [Pure Pursuit](#pure-pursuit) + - [Stanley](#stanley) + - [MPC (Model Predictive Control) / receding horizon control](#mpc-model-predictive-control--receding-horizon-control) + - [SMC (sliding mode control)](#smc-sliding-mode-control) + - [Velocity control](#velocity-control) + - [Interface](#interface) + - [Limits](#limits) + - [Visualization](#visualization) + - [Additional functionality (open for discussion)](#additional-functionality-open-for-discussion) ## Objective diff --git a/doc/research/paf22/acting/implementation_acting.md b/doc/research/paf22/acting/implementation_acting.md index fc763b36..83f89e51 100644 --- a/doc/research/paf22/acting/implementation_acting.md +++ b/doc/research/paf22/acting/implementation_acting.md @@ -2,30 +2,14 @@ **Summary:** On this page you can find the results of the basic research on acting summed up into resulting requirements and function, that were already agreed upon. ---- - -## Authors - -Gabriel Schwald - -### Date - -20.11.2022 - ---- +This document sums up all functions already agreed upon in [#24](https://github.com/ll7/paf22/issues/24) regarding [acting](../acting/acting.md), that could be implemented in the next sprint. - - [Requirements and challenges for an acting implementation](#requirements-and-challenges-for-an-acting-implementation) - - [Authors](#authors) - - [Date](#date) - [Planned basic implementation of the Acting domain](#planned-basic-implementation-of-the-acting-domain) - [List of basic functions](#list-of-basic-functions) - [List of Inputs/Outputs](#list-of-inputsoutputs) - [Challenges](#challenges) - [Next steps](#next-steps) - - -This document sums up all functions already agreed upon in [#24](https://github.com/ll7/paf22/issues/24) regarding [acting](../acting/acting.md), that could be implemented in the next sprint. ## Planned basic implementation of the Acting domain diff --git a/doc/research/paf22/perception/basics.md b/doc/research/paf22/perception/basics.md index b5f921dc..d9f2bcc3 100644 --- a/doc/research/paf22/perception/basics.md +++ b/doc/research/paf22/perception/basics.md @@ -1,11 +1,29 @@ # Basic research perception -The perception is responsible for the efficient conversion of raw sensor and map data +**Summary:** The perception is responsible for the efficient conversion of raw sensor and map data into a useful environment representation that can be used by the planning for further processing. This includes the classification and localization of relevant entities in traffic and also the preparation of this data to enable a fast processing of this data in the planning layer. +- [Basic research perception](#basic-research-perception) + - [Interfaces](#interfaces) + - [Input](#input) + - [Output](#output) + - [Environment](#environment) + - [What objects have to be detected?](#what-objects-have-to-be-detected) + - [Special case traffic light (PAF21-1)](#special-case-traffic-light-paf21-1) + - [Algorithms for classification/localization](#algorithms-for-classificationlocalization) + - [Prediction](#prediction) + - [Map data](#map-data) + - [Limitations of the sensors and perception](#limitations-of-the-sensors-and-perception) + - [LIDAR](#lidar) + - [RADAR](#radar) + - [Camera](#camera) + - [Training data](#training-data) + - [Classification of situations](#classification-of-situations) + - [Combination of 2D camera data and 3D RADAR/LIDAR data](#combination-of-2d-camera-data-and-3d-radarlidar-data) + ## Interfaces ### Input diff --git a/doc/research/paf22/perception/first_implementation_plan.md b/doc/research/paf22/perception/first_implementation_plan.md index 4640b2cf..8bc88aba 100644 --- a/doc/research/paf22/perception/first_implementation_plan.md +++ b/doc/research/paf22/perception/first_implementation_plan.md @@ -1,23 +1,9 @@ # First Implementation Plan -This document shows the initial ideas for the implementation of the perception module. +**Summary:** This document shows the initial ideas for the implementation of the perception module. It includes the various detection and classification modules that are necessary for an efficient and reliable workflow. ---- - -## Authors - -Marco Riedenauer - -## Date - -26.11.2022 - ---- - - [First Implementation Plan](#first-implementation-plan) - - [Authors](#authors) - - [Date](#date) - [Overview](#overview) - [Panoptic Segmentation](#panoptic-segmentation) - [Things and Stuff](#things-and-stuff) @@ -33,9 +19,6 @@ Marco Riedenauer - [Traffic Sign Detection](#traffic-sign-detection) - [Prediction](#prediction) - [Possible Issues/Milestones](#possible-issuesmilestones) - - ---- ## Overview diff --git a/doc/research/paf22/planning/Implementation.md b/doc/research/paf22/planning/Implementation.md index 4a5c9f7d..7af7cd55 100644 --- a/doc/research/paf22/planning/Implementation.md +++ b/doc/research/paf22/planning/Implementation.md @@ -1,24 +1,9 @@ # Planning Implementation -**Summary:** -The document gives a first impression of how the planning could/should work +**Summary:** The document gives a first impression of how the planning could/should work and how the topics are edited ---- - -## Authors - -Simon Erlbacher, Niklas Vogel - -## Date - -29.11.2022 - ---- - - [Planning Implementation](#planning-implementation) - - [Authors](#authors) - - [Date](#date) - [Overview](#overview) - [Preplanning](#preplanning) - [Decision Making](#decision-making) @@ -28,9 +13,6 @@ Simon Erlbacher, Niklas Vogel - [Measure distance](#measure-distance) - [Next steps](#next-steps) - [Sources](#sources) - - ---- ## Overview diff --git a/doc/research/paf22/planning/Navigation_Data.md b/doc/research/paf22/planning/Navigation_Data.md index 18611513..f16cc211 100644 --- a/doc/research/paf22/planning/Navigation_Data.md +++ b/doc/research/paf22/planning/Navigation_Data.md @@ -2,26 +2,11 @@ **Summary:** This page gives an overview and summary of how navigation data can be received, how it is structured and a visualisation of where the route instructions are placed on the ego vehicle route. ---- - -## Author - -Niklas Vogel - -## Date - -14.12.2022 - ---- - - [Navigation Data Research](#navigation-data-research) - - [Author](#author) - - [Date](#date) - [How to receive navigation data](#how-to-receive-navigation-data) - [Structure of navigation data](#structure-of-navigation-data) - [Visualisation of received navigation data](#visualisation-of-received-navigation-data) - [Sources](#sources) - ## How to receive navigation data diff --git a/doc/research/paf22/planning/OpenDrive.md b/doc/research/paf22/planning/OpenDrive.md index 99999139..84895cd3 100644 --- a/doc/research/paf22/planning/OpenDrive.md +++ b/doc/research/paf22/planning/OpenDrive.md @@ -2,22 +2,7 @@ **Summary:** Evaluate the reading of the OpenDrive map in other projects and outline recommended further steps. ---- - -## Authors - -Simon Erlbacher - -### Date - -10.01.2023 - ---- - - - [OpenDrive Format](#opendrive-format) - - [Authors](#authors) - - [Date](#date) - [General](#general) - [Different Projects](#different-projects) - [PSAF1](#psaf1) @@ -30,7 +15,6 @@ Simon Erlbacher - [Implementation details](#implementation-details) - [Follow-up Issues](#follow-up-issues) - [Sources](#sources) - ## General diff --git a/doc/research/paf22/planning/basics.md b/doc/research/paf22/planning/basics.md index bd40b06e..093dcb23 100644 --- a/doc/research/paf22/planning/basics.md +++ b/doc/research/paf22/planning/basics.md @@ -1,18 +1,8 @@ # Grundrecherche im Planing -## Authors +**Summary:** This page contains the resarch of planning components of previous years. -Simon Erlbacher, Niklas Vogel - -## Datum - -15.11.2022 - ---- - - [Grundrecherche im Planing](#grundrecherche-im-planing) - - [Authors](#authors) - - [Datum](#datum) - [PAF 2021-1](#paf-2021-1) - [Vehicle Controller](#vehicle-controller) - [Decision-Making-Component](#decision-making-component) @@ -36,7 +26,6 @@ Simon Erlbacher, Niklas Vogel - [Wie sieht die Grenze zwischen global und local plan aus?](#wie-sieht-die-grenze-zwischen-global-und-local-plan-aus) - [Müssen Staus umfahren werden?](#müssen-staus-umfahren-werden) - [Sollgeschwindigkeitsplanung](#sollgeschwindigkeitsplanung) - ## [PAF 2021-1](https://github.com/ll7/paf21-1) diff --git a/doc/research/paf22/planning/decision_making.md b/doc/research/paf22/planning/decision_making.md index eea8b21f..70bc1cab 100644 --- a/doc/research/paf22/planning/decision_making.md +++ b/doc/research/paf22/planning/decision_making.md @@ -2,24 +2,7 @@ **Summary:** This page gives a brief summary over possible decision-making choices their ad- and disadvantages as well as the opportunity to interchange them later on. Also, possible implementation options for those concepts are given. ---- - -## Author - -Josef Kircher - -## Date - -01.12.2022 - -## Prerequisite - ---- - - [Decision-making module](#decision-making-module) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Decision-making algorithms](#decision-making-algorithms) - [Finite State machine](#finite-state-machine) - [Advantages](#advantages) @@ -54,7 +37,6 @@ Josef Kircher - [pytrees](#pytrees) - [Conclusion](#conclusion) - [Sources](#sources) - ## Decision-making algorithms diff --git a/doc/research/paf22/planning/reevaluation_desicion_making.md b/doc/research/paf22/planning/reevaluation_desicion_making.md index f6492d3c..2e4eaa75 100644 --- a/doc/research/paf22/planning/reevaluation_desicion_making.md +++ b/doc/research/paf22/planning/reevaluation_desicion_making.md @@ -2,24 +2,7 @@ **Summary:** This page gives a foundation for the re-evaluation of the decision-making ---- - -## Author - -Josef Kircher - -## Date - -26.01.2023 - -## Prerequisite - ---- - - [Re-evaluation of decision making component](#re-evaluation-of-decision-making-component) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Reasons for re-evaluation](#reasons-for-re-evaluation) - [Options](#options) - [Pylot](#pylot) @@ -28,7 +11,7 @@ Josef Kircher - [Cons](#cons) - [Conclusion](#conclusion) - [Sources](#sources) - + ## Reasons for re-evaluation In the last sprint, I tried to get a graphic tool to work with the docker container withing the project. That failed, but I still think, that a graphical representation would be helpful. diff --git a/doc/research/paf22/planning/state_machine_design.md b/doc/research/paf22/planning/state_machine_design.md index 53bed6fb..2bf3ad2b 100644 --- a/doc/research/paf22/planning/state_machine_design.md +++ b/doc/research/paf22/planning/state_machine_design.md @@ -2,21 +2,7 @@ **Summary:** This page gives an overview of the design of the state machine and further describes states and transitions. ---- - -## Author - -Josef Kircher - -## Date - -09.12.2022 - ---- - - [State machine design](#state-machine-design) - - [Author](#author) - - [Date](#date) - [Super state machine](#super-state-machine) - [Driving state machine](#driving-state-machine) - [KEEP](#keep) @@ -40,7 +26,6 @@ Josef Kircher - [STOP\_GO](#stop_go) - [Implementation](#implementation) - [Sources](#sources) - ## Super state machine diff --git a/doc/research/paf22/requirements/informations_from_leaderboard.md b/doc/research/paf22/requirements/informations_from_leaderboard.md index 25ce6b78..9b47caa2 100644 --- a/doc/research/paf22/requirements/informations_from_leaderboard.md +++ b/doc/research/paf22/requirements/informations_from_leaderboard.md @@ -2,27 +2,7 @@ **Summary:** This page contains the project informations from the CARLA leaderboard. More specific summary after page is finished. ---- - -## Author - -Josef Kircher - -## Date - -17.11.2022 - -## Prerequisite - -none - ---- - - - [Requirements of Carla Leaderboard](#requirements-of-carla-leaderboard) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Task](#task) - [Participation modalities](#participation-modalities) - [Route format](#route-format) @@ -34,9 +14,6 @@ none - [Shutdown criteria](#shutdown-criteria) - [Submission](#submission) - [Sources](#sources) - - ---- ## Task diff --git a/doc/research/paf22/requirements/requirements.md b/doc/research/paf22/requirements/requirements.md index 8612e3c3..9cd7ca46 100644 --- a/doc/research/paf22/requirements/requirements.md +++ b/doc/research/paf22/requirements/requirements.md @@ -2,29 +2,11 @@ **Summary:** This page contains the requirements obtained from the Carla Leaderboard website as well as former projects in the `Praktikum Autonomes Fahren` ---- - -## Author - -Josef Kircher, Simon Erlbacher - -## Date - -17.11.2022 - -## Prerequisite - ---- - - [Requirements](#requirements) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [Requirements from Leaderboard tasks](#requirements-from-leaderboard-tasks) - [Prioritized driving aspects](#prioritized-driving-aspects) - [more Content](#more-content) - [Sources](#sources) - ## Requirements from Leaderboard tasks diff --git a/doc/research/paf22/requirements/use_cases.md b/doc/research/paf22/requirements/use_cases.md index cf9a6570..984d23e9 100644 --- a/doc/research/paf22/requirements/use_cases.md +++ b/doc/research/paf22/requirements/use_cases.md @@ -2,24 +2,7 @@ **Summary:** This page contains a set of possible use cases containing a description of the scenario, the functions the agent has to have to pass that scenario as well as the event triggering that use case, the flow through that use case and the outcome. ---- - -## Author - -Josef Kircher - -## Date - -21.11.2022 - -## Prerequisite - ---- - - [Use cases in Carla Leaderboard](#use-cases-in-carla-leaderboard) - - [Author](#author) - - [Date](#date) - - [Prerequisite](#prerequisite) - [1. Control loss due to bad road condition](#1-control-loss-due-to-bad-road-condition) - [Description](#description) - [Pre-condition(Event)](#pre-conditionevent) @@ -173,9 +156,6 @@ Josef Kircher - [Outcome](#outcome-21) - [Associated use cases](#associated-use-cases-21) - [Sources](#sources) - - ---- ## 1. Control loss due to bad road condition diff --git a/doc/research/paf23/acting/autoware_acting.md b/doc/research/paf23/acting/autoware_acting.md index bb84218f..bf1900a6 100644 --- a/doc/research/paf23/acting/autoware_acting.md +++ b/doc/research/paf23/acting/autoware_acting.md @@ -1,5 +1,15 @@ # Research: [Autoware Acting](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/#autoware-control-design) +**Summary:** This page contains the research into the action component of Autoware. + +- [Research: Autoware Acting](#research-autoware-acting) + - [Inputs](#inputs) + - [General Component Architecture](#general-component-architecture) + - [With the Control Module](#with-the-control-module) + - [Trajectory Follower](#trajectory-follower) + - [Vehicle Command Gate](#vehicle-command-gate) + - [Outputs](#outputs) + ## Inputs - Odometry (position and orientation, from Localization module) diff --git a/doc/research/paf23/acting/paf21_1_acting.md b/doc/research/paf23/acting/paf21_1_acting.md index 0b03937d..d6aae3d2 100644 --- a/doc/research/paf23/acting/paf21_1_acting.md +++ b/doc/research/paf23/acting/paf21_1_acting.md @@ -1,5 +1,15 @@ # Research: PAF21_1 Acting +**Summary:** This page contains the research into the action component of the PAF21_1 group. + +- [Research: PAF21\_1 Acting](#research-paf21_1-acting) + - [Inputs](#inputs) + - [Curve Detection](#curve-detection) + - [Speed Control](#speed-control) + - [Steering Control](#steering-control) + - [Straight Trajectories](#straight-trajectories) + - [Detected Curves](#detected-curves) + ## Inputs - waypoints of the planned route diff --git a/doc/research/paf23/acting/paf21_2_and_pylot_acting.md b/doc/research/paf23/acting/paf21_2_and_pylot_acting.md index 8dfa05d6..d6690290 100644 --- a/doc/research/paf23/acting/paf21_2_and_pylot_acting.md +++ b/doc/research/paf23/acting/paf21_2_and_pylot_acting.md @@ -1,6 +1,34 @@ # PAF Research: Robert Fischer -## PAF22 +**Summary:** This page contains the research into the action component of the PAF21_2 group and pylot. + +- [PAF Research: Robert Fischer](#paf-research-robert-fischer) + - [Acting](#acting) + - [List of Inputs/Outputs](#list-of-inputsoutputs) + - [Challenges](#challenges) + - [PAF21\_2 Acting](#paf21_2-acting) + - [Standardroutine](#standardroutine) + - [Unstuck-Routine](#unstuck-routine) + - [Deadlock](#deadlock) + - [Verfolgung von Hindernissen](#verfolgung-von-hindernissen) + - [Messages](#messages) + - [StanleyController](#stanleycontroller) + - [PID Controller](#pid-controller) + - [Emergency Modus](#emergency-modus) + - [Bugabuses](#bugabuses) + - [Pylot Acting (Control)](#pylot-acting-control) + - [Control Types](#control-types) + - [PID](#pid) + - [MPC](#mpc) + - [Carla\_Autopilot](#carla_autopilot) + - [Basic Cotrol Code](#basic-cotrol-code) + - [**control\_eval\_operator.py**](#control_eval_operatorpy) + - [**messages.py**](#messagespy) + - [**pid.py**](#pidpy) + - [**pid\_control\_operator.py**](#pid_control_operatorpy) + - [**utils.py**](#utilspy) + - [MPC Control Code](#mpc-control-code) + ## Acting diff --git a/doc/research/paf23/leaderboard/changes_leaderboard.md b/doc/research/paf23/leaderboard/changes_leaderboard.md index 077cfb7b..aa7e6e91 100644 --- a/doc/research/paf23/leaderboard/changes_leaderboard.md +++ b/doc/research/paf23/leaderboard/changes_leaderboard.md @@ -2,15 +2,12 @@ **Summary:** New Features and changes made with the CARLA leaderboard-2.0 ---- - -## Author - -Samuel Kühnel - -## Date - -17.11.2023 +- [Overview leaderboard 2.0](#overview-leaderboard-20) + - [General Information](#general-information) + - [Submissions](#submissions) + - [New Features](#new-features) + - [Maps](#maps) + - [Scenarios and training database](#scenarios-and-training-database) ## General Information diff --git a/doc/research/paf23/perception/LIDAR_data.md b/doc/research/paf23/perception/LIDAR_data.md index ac62fa87..121b616b 100644 --- a/doc/research/paf23/perception/LIDAR_data.md +++ b/doc/research/paf23/perception/LIDAR_data.md @@ -1,6 +1,12 @@ # LIDAR-Data -This File discusses where the LIDAR-Data comes from, how its processed and how we could possibly use it. +**Summary:** This File discusses where the LIDAR-Data comes from, how its processed and how we could possibly use it. + +- [LIDAR-Data](#lidar-data) + - [Origin](#origin) + - [Processing](#processing) + - [Distance Calculation](#distance-calculation) + - [Open questions](#open-questions) ## Origin diff --git a/doc/research/paf23/perception/Research_PAF21-Perception.md b/doc/research/paf23/perception/Research_PAF21-Perception.md index f036100c..0e7fa9dc 100644 --- a/doc/research/paf23/perception/Research_PAF21-Perception.md +++ b/doc/research/paf23/perception/Research_PAF21-Perception.md @@ -1,8 +1,17 @@ # Sprint 0: Research Samuel Kühnel -## PAF 21-2 +**Summary:** This page contains the research into the perception component of the PAF21_2 group. -### Perception +- [Sprint 0: Research Samuel Kühnel](#sprint-0-research-samuel-kühnel) + - [Perception](#perception) + - [Obstacle detection](#obstacle-detection) + - [TrafficLightDetection](#trafficlightdetection) + - [Problems and solutions](#problems-and-solutions) + - [Resume](#resume) + - [Perception](#perception-1) + - [Planning](#planning) + +## Perception ### Obstacle detection @@ -26,7 +35,7 @@ - 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 +## Resume ### Perception diff --git a/doc/research/paf23/perception/autoware-perception.md b/doc/research/paf23/perception/autoware-perception.md index 42fb6256..afe99950 100644 --- a/doc/research/paf23/perception/autoware-perception.md +++ b/doc/research/paf23/perception/autoware-perception.md @@ -1,5 +1,12 @@ # Autoware Perception +**Summary:** This page contains the research into the perception component of Autoware. + +- [Autoware Perception](#autoware-perception) + - [1.Architecture](#1architecture) + - [2.Detection Mechanisms](#2detection-mechanisms) + - [3. Conclusion](#3-conclusion) + ## 1.Architecture ![image](https://github.com/una-auxme/paf/assets/102369315/6b3fb964-e650-442a-a674-8e0471d931a9) diff --git a/doc/research/paf23/perception/paf_21_1_perception.md b/doc/research/paf23/perception/paf_21_1_perception.md index 4538d028..fa87bb5f 100644 --- a/doc/research/paf23/perception/paf_21_1_perception.md +++ b/doc/research/paf23/perception/paf_21_1_perception.md @@ -1,5 +1,15 @@ # Paf_21_1 - Perception +**Summary:** This page contains the research into the perception component of the PAF21_1 group. + +- [Paf\_21\_1 - Perception](#paf_21_1---perception) + - [1. Architecture](#1-architecture) + - [**Key Features**](#key-features) + - [2. Sensors](#2-sensors) + - [3. Object-Detection](#3-object-detection) + - [4. TrafficLight-Detection](#4-trafficlight-detection) + - [5. Conclusion](#5-conclusion) + ## 1. Architecture ![image](https://github.com/una-auxme/paf/assets/102369315/07328c78-83d7-425c-802e-8cc49430e6c1) diff --git a/doc/research/paf23/perception/pylot.md b/doc/research/paf23/perception/pylot.md index 3b82e29e..69620e39 100644 --- a/doc/research/paf23/perception/pylot.md +++ b/doc/research/paf23/perception/pylot.md @@ -1,10 +1,16 @@ # Pylot - Perception -**Authors:** Maximilian Jannack - -**Date:** 12.11.2023 - ---- +**Summary:** This page contains the research into the perception component of pylot. + +- [Pylot - Perception](#pylot---perception) + - [Detection](#detection) + - [Obstacle detection](#obstacle-detection) + - [Traffic light detection](#traffic-light-detection) + - [Lane detection](#lane-detection) + - [Obstacle Tracking](#obstacle-tracking) + - [Depth Estimation](#depth-estimation) + - [Segmentation](#segmentation) + - [Lidar](#lidar) ## [Detection](https://pylot.readthedocs.io/en/latest/perception.detection.html) diff --git a/doc/research/paf23/planning/Local_planning_for_first_milestone.md b/doc/research/paf23/planning/Local_planning_for_first_milestone.md index 48cbc1c2..a212dceb 100644 --- a/doc/research/paf23/planning/Local_planning_for_first_milestone.md +++ b/doc/research/paf23/planning/Local_planning_for_first_milestone.md @@ -2,15 +2,9 @@ **Summary:** This document states the implementation plan for the local planning. ---- - -## Author - -Julius Miller - -## Date - -03.12.2023 +- [Local Planning for first milestone](#local-planning-for-first-milestone) + - [Research](#research) + - [New Architecture for first milestone](#new-architecture-for-first-milestone) ## Research diff --git a/doc/research/paf23/planning/PlannedArchitecture.md b/doc/research/paf23/planning/PlannedArchitecture.md index 2bb98cac..e58578d2 100644 --- a/doc/research/paf23/planning/PlannedArchitecture.md +++ b/doc/research/paf23/planning/PlannedArchitecture.md @@ -1,6 +1,15 @@ # Planned Architecture -Provide an overview for a possible planning architecture consisting of Global Planner, Local Planner and Decision Making. +**Summary:** Provide an overview for a possible planning architecture consisting of Global Planner, Local Planner and Decision Making. + +- [Planned Architecture](#planned-architecture) + - [Overview](#overview) + - [Components](#components) + - [Global Plan](#global-plan) + - [Decision Making](#decision-making) + - [Local Plan](#local-plan) + - [Interfaces](#interfaces) + - [Prioritisation](#prioritisation) ## Overview diff --git a/doc/research/paf23/planning/Planning.md b/doc/research/paf23/planning/Planning.md index 0229ced2..28ca5fb0 100644 --- a/doc/research/paf23/planning/Planning.md +++ b/doc/research/paf23/planning/Planning.md @@ -1,5 +1,14 @@ # Planning +**Summary:** This page contains research into the planning component of the PAF21_2 group. + +- [Planning](#planning) + - [What is Planning?](#what-is-planning) + - [PAF21 - 2](#paf21---2) + - [Autoware](#autoware) + - [Resumee](#resumee) + - [Notes](#notes) + ## What is Planning? Finding the optimal path from start to goal, taking into account the static and dynamic conditions and transfering a suitable trajectory to the acting system diff --git a/doc/research/paf23/planning/PlanningPaf22.md b/doc/research/paf23/planning/PlanningPaf22.md index 85902213..d856b671 100644 --- a/doc/research/paf23/planning/PlanningPaf22.md +++ b/doc/research/paf23/planning/PlanningPaf22.md @@ -1,7 +1,21 @@ # Planning in PAF 22 +**Summary:** This page contains research into the planning component of the PAF22 group. + [(Github)](https://github.com/ll7/paf22) +- [Planning in PAF 22](#planning-in-paf-22) + - [Architecture](#architecture) + - [Preplanning](#preplanning) + - [Decision Making](#decision-making) + - [Local path planning](#local-path-planning) + - [Planning documentation](#planning-documentation) + - [Preplanning in code](#preplanning-in-code) + - [Global Plan in code](#global-plan-in-code) + - [Decision Making in code](#decision-making-in-code) + - [Conclusion](#conclusion) + - [What can be done next](#what-can-be-done-next) + ## Architecture ![overview](../../../assets/planning/overview.jpg) diff --git a/doc/research/paf23/planning/Research_Pylot_Planning.md b/doc/research/paf23/planning/Research_Pylot_Planning.md index e7277d52..30d046aa 100644 --- a/doc/research/paf23/planning/Research_Pylot_Planning.md +++ b/doc/research/paf23/planning/Research_Pylot_Planning.md @@ -1,6 +1,9 @@ # Sprint 0: Research Samuel Kühnel -## Pylot +**Summary:** This page contains the research into the planning component of pylot. + +- [Sprint 0: Research Samuel Kühnel](#sprint-0-research-samuel-kühnel) + - [Planning](#planning) ## Planning diff --git a/doc/research/paf23/planning/Testing_frenet_trajectory_planner.md b/doc/research/paf23/planning/Testing_frenet_trajectory_planner.md index b2581027..ccc40903 100644 --- a/doc/research/paf23/planning/Testing_frenet_trajectory_planner.md +++ b/doc/research/paf23/planning/Testing_frenet_trajectory_planner.md @@ -2,15 +2,11 @@ **Summary:** This document summarizes the Frenet Optimal Trajectory planner used in the pylot project ---- - -## Author - -Samuel Kühnel - -## Date - -15.01.2024 +- [Frenet Optimal Trajectory](#frenet-optimal-trajectory) + - [Setup](#setup) + - [Example Usage](#example-usage) + - [Inputs](#inputs) + - [Decision](#decision) ## Setup diff --git a/doc/research/paf23/planning/paf21-1.md b/doc/research/paf23/planning/paf21-1.md index a358a641..7d9f0d4d 100644 --- a/doc/research/paf23/planning/paf21-1.md +++ b/doc/research/paf23/planning/paf21-1.md @@ -1,19 +1,15 @@ # Planning in PAF21-1 -**Authors:** Maximilian Jannack - -**Date:** 12.11.2023 - ---- - -In PAF21-1, they divided the planning stage into two major components: +**Summary:** In PAF21-1, they divided the planning stage into two major components: - Global Planner - Local Planner A more detailed explanation is already present in the [basics](../paf22/basics.md#paf-2021-1) chapter. ---- +- [Planning in PAF21-1](#planning-in-paf21-1) + - [Global Planner](#global-planner) + - [Local Planner](#local-planner) ## Global Planner From 642bc6c86266f209d7c8c0b0461a75c55dda5909 Mon Sep 17 00:00:00 2001 From: JulianTrommer Date: Thu, 10 Oct 2024 15:45:09 +0200 Subject: [PATCH 5/6] Updated execution & development notes --- README.md | 8 +++-- doc/development/README.md | 30 +++++++------------ doc/development/distributed_simulation.md | 9 ++++-- doc/development/documentation_requirements.md | 2 ++ doc/development/git_workflow.md | 11 ++----- doc/development/review_guideline.md | 7 ++++- doc/general/README.md | 5 ++-- build/README.md => doc/general/execution.md | 15 ++++++---- doc/general/installation.md | 11 +++---- 9 files changed, 50 insertions(+), 48 deletions(-) rename build/README.md => doc/general/execution.md (94%) diff --git a/README.md b/README.md index f217afd6..59863059 100644 --- a/README.md +++ b/README.md @@ -21,16 +21,20 @@ To be able to execute and develop the project, you need a Linux system equipped As the project is still in early development, these requirements are subject to change. -## Installation +## Getting started + +### Installation To run the project you have to install [docker](https://docs.docker.com/engine/install/) with NVIDIA GPU support, [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). `docker` and `nvidia-docker` are used to run the project in a containerized environment with GPU support. -More detailed instructions about setup and execution can be found [here](./doc/general/README.md). +More detailed instructions about the setup can be found [here](./doc/general/installation.md). ## Development +To get an overview of the current architecture of the agent you can look at the general documentation [here](./doc/general/architecture.md). The individual components are explained in the README files of their subfolders. + If you contribute to this project please read the guidelines first. They can be found [here](./doc/development/README.md). ## Research diff --git a/doc/development/README.md b/doc/development/README.md index 3cee2abe..75a99b4c 100644 --- a/doc/development/README.md +++ b/doc/development/README.md @@ -2,23 +2,21 @@ If you contribute to this project please read the following guidelines first: -1. [Start the docker container to simulate the car](../../build/README.md) -2. [Documentation Requirements](./documentation_requirements.md) -3. [Commit](./commit.md) -4. [Linting](./linting.md) -5. [Coding style](./coding_style.md) -6. [Git Style](./git_workflow.md) -7. [Reviewing](./review_guideline.md) -8. [Project management](./project_management.md) -9. Github actions +1. [Documentation Requirements](./documentation_requirements.md) +2. [Linting](./linting.md) +3. [Coding style](./coding_style.md) +4. [Git Style](./git_workflow.md) +5. [Reviewing](./review_guideline.md) +6. [Project management](./project_management.md) +7. Github actions 1. [linting action](./linter_action.md) 2. [build action](./build_action.md) -10. [Install python packages](./installing_python_packages.md) -11. [Discord Webhook Documentation](./discord_webhook.md) +8. [Install python packages](./installing_python_packages.md) +9. [Discord Webhook Documentation](./discord_webhook.md) ## Templates -Some templates are provided in [`doc/development/templates`](./templates). +Templates for documentation and code are provided in [`doc/development/templates`](./templates). ### [`template_class.py`](./templates/template_class.py) @@ -28,16 +26,8 @@ Use this class if you don't have much experience with python. If you just want t If you just want to copy an empty class use this class. -### [`template_component_readme.md`](./templates/template_component_readme.md) - -This template functions a template for who to describe a component. IT should be contained in every component as `README.md`. - ### [`template_wiki_page.md`](./templates/template_wiki_page.md) -This template functions a template for who to build knowledge articles for everyone to understand. The basic structure should be kept for all articles. This template further contains a cheat sheet with the most useful markdown syntax. - -### [`template_wiki_page_empty.md`](./templates/template_wiki_page_empty.md) - This template functions a template for who to build knowledge articles for everyone to understand. The basic structure should be kept for all articles. This template is empty and can be used straight forward. ## Discord Webhook diff --git a/doc/development/distributed_simulation.md b/doc/development/distributed_simulation.md index 0dcf038e..f09d1ecb 100644 --- a/doc/development/distributed_simulation.md +++ b/doc/development/distributed_simulation.md @@ -1,9 +1,9 @@ # Distributed Simulation -If you have not enough compute resources, start the `carla-simulator-server` on a remote machine and execute the agent on your local machine. -As far as we know, you need more than **10 GB of VRAM** to run the server and the agent on the same machine. +**Summary:** This page documents the distributed execution of the Carla simulator and the agent. - [Distributed Simulation](#distributed-simulation) + - [General](#general) - [Remote Machine Setup](#remote-machine-setup) - [Local Machine Setup](#local-machine-setup) - [Ensure similarity between normal docker-compose and distributed docker-compose files](#ensure-similarity-between-normal-docker-compose-and-distributed-docker-compose-files) @@ -11,6 +11,11 @@ As far as we know, you need more than **10 GB of VRAM** to run the server and th - [Start the agent on your local machine](#start-the-agent-on-your-local-machine) - [How do you know that you do not have enough compute resources?](#how-do-you-know-that-you-do-not-have-enough-compute-resources) +## General + +If you have not enough compute resources, start the `carla-simulator` on a remote machine and execute the agent on your local machine. +As far as we know, you need more than **10 GB of VRAM** to run the server and the agent on the same machine. + ## Remote Machine Setup - Gain `ssh` access to the remote machine. diff --git a/doc/development/documentation_requirements.md b/doc/development/documentation_requirements.md index f241d244..163db979 100644 --- a/doc/development/documentation_requirements.md +++ b/doc/development/documentation_requirements.md @@ -1,5 +1,7 @@ # Documentation Requirements +**Summary:** This document provides the guidelines for the documentation. + - [Documentation Requirements](#documentation-requirements) - [Readability and Maintainability](#readability-and-maintainability) - [Code Structure](#code-structure) diff --git a/doc/development/git_workflow.md b/doc/development/git_workflow.md index b72cb958..dcd9f0be 100644 --- a/doc/development/git_workflow.md +++ b/doc/development/git_workflow.md @@ -15,7 +15,6 @@ - [Branch Creation Settings](#branch-creation-settings) - [Creating a Branch in the Web Interface](#creating-a-branch-in-the-web-interface) - [Creating a Branch in VSCode](#creating-a-branch-in-vscode) - - [Commit messages](#commit-messages) - [Git commands cheat sheet](#git-commands-cheat-sheet) - [Sources](#sources) @@ -39,7 +38,7 @@ Two types of branches: ### Branch naming --- -Feature branch: issue number-description-of-issue (separator: '-') generated by Github automatically +Feature branch: issue number-description-of-issue (separator: '-') generated by Github automatically #### For example @@ -60,7 +59,7 @@ The `.vscode/settings.json` file in this repository contains settings that autom #### Creating a Branch in the Web Interface -To create a branch in the web interface, follow these steps: +To create a branch in the web interface, navigate to the corresponding issue and select the `Create Branch` option: ![Create Branch](../assets/github_create_a_branch.png) @@ -72,12 +71,6 @@ In Visual Studio Code, use the "GitHub.vscode-pull-request-github" extension. 2. These queries allow you to access different issues. 3. Click the button "->" to create a new branch from the selected issue, check out the branch, and assign the issue to yourself. -### Commit messages - ---- - -- proceed to [Commit Messages](./commit.md) - ### Git commands cheat sheet --- diff --git a/doc/development/review_guideline.md b/doc/development/review_guideline.md index 5dcd76ff..005a8650 100644 --- a/doc/development/review_guideline.md +++ b/doc/development/review_guideline.md @@ -7,6 +7,7 @@ - [Review Guidelines](#review-guidelines) - [How to review](#how-to-review) - [How to comment on a pull request](#how-to-comment-on-a-pull-request) + - [CodeRabbit](#coderabbit) - [Incorporating feedback](#incorporating-feedback) - [Responding to comments](#responding-to-comments) - [Applying suggested changes](#applying-suggested-changes) @@ -16,7 +17,7 @@ ## How to review -1. Select der PR you want to review on GitHub +1. Select the PR you want to review on GitHub ![img.png](../assets/PR_overview.png) 2. Go to Files Changed ![img.png](../assets/Files_Changed.png) @@ -51,6 +52,10 @@ - Be aware of negative bias with online communication. (If content is neutral, we assume the tone is negative.) Can you use positive language as opposed to neutral? - Use emoji to clarify tone. Compare “✨ ✨ Looks good 👍 ✨ ✨” to “Looks good.” +## CodeRabbit + +The repository also comes with CodeRabbit integration. This tool generates automatic reviews for a pull request. Although the proposed changes do not have to be incorporated, they can point to a better solution for parts of the implementation. + ## Incorporating feedback ### Responding to comments diff --git a/doc/general/README.md b/doc/general/README.md index 81105f81..cbf937f4 100644 --- a/doc/general/README.md +++ b/doc/general/README.md @@ -1,6 +1,7 @@ # General project setup -This Folder contains instruction how to execute the project and what it does. +This Folder contains instruction on installation, execution and architecture of the agent. 1. [Installation](./installation.md) -2. [Current architecture of the agent](./architecture.md) +2. [Execution](./execution.md) +3. [Current architecture of the agent](./architecture.md) diff --git a/build/README.md b/doc/general/execution.md similarity index 94% rename from build/README.md rename to doc/general/execution.md index 1f3ddeca..8b8d498f 100644 --- a/build/README.md +++ b/doc/general/execution.md @@ -1,14 +1,15 @@ -# Build Directory Documentation +# Execution -This document provides an overview of the build structure of the project, -detailing the purpose and usage of the various configuration files located in the `build` directory. +This document provides an overview of how to execute the project, +detailing the purpose and usage of the various configuration files located in the [build](../../build/) directory. The project utilizes Docker and Docker Compose to manage services and dependencies, facilitating both normal and distributed execution modes. ## Table of Contents -- [Build Directory Documentation](#build-directory-documentation) +- [Execution](#execution) - [Table of Contents](#table-of-contents) + - [Quick Start](#quick-start) - [Directory Structure](#directory-structure) - [Base Service Files](#base-service-files) - [`agent_service.yaml`](#agent_serviceyaml) @@ -27,6 +28,10 @@ facilitating both normal and distributed execution modes. - [Notes](#notes) - [Conclusion](#conclusion) +## Quick Start + +In order to start the default leaderboard execution simply navigate to the [build](../../build/) folder and select the `Compose up` option in the right-click menu of the `docker-compose.leaderboard.yaml` file. + ## Directory Structure The `build` directory contains the necessary configuration and setup files for building and running the project services. Below is an overview of the key files: @@ -44,7 +49,7 @@ The `build` directory contains the necessary configuration and setup files for b ## Base Service Files -The base service files define the configurations for individual services used in the project. These files are included or extended in the Docker Compose files to create different execution setups. +The base service files define the configurations for individual services used in the project. These files are included or extended in the Docker Compose files to create different execution setups and are not intended for standalone execution. ### `agent_service.yaml` diff --git a/doc/general/installation.md b/doc/general/installation.md index dd53ce5b..f5bc39a3 100644 --- a/doc/general/installation.md +++ b/doc/general/installation.md @@ -1,9 +1,8 @@ # 🛠️ Installation -**Summary:** This page explains the installation process for the project. +**Summary:** This page explains the installation process for the - [🛠️ Installation](#️-installation) - - [Installation](#installation) - [Docker with NVIDIA GPU support](#docker-with-nvidia-gpu-support) - [Docker](#docker) - [Allow non-root user to execute Docker commands](#allow-non-root-user-to-execute-docker-commands) @@ -16,13 +15,11 @@ To run the project you have to install [docker](https://docs.docker.com/engine/i For development, we recommend Visual Studio Code with the plugins that are recommended inside the `.vscode` folder. -## Installation +## Docker with NVIDIA GPU support If not yet installed first install docker as described in section [Docker with NVIDIA GPU support](#docker-with-nvidia-gpu-support). -## Docker with NVIDIA GPU support - -For this installation, it's easiest to follow the guide in the [NVIDIA docs](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). +For NVIDIA GPU support it's easiest to follow the guide in the [NVIDIA docs](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). For simplicity, we list the necessary steps here: @@ -51,7 +48,7 @@ After this, _restart_ your system to propagate the group changes. ### NVIDIA Container toolkit -Setup the package repository and the GPG key: +Set up the package repository and the GPG key: ```shell distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ From 5082d81fc01d8d87ae68bb4305e85f5d8b76a819 Mon Sep 17 00:00:00 2001 From: JulianTrommer Date: Thu, 10 Oct 2024 15:48:57 +0200 Subject: [PATCH 6/6] Removed blank line from markdown --- doc/research/paf23/acting/paf21_2_and_pylot_acting.md | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/research/paf23/acting/paf21_2_and_pylot_acting.md b/doc/research/paf23/acting/paf21_2_and_pylot_acting.md index d6690290..c071338b 100644 --- a/doc/research/paf23/acting/paf21_2_and_pylot_acting.md +++ b/doc/research/paf23/acting/paf21_2_and_pylot_acting.md @@ -29,7 +29,6 @@ - [**utils.py**](#utilspy) - [MPC Control Code](#mpc-control-code) - ## Acting - Longitudinal control