From a8206e24b8bea1722359ffad967804d4727341ae Mon Sep 17 00:00:00 2001 From: Alexander Hellmann-Schweikardt <102021436+hellschwalex@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:02:36 +0100 Subject: [PATCH 1/5] Create paf21_1_Acting.md Research Results for the Acting Component of PAF21_1 --- doc/03_research/01_acting/paf21_1_Acting.md | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 doc/03_research/01_acting/paf21_1_Acting.md diff --git a/doc/03_research/01_acting/paf21_1_Acting.md b/doc/03_research/01_acting/paf21_1_Acting.md new file mode 100644 index 00000000..4183380a --- /dev/null +++ b/doc/03_research/01_acting/paf21_1_Acting.md @@ -0,0 +1,32 @@ +# Research: PAF21_1 Acting + + +### Inputs +* waypoints of the planned route +* general odometry of the vehicle + + +### Curve Detection +* Can detect curves on the planned trajectory +* Calculates the speed in which to drive the detected Curve +![Curve](https://github.com/ll7/paf21-1/raw/master/imgs/curve.PNG) +### Speed Control +* [CARLA Ackermann Control](https://carla.readthedocs.io/projects/ros-bridge/en/latest/carla_ackermann_control/) +* Speed is forwarded to the CARLA vehicle via Ackermann_message, which already includes a PID controller for safe driving/accelerating etc. +* no further controlling needed -> speed can be passed as calculated + + +### Steering Control + +##### Straight Trajectories +* **Stanley Steering Controller** + * Calculates steering angle from offset and heading error + * includes PID controller + ![Stanley Controller](https://github.com/ll7/paf21-1/raw/master/imgs/stanley.png) + +##### Detected Curves +* **Naive Steering Controller** (close to pure pursuit) + * uses Vehicle Position + Orientation + Waypoints + * Calculate direction to drive to as vector + * direction - orientation = Steering angle at each point in time + * speed is calculated in Curve Detection and taken as is From 9f2ba05498340d7e2781969e766ee242c807f677 Mon Sep 17 00:00:00 2001 From: Alexander Hellmann-Schweikardt <102021436+hellschwalex@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:27:40 +0100 Subject: [PATCH 2/5] Create autoware_acting.md Research results for acting (control) components of Autoware --- doc/03_research/01_acting/autoware_acting.md | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 doc/03_research/01_acting/autoware_acting.md diff --git a/doc/03_research/01_acting/autoware_acting.md b/doc/03_research/01_acting/autoware_acting.md new file mode 100644 index 00000000..90a4ac78 --- /dev/null +++ b/doc/03_research/01_acting/autoware_acting.md @@ -0,0 +1,33 @@ +# Research: [Autoware Acting](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/#autoware-control-design) + + +### Inputs +* Odometry (position and orientation, from Localization module) +* Trajectory (output of Planning) +* Steering Status (current steering of vehicle, from Vehicle Interface) +* Actuation Status (acceleration, steering, brake actuations, from Vehicle Interface) +* (“vehicle signal commands” directly into Vehicle Interface + * Handbrake, Hazard Lights, Headlights, Horn, Stationary Locking, Turn Indicators, Wipers etc.) +#### General Component Architecture: + +![Node diagram](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/components/images/Control-Bus-ODD-Architecture.drawio.svg) +#### With the Control Module: + +![control-component](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/image/control-component.drawio.svg) + + +### [Trajectory Follower](https://autowarefoundation.github.io/autoware.universe/main/control/trajectory_follower_base/) +* generates control command to follow reference trajectory from Planning +* computes lateral (steering) and longitudinal (velocity) controls separately +* lateral controller: mpc (model predictive) or pure pursuit +* longitudinal: “currently only” PID controller + +### Vehicle Command Gate +* filters control commands to prevent abnormal values +* sends commands to [Vehicle Interface](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/components/vehicle-interface/) + +### Outputs +* steering angle +* steering torque +* speed +* acceleration From 551c8f281827ae8e8462cff6fe0d186d7adea017 Mon Sep 17 00:00:00 2001 From: Alexander Hellmann-Schweikardt <102021436+hellschwalex@users.noreply.github.com> Date: Tue, 14 Nov 2023 15:18:36 +0100 Subject: [PATCH 3/5] Update autoware_acting.md --- doc/03_research/01_acting/autoware_acting.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/03_research/01_acting/autoware_acting.md b/doc/03_research/01_acting/autoware_acting.md index 90a4ac78..001e1c7d 100644 --- a/doc/03_research/01_acting/autoware_acting.md +++ b/doc/03_research/01_acting/autoware_acting.md @@ -1,6 +1,5 @@ # Research: [Autoware Acting](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/#autoware-control-design) - ### Inputs * Odometry (position and orientation, from Localization module) * Trajectory (output of Planning) @@ -9,13 +8,9 @@ * (“vehicle signal commands” directly into Vehicle Interface * Handbrake, Hazard Lights, Headlights, Horn, Stationary Locking, Turn Indicators, Wipers etc.) #### General Component Architecture: - ![Node diagram](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/components/images/Control-Bus-ODD-Architecture.drawio.svg) #### With the Control Module: - ![control-component](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/image/control-component.drawio.svg) - - ### [Trajectory Follower](https://autowarefoundation.github.io/autoware.universe/main/control/trajectory_follower_base/) * generates control command to follow reference trajectory from Planning * computes lateral (steering) and longitudinal (velocity) controls separately From 19c88f1834d3ce728e7d64ed8f1e056971f1e4c5 Mon Sep 17 00:00:00 2001 From: Alexander Hellmann-Schweikardt <102021436+hellschwalex@users.noreply.github.com> Date: Thu, 16 Nov 2023 08:34:51 +0100 Subject: [PATCH 4/5] Update paf21_1_Acting.md Fixed Linter issues --- doc/03_research/01_acting/paf21_1_Acting.md | 23 ++++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/doc/03_research/01_acting/paf21_1_Acting.md b/doc/03_research/01_acting/paf21_1_Acting.md index 4183380a..4d437280 100644 --- a/doc/03_research/01_acting/paf21_1_Acting.md +++ b/doc/03_research/01_acting/paf21_1_Acting.md @@ -1,32 +1,35 @@ # Research: PAF21_1 Acting +## Inputs -### Inputs * waypoints of the planned route * general odometry of the vehicle +## Curve Detection -### Curve Detection * Can detect curves on the planned trajectory * Calculates the speed in which to drive the detected Curve ![Curve](https://github.com/ll7/paf21-1/raw/master/imgs/curve.PNG) -### Speed Control + +## Speed Control + * [CARLA Ackermann Control](https://carla.readthedocs.io/projects/ros-bridge/en/latest/carla_ackermann_control/) * Speed is forwarded to the CARLA vehicle via Ackermann_message, which already includes a PID controller for safe driving/accelerating etc. * no further controlling needed -> speed can be passed as calculated +## Steering Control -### Steering Control +### Straight Trajectories -##### Straight Trajectories * **Stanley Steering Controller** - * Calculates steering angle from offset and heading error - * includes PID controller + * Calculates steering angle from offset and heading error + * includes PID controller ![Stanley Controller](https://github.com/ll7/paf21-1/raw/master/imgs/stanley.png) -##### Detected Curves +### Detected Curves + * **Naive Steering Controller** (close to pure pursuit) - * uses Vehicle Position + Orientation + Waypoints + * uses Vehicle Position + Orientation + Waypoints * Calculate direction to drive to as vector * direction - orientation = Steering angle at each point in time - * speed is calculated in Curve Detection and taken as is + * speed is calculated in Curve Detection and taken as is From a71827ae383fb3a80c67964084bcd37e8c85f58d Mon Sep 17 00:00:00 2001 From: Alexander Hellmann-Schweikardt <102021436+hellschwalex@users.noreply.github.com> Date: Thu, 16 Nov 2023 08:38:19 +0100 Subject: [PATCH 5/5] Update autoware_acting.md Fixed Linter issues --- doc/03_research/01_acting/autoware_acting.md | 26 +++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/doc/03_research/01_acting/autoware_acting.md b/doc/03_research/01_acting/autoware_acting.md index 001e1c7d..8ba6b880 100644 --- a/doc/03_research/01_acting/autoware_acting.md +++ b/doc/03_research/01_acting/autoware_acting.md @@ -1,27 +1,35 @@ # Research: [Autoware Acting](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/#autoware-control-design) -### Inputs +## Inputs + * Odometry (position and orientation, from Localization module) * Trajectory (output of Planning) * Steering Status (current steering of vehicle, from Vehicle Interface) * Actuation Status (acceleration, steering, brake actuations, from Vehicle Interface) -* (“vehicle signal commands” directly into Vehicle Interface - * Handbrake, Hazard Lights, Headlights, Horn, Stationary Locking, Turn Indicators, Wipers etc.) -#### General Component Architecture: -![Node diagram](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/components/images/Control-Bus-ODD-Architecture.drawio.svg) -#### With the Control Module: +* (“vehicle signal commands” directly into Vehicle Interface -> Handbrake, Hazard Lights, Headlights, Horn, Stationary Locking, Turn Indicators, Wipers etc.) + +### General Component Architecture + +![Node diagram](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/components/images/Control-Bus-ODD-Architecture.drawio.svg) + +### With the Control Module + ![control-component](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/control/image/control-component.drawio.svg) -### [Trajectory Follower](https://autowarefoundation.github.io/autoware.universe/main/control/trajectory_follower_base/) + +## [Trajectory Follower](https://autowarefoundation.github.io/autoware.universe/main/control/trajectory_follower_base/) + * generates control command to follow reference trajectory from Planning * computes lateral (steering) and longitudinal (velocity) controls separately * lateral controller: mpc (model predictive) or pure pursuit * longitudinal: “currently only” PID controller -### Vehicle Command Gate +## Vehicle Command Gate + * filters control commands to prevent abnormal values * sends commands to [Vehicle Interface](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/components/vehicle-interface/) -### Outputs +## Outputs + * steering angle * steering torque * speed