Software Requirements Specification (SRS) Project CACC++

15
Software Requirements Specification (SRS) Project CACC++ Authors: Alec Gillis, Brandon Hu, Gabe Sanborn, Michael Giovinazzo, Aaron Kovanda Customer: Mr. William Milam, Ford Motor Company Instructor: Dr. Cheng 1 Introduction The SRS document describes the basic information for the Cooperative Adaptive Cruise Control ++ system (CACC++) project. It will cover the purpose of this system along with its scope. This document will also dive into how a user will be able to interact with the system and in turn how the system will respond to these interactions. The system will be laid out in several different diagrams that will give an accurate representation of how it will function. Several scenarios will be given in order to represent the systems functionality along with a description of how our prototype will work. 1.1 Purpose The purpose of this document is to provide a detailed description of a Cooperative Adaptive Cruise Control (CACC++) system. The document will explain how the system functions, features that can be found in the system, and its interface. It will also layout how the system reacts to external stimuli and the constraints under which it will operate. The intended audience for this information is the stakeholders and the developers of this project. 1.2 Scope The CACC system is a software-based control system that increases convenience and safety for drivers. The system will utilize a combination of information from cameras, sensors, and radio communications to provide an interface to the driver via the dashboard. From the dashboard, the user will be able to engage or disengage the system, and view warnings as they appear. Once engaged, the system will maintain a constant vehicle speed relative to the target vehicle and the vehicle that it is following, which may or may not be the same vehicle. The system is designed to set up a grouping of CACC enabled vehicles or platoon, following one after another at a constant speed. These vehicles will follow and collect speed and location information from a lead vehicle while maintaining a safe following distance. The platoon will be able to detect road obstacles like construction, cars or pedestrians on the side of the road, or accidents. When one of

Transcript of Software Requirements Specification (SRS) Project CACC++

Page 1: Software Requirements Specification (SRS) Project CACC++

Software Requirements Specification (SRS)

Project CACC++

Authors: Alec Gillis, Brandon Hu, Gabe Sanborn, Michael Giovinazzo, Aaron Kovanda

Customer: Mr. William Milam, Ford Motor Company

Instructor: Dr. Cheng

1 Introduction

The SRS document describes the basic information for the Cooperative Adaptive

Cruise Control ++ system (CACC++) project. It will cover the purpose of this system

along with its scope. This document will also dive into how a user will be able to interact

with the system and in turn how the system will respond to these interactions. The system

will be laid out in several different diagrams that will give an accurate representation of

how it will function. Several scenarios will be given in order to represent the systems

functionality along with a description of how our prototype will work.

1.1 Purpose

The purpose of this document is to provide a detailed description of a Cooperative

Adaptive Cruise Control (CACC++) system. The document will explain how the system

functions, features that can be found in the system, and its interface. It will also layout

how the system reacts to external stimuli and the constraints under which it will operate.

The intended audience for this information is the stakeholders and the developers of this

project.

1.2 Scope

The CACC system is a software-based control system that increases convenience and

safety for drivers. The system will utilize a combination of information from cameras,

sensors, and radio communications to provide an interface to the driver via the

dashboard. From the dashboard, the user will be able to engage or disengage the system,

and view warnings as they appear. Once engaged, the system will maintain a constant

vehicle speed relative to the target vehicle and the vehicle that it is following, which may

or may not be the same vehicle. The system is designed to set up a grouping of CACC

enabled vehicles or platoon, following one after another at a constant speed. These

vehicles will follow and collect speed and location information from a lead vehicle while

maintaining a safe following distance. The platoon will be able to detect road obstacles

like construction, cars or pedestrians on the side of the road, or accidents. When one of

Page 2: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 2

these obstacles occurs the system will slow down each vehicle in the platoon according to

braking capabilities and speed them back up after passing. Each vehicle in the platoons

radio system will be their primary way to communicate with the rest of the platoon. The

communication will be in real time, sending updates on whether the driver is trying to

leave the platoon, updates on the position, and when needed the vehicle's capability

information like braking and acceleration speeds. The car will also have the ability to

download software updates when needed. If a driver wishes to leave the platoon, they can

disengage the system and the system will notify other vehicles in the platoon.

1.3 Definitions, acronyms, and abbreviations

Term Definition

CACC,

CACC++

Cooperative Adaptive Cruise Control

ITS system Intelligent Transportation System, in the context of the automotive

industry.

SRS System Requirements Specification. This document is an example.

Caravan, platoon A grouping of CACC enabled vehicles, following one after another at a

constant speed.

Stakeholder Anyone with a vested interest in the project.

Non-integrated

vehicle

A vehicle that is not currently engaged in a platoon

Target vehicle,

lead vehicle

The vehicle that is used as the point of reference for CACC enabled

vehicles behind it in the same platoon.

Trailing vehicle A vehicle following a target vehicle in a platoon

GPS Global Position System. A radio navigation system that allows users to

determine their exact location, velocity, and time 24 hours a day, in all

weather conditions, anywhere in the world.

1.4 Organization

The remainder of the paper is organized as follows.

Section 2 of the SRS document provides an overview of the CACC system

functionality and its constraints. Section 2.1 specifically chronicles the context and

constraints of the system. Section 2.2 describes the functionality of the CACC system and

how the system will perform. Section 2.3 explains expectations are surrounding the user

in order for the CACC system to function effectively. Section 2.4 describes the specific

Page 3: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 3

constraints of the system and section 2.5 explains the assumptions and dependencies that

the system makes. Finally, section 2.6 explains requirements that are outside of the scope

of the current system but could be potentially implemented in the future.

Section 3 describes the specific requirements of the CACC system and provides

additional requirements relating to the cybersecurity of the CACC system.

Section 4 of the SRS document shows and describes use case diagrams, domain

models, sequence diagrams, and state diagrams that help illustrate specific scenarios that

the CACC system may encounter and how those scenarios would be handled.

Section 5 of the SRS document offers information about the prototype, how it works,

and how to access the prototype. Section 5 specifically covers the functionality of the

prototype. Section 5.1 explains what requirements are needed to run the prototype and

section 5.2 gives a sample scenario of the CACC system in the context of the prototype.

Finally, section 6 of the document catalogs the resources used to create this SRS

document, as well as provide an entry for our website, and section 7 contains information

regarding the point of contact for the project.

2 Overall Description

This section will provide an overview of the Cooperative Adaptive Cruise Control

system. It will provide information on the context behind the creation and functions of

the overall system. It will also review the constraints of the system and the expectations

of a user interacting with a CACC vehicle. Lastly, any assumptions made during the

system design and potential future improvements to the system will be addressed.

2.1 Product Perspective

The automotive industry is going through a software-based revolution to provide added safety features and convenience to drivers and passengers. Vehicles are becoming increasingly automated using breakthrough technology that assists drivers in maintaining control of their vehicles on the way to their destination. One such technological advancement that will aid drivers is CACC. CACC attempts to maintain a constant forward vehicle speed, as specified by the driver. Furthermore, any vehicles that have CACC can create a platoon of vehicles to travel together.

Cooperative adaptive cruise control uses several subsystems to interface with its driving environment and other vehicles. CACC uses radar sensing to detect, id and track target vehicles. Radio communication is used to communicate with other CACC enabled vehicles and general infrastructure. An electronic throttle control and brake by wire regulate vehicle speed. The GPS system maintains vehicle position, speed and direction information, and aids in differentiating between vehicles and known fixed objects. The vehicle also has forward looking cameras to visually identity vehicles and estimate distance and relative speed. Lastly, all vehicle subsystems are run and coordinated by the vehicle controller.

Page 4: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 4

2.2 Product Function The Cooperative Adaptive Cruise Control (CACC) system attempts to maintain a constant forward vehicle speed, as specified by the driver. In addition, using a combination of forward radar and camera sensors, CACC detects when another vehicle is in its forward path and adjusts its own speed via throttle and braking control to maintain a safe following distance behind it. The vehicle can set up a platoon of vehicles that follow a lead vehicle, with safe spacing between each vehicle.

2.3 User Characteristics The user is the driver of the vehicle utilizing the CACC system. The driver is expected to maintain focus of their surroundings during the entire duration of the CACC autopilot use. The driver also sets the desired speed and chooses when to engage and disengage with a platoon.

2.4 Constraints The CACC system must at all times maintain a minimum distance between the subject vehicle and target vehicle present in the system. The vehicle must always relay information to other platoon vehicles, even when the CACC system is inactive. The vehicle must never crash from CACC decisions. The car will prevent vehicle accidents from happening. If the system needs to be disengaged due to a system failure, it will give the user sufficient warning before disengagement.

2.5 Assumptions & Dependencies The CACC system specifications assume that the driver is expected to have a driver license and know how to follow traffic laws and rules of the road. The driver must also be able to be aware of their surroundings during the entire duration of CACC use.

2.6 Approportioning of Requirements Based on customer feedback, requirements that are beyond the scope of the current project that may be addressed in future iterations of the CACC system are lane-change capabilities and driving in inclement weather conditions

Section 3:

Primary Requirements:

1) Maintain cruise control when engaged.

2) Give the user sufficient warning if the system needs to be disengaged.

3) Establish communication between multiple vehicles to transfer information. Received

information is to be used to operate cruise control in relation to the cars ahead.

Page 5: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 5

4) Adjust speed using throttle control and braking to keep a constant distance from the platoon

vehicle in front.

5) Detect road obstructions (potholes, construction sites, cars on side of road, etc.) via radar

sensing.

6) System evaluates proper speed using present contexts (curve speed assist, hill management,

etc.).

7) Detect lead car in caravan via radio communication.

8) Maintain a close following distance between CACC enabled vehicles to discourage other

vehicles from cutting in.

9) Ensure cruise control speed is the fastest it can safely be, given the circumstances of

target/trailing vehicles present or if the vehicle is part of a platoon.

Secondary Requirements:

10) Vehicles in the system should relay information via consistent updates.

11) When a non-integrated car breaks the string, the string identifies a new lead car.

12) Use information from other surrounding vehicles to control the throttle & brakes.

13) Broadcast GPS information to trailing and leading vehicles.

14) Main system will rely on whatever sub-systems are currently and functionally available.

Global Invariants:

15) A minimum distance between subject vehicle and target vehicle present in the system.

16) Vehicles must always relay information to other platoon vehicles, even when the cruise

system is inactive.

17) Cars will prevent vehicle accidents.

18) Cars will abide by speed laws.

19) Cars will always be driving on a road.

20) Fall back to adaptive cruise control if the vehicle falls out of platoon.

21) Give control back to the user if the system cannot recover from failure.

22) Enhance traffic flow efficiency.

23) Improve traffic safety.

11) Decrease fuel consumption.

12) Improve traffic safety.

13) Improve comfort/convenience

Page 6: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 6

Section 4:

Use Case Descriptions:

--------------------------------------------------------------------------------------

Use Case: Set Speed

Actors: Driver, Vehicle

Type: Primary & Essential

Description: Set the speed of the vehicle based on driver preferences if not in a platoon

or based on the platoon speed if part of a platoon

Cross References: 1, 4, 9, 12, 15

Use-Cases: Accelerate, Decelerate, DetectEnvironment

--------------------------------------------------------------------------------------

Use Case: Accelerate

Actors: Vehicle, Driver

Type: Primary & Essential

Description: Accelerate the vehicle

Cross References: 4, 12, 15

Use-Cases: Set Speed

--------------------------------------------------------------------------------------

Use Case: Decelerate

Actors: Vehicle, Driver

Type: Primary & Essential

Description: Decelerate the vehicle

Cross References: 4, 12, 15

Use-Cases: Set Speed, Avoid Obstacle

--------------------------------------------------------------------------------------

Use Case: Join Platoon

Actors: Vehicle, Driver

Page 7: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 7

Type: Primary & Essential

Description: Enable a vehicle to merge into a platoon & enable CACC capabilities.

Cross References: 3, 7, 10, 13, 16, 18, 22, 23

Use-Cases: None

--------------------------------------------------------------------------------------

Use Case: Leave Platoon

Actors: Vehicle, Driver

Type: Primary & Essential

Description: Have the vehicle leave the platoon it is in & disable CACC capabilities.

Cross References: 2, 20, 21

Use-Cases: Disengage System

--------------------------------------------------------------------------------------

Use Case: Detect Surrounding

Actors: Vehicle Subsystems

Type: Primary

Description: Use the vehicle subsystems to detect the surrounding environment

Cross References: 5, 6, 7, 8, 11, 12, 14, 15, 19

Use-Cases: Avoid Obstacle

--------------------------------------------------------------------------------------

Use Case: Transfer Information

Actors: Vehicle Subsystems

Type: Primary

Description: Use the vehicle subsystems to communicate with other CACC vehicles

Cross References: 10, 13

Use-Cases: N/a

--------------------------------------------------------------------------------------

Use Case: Avoid Obstacle

Actors: Vehicle

Type: Primary & Essential

Description: Avoid an obstacle in the vehicle’s pathway

Cross References: 5, 17

Use-Cases: Detect Surroundings, Decelerate

--------------------------------------------------------------------------------------

Use Case: Disengage System

Actors: Vehicle

Type: Primary & Essential

Description: Disengage all CACC systems. The vehicle is no longer part of a platoon.

Cross References: 2, 20, 21

Use Cases: Leave Platoon

Page 8: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 8

Domain Model:

Page 9: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 9

Page 10: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 10

Page 11: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 11

• Scenario of Systems:

o Adaptive Cruise Control acceleration

▪ In a CACC++ enabled platoon, all cars are trailing a lead car. In

the case where the lead car’s speed increases, the rest of the

platoon is signaled of a change in speed via radio signal. Cars in

the platoon will receive the command and determine, by radar

sensing, whether it can speed up. The vehicle controller will

respond accordingly by engaging the throttle control.

o Adaptive Cruise Control deceleration

▪ In a CACC++ system enabled platoon, all cars are following

instructions from the lead vehicle. If the car needs to decelerate it

will be fed information obtained from the radar sensors and the

Page 12: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 12

forward looking cameras. It will take this information, decide a

more appropriate slower speed and send that to the platoon through

radio communication. The system then begins the deceleration

process.

o Joining a Platoon

▪ Driver approaches the platoon preparing to join. Driver enables the

CACC function of the car once properly positioned in platoon. As

the car becomes enabled, radio communication begins transmitting

from the enabled vehicle, sending signals to the platoon vehicles

and receiving signals back from them. The vehicle’s speed

becomes adjusted based on signals received from platoon, the

vehicle also sets a platoon rank based on its position in platoon. If

the vehicle is unable to join the platoon, as indicated by signals

received by the platoon, or the driver disengages the CACC, the

radio communications will cease and the car will no longer have

CACC active.

▪ Join Platoon:

Page 13: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 13

o Leaving a Platoon:

▪ Driver disengages the CACC system. The vehicle sends a signal to

disable CACC. As the car becomes disabled, radio communication

begins transmitting from the enabled vehicle, sending signals to the

platoon vehicles to leave the platoon.The vehicle falls back to

ACC, and the radio communications will cease once CACC is no

longer active.

▪ Leave

Platoon

State Diagram

The vehicle starts out as stationary. The user then begins driving. The CACC system

starts out as disengaged. Once the system is activated, the vehicle performs all of the

capabilities of adaptive cruise control. If the vehicle approaches another car with CACC

capabilities, the user can accept a request to join or create a fleet. The user can leave a

fleet or stop using adaptive cruise control by disengaging the system.

Page 14: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 14

The prototype will show the expected behavior of the system given various scenarios presented

by the customer. The scenarios in the prototype range from simple to advanced and are meant to

display the interactions between the systems implemented in the vehicles and how the platoon

reacts to the actions of the cars in the platoon as well as outside of the platoon. 5.1: How to Run the Prototype

• To use the prototype, you will need internet access and access to the CACC3 team

website.

• There is no specific system configuration needed to use the prototype. Anyone with

internet access can use the prototype.

• To operate the prototype, select a scenario from the list and the appropriate diagrams

will be displayed to explain how the system will react to the scenario.

• Prototype Link: http://cse.msu.edu/~kovandaa/prototype.html

5.2: Sample Scenario

Scenario Eight: Fully working system in a platoon. The ITS alerts us to an

imminent road hazard. How can we be sure it is a legitimate message from the ITS

system?

Section 6:

[1] W. Milam and B. Cheng, “Cooperative Adaptive Cruise Control++ (CACC++),”

Michigan State University, 2020.

Page 15: Software Requirements Specification (SRS) Project CACC++

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information)

have been made by Betty H.C. Cheng, Michigan State University (chengb at msu.edu) 15

Website: http://cse.msu.edu/~kovandaa/

Section 7:

For further information regarding this document and project, please contact Prof. Betty

H.C. Cheng at Michigan State University (chengb at msu.edu). All materials in this

document have been sanitized for proprietary data. The students and the instructor

gratefully acknowledge the participation of our industrial collaborators.