Connected and automated vehicles subteam
What is the EcoCar Mobility Challenge?
The EcoCar Mobility Challenge is the latest U.S. Department of Energy Advanced Vehicle Technology Competition (AVTC) series - 12 university teams are a part of this four-year competition. These teams make use of advanced propulsion systems, as well as connected and automated vehicle technology to improve the energy efficiency, safety, and consumer appeal of the 2019 Chevrolet Blazer.
We make use of onboard sensors and wireless communication from the vehicles surrounding the environment to improve overall operation efficiency in the connected urban environment of the future. The aim is to transform this vehicle in a way where the driver and car have a consequential and well-rounded experience with respect to its interaction with the outside world. Our EcoCar Mobility Challenge team at Georgia Tech consists of three teams mainly: CAVs, PSI, and PCM which collectively work to make this project work at its full capacity. We are currently in our Year 2 of the competition where our aim is to Hybridize the blazer and achieve SAE Level 2 automation.
CAVs Subteam & Motivation
The CAVs subteam, which stands for Connected and Automated Vehicles subteam, is responsible to implement SAE Level 2 automation and V2X connectivity using sensors to collect information about vehicle surroundings and use the data to control the vehicle. Our plans for this semester included sensor fusion development and integration onto the controller, Sensor Fusion Benchmark/Ground Truth Test Development, ACC, and human-machine interface development. This report is mainly going to cover the sensor fusion benchmark and ground truth test development.
As I had just started working with MatLab, I struggled with understanding the flow of the program which heavily used MathWorks Automated Driving Toolbox, Simulink OnRamp, and other visualization tools. After understanding the flow of the code in the sensor fusion block, I realized that we had 3 fixed test cases on which we tested our model and saw the changes. This is when I realized that we should have a way by which we can automate and randomize these test cases to check if the model can work in all cases.
Driving Scenario Test Cases
The Driving Scenario Designer app helped me design synthetic driving scenarios for testing our autonomous driving systems. It is a relatively easy platform to use which allows the user to drag-and-drop the road and car/actor models. Using the existing test cases that we had I used the code where the lidar, radar, and other sensors are mounted on the ego vehicle which will help collect the data to move the car. I imported the OpenDRIVE roads and lanes into the driving scenarios. Furthermore, based off changes in the scenario, I got the synthetic sensor detections that were imported to MATLAB. After generating the MATLAB code of the scenario and sensors, I imported it back into the app for further simulation.
I first generated a Simulink model of a scenario of the vehicle just following a lead vehicle, however, I randomized the curvature of the road/highway for every case.
After doing so I tried to randomize the parameters: Roads, Actors, Class ID (Car, Truck, Barrier). I tried to randomize it in a way where the scenarios are based on system-level requirements The Highway Lane Following cases reviewed the requirements for the lane-following test bench model that contains metric assessments. These assessments integrate the bench model with the Simulink Test for automated testing. The lane detection, sensor fusion, decision logic, and control components were mostly configured already, and I only made a few changes to those.
Simulink Requirements lets one analyze and manage the requirements:
Each row in this file specifies the requirements in textual and graphical formats for testing the lane-following system for a test scenario. The scenarios with the scenario_LF_ prefix enable you to test lane-detection and lane-following algorithms without obstruction by other vehicles. The scenarios with the scenario_LFACC_ prefix enable you to test lane-detection, lane-following, and ACC behavior with other vehicles on the road. I then wrote a code in MatLab which randomly changed these values of Host Car, Lead Car, and other vehicles, and simply importing them in Simulink allows the user to now test in a random condition.
This test bench model is configured using the helperSLHighwayLaneFollowingSetup script. This setup script takes two inputs: scenarioName and visionVariant. scenarioName can be any one of the previously described test scenarios. visionVariant can be either ProbabilisticDetectionSensor or VisionProcessingAlgorithm. The ProbabilisticDetectionSensor variant enables you to test integration of the control algorithm in the 3D simulation environment, without also integrating the vision processing algorithm. The VisionProcessingAlgorithm variant enables you to test integration of the control algorithm and vision processing algorithm in the 3D simulation environment.