Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

DongChen06/PathTrackingBicycle

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

output_example
Fig.1 Kinematic Bicycle Model

  • Linear Bicycle Model.

output_example

  • Non-linear bicycle model.

output_example

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

output_example

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

output_example

where k is a gain parameter.

Experiments

We test vehicle models with PID and standley controllers.

output_example
Fig.2 Speed tracking of linear vehicle model

output_example
Fig.3 Path tracking of linear vehicle model

The testing results on non-linear bicycle models.

output_example
Fig.4 Speed tracking of non-linear vehicle model

output_example
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:

  1. Self Driving Cars Longitudinal and Lateral Control Design

  2. Path tracking simulation with Stanley steering control and PID speed control.

  3. Model predictive control for autonomous driving of a truck

  4. Longitudinal Vehicle Model Implementation

  5. Snider, J. M., "Automatic Steering Methods for Autonomous Automobile Path Tracking", Robotics Institute, Carnegie Mellon University, Pittsburg (February 2009).

  6. [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)

  7. model_predictive_speed_and_steer_control

About

Path tracking with dynamic bicycle models

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.