Post on 25-Dec-2021
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
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
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.
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.
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
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
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
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:
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
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
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
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:
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.
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.
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.