Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Research results for Acting of PAF21_1 and Autoware #45

Merged
merged 5 commits into from
Nov 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions doc/03_research/01_acting/autoware_acting.md
Original file line number Diff line number Diff line change
@@ -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
35 changes: 35 additions & 0 deletions doc/03_research/01_acting/paf21_1_Acting.md
Original file line number Diff line number Diff line change
@@ -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
Loading