Project 1 (Mini Project on Vehicle Direction Detection
Aim:
This mini project aims at identifying the the direction of the vehicle which is one of the important features of ADAS [Autonomous driving & Advanced Driver Assistance] systems.For this Vehicle direction detection system design we are going to use MATLAB-simulink tool and after designiing the algorithm model we are going to tag the given requirements to the developed system.
Description of the system:
This particular sub-feature of identifying the direction of vehicle is basically identifying the direction the vehicle is taking based on the camera input. Camera reads the road signs & stores into its memory with unique values for left turn, right turn & straight drive. Depending on the direction it is taking, final indication is given to the driver – as an indication if he is driving in the recommended direction or not. Vehicle Direction Determination can also be coupled along - side features like GPS systems to identify whether the vehicle is reaching its destination in an optimized manner. This sub feature can also be used along with Lane Detection, Highway Warning, Ramp Entry / Exit in Wrong Way Detection etc.
For all these to be done we have to follow the given requirements which are given below:
Requirement - 1:
- Steering wheel input as yaw rate (Signal name: SteeringWheel_YawDegreeInput) is the input for this system.
- This is compared against 3 angular values, one each for left turn, right turn & straight drive (Calibration Values: Right_Turn_AngularLimit, Left_Turn_AngularLimit, Straight_Drive_Steering_Angle) to say which specific direction the steering wheel is turning towards.
- Use switch blocks to compare & develop this requirement. Keep this requirement in a subsystem & output of this requirement is a local signal (Signal Name: Vehicle_Turn_Status).
Requirement – 2:
- Keep this requirement as a separate subsystem. Inputs to this requirement are local signal from requirement 1 (Signal Name: Vehicle_Turn_Status) & an input signal from camera (Signal Name: CameraInput_RoadSign), which confirms the occurrence of a road sign.
- Signal Vehicle_Turn_Status is compared against calibration values (Calibration Values: RightTurn_RoadSign, LeftTurn_RoadSign, Straight_RoadSign), if each of them is found equal, then each of the three corresponding output is compared against the camera input signal,
- Using a logical operator block, only one among them is finally given as output signal (Signal Name: Vehicle_Direction_Indicator).
Procedure for developing the system in MATLAB-simulink:
Step1: open MATLAb- new simulink-blank project
Step2:For the Vehicle direction system the main inputs are Steeringwheel_yawdegreeinput & Camerainput_roadsign. so take 2 inports from library.
Step3: For this system we have only one main output i.e vehicle_direction_indicator...so take one outport from library.
Step4: Take one subsystem- [main] and double click on it and inside the subsystem, create two [level1] subsystems and 2 inports and 1 outport.
Step5:Inside level1 first subsystem create 1 inport for the input Steering wheel input as yaw rate (Signal name: SteeringWheel_YawDegreeInput) .
Then take 3 constant blocks and rename them as Right_Turn_AngularLimit, Left_Turn_AngularLimit, Straight_Drive_Steering_Angle. this is to to say in which specific direction the steering wheel is turning towards.
Then take 2 switch blocks to compare these 3 parameters with input & output of this requirement is a local signal (Signal Name: Vehicle_Turn_Status).
Step6:Now inside Level2 subsytem, input will be a local signal from level1 subsystem (Signal Name: Vehicle_Turn_Status) and another main input from rom camera (Signal Name: CameraInput_RoadSign), which confirms the occurrence of a road sign.
Take three constant blocks and rename them with (Calibration Values: RightTurn_RoadSign, LeftTurn_RoadSign, Straight_RoadSign) and these values are compared against Signal Vehicle_Turn_Status. If each of them is found equal, then each of the three corresponding output is compared against the camera input signal.
Then use 3 Logical AND blocks to compare each of the Turn signal with camera input. Finally the AND block outputs are given to MuX block and one output is obtained which is our required final output in the name Vehicle_Direction_Indicator.
Step7: Now provide all connections, save the model
Step8: Goto Model explorer and click new data dictionary file and save it as .sldd file
Step9:Create 4 new simulink signal and 6 new simulink parameters to set their data types, dimensions,minimum & maximum range, storage classes as mentioned in requirement document and save it
step10:Goto simulink model and right click oon the model and link the data dictionary file to the model and run the model
step11: Create a word document with the requirements and select the first line alone in word file and keep it open
step12:Right click upon the model and click requirements and open word file and you will double click on your word file name upon browse option and hence it gets added or tagged to our model.
step13: The main block color gets changed upon tagging the requirements.
As code generation is optional i have skipped it since i dont have all toolboxes necessary as of now.
Simulink Model:
The main system model created is as below:

The inner level1 subsystems denoting requirements1 &2 seperately

Subsystem level2 - fulfilling requirements1

Subsystem level2 - fulfilling requirements2

SLDD File Output:

Requirement Tagging Outputs:

This color change indicates requirements have been tagged successfully.

This evidences that word file named "Mini project - vehicle direction determination" has been existing inside the block.

Results:
All the above images indicate that the mini project on Vehicle direction detection system have been successfully designed and verified and rrequirements have been added to the system as expected.