PathTrackingBicycle
PathTrackingBicycle copied to clipboard
Path tracking with dynamic bicycle models
PathTrackingBicycle
Implementation of path tracking with a linear/non-linear bicycle model. We use the PID and standley controllers to control the longitudinal and lateral movements, respectively. We use the key idea of ref.[1], while replacing the vehicle dynamics in Carla simulator with linear/non-linear bicycle models.
Bicycle Models
We use the kinematic and dynamic bicycle models as mentioned in ref.6.
Fig.1 Kinematic Bicycle Model
- Linear Bicycle Model.
- Non-linear bicycle model.
The control inputs are [throttle, steering].
Controllers
- PID controller.
Given the current speed v(t) we minimize the error term e = v_desired − v_current using a PID controller for the throttle value. The range for the throttle values is [-1, 1]. The formula is
Where KP, KI and KD are proportional, integral and derivative parameters, respectively.
- Stanley Controller.
For lateral control, we adapt the standley control(To learn more about the Stanley Control, check out ref.5). There are two error metrics: the distance to centerline d(t) and the relative angle ψ(t). The control law to calculate the steering angle δ_{SC}(t) at the current vehicle speed v(t) is given by
where k is a gain parameter.
Experiments
We test vehicle models with PID and standley controllers.
Fig.2 Speed tracking of linear vehicle model
Fig.3 Path tracking of linear vehicle model
The testing results on non-linear bicycle models.
Fig.4 Speed tracking of non-linear vehicle model
Fig.5 Path tracking of non-linear vehicle model
Here we enlarge the throttle by 5 times for better visualization.
ToDO Lists:
- [ ] For better tracking accuracy, we use the linearly interpolation between waypoints. While We can also use better methods like spline interpolation, for example. [see ref.2]
- [ ] To better improvement, we can use seperate longitudinal and lateral bicycle model. In our non-linear bicycle model, we simply consider Fx as the driving force, while this is not how it is done in a real vehicle (engine -> torque converter -> transmission -> wheel). For better performance, please go to ref.3 and ref.4.
- [ ] Refine the performance.
- [ ] For better tracking performance, we can also try control methods, like MPC. [see ref.7]
Reference:
-
Path tracking simulation with Stanley steering control and PID speed control.
-
[Kong, Jason, et al. "Kinematic and dynamic vehicle models for autonomous driving control design." 2015 IEEE Intelligent Vehicles Symposium (IV). IEEE, 2015.] (https://borrelli.me.berkeley.edu/pdfpub/IV_KinematicMPC_jason.pdf)