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

verified cruise control on rc vehicle
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Verified Cruise Control on RC Vehicle

Shashank Ojha and Yufei Wang

1/17

slide-2
SLIDE 2

Objective

  • Implement a verified model (static POV system) on real hardware
  • Fill the gap between theory & practice

2/17

slide-3
SLIDE 3

Motivation

  • Cruise Control system is useful in practice:

○ A stepping-stone towards self-driving cars ○ Long straight highway trucking

3/17

slide-4
SLIDE 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

slide-5
SLIDE 5

Formal Model and Proof

5/17

slide-6
SLIDE 6

Assumptions

6/17

  • 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
slide-7
SLIDE 7

Formal Model

Estimate Obstacle Distance

if (in_sensor_range(obstacle)): sensed_dist = LIDAR_reading else: sensed_dist = sensor_range

Estimate Vehicle Velocity

sensed_vel = ODOM_reading

Control Decision

if (safe(A)): acc = A elif (safe(0.0)): acc = 0.0 else: acc = -B

Dynamics

{ obstacle_dist’ = -v, v’ = acc, t’ = 1 & v ≥ 0 & t ≤ CTRL_T }

7/17

slide-8
SLIDE 8

Timeline of Events

Control Control Velocity Update Velocity Update Obstacle Distance Update Obstacle Distance Update

t

Control must make a decision based on stale data about the velocity and

  • bstacle distance

8/17

ub_v = sensed_vel + A * ODOM_interval lb_obstacle_distance = sensed_distance - (ub_v * LIDAR_interval + 0.5 * A * LIDAR_interval ^2)

ODOM_interval LIDAR_interval

slide-9
SLIDE 9

Safety Condition

Distance Traveled until next Control Decision Stopping Distance Buffer Distance Distance to obstacle We must have distance left over in

  • rder to accelerate

safely

9/17

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 lb_obstacle_distance = sensed_distance - (ub_v * LIDAR_interval + 0.5 * A * LIDAR_interval ^2)

slide-10
SLIDE 10

Implementation

10/17

slide-11
SLIDE 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

slide-12
SLIDE 12

Implementation Challenges

  • Cannot command acceleration directly

○ Approximate acceleration control by velocity control

12/17

V_command = V_old_commanded + A * ε

slide-13
SLIDE 13

Implementation Challenges

13/17

  • 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

slide-14
SLIDE 14

14/17

slide-15
SLIDE 15

Live Demo

15/17

slide-16
SLIDE 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

slide-17
SLIDE 17

Huge Thanks to

17/17

  • André Platzer
  • Katherine Cordwell
  • Aman Khurana