Skip to content

Commit a6853c2

Browse files
committed
feat(pid_longitudinal_controller): update readme
Signed-off-by: Berkay Karaman <brkay54@gmail.com>
1 parent 2d96fed commit a6853c2

File tree

2 files changed

+368
-311
lines changed

2 files changed

+368
-311
lines changed

control/pid_longitudinal_controller/README.md

+17-24
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,27 @@ For reliable stopping, the target acceleration calculated by the FeedForward sys
5555

5656
Based on the slope information, a compensation term is added to the target acceleration.
5757

58-
There are two sources of the slope information, which can be switched by a parameter.
58+
There are two sources of the slope information, both sources are used in controller with respect to state of the node.
5959

60-
- Pitch of the estimated ego-pose (default)
60+
- Pitch of the estimated ego-pose
61+
- Only used when `slope_source` is "raw_pitch"
6162
- Calculates the current slope from the pitch angle of the estimated ego-pose
6263
- Pros: Easily available
6364
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
65+
- Cons: Can not be used in combination with delay compensation.
6466
- Z coordinate on the trajectory
65-
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
66-
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
67-
- Pros: Can be used in combination with delay compensation (not yet implemented)
67+
- Only used when `slope_source` is "trajectory_pitch"
68+
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory.
69+
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained.
70+
- Pros: Can be used in combination with delay compensation.
6871
- Cons: z-coordinates of high-precision map is needed.
69-
- Cons: Does not support free space planning (for now)
72+
- Cons: Does not support free space planning (for now).
73+
- Adaptive pitch information
74+
- Only used when `slope_source` is "trajectory_adaptive"
75+
- It switches the slope sources with respect to velocity of the ego vehicle
76+
- The trajectory_pitch is used when the vehicle's velocity is higher than `adaptive_trajectory_velocity_th` otherwise pitch of the estimated ego-pose is used for slope value.
77+
- Pros: Can be used in combination with delay compensation for high speeds
78+
- Cons: There might be a loss of comfort when slope source is switched
7079

7180
**Notation:** This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
7281

@@ -108,23 +117,6 @@ Depending on the actuating principle of the vehicle, the mechanism that physical
108117

109118
In this controller, the predicted ego-velocity and the target velocity after the delay time are calculated and used for the feedback to address the time delay problem.
110119

111-
### Slope compensation
112-
113-
Based on the slope information, a compensation term is added to the target acceleration.
114-
115-
There are two sources of the slope information, which can be switched by a parameter.
116-
117-
- Pitch of the estimated ego-pose (default)
118-
- Calculates the current slope from the pitch angle of the estimated ego-pose
119-
- Pros: Easily available
120-
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
121-
- Z coordinate on the trajectory
122-
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
123-
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
124-
- Pros: Can be used in combination with delay compensation (not yet implemented)
125-
- Cons: z-coordinates of high-precision map is needed.
126-
- Cons: Does not support free space planning (for now)
127-
128120
## Assumptions / Known limits
129121

130122
1. Smoothed target velocity and its acceleration shall be set in the trajectory
@@ -178,7 +170,8 @@ AutonomouStuff Lexus RX 450h for under 40 km/h driving.
178170
| min_acc | double | min value of output acceleration [m/s^2] | -5.0 |
179171
| max_jerk | double | max value of jerk of output acceleration [m/s^3] | 2.0 |
180172
| min_jerk | double | min value of jerk of output acceleration [m/s^3] | -5.0 |
181-
| use_trajectory_for_pitch_calculation | bool | If true, the slope is estimated from trajectory z-level. Otherwise the pitch angle of the ego pose is used. | false |
173+
| slope_source | string | It defines the slope source for the vehicle. Available options: "raw_pitch", "trajectory_pitch" or "trajectory_adaptive" | "raw_pitch" |
174+
| adaptive_trajectory_velocity_th | double | Threshold velocity value for state transition of slope sources. Only usable when `slope_source` is "trajectory_adaptive". [m/s] | 1.0 |
182175
| lpf_pitch_gain | double | gain of low-pass filter for pitch estimation | 0.95 |
183176
| max_pitch_rad | double | max value of estimated pitch [rad] | 0.1 |
184177
| min_pitch_rad | double | min value of estimated pitch [rad] | -0.1 |

0 commit comments

Comments
 (0)