verified cruise control on rc vehicle
play

Verified Cruise Control on RC Vehicle Shashank Ojha and Yufei Wang - PowerPoint PPT Presentation

Verified Cruise Control on RC Vehicle Shashank Ojha and Yufei Wang 1/17 Objective Implement a verified model (static POV system) on real hardware Fill the gap between theory & practice 2/17 Motivation Cruise Control system is


  1. Verified Cruise Control on RC Vehicle Shashank Ojha and Yufei Wang 1/17

  2. Objective Implement a verified model (static POV system) on real hardware ● Fill the gap between theory & practice ● 2/17

  3. Motivation Cruise Control system is useful in practice: ● A stepping-stone towards self-driving cars ○ Long straight highway trucking ○ 3/17

  4. Summary of Deliverables Formal model and proof of system in KeYmaera X ● Implementation of model on an RC vehicle ● Video and Live Demos ● 4/17

  5. Formal Model and Proof 5/17

  6. Assumptions One-dimensional road ● Static Obstacle ● Constant accelerate with rates acc = {A, 0, -B} ● LIDAR sensor measures the obstacle distance ● ODOM sensor measures the car’s velocity ● Asynchronous read from the sensors & control ● 6/17

  7. Formal Model Estimate Obstacle Distance Estimate Vehicle Velocity Control Decision if (in_sensor_range(obstacle)): sensed_vel = ODOM_reading if (safe(A)): sensed_dist = LIDAR_reading acc = A else: elif (safe(0.0)): sensed_dist = sensor_range acc = 0.0 else: acc = -B Dynamics { obstacle_dist’ = -v, v’ = acc, t’ = 1 & v ≥ 0 & t ≤ CTRL_T } 7/17

  8. Control must make a Timeline of Events decision based on stale data about the velocity and obstacle distance Obstacle Velocity Distance Control Update Update t Obstacle Velocity Control Distance Update Update ODOM_interval LIDAR_interval ub_v = sensed_vel + A * ODOM_interval lb_obstacle_distance = sensed_distance - (ub_v * LIDAR_interval + 0.5 * A * LIDAR_interval ^2) 8/17

  9. Safety Condition Safety condition is based on sensed parameters, NOT the true values def safe(a) : lb_obstacle_distance >= ub_v * CTRL_T + 0.5 * a * CTRL_T^2 + (ub_v + a * CTRL_T) / (2 * B) + (BUFFER_DIST) ub_v = sensed_vel + A * ODOM_interval We must have distance left over in lb_obstacle_distance = order to accelerate sensed_distance - (ub_v * LIDAR_interval + 0.5 * A * safely LIDAR_interval ^2) Distance Traveled Stopping Buffer until next Control Distance Distance Decision Distance to obstacle 9/17

  10. Implementation 10/17

  11. RC Vehicle Hardware: LIDAR sensor: 5.6m range, 10Hz ● ODOM sensor: 30Hz ● Max velocity: 6m/s ● Software: ROS ● Subscribe to get sensor data ● Publish to command velocity ● 11/17

  12. Implementation Challenges Cannot command acceleration directly ● Approximate acceleration control by velocity control ○ V_command = V_old_commanded + A * ε 12/17

  13. Implementation Challenges Very noisy ODOM sensor: imprecise V_odom ● Maintain an analytic velocity V_command ○ Use max(V_command, V_odom) to upper bound the real velocity ○ Steering linkage was also damaged ● Manually adjust for bias with software ○ 13/17

  14. 14/17

  15. Live Demo 15/17

  16. Challenges Ahead Move from static obstacle to dynamic obstacle model (need another car) ● Need to approximate POV’s velocity ○ Update hardware: ODOM sensor, direct acceleration control ● Incorporate feedback from sensors to lower the disparity between ● commanded controls and actual dynamics Model other dynamics such as drag and friction forces ● 16/17

  17. Huge Thanks to André Platzer ● Katherine Cordwell ● Aman Khurana ● 17/17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend