High Speed Autonomous Vehicle Development

This project was done under the sponsorship of General Atomics.
Our team is competing in the development of the software for a fully autonomous, heavily modified, Dallara IL-15. The competition, held by the Indianapolis Motor Speedway and the ESN, is to extend over approximately the next year. Our current goals are to get the car around the track in a stable manner.

Our Team

Charles Birdsong

Project Supervisor

Charles Birdsong, Ph.D. Mechanical Engineering specializes specialty in control systems, instrumentation, vehicle dynamics, autonomous vehicles and system modeling.

James McRoberts

Path Planning/AI/Vehicle control

James is a computer engineering student with industry and research experience in their graduating year. He is a SLO native with special interests in mechatronics and autonomy. Additional to this project, he has also worked on the Mech Warfare team at the Cal Poly Robotics Club as a co-lead and a software lead.

Daniel Leavitt

Localization

From the Seattle area, Daniel Leavitt is a second year at Cal Poly. He is studying electrical engineering as a major and computer science as a minor. Additional to school and working on the Indy Autonomous Challenge team, he is the IEEE Cal Poly  Student Branch’s Parts Coordinator and Project Coordinator.

Our Project's Digital Poster

What is Needed to Program a High Speed Autonomous Vehicle?

Goal

To have a modified Dallara IL-15 IndyCar drive a lap around the Indianapolis Motor Speedway at the highest speed achievable without any human intervention.

Challenges

  • Inferring position on the track
  • Keeping the car on the race line
  • Maintaining control over the vehicle at high, and some lower, speeds

Procedure

  • Test procedure in simulation before testing in real environment
  • Use GPS data to infer the race line based on positioning of the car on the track.
  • Augment the race line with road line data from the vehicle sensors.
  • Lookahead on the race line.
  • Apply the modified race line data to an interpolated, piecewise, PID controller for steering.
  • Increase speed if stable.
  • Send command data to the car.

Results

Lap Time: 7:36 min
Average Speed: 40.8km/hr
Max Speed: ~80km/hr

Limitations

  • The road line data provided to us from the cameras have a high rate of error, and the camera data is blocked from the simulation environment.
  • The car is currently being developed by another team, so the simulation model is also under development. This can throw off almost all of the data coming into the car in a useful sense.

Evaluation

  • Typical lap times are around 60-70 seconds; therefore our main goal is to improve lap time by keeping the vehicle stable at high speeds
  • There are 5 cameras on the vehicle, only one is being pulled from in the current model. More camera data (to emerge some higher order of fidelity), could significantly improve the stability of the model.
  • Having access to multiple race lines helps significantly in augmenting the camera data for the model.
General Atomics

This project is sponsored by...

Ansys SCADE

The software layout of the car's motion controller.

Ansys SCADE is the safety-critical software environment officially used by the challenge teams to develop the basic control systems of the vehicle. It is designed to remove room for bugs in the generated code used special code generators to translate the visual programming language to C. It can also very easily integrate with DDS environments like ROS2 or RTI Connext.

In the above image, you can see the model developed for the vehicle to some extent. All chunks in the image are screen-captured from the actual “code” of the module. After that, the connections were mapped by hand to show you the highest level web of logic that we can construct. This, in essence, is a visual summary of how to drive an Indy Car.

Path Planning

Our current setup for path planning is to use set, waypoint based, race lines defined by the GPS (in simulation). The path planner takes a set buffer of race line waypoints ahead of the car, then regresses a 3rd degree polynomial. On this polynomial, a lookahead point is determined with respect to time. After this point is found, the steering from the car follows the angle from the lookahead point and is mixed with a PID controlled actuation value to handle the distance from the race line.

Localization

The precision of the vehicle’s location is crucial in having a high-speed autonomous vehicle operate. Localization methods are used to combine GPS, LIDAR, or other sensor data to precisely pinpoint the vehicle location.

GPS

Equipment:
NovAtel PwrPak7D-E2

  • Horizontal Accuracy: ±2 cm
  • Vertical Accuracy: ±3 cm

With the high precision of the GPS system used, the first step of the localization strategy is to strictly use GPS, which can be compared to the GPS race path.

VRXperience

VRXperience is the software used to simulate our vehicle and our competitors’ vehicles. We will first test our strategies in this simulation software because it is more efficient than testing in real life and will help avoid any safety hazards.

Moving Forward

  • Once again, the main goal should be improving the lap time.
  • Path planning models for navigating around other autonomous vehicles will need to be developed.
  • Implementing the LIDAR subsystem found in the car can potentially unlock more stable localization options, improving vehicle performance.
  • ROS2 is to be the more common development environment due to the limitations of SCADE to safety critical applications.
IAC Press Material

Acknowledgements

We’d like to thank General Atomics for their help in funding this research project.

Coronavirus Update and Resources