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..8ba6b880 --- /dev/null +++ b/doc/03_research/01_acting/autoware_acting.md @@ -0,0 +1,36 @@ +# 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 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..4d437280 --- /dev/null +++ b/doc/03_research/01_acting/paf21_1_Acting.md @@ -0,0 +1,35 @@ +# 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