Model version | 1.2 |
Author | KSchmidt |
Last saved | Tue Oct 29 09:43:42 2019 |
Default parameter behavior | tunable |
Block reduction | off |
Conditional branch optimization | off |
Analyzed model | Frame_EV3C_ec |
Logic block short circuiting | off |
Test# | Description | Started execution | Ended execution |
Test 1 | TSeq003 No Emergency stop - drive rev 29-Oct-2019 09:43:43 | 29-Oct-2019 09:43:44 | 29-Oct-2019 09:43:45 |
Model Hierarchy/Complexity | Test 1 | |||||||||||||||||||||||||
Decision | Condition | TBL | Execution | |||||||||||||||||||||||
1. Frame_EV3C_ec | 67 | 46% |
|
50% |
|
0% |
|
82% |
|
|||||||||||||||||
2. . . . EV3Control | 66 | 46% |
|
50% |
|
0% |
|
74% |
|
|||||||||||||||||
3. . . . . . . EmergencyStopSwitch | 4 | 50% |
|
NA | NA | 100% |
|
|||||||||||||||||||
4. . . . . . . SensorDataPreprocessing | NA | NA | NA | 100% |
|
|||||||||||||||||||||
5. . . . . . . VehicleManager | 62 | 46% |
|
50% |
|
0% |
|
68% |
|
|||||||||||||||||
6. . . . . . . . . . GyroInitialization | NA | 50% |
|
NA | 100% |
|
||||||||||||||||||||
7. . . . . . . . . . ManageVehicleStates | 22 | 50% |
|
38% |
|
NA | 100% |
|
||||||||||||||||||
8. . . . . . . . . . . . . Chart | 21 | 47% |
|
38% |
|
NA | NA | |||||||||||||||||||
9. . . . . . . . . . . . . . . . SF: EV3Control/VehicleManager/ManageVehicleStates/Chart | 20 | 47% |
|
38% |
|
NA | NA | |||||||||||||||||||
10. . . . . . . . . . . . . . . . . . . SF: VehicleControlOn | 8 | 44% |
|
NA | NA | NA | ||||||||||||||||||||
11. . . . . . . . . . . . . . . . . . . . . . SF: ManualDrive | 4 | 63% |
|
NA | NA | NA | ||||||||||||||||||||
12. . . . . . . . . . . . . HoldAfterTouch | 1 | 100% |
|
NA | NA | 100% |
|
|||||||||||||||||||
13. . . . . . . . . . VehicleControl | 40 | 43% |
|
57% |
|
0% |
|
60% |
|
|||||||||||||||||
14. . . . . . . . . . . . . HornControl | 1 | 100% |
|
NA | NA | 100% |
|
|||||||||||||||||||
15. . . . . . . . . . . . . StatusLightControl | 5 | 88% |
|
NA | NA | 91% |
|
|||||||||||||||||||
16. . . . . . . . . . . . . . . . StatusLightCtrlOff | NA | NA | NA | 100% |
|
|||||||||||||||||||||
17. . . . . . . . . . . . . . . . StatusLightDefault | NA | NA | NA | 100% |
|
|||||||||||||||||||||
18. . . . . . . . . . . . . . . . StatusLightEmergency | NA | NA | NA | 0% |
|
|||||||||||||||||||||
19. . . . . . . . . . . . . . . . StatusLightIdle | NA | NA | NA | 100% |
|
|||||||||||||||||||||
20. . . . . . . . . . . . . . . . StatusLightObstacle | NA | NA | NA | 100% |
|
|||||||||||||||||||||
21. . . . . . . . . . . . . SteeringControl | 27 | 19% |
|
40% |
|
0% |
|
42% |
|
|||||||||||||||||
22. . . . . . . . . . . . . . . . AutoSteering | 18 | 0% |
|
0% |
|
0% |
|
29% |
|
|||||||||||||||||
23. . . . . . . . . . . . . . . . . . . EstimatedSteeringAngle | NA | NA | 0% |
|
0% |
|
||||||||||||||||||||
24. . . . . . . . . . . . . . . . . . . PathFollower | 10 | 0% |
|
NA | NA | 33% |
|
|||||||||||||||||||
25. . . . . . . . . . . . . . . . . . . . . . FollowTheCarrotAlgorithm | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
26. . . . . . . . . . . . . . . . . . . . . . . . . GetGoalPointLocal | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
27. . . . . . . . . . . . . . . . . . . . . . . . . . . . FollowTheCarrotAlgorithm | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
28. . . . . . . . . . . . . . . . . . . . . . NoPathFollowing | NA | NA | NA | 0% |
|
|||||||||||||||||||||
29. . . . . . . . . . . . . . . . . . . . . . PurePursuitAlgorithm | 2 | 0% |
|
NA | NA | 38% |
|
|||||||||||||||||||
30. . . . . . . . . . . . . . . . . . . . . . . . . ComputeSteeringNecessarySteeringAngle | NA | NA | NA | 38% |
|
|||||||||||||||||||||
31. . . . . . . . . . . . . . . . . . . . . . . . . GetGoalPointLocal | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
32. . . . . . . . . . . . . . . . . . . . . . . . . . . . TransformGoalPointToLocal | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
33. . . . . . . . . . . . . . . . . . . . . . RotationMatrix | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
34. . . . . . . . . . . . . . . . . . . . . . . . . MATLAB_Function | 2 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
35. . . . . . . . . . . . . . . . . . . PathPlanner | 6 | 0% |
|
NA | NA | 33% |
|
|||||||||||||||||||
36. . . . . . . . . . . . . . . . . . . . . . GetNextGoalPointGlobal | 5 | 0% |
|
NA | NA | 100% |
|
|||||||||||||||||||
37. . . . . . . . . . . . . . . . . . . . . . . . . GoalPointGlobal | 5 | 0% |
|
NA | NA | NA | ||||||||||||||||||||
38. . . . . . . . . . . . . . . . . . . . . . ShiftNextGoalPointGlobal | 1 | 0% |
|
NA | NA | 14% |
|
|||||||||||||||||||
39. . . . . . . . . . . . . . . . . . . . . . . . . LateralShift | NA | NA | NA | 20% |
|
|||||||||||||||||||||
40. . . . . . . . . . . . . . . . . . . . . . . . . NoShift | NA | NA | NA | 0% |
|
|||||||||||||||||||||
41. . . . . . . . . . . . . . . . . . . SteeringMotorControllerSimple | 2 | 0% |
|
0% |
|
NA | 27% |
|
||||||||||||||||||
42. . . . . . . . . . . . . . . . . . . . . . AutoSteerLeft | NA | NA | NA | 0% |
|
|||||||||||||||||||||
43. . . . . . . . . . . . . . . . . . . . . . AutoSteerRight | NA | NA | NA | 0% |
|
|||||||||||||||||||||
44. . . . . . . . . . . . . . . . . . . . . . NoSteer | NA | NA | NA | 0% |
|
|||||||||||||||||||||
45. . . . . . . . . . . . . . . . ManualSteering | 8 | 60% |
|
67% |
|
NA | 80% |
|
||||||||||||||||||
46. . . . . . . . . . . . . . . . . . . NoSteer | 2 | 100% |
|
NA | NA | 100% |
|
|||||||||||||||||||
47. . . . . . . . . . . . . . . . . . . SteerLeft | 2 | 50% |
|
NA | NA | 0% |
|
|||||||||||||||||||
48. . . . . . . . . . . . . . . . . . . SteerRight | 2 | 50% |
|
NA | NA | 0% |
|
|||||||||||||||||||
49. . . . . . . . . . . . . VelocityControl | 7 | 80% |
|
100% |
|
NA | 100% |
|
||||||||||||||||||
50. . . . . . . . . . . . . . . . EnabledDriveController | 3 | 100% |
|
100% |
|
NA | 100% |
|
||||||||||||||||||
51. . . . . . . . . . . . . . . . . . . Compare_To_Zero | NA | 100% |
|
NA | 100% |
|
||||||||||||||||||||
52. . . . . . . . . . . . . . . . NoInput | 2 | 100% |
|
NA | NA | 100% |
|
|||||||||||||||||||
53. . . . Input Bus | NA | NA | NA | 100% |
|
|||||||||||||||||||||
54. . . . TestData | NA | NA | NA | 100% |
|
|||||||||||||||||||||
55. . . . TestOutput | NA | NA | NA | 100% |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conditions analyzed
|
Conditions analyzed
|
Conditions analyzed
|
Conditions analyzed
|
Conditions analyzed
|
|
|
|
|
|
1 [gyroReady == true && ... 2 remoteControl ~= REMOTE_STOP] #1: [gyroReady == true && ...Decisions analyzed
Conditions analyzed
#2: remoteControl ~= REMOTE_STOP]Conditions analyzed
|
1 [remoteControl == REMOTE_STOP] #1: [remoteControl == REMOTE_STOP]Decisions analyzed
|
1 [emergencyStopObstacle == true && ... 2 remoteControl ~= REMOTE_DRIVE_REV] #1: [emergencyStopObstacle == true && ...Decisions analyzed
Conditions analyzed
#2: remoteControl ~= REMOTE_DRIVE_REV]Conditions analyzed
|
1 [remoteControl == REMOTE_STOP] #1: [remoteControl == REMOTE_STOP]Decisions analyzed
|
1 [remoteControl == REMOTE_START] #1: [remoteControl == REMOTE_START]Decisions analyzed
|
1 [remoteControl == REMOTE_DRIVE_REV] #1: [remoteControl == REMOTE_DRIVE_REV]Decisions analyzed
|
|
|
1 [remoteControl == REMOTE_DRIVE_AUTO_ON] #1: [remoteControl == REMOTE_DRIVE_AUTO_ON]Decisions analyzed
|
1 [remoteControl == REMOTE_DRIVE_AUTO_OFF] #1: [remoteControl == REMOTE_DRIVE_AUTO_OFF]Decisions analyzed
|
|
1 [remoteControl == REMOTE_DRIVE_FWD] #1: [remoteControl == REMOTE_DRIVE_FWD]Decisions analyzed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Look-up Table Details |
|
|
|
|
|
|
|
|
1 function [deltaHeadingRad, targetHeadingRad] = headingToGoalPoint(posGlobal, goalPointGlobal, rotMat, gyroAngleRad) 2 3 xaxisCar_g = rotMat * [1; 0]; 4 5 vectorToGoalpoint_g = goalPointGlobal - posGlobal; 6 7 crossProd = cross([xaxisCar_g;0], [vectorToGoalpoint_g;0]); 8 9 deltaHeadingRad = acos( dot(xaxisCar_g, vectorToGoalpoint_g) / (norm(xaxisCar_g) * norm(vectorToGoalpoint_g)) ) ... 10 * sign(crossProd(3)); 11 12 targetHeadingRad = (gyroAngleRad + deltaHeadingRad); 13 end 14 15 #1: function [deltaHeadingRad, targetHeadingRad] = headingToGoalPoint(posGlobal,...Decisions analyzed
|
|
|
|
|
|
|
|
|
|
|
|
|
1 function goalPointLocal = goalpoint_l(posGlobal, goalPointGlobal, rotMat) 2 3 % Goal point in vehicle coordinates 4 goalPointLocal = rotMat \ (goalPointGlobal - posGlobal); % equal to: inv(rotMat) * (goalpoint_g - poscar_g) 5 6 #1: function goalPointLocal = goalpoint_l(posGlobal, goalPointGlobal, rotMat)Decisions analyzed
|
|
|
1 function rotMat = rotMat(gyroAngleRad) 2 3 rotMat = [cos(gyroAngleRad) -sin(gyroAngleRad); ... 4 sin(gyroAngleRad) cos(gyroAngleRad)]; 5 #1: function rotMat = rotMat(gyroAngleRad)Decisions analyzed
|
|
|
|
|
1 function goalPointGlobal = goalpoint_g(posGlobal, pathCoords, lookahead) 2 3 distances = sqrt( (pathCoords(:,1) - posGlobal(1,1)).^2 + (pathCoords(:,2) - posGlobal(2,1)).^2 ); 4 [~, j] = min(distances); % j equals index to closest waypoint 5 6 % Move up the path from closest waypoint 7 distToNext = inf; 8 k = j + 20; 9 while distToNext > lookahead 10 if k > size(pathCoords,1) 11 k = size(pathCoords,1); 12 end 13 k = k - 1; 14 if k <= 0 15 disp(k) 16 k = j; 17 break 18 end 19 distToNext = sqrt( (pathCoords(k,1) - posGlobal(1)).^2 + (pathCoords(k,2) - posGlobal(2)).^2 ); 20 end 21 22 % Goal point in global coordinates 23 goalPointGlobal = pathCoords(k,:)'; 24 goalPointGlobal = goalPointGlobal(:); #1: function goalPointGlobal = goalpoint_g(posGlobal, pathCoords, lookahead)Decisions analyzed
#9: while distToNext > lookaheadDecisions analyzed
#10: if k > size(pathCoords,1)Decisions analyzed
#14: if k <= 0Decisions analyzed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conditions analyzed
|
Conditions analyzed
|
|
|
|
|
|
|
|
|
|
Conditions analyzed
|
Conditions analyzed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|