Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VEHICLE MONITOR
Document Type and Number:
WIPO Patent Application WO/2019/049080
Kind Code:
A2
Abstract:
A vehicle monitor and a method for monitoring a vehicle.

Inventors:
MIZRAHI BOAZ (IL)
ADLER YARON (IL)
SHAPIRA STANISLAV (IL)
MATUKY YIGAL (IL)
ROSENBERG AVIV (IL)
Application Number:
PCT/IB2018/056844
Publication Date:
March 14, 2019
Filing Date:
September 07, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MOBIWIZE SOLUTIONS LTD (IL)
International Classes:
G01B13/02
Other References:
See references of EP 3682417A4
Attorney, Agent or Firm:
RECHES, Oren (IL)
Download PDF:
Claims:
WE CLAIM

1. A method for estimating heights of road segments, the method comprises:

measuring, by a barometer of a vehicle and during a given driving session, inner vehicle pressure to provide multiple barometer measurements; wherein the measuring occurs while the vehicle passes over the road segments;

compensating, by a computer, for barometer affecting vehicle conditions to provide multiple compensated barometer measurements; and

merging the multiple compensated barometer measurements with barometer information obtained during multiple other driving sessions that were executed by multiple vehicles, thereby providing height estimates of the road segments; wherein the merging comprises performing session constant offset compensation and inter session offset compensation.

2. The method according to claim 1 wherein the merging comprises searching for overlapping nodes, wherein each overlapping node corresponds to a same location and belongs to multiple sessions.

3. The method according to claim 2 wherein the merging comprises a welding process for substantially equalizing height estimates of different sessions that are related to a same overlapping node.

4. The method according to claim 3 comprising changing height estimates of non-overlapping nodes based on a change of a height estimate of an overlapping node that was introduced during the welding process.

5. The method according to claim 4 wherein the changing of the height estimates of the non- overlapping nodes comprising distributing height adjustments along a session according to a predefined height adjustment distribution.

6. The method according to claim 5 wherein the predefined height adjustment distribution is an evenly distributed height adjustment distribution.

7. The method according to claim 3 wherein the session constant offset compensation includes reducing height differences between overlapping nodes without welding the overlapping nodes.

8. The method according to claim 3 wherein the inter session offset compensation comprises the welding process.

9. The method according to claim 1 wherein the compensating for the barometer affecting vehicle conditions is based on information provided by the barometer and by at least one other vehicle sensor that differs from the barometer.

10. The method according to claim 9 wherein the at least one other vehicle sensor is an accelerometer.

11. The method according to claim 1 wherein the merging comprises calculating statistics of height estimates associated with an overlapping node; and rejecting one or more height estimates based on the statistics.

12. The method according to claim 1 comprising transmitting the multiple compensated barometer measurements to a computerized system that is located outside the vehicle and wherein the merging is executed by the computerized system.

13. The method according to claim 1 wherein at least a part of the merging is executed by a computer of the vehicle.

14. The method according to claim 1 wherein the compensating for the barometer affecting vehicle conditions comprises low pass filtering the barometer measurements.

15. The method according to claim 1 wherein the compensating for the barometer affecting vehicle conditions comprising determining to ignore at least some of the barometer measurements.

16. The method according to claim 1 wherein the compensating for the barometer affecting vehicle conditions comprising determining to ignore at least some of the barometer measurements.

17. The method according to claim 1 wherein the compensating for the barometer affecting vehicle conditions comprises determining to ignore at least some of the barometer measurements when a slope of a road portion that stretches between two points, as reflected by barometer measurements related to the two points, exceeds a maximal slope threshold.

18. The method according to claim 1 wherein the compensating for the barometer affecting vehicle conditions comprises calculating an effect of a barometer affecting event on a value of at least one barometer measurement.

19. The method according to claim 1 wherein the compensating for the barometer affecting vehicle is responsive to an acceleration of a vehicle when the barometer measurements were taken.

20. The method according to claim 1 wherein the compensating for the barometer affecting vehicle is responsive to a deacceleration of a vehicle when the barometer measurements were taken.

21. A non-transitory computer program product for estimating heights of road segments, the non-transitory computer program product that stores instructions for: measuring, by a barometer of a vehicle and during a given driving session, inner vehicle pressure to provide multiple barometer measurements; wherein the measuring occurs while the vehicle passes over the road segments;

compensating, by a computer, for barometer affecting vehicle conditions to provide multiple compensated barometer measurements; and

merging the multiple compensated barometer measurements with barometer information obtained during multiple other driving sessions that were executed by multiple vehicles, thereby providing height estimates of the road segments; wherein the merging comprises performing session constant offset compensation and inter session offset compensation.

22. The non-transitory computer program product according to claim 21 wherein the merging comprises searching for overlapping nodes, wherein each overlapping node corresponds to a same location and belongs to multiple sessions.

23. The non-transitory computer program product according to claim 22 wherein the merging comprises a welding process for substantially equalizing height estimates of different sessions that are related to a same overlapping node.

24. The non-transitory computer program product according to claim 23 that stores instructions for changing height estimates of non-overlapping nodes based on a change of a height estimate of an overlapping node that was introduced during the welding process.

25. The non-transitory computer program product according to claim 24 wherein the changing of the height estimates of the non-overlapping nodes comprising distributing height adjustments along a session according to a predefined height adjustment distribution.

26. The non-transitory computer program product according to claim 25 wherein the predefined height adjustment distribution is an evenly distributed height adjustment distribution.

27. The non-transitory computer program product according to claim 26 wherein the session constant offset compensation includes reducing height differences between overlapping nodes without welding the overlapping nodes.

28. The non-transitory computer program product according to claim 26 wherein the inter session offset compensation comprises the welding process.

29. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions is based on information provided by the barometer and by at least one other vehicle sensor that differs from the barometer.

30. The non-transitory computer program product according to claim 29 wherein the at least one other vehicle sensor is an accelerometer.

31. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions is based on barometer measurements patterns.

32. The non-transitory computer program product according to claim 21 wherein the merging comprises calculating statistics of height estimates associated with an overlapping node; and rejecting one or more height estimates based on the statistics.

33. The non- transitory computer program product according to claim 21 that stores instructions for transmitting the multiple compensated barometer measurements to a computerized system that is located outside the vehicle and wherein the merging is executed by the computerized system.

34. The non-transitory computer program product according to claim 21 wherein the compensating an at least a part of the merging is executed by a computer of the vehicle.

35. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions comprises low pass filtering the barometer measurements.

36. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions comprising determining to ignore at least some of the barometer measurements.

37. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions comprising determining to ignore at least some of the barometer measurements.

38. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions comprises determining to ignore at least some of the barometer measurements when a slope of a road portion that stretches between two points, as reflected by barometer measurements related to the two points, exceeds a maximal slope threshold.

39. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle conditions comprises calculating an effect of a barometer affecting event on a value of at least one barometer measurement.

40. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle is responsive to an acceleration of a vehicle when the barometer measurements were taken.

41. The non-transitory computer program product according to claim 21 wherein the compensating for the barometer affecting vehicle is responsive to a deacceleration of a vehicle when the barometer measurements were taken.

42. A method for measuring physical events related to multiple road segments method comprises: measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle is driving on the multiple road segments; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information.

43. The method according to claim 42 wherein the detected physical events are selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

44. The method according to claim 42 wherein the detected physical events comprise collision, slip, skid, spin, latitude spin and longitude spin.

45. The method according to claim 42 wherein the first vehicle sensors comprise an accelerometer and multiple wheel movement sensors.

46. The method according to claim 42 comprising calculating road segment attributes.

47. The method according to claim 46 wherein the road segment attributes comprise at least one road segment attribute out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

48. The method according to claim 46 wherein the road segment attributes comprise at least three segment attributes out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

49. The method according to claim 42 comprising calculating locations of the physical events.

50. The method according to claim 42 comprising calculating locations of the physical events based upon locations of different vehicle components associated with the physical events at points in time that correspond to the measuring of the first set of parameters.

51. The method according to claim 42 comprising: calculating differences between (a) a reference map of the multiple road segments, the reference map comprises reference information about previously detected physical events related to the multiple road segments, and (b) the physical events information; and wherein the transmitting at least some of the differences.

52. The method according to claim 42 comprising receiving or calculating a reference map of the multiple road segments, the reference map comprises (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

53. The method according to claim 52 comprising determining a position of the vehicle based on the reference map and a sequence of detected physical events.

54. The method according to claim 52 comprising determining a position of the vehicle by searching within the reference map for a reference sequence of physical events that fits a sequence of detected physical events.

55. The method according to claim 52 comprising determining a position of the vehicle by searching within the reference map for a reference sequence of mandatory physical events that fits a sequence of mandatory detected physical events.

56. The method according to claim 52, wherein the reference map comprises a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments.

57. The method according to claim 56 wherein the reference map comprises a layer that stores the reference information about the previously detected physical events related to the multiple road segments.

58. The method according to claim 57 comprising determining a position of the vehicle by searching within the layer for a reference sequence of physical events that fits a sequence of detected physical events.

59. The method according to claim 58 wherein the searching comprises scanning road segments represented by the basic layer and retrieving reference information about previously detected physical events related to scanned road segments.

60. The method according to claim 59 wherein the retrieving comprises applying a hash function to locate the reference information about previously detected physical events.

61. The method according to claim 52 wherein the reference map comprises (a) a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that comprise additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers are linked to the basic layer.

62. The method according to claim 61 comprising generating driving instructions, based on the one or more sparse layers and the position of the vehicle.

63. The method according to claim 52 wherein the reference map comprises a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers comprises the reference physical event information.

64. The method according to claim 52 comprising receiving a reference map update for updating a portion of the reference map and updating the portion of the reference map without updating a non- updated portion of the reference map.

65. The method according to claim 52 wherein the reference map comprises private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and comprises public fields.

66. The method according to claim 42 further comprising generating virtual sensors information based on at least the first set of parameters.

67. The method according to claim 42 further comprising determining lateral locations of the vehicle by using an image sensor.

68. The method according to claim 42 wherein the physical events information comprises normalized magnitudes of the detected physical events.

69. A non-transitory computer program product for measuring physical events related to multiple road segments, wherein the non-transitory computer program product stores instructions for: measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle is driving on the multiple road segments; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information.

70. The non-transitory computer program product according to claim 69 wherein the detected physical events are selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

71. The non-transitory computer program product according to claim 69 wherein the detected physical events comprise collision, slip, skid, spin, latitude spin and longitude spin.

72. The non-transitory computer program product according to claim 69 wherein the first vehicle sensors comprise an accelerometer and multiple wheel movement sensors.

73. The non-transitory computer program product according to claim 69 the stores instructions for calculating road segment attributes.

74. The non-transitory computer program product according to claim 73 wherein the road segment attributes comprise at least one road segment attribute out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

75. The non-transitory computer program product according to claim 73 wherein the road segment attributes comprise at least three segment attributes out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

76. The non-transitory computer program product according to claim 69 the stores instructions for calculating locations of the physical events.

77. The non-transitory computer program product according to claim 69 that stores instructions for calculating locations of the physical events based upon locations of different vehicle components associated with the physical events at points in time that correspond to the measuring of the first set of parameters.

78. The non- transitory computer program product according to claim 69 that stores instructions for: calculating differences between (a) a reference map of the multiple road segments, the reference map comprises reference information about previously detected physical events related to the multiple road segments, and (b) the physical events information; and wherein the transmitting at least some of the differences.

79. The non-transitory computer program product according to claim 69 that stores instructions for receiving or calculating a reference map of the multiple road segments, the reference map comprises (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

80. The non-transitory computer program product according to claim 79 that stores instructions for determining a position of the vehicle based on the reference map and a sequence of detected physical events.

81. The non-transitory computer program product according to claim 79 that stores instructions for determining a position of the vehicle by searching within the reference map for a reference sequence of physical events that fits a sequence of detected physical events.

82. The non-transitory computer program product according to claim 79 that stores instructions for determining a position of the vehicle by searching within the reference map for a reference sequence of mandatory physical events that fits a sequence of mandatory detected physical events.

83. The non-transitory computer program product according to claim 79, wherein the reference map comprises a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments.

84. The non-transitory computer program product according to claim 83 wherein the reference map comprises a layer that stores the reference information about the previously detected physical events related to the multiple road segments.

85. The non-transitory computer program product according to claim 84 that stores instructions for determining a position of the vehicle by searching within the layer for a reference sequence of physical events that fits a sequence of detected physical events.

86. The non-transitory computer program product according to claim 85 wherein the searching comprises scanning road segments represented by the basic layer and retrieving reference information about previously detected physical events related to scanned road segments.

87. The non-transitory computer program product according to claim 85 wherein the retrieving comprises applying a hash function to locate the reference information about previously detected physical events.

88. The non- transitory computer program product according to claim 79 wherein the reference map comprises (a) a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that comprise additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers are linked to the basic layer.

89. The non-transitory computer program product according to claim 88 that stores instructions for generating driving instructions, based on the one or more sparse layers and the position of the vehicle.

90. The non-transitory computer program product according to claim 79 wherein the reference map comprises a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers comprises the reference physical event information.

91. The non-transitory computer program product according to claim 79 that stores instructions for receiving a reference map update for updating a portion of the reference map and updating the portion of the reference map without updating a non-updated portion of the reference map.

92. The non-transitory computer program product according to claim 79 wherein the reference map comprises private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and comprises public fields.

93. The non-transitory computer program product according to claim 69 that stores instructions for generating virtual sensors information based on at least the first set of parameters.

94. The non-transitory computer program product according to claim 69 that stores instructions for determining lateral locations of the vehicle by using an image sensor.

95. The non-transitory computer program product according to claim 69 wherein the physical events information comprises normalized magnitudes of the detected physical events.

96. A system for measuring physical events related to multiple road segments, the system comprises a vehicle computer that is configured to (i) receive from first vehicle sensors a first set of parameters; wherein the measuring occurs while the vehicle is driving on the multiple road segments; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; (ii) to detect detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters; generate physical events information about the detected physical events; and store or assist in transmitting at least a portion of the physical events information.

97. A method for generating a reference map of a region, the method comprises: receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute are related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles is based on a first set of parameters that is sensed by first vehicle sensors of the vehicle; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

98. The method according to claim 97 wherein the detected physical events are selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

99. The method according to claim 97 wherein the detected physical events comprise collision, slip, skid, spin, latitude spin and longitude spin.

100. The method according to claim 97 wherein the first vehicle sensors comprise an accelerometer and multiple wheel movement sensors.

101. The method according to claim 97 wherein the road segment attributes comprise at least one road segment attribute out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

102. The method according to claim 97 wherein the road segment attributes comprise at least three segment attributes out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

103. The method according to claim 97 wherein the reference map comprises (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

104. The method according to claim 97 wherein the reference map comprises a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments.

105. The method according to claim 104 wherein the reference map comprises a layer that stores the reference information about the previously detected physical events related to the multiple road segments.

106. The method according to claim 97 wherein the reference map comprises (a) a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that comprise additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers are linked to the basic layer.

107. The method according to claim 97 wherein the reference map comprises a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers comprises the reference physical event information.

108. The method according to claim 97 wherein the reference map comprises private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and comprises public fields.

109. The method according to claim 97 wherein the physical events information comprises normalized magnitudes of the detected physical events.

110. A non-transitory computer program product for generating a reference map of a region, the non-transitory computer program product stores instructions for:

receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute are related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles is based on a first set of parameters that is sensed by first vehicle sensors of the vehicle; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and

calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

111. The non- transitory computer program product according to claim 110 wherein the detected physical events are selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

112. The non-transitory computer program product according to claim 110 wherein the detected physical events comprise collision, slip, skid, spin, latitude spin and longitude spin.

113. The non- transitory computer program product according to claim 110 wherein the first vehicle sensors comprise an accelerometer and multiple wheel movement sensors.

114. The non- transitory computer program product according to claim 110 wherein the road segment attributes comprise at least one road segment attribute out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

115. The non-transitory computer program product according to claim 110 wherein the road segment attributes comprise at least three segment attributes out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

116. The non-transitory computer program product according to claim 110 wherein the reference map comprises (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

117. The non-transitory computer program product according to claim 110, wherein the reference map comprises a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments.

118. The non- transitory computer program product according to claim 117 wherein the reference map comprises a layer that stores the reference information about the previously detected physical events related to the multiple road segments.

119. The non-transitory computer program product according to claim 110 wherein the reference map comprises (a) a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that comprise additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers are linked to the basic layer.

120. The non- transitory computer program product according to claim 110 wherein the reference map comprises a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers comprises the reference physical event information.

121. The non- transitory computer program product according to claim 110 wherein the reference map comprises private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and comprises public fields.

122. The non-transitory computer program product according to claim 110 wherein the physical events information comprises normalized magnitudes of the detected physical events.

123. A system for generating a reference map of a region, the system comprises: a communication interface that is configured to receive from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute are related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles is based on a first set of parameters that is sensed by first vehicle sensors of the vehicle; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and a processor that is configured to calculate the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

124. A method for generating a vehicle profile, the method comprises: collecting vehicle profile information candidates, wherein a vehicle profile information candidate comprises fuel consumption information related to different road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by first vehicle sensors that differ from road image sensors; and generating the vehicle profile based on, at least, the vehicle profile information candidates; wherein the vehicle profile consists essentially of:

(i) a cruise data structure that comprises cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters,

(ii) an idle deceleration data structure that comprises idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters,

(iii) an acceleration data structure that comprises acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters.

125. The method according to claim 124 wherein the cruise data structure consists essentially of the values of the cruise fuel consumption parameter.

126. The method according to claim 125 wherein the first set of road path and vehicle parameters consist essentially of vehicle speed, road segment slope, vehicle weight, and one or more transmission system parameters.

127. The method according to claim 126 wherein the transmission system parameters comprise gear and throttle position.

128. The method according to claim 124 wherein the idle deceleration structure consists essentially of the values of the idle deceleration distance.

129. The method according to claim 128 wherein the second set of road path and vehicle parameters consist essentially of start vehicle speed, road segment slope, and vehicle weight.

130. The method according to claim 128 wherein the second set of road path and vehicle parameters consist essentially of start vehicle speed, road segment slope, and vehicle weight and one or more transmission system parameters.

131. The method according to claim 130 wherein the transmission system parameters comprises gear.

132. The method according to claim 124 wherein the cruise data structure consists essentially of the values of the acceleration fuel consumption parameter.

133. The method according to claim 132 wherein the third set of road path and vehicle parameters consist essentially of start vehicle speed, road segment slope, vehicle weight, acceleration distance and one or more transmission system parameters.

134. The method according to claim 133 wherein the transmission system parameters comprise gear and throttle position.

135. The method according to claim 124 comprising rejecting vehicle profile information candidates based on a comparison between a slope of a path segment and a ratio between (i) height differences between two ends of the path segment and (ii) a length of a horizontal projection of the path segment.

136. The method according to claim 124 further comprising dynamically clustering the vehicle based on the vehicle profile.

137. The method according to claim 136 further comprising calculating a cluster profile for each cluster.

138. The method according to claim 137 further comprising updating, based on at least a cluster profile of the cluster that comprises the vehicle, at least one out of the cruise data structure, the idle deceleration data structure, and the acceleration data data structure.

139. The method according to claim 124 further comprising compressing the vehicle profile to generate a compressed vehicle profile.

140. The method according to claim 139 wherein the compressing comprises calculating a mathematical relationship between dependent road path and vehicle parameters, and removing information about at least one of the dependent road path and vehicle parameters, from at least one of the cruise data structure, the idle deceleration data structure, and the acceleration data data structure.

141. The method according to claim 139 wherein the compression comprises removing road path and vehicle parameters that are related to a sub-group of vehicle speeds.

142. The method according to claim 139 wherein the compressing comprises using one or more road path and vehicle parameters as keys without storing the one or more road path and vehicle parameters in any one of the vehicle profile.

143. The method according to claim 124 wherein the generating of the vehicle profile comprises extrapolating values of the cruise fuel consumption parameter for certain values of a first of road path and vehicle parameters, wherein the extrapolating is responsive to values of the cruise fuel consumption parameter for certain other measured values of the first set of road path and vehicle parameters.

144. The method according to claim 124 further comprising calculating suggested driving parameter for a path that precedes the vehicle, wherein the calculating is based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations.

145. The method according to claim 144 wherein the calculating comprises virtually segmenting the path to the portions, each portion comprises one or more path segments of substantially a same slope and substantially a same extrinsic limitation.

146. The method according to claim 145 comprising finding an optimal speed for each portion based on the slope and maximal speed limit related to the portion.

147. The method according to claim 124 wherein the vehicle profile consists of the cruise data structure, the idle deceleration data structure, and the acceleration data structure.

148. A non-transitory computer program product for generating a vehicle profile, wherein the non-transitory computer program product stores instructions for:

collecting vehicle profile information candidates, wherein a vehicle profile information candidate comprises fuel consumption information related to different road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by first vehicle sensors that differ from road image sensors; and

generating the vehicle profile based on, at least, the vehicle profile information candidates; wherein the vehicle profile consists essentially of:

(i) a cruise data structure that comprises cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters,

(ii) an idle deceleration data structure that comprises idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters,

(iii) an acceleration data structure that comprises acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters.

149. A computerized system for generating a vehicle profile, the computerized system comprises: a collection module for collecting vehicle profile information candidates, wherein a vehicle profile information candidate comprises fuel consumption information related to different road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by first vehicle sensors that differ from road image sensors; and a computer for generating the vehicle profile based on, at least, the vehicle profile information candidates; wherein the vehicle profile consists essentially of:

a cruise data structure that comprises cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters,

an idle deceleration data structure that comprises idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters,

an acceleration data structure that comprises acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters; and

a memory for storing the cruise data structure, the idle deceleration data structure, and the acceleration data structure.

150. A method for determining a driving session, the method comprises:

receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile is generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by vehicle sensors that differ from road image sensors; and

determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating is based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations.

151. The method according to claim 150 wherein the calculating comprises virtually segmenting the path to the portions, each portion comprises one or more path segments of substantially a same slope and substantially a same extrinsic limitation.

152. The method according to claim 150, comprising finding an optimal speed for each portion based on the slope and maximal speed limit related to the portion.

153. The method according to claim 150, wherein the vehicle profile substantially consists of a cruise data structure, an idle deceleration data structure, and an acceleration data structure.

154. The method according to claim 150, wherein the vehicle profile consists of a cruise data structure, an idle deceleration data structure, and an acceleration data structure.

155. A non-transitory computer program product for determining a driving session, wherein the non-transitory computer program product stores instructions for: receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile is generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating is based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations.

156. A method for evaluating a weight of a vehicle, the method comprises:

obtaining during a learning period and by vehicle sensors, vehicle sensor measurements regarding driving sessions of the vehicle, wherein the vehicle sensor measurement comprise (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; and

calculating, based on the vehicle sensor measurements, an evaluated weight of the vehicle; wherein the calculating is based on values of energy coefficients that are indicative of energy wasted by the vehicle.

157. The method according to claim 156 wherein the calculating of the evaluated weight further comprises finding a motor efficiency function and a fuel consumption error correction function.

158. The method according to claim 156 wherein the calculating comprises searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion.

159. The method according to claim 156, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, according to the following equation:

ame fe fuel— k x— k3xv2

tn =

gAh + 2 1 + klX + k*xv2

wherein the group of energy coefficients comprises ki, ka, k3 and 1¾;

wherein ame is a value of the estimated motor efficiency function;

wherein V2 is a velocity of the vehicle at an end of the path segment;

vi is a velocity of the vehicle at a start of the path segment;

v represents at least one value of a velocity of the vehicle when driving over the path segment; x is a length of the path segment;

Ah is a height difference between the end and the start of the path segment; and

fuel is an error corrected fuel consumption related to the path segment.

160. The method according to claim 159 wherein the calculating comprises searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion

161. The method according to claim 160, wherein the predefined statistical significance criterion is a maximal statistical significance.

162. The method according to claim 160, wherein the predefined statistical significance criterion is a smallest standard deviation of at least one of the weight estimate distributions.

163. The method according to claim 160, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments and for different values of the energy coefficients.

164. The method according to claim 160, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different motor efficiency function values.

165. The method according to claim 160, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different fuel consumption error correction function values.

166. The method according to claim 160, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients, for different motor efficiency function values and for different fuel consumption error correction function values.

167. The method according to claim 160, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate.

168. The method according to claim 160, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is responsive to the quality attribute assigned to each weight estimate.

169. The method according to claim 160, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is a histogram, wherein the histogram comprises bins, wherein each bin is associated with a weight estimate range and has a value that represents quality attributes of weight estimates that belong to the bin.

170. The method according to claim 160, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is a histogram, wherein the histogram comprises bins, wherein each bin is associated with a weight estimate range and has a value that represents a sum of quality attributes of weight estimates that belong to the bin.

171. The method according to claim 160 comprising assigning quality attributes to at least some of the vehicle sensor measurements.

172. The method according to claim 160 comprising assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a difference related to velocities of the vehicle at a start and at an end of the certain path segment.

173. The method according to claim 160 comprising assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a maximal velocity of the vehicle during the certain driving session.

174. The method according to claim 160 comprising ignoring vehicle sensor measurements obtained at path segments in which the vehicle descended.

175. The method according to claim 156 wherein the calculating comprises applying machine learning.

176. A non-transitory computer readable medium for evaluating a weight of a vehicle, the non- transitory computer readable medium stores instructions for:

obtaining during a learning period, vehicle sensor measurements regarding driving sessions of the vehicle, wherein the vehicle sensor measurement comprise (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; and

calculating, based on the vehicle sensor measurements, an evaluated weight of the vehicle; wherein the calculating is based on values of energy coefficients that are indicative of energy wasted by the vehicle.

177. The non-transitory computer readable medium according to claim 176 wherein the calculating of the evaluated weight further comprises finding a motor efficiency function and a fuel consumption error correction function.

178. The non-transitory computer readable medium according to claim 176 wherein the calculating comprises searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion.

179. The non-transitory computer readable medium according to claim 176, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, according to the following equation:

ame · fe · fuel— kxx— k3xv2

gAh + 2 Vl + k2x + k4xv2

wherein the group of energy coefficients comprises ki, k¾ k3 and k4;

wherein ame is a value of the estimated motor efficiency function;

wherein V2 is a velocity of the vehicle at an end of the path segment;

vi is a velocity of the vehicle at a start of the path segment;

v represents at least one value of a velocity of the vehicle when driving over the path segment; x is a length of the path segment;

Ah is a height difference between the end and the start of the path segment; and

fuel is an error corrected fuel consumption related to the path segment.

180. The non- transitory computer readable medium according to claim 179 wherein the calculating comprises searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion

181. The non-transitory computer readable medium according to claim 180, wherein the predefined statistical significance criterion is a maximal statistical significance.

182. The non-transitory computer readable medium according to claim 180, wherein the predefined statistical significance criterion is a smallest standard deviation of at least one of the weight estimate distributions.

183. The non-transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments and for different values of the energy coefficients.

184. The non-transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different motor efficiency function values.

185. The non-transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different fuel consumption error correction function values.

186. The non-transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients, for different motor efficiency function values and for different fuel consumption error correction function values.

187. The non-transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate.

188. The non- transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is responsive to the quality attribute assigned to each weight estimate.

189. The non-transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is a histogram, wherein the histogram comprises bins, wherein each bin is associated with a weight estimate range and has a value that represents quality attributes of weight estimates that belong to the bin.

190. The non- transitory computer readable medium according to claim 180, wherein the determining of the evaluated weight comprises associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is a histogram, wherein the histogram comprises bins, wherein each bin is associated with a weight estimate range and has a value that represents a sum of quality attributes of weight estimates that belong to the bin.

191. The non- transitory computer readable medium according to claim 180 that stores instructions for assigning quality attributes to at least some of the vehicle sensor measurements.

192. The non- transitory computer readable medium according to claim 180 that stores instructions for assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a difference related to velocities of the vehicle at a start and at an end of the certain path segment.

193. The non-transitory computer readable medium according to claim 180 that stores instructions for assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a maximal velocity of the vehicle during the certain driving session.

194. The non- transitory computer readable medium according to claim 180 that stores instructions for ignoring vehicle sensor measurements obtained at path segments in which the vehicle descended.

195. The non-transitory computer readable medium according to claim 176 wherein the calculating comprises applying machine learning.

196. A method for evaluating a weight of a vehicle, the method comprises: receiving values of energy coefficients that are indicative of energy wasted by the vehicle; wherein the values of the energy coefficients were calculated based, at least in part, on vehicle sensor measurements obtained by vehicle sensors of the vehicle, the vehicle sensor measurements were obtained during driving sessions of the vehicle; wherein the vehicle sensor measurement comprise (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; obtaining, during a new driving session and by the vehicle sensors, new vehicle sensor measurements related to the new driving session; and calculating the weight of the vehicle, by a vehicle computer, based on the values of the energy coefficients and the new vehicle sensor measurements.

197. The method according to claim 196 further comprising receiving information regarding a motor efficiency function of the vehicle and wherein the calculating of the weight of the vehicle is further responsive to the motor efficiency function of the vehicle.

198. The method according to claim 197 wherein the information regarding the motor efficiency function comprises motor efficiency function coefficients.

199. The method according to claim 198 wherein a number of motor efficiency function coefficients does not exceed fifty.

200. The method according to claim 196 further comprising receiving information regarding a fuel consumption error correction function of the vehicle and wherein the calculating of the weight of the vehicle is further responsive to the fuel consumption error correction function.

201. The method according to claim 200 wherein the information regarding a fuel consumption error correction function comprises fuel consumption error correction function coefficients.

202. The method according to claim 201 wherein a number of fuel consumption error correction function coefficients does not exceed ten.

203. The method according to claim 196 further comprising receiving information regarding a motor efficiency function of the vehicle and a fuel consumption error correction function of the vehicle, and wherein the calculating of the weight of the vehicle is further responsive to the motor efficiency function of the vehicle and to the fuel consumption error correction of the vehicle.

204. The method according to claim 196 wherein the calculating of the weight of the vehicle is performed in real time.

205. The method according to claim 196 further comprising transmitting the new vehicle sensor measurements related to the new driving session.

206. The method according to claim 196 further comprising receiving updated values of energy coefficients and wherein the calculating of the weight is responsive to the updated values of energy coefficients.

207. The method according to claim 196 wherein the calculating of the weight comprises calculating, for a new path segments of the new session, the following equation:

ame · fe · fuel— ktx— k3xv2

gAh + 2 Vl ) + k2x + k4xv2

wherein the group of energy coefficients comprises ki, ka, k3 and 1¾;

wherein ame is a value of the estimated motor efficiency function;

wherein V2 is a velocity of the vehicle at an end of the new path segment;

vi is a velocity of the vehicle at a start of the new path segment;

v represents at least one value of a velocity of the vehicle when driving over the new path segment; x is a length of the new path segment;

Ah is a height difference between the end and the start of the new path segment; and

fuel is an error corrected fuel consumption related to the new path segment.

208. A non-transitory computer readable medium for evaluating a weight of a vehicle, the non- transitory computer readable medium that stores instructions for receiving values of energy coefficients that are indicative of energy wasted by the vehicle; wherein the values of the energy coefficients were calculated based, at least in part, on vehicle sensor measurements obtained by vehicle sensors of the vehicle, the vehicle sensor measurements were obtained during driving sessions of the vehicle; wherein the vehicle sensor measurement comprise (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; obtaining, during a new driving session and by the vehicle sensors, new vehicle sensor measurements related to the new driving session; and calculating the weight of the vehicle, by a vehicle computer, based on the values of the energy coefficients and the new vehicle sensor measurements.

209. The non-transitory computer readable medium according to claim 208 that stores instructions for receiving information regarding a motor efficiency function of the vehicle and wherein the calculating of the weight of the vehicle is further responsive to the motor efficiency function of the vehicle.

210. The non-transitory computer readable medium according to claim 209 wherein the information regarding the motor efficiency function comprises motor efficiency function coefficients.

211. The non- transitory computer readable medium according to claim 210 wherein a number of motor efficiency function coefficients does not exceed fifty.

212. The non-transitory computer readable medium according to claim 208 that stores instructions for receiving information regarding a fuel consumption error correction function of the vehicle and wherein the calculating of the weight of the vehicle is further responsive to the fuel consumption error correction function.

213. The non-transitory computer readable medium according to claim 212 wherein the information regarding a fuel consumption error correction function comprises fuel consumption error correction function coefficients.

214. The non- transitory computer readable medium according to claim 213 wherein a number of fuel consumption error correction function coefficients does not exceed ten.

215. The non-transitory computer readable medium according to claim 208 that stores instructions for receiving information regarding a motor efficiency function of the vehicle and a fuel consumption error correction function of the vehicle, and wherein the calculating of the weight of the vehicle is further responsive to the motor efficiency function of the vehicle and to the fuel consumption error correction of the vehicle.

216. The non-transitory computer readable medium according to claim 208 wherein the calculating of the weight of the vehicle is performed in real time.

217. The non-transitory computer readable medium according to claim 208 that stores instructions for transmitting the new vehicle sensor measurements related to the new driving session.

218. The non- transitory computer readable medium according to claim 208 that stores instructions for receiving updated values of energy coefficients and wherein the calculating of the weight is responsive to the updated values of energy coefficients.

219. The non-transitory computer readable medium according to claim 208 wherein the calculating of the weight comprises calculating, for a new path segments of the new session, the following equation:

ame · fe · fuel— ktx— k3xv2

gAh + 2 Vl ) + k2x + k4xv2

wherein the group of energy coefficients comprises ki, ka, k3 and k4;

wherein ame is a value of the estimated motor efficiency function; wherein V2 is a velocity of the vehicle at an end of the new path segment;

vi is a velocity of the vehicle at a start of the new path segment;

v represents at least one value of a velocity of the vehicle when driving over the new path segment; x is a length of the new path segment;

Ah is a height difference between the end and the start of the new path segment; and

fuel is an error corrected fuel consumption related to the new path segment.

220. A method for generating normalized path segment grip information related to a path segment and to a vehicle, the method comprises: generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a grip event; determining, based on vehicle parameters obtained during at least a part of the grip event, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

221. The method according to claim 220, comprising receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de- normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

222. The method according to claim 221 comprising calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

223. The method according to claim 221 wherein the de-normalizing is based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

224. The method according to claim 220, wherein the grip event is selected out of a breaking event, a turn event and a high-speed event.

225. The method according to claim 220, wherein the determining of the normalized path segment grip information comprises calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

226. The method according to claim 225 comprising determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

227. The method according to claim 226 wherein the calculating of the excitation comprises selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the grip event.

228. The method according to claim 226 wherein the calculating of the normalized slip rate and normalized excitation is based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

229. The method according to claim 220, wherein generating of the wheel speed information comprises low pass filtering wheel speed information, wherein the low pass filtering is responsive to expected wheel speeds.

230. The method according to claim 220, wherein generating of the wheel speed information comprises ignoring short-term variations.

231. The method according to claim 220, wherein the grip event is a response of a vehicle to a passage over a small obstacle, wherein the small obstacle has a length that is smaller than a perimeter of each one of the multiple wheels of the vehicle.

232. A non-transitory computer program product for generating normalized path segment grip information related to a path segment and to a vehicle, wherein the non-transitory computer program product stores instructions for: generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a grip event; determining, based on vehicle parameters obtained during at least a part of the grip event, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

233. The non-transitory computer program product according to claim 232 that stores instructions for receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de-normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

234. The non-transitory computer program product according to claim 233 that stores instructions for calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

235. The non-transitory computer program product according to claim 233 wherein the de- normalizing is based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

236. The non-transitory computer program product according to claim 232 wherein the grip event is selected out of a breaking event, a turn event and a high-speed event.

237. The non-transitory computer program product according to claim 232, wherein the determining of the normalized path segment grip information comprises calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

238. The non- transitory computer program product according to claim 237 that stores instructions for determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

239. The non-transitory computer program product according to claim 237 wherein the calculating of the excitation comprises selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the grip event.

240. The non-transitory computer program product according to claim 237 wherein the calculating of the normalized slip rate and normalized excitation is based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

241. The non-transitory computer program product according to claim 232 wherein generating of the wheel speed information comprises low pass filtering wheel speed information, wherein the low pass filtering is responsive to expected wheel speeds.

242. The non-transitory computer program product according to claim 232 wherein generating of the wheel speed information comprises ignoring short-term variations.

243. The non-transitory computer program product according to claim 232, wherein the grip event is a response of a vehicle to a passage over a small obstacle, wherein the small obstacle has a length that is smaller than a perimeter of each one of the multiple wheels of the vehicle.

244. A vehicle system for generating a vehicle profile, the vehicle system comprises: sensors that are configured to generate wheel speed information related to speeds of multiple wheels of the vehicle; a computer vehicle that is configured to (i) detect, based on the wheel speed information, a grip event; and (ii) determine, based on vehicle parameters obtained during at least a part of the grip event, the normalized path segment grip information; and at least one out of (a) a communication module that is configured to transmit the normalized path segment grip information, and a memory module that is configured to store the normalized path segment grip information.

245. A method for generating normalized path segment grip information related to a path segment and to a vehicle, the method comprises: generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a response of the vehicle to a passage over a small obstacle; wherein the small obstacle has a length that is smaller than a perimeter of each one of the multiple wheels of the vehicle; determining, based on vehicle parameters obtained during at least a part of the response of the vehicle to the passage over the small obstacle, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

246. The method according to claim 245, comprising receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de- normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

247. The method according to claim 246 comprising calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

248. The method according to claim 246 wherein the de-normalizing is based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

249. The method according to claim 245, wherein the determining of the normalized path segment grip information comprises calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

250. The method according to claim 249 comprising determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

251. The method according to claim 249 wherein the calculating of the excitation comprises selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the response of the vehicle to the passage over the small obstacle.

252. The method according to claim 249 wherein the calculating of the normalized slip rate and normalized excitation is based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

253. The method according to claim 245, wherein generating of the wheel speed information comprises low pass filtering wheel speed information, wherein the low pass filtering is responsive to expected wheel speeds.

254. The method according to claim 245, wherein generating of the wheel speed information comprises ignoring short-term variations.

255. A non-transitory computer program product for generating normalized path segment grip information related to a path segment and to a vehicle, wherein the non-transitory computer program product stores instructions for: generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a response of the vehicle to a passage over a small obstacle; wherein a small obstacle has a length that is smaller than a perimeter of each one of the multiple wheels of the vehicle; determining, based on vehicle parameters obtained during at least a part of the response of the vehicle to the passage over the small obstacle, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

256. The non-transitory computer program product according to claim 255 that stores instructions for receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de-normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

257. The non-transitory computer program product according to claim 256 that stores instructions for calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

258. The non-transitory computer program product according to claim 256 wherein the de- normalizing is based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

259. The non-transitory computer program product according to claim 255, wherein the determining of the normalized path segment grip information comprises calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

260. The non-transitory computer program product according to claim 259 that stores instructions for determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

261. The non-transitory computer program product according to claim 259 wherein the calculating of the excitation comprises selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the response of the vehicle to the passage over the small obstacle.

262. The non-transitory computer program product according to claim 259 wherein the calculating of the normalized slip rate and normalized excitation is based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

263. The non-transitory computer program product according to claim 255 wherein generating of the wheel speed information comprises low pass filtering wheel speed information, wherein the low pass filtering is responsive to expected wheel speeds.

264. The non-transitory computer program product according to claim 255 wherein generating of the wheel speed information comprises ignoring short-term variations.

265. A vehicle system for generating a vehicle profile, the vehicle system comprises: sensors that are configured to generate wheel speed information related to speeds of multiple wheels of the vehicle; a computer vehicle that is configured to (i) detect, based on the wheel speed information, a response of the vehicle to a passage over a small obstacle; and (ii) determine, based on vehicle parameters obtained during at least a part of the response of the vehicle to the passage over the small obstacle, the normalized path segment grip information; and at least one out of (a) a communication module that is configured to transmit the normalized path segment grip information, and a memory module that is configured to store the normalized path segment grip information.

266. A method for driving a vehicle, the method comprises:

receiving or generating rain information regarding rain that is associated with multiple road segments;

estimating a grip level degradation associated with each read segment of the multiple road segment, wherein the estimating of the grip level degradation is based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and grip level degradation; and performing a driving related operation based on the grip level degradation.

267. The method according to claim 266 wherein the rain related parameter of the vehicle comprises a health of at least one tire of the vehicle.

268. The method according to claim 266 wherein the estimating of the grip level degradation comprising estimating an occurrence of one or more aquaplaning events in the multiple road segments.

269. The method according to claim 268 wherein the estimating of the grip level degradation comprising estimating the grip level degradation associated with the occurrence of one or more aquaplaning events in the multiple road segments.

270. The method according to claim 268 comprising verifying the occurrence of the one or more aquaplaning events by the vehicle.

271. The method according to claim 270 wherein the verifying comprises sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by the vehicle, for one or more aquaplaning signatures in the sensing results.

272. The method according to claim 266 comprising accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

273. The method according to claim 266 wherein the performing of the driving related operation comprises selectively activating an autonomous driving module for autonomously driving the vehicle.

274. The method according to claim 266 wherein the performing of the driving related operation comprises selectively deactivating an autonomous driving module that is configured, when activated, to autonomously driving the vehicle.

275. The method according to claim 266 wherein the performing of the driving related operation comprises setting a velocity of the vehicle in each of the multiple road segments.

276. The method according to claim 266 comprising estimating a rain perception rate by at least one vehicle sensor.

277. The method according to claim 276 wherein the at least one vehicle sensor belongs to a wiper control unit.

278. The method according to claim 266 wherein the performing of the driving related operation comprises alerting a human driver of the vehicle.

279. A non-transitory computer program product for driving a vehicle, wherein the non-transitory computer program product stores instructions for: receiving or generating rain information regarding rain that is associated with multiple road segments; estimating a grip level degradation associated with each read segment of the multiple road segment, wherein the estimating of the grip level degradation is based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and grip level degradation; and performing a driving related operation based on the grip level degradation.

280. The non-transitory computer readable medium according to claim 279 wherein the rain related parameter of the vehicle comprises a health of at least one tire of the vehicle.

281. The non-transitory computer readable medium according to claim 279 wherein the estimating of the grip level degradation comprising estimating an occurrence of one or more aquaplaning events in the multiple road segments.

282. The non-transitory computer readable medium according to claim 281 wherein the estimating of the grip level degradation comprising estimating the grip level degradation associated with the occurrence of one or more aquaplaning events in the multiple road segments.

283. The non-transitory computer readable medium according to claim 281 comprising verifying the occurrence of the one or more aquaplaning events by the vehicle.

284. The non-transitory computer readable medium according to claim 282 wherein the verifying comprises sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by a vehicle computer, for one or more aquaplaning signatures in the sensing results.

285. The non-transitory computer readable medium according to claim 279 that stores instructions for accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

286. The non-transitory computer readable medium according to claim 279 wherein the performing of the driving related operation comprises selectively activating an autonomous driving module for autonomously driving the vehicle.

287. The non-transitory computer readable medium according to claim 279 wherein the performing of the driving related operation comprises selectively deactivating an autonomous driving module that is configured, when activated, to autonomously driving the vehicle.

288. The non-transitory computer readable medium according to claim 279 wherein the performing of the driving related operation comprises setting a velocity of the vehicle in each of the multiple road segments.

289. The non-transitory computer readable medium according to claim 279 that stores instructions for estimating a rain perception rate by at least one vehicle sensor.

290. The non-transitory computer readable medium according to claim 283 wherein the at least one vehicle sensor belongs to a wiper control unit.

291. The non-transitory computer readable medium according to claim 279 wherein the performing of the driving related operation comprises alerting a human driver of the vehicle.

292. A vehicle system for driving a vehicle, the vehicle system comprises: sensors that are configured to perform at least out out of (a) sensing a behavior of the vehicle, and (b) sensing a rain parameter; and a computer vehicle that is configured to receive or generate rain information regarding rain that is associated with multiple road segments; estimate a grip level degradation associated with each read segment of the multiple road segment, wherein the estimating of the grip level degradation is based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and grip level degradation; and assist in performing a driving related operation based on the grip level degradation.

293. A method for estimating an occurrence of one or more aquaplaning events, the method comprises: receiving or generating rain information regarding rain that is associated with multiple road segments; and

estimating, by a vehicle computer, an occurrence the one or more aquaplaning events in the multiple road segments, wherein the estimating of the occurrence of one or more aquaplaning events is based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and an occurrence of the one or more aquaplaning events.

294. The method according to claim 293 comprising performing a driving related operation based on the estimating of the occurrence of the one or more aquaplaning events.

295. The method according to claim 293 comprising verifying the occurrence of the one or more aquaplaning events by the vehicle.

296. The method according to claim 295 wherein the verifying comprises sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by the vehicle, for one or more aquaplaning signatures in the sensing results.

297. The method according to claim 293 comprising accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

298. The method according to claim 293 wherein the performing of the driving related operation comprises selectively activating an autonomous driving module for autonomously driving the vehicle.

299. The method according to claim 293 wherein the performing of the driving related operation comprises selectively deactivating an autonomous driving module that is configured, when activated, to autonomously driving the vehicle.

300. The method according to claim 293 wherein the performing of the driving related operation comprises setting a velocity of the vehicle in each of the multiple road segments.

301. The method according to claim 293 comprising estimating a rain perception rate by at least one vehicle sensor.

302. The method according to claim 301 wherein the at least one vehicle sensor belongs to a wiper control unit.

303. The method according to claim 293 wherein the performing of the driving related operation comprises alerting a human driver of the vehicle.

304. A non-transitory computer program product for estimating an occurrence of one or more aquaplaning events, wherein the non-transitory computer program product stores instructions for receiving or generating rain information regarding rain that is associated with multiple road segments; and

estimating, by a vehicle computer, an occurrence the one or more aquaplaning events in the multiple road segments, wherein the estimating of the occurrence of one or more aquaplaning events is based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and an occurrence of the one or more aquaplaning events.

305. The non-transitory computer readable medium according to claim 304 comprising performing a driving related operation based on the estimating of the occurrence of the one or more aquaplaning events.

306. The non-transitory computer readable medium according to claim 304 comprising verifying the occurrence of the one or more aquaplaning events by the vehicle.

307. The non-transitory computer readable medium according to claim 306 wherein the verifying comprises sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by the vehicle, for one or more aquaplaning signatures in the sensing results.

308. The non-transitory computer readable medium according to claim 304 that stores instructions for accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

309. The non-transitory computer readable medium according to claim 304 wherein the performing of the driving related operation comprises selectively activating an autonomous driving module for autonomously driving the vehicle.

310. The non-transitory computer readable medium according to claim 304 wherein the performing of the driving related operation comprises selectively deactivating an autonomous driving module that is configured, when activated, to autonomously driving the vehicle.

311. The non-transitory computer readable medium according to claim 304 wherein the performing of the driving related operation comprises setting a velocity of the vehicle in each of the multiple road segments.

312. The non-transitory computer readable medium according to claim 304 that stores instructions for estimating a rain perception rate by at least one vehicle sensor.

313. The non-transitory computer readable medium according to claim 312 wherein the at least one vehicle sensor belongs to a wiper control unit.

314. The non-transitory computer readable medium according to claim 304 wherein the performing of the driving related operation comprises alerting a human driver of the vehicle.

315. A vehicle system for driving a vehicle, the vehicle system comprises: sensors that are configured to perform at least out out of (a) sensing a behavior of the vehicle, and (b) sensing a rain parameter; and a computer vehicle that is configured to receive or generate rain information regarding rain that is associated with multiple road segments; and estimate an occurrence the one or more aquaplaning events in the multiple road segments, wherein the estimating of the occurrence of one or more aquaplaning events is based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and an occurrence of the one or more aquaplaning events.

316. The vehicle monitor according to claim 315 wherein the vehicle computer is configured to assist in performing a driving related operation based on the estimating of the occurrence of the one or more aquaplaning events.

317. A method for measuring physical events related to multiple road segments method comprises: measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle is driving on the multiple road segments; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information; wherein the physical events comprise an occurrence of an aquaplaning event.

318. A non-transitory computer program product for measuring physical events related to multiple road segments, wherein the non-transitory computer program product stores instructions for: measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle is driving on the multiple road segments; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information; wherein the physical events comprise an occurrence of an aquaplaning event.

319. A system for measuring physical events related to multiple road segments, the system comprises a vehicle computer that is configured to (i) receive from first vehicle sensors a first set of parameters; wherein the measuring occurs while the vehicle is driving on the multiple road segments; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; (ii) to detect detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters; generate physical events information about the detected physical events; and store or assist in transmitting at least a portion of the physical events information; wherein the physical events comprise an occurrence of an aquaplaning event.

320. A method for generating a reference map of a region, the method comprises: receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute are related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles is based on a first set of parameters that is sensed by first vehicle sensors of the vehicle; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles; wherein the detected physical events comprise an occurrence of an aquaplaning event.

321. A non-transitory computer program product for generating a reference map of a region, the non-transitory computer program product stores instructions for: receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute are related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles is based on a first set of parameters that is sensed by first vehicle sensors of the vehicle; wherein the first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles; wherein the detected physical events comprise an occurrence of an aquaplaning event.

322. A method for determining a driving session, the method comprises: receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile is generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating is based, at least in part, on the vehicle profile, path portions slope, extrinsic limitations and information related to one or more aquaplaning events.

323. A non-transitory computer program product for determining a driving session, wherein the non-transitory computer program product stores instructions for: receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile is generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters are sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating is based, at least in part, on the vehicle profile, path portions slope, extrinsic limitations and information related to one or more aquaplaning events.

Description:
VEHICLE MONITOR

CROSS REFERENCE

[001] This application claims priority from the following provisional patents - each provisional patent incorporated herein in its entirety:

a. US provisional patent 62/573,828 filing date October 18, 2017.

b. US provisional patent 62/556,447 filing date September 10, 2017.

c. US provisional patent 62/556,445 filing date September 10, 2017.

d. US provisional patent 62/564,270 filing date September 28, 2017.

e. US provisional patent 62/575,544 filing date October 23, 2017.

f. US provisional patent 62/556,444 filing date September 10, 2017.

g. US provisional patent 62/556,443 filing date September 10, 2017.

h. US provisional patent 62/722,210 filing date August 24 2018.

BACKGROUND

[002] Elevation data

[003] Human driver and autonomous vehicles may benefit from highly accurate information about roads.

[004] There is a growing need to provide an efficient method for generating highly accurate information about roads.

[005] Measuring physical events

[006] Autonomous Vehicles (AV) applications and Advanced Driver Assistance Systems (ADAS) applications today has several knowledge gaps, that make their solutions vulnerable, mainly due to usage of visual sensors.

[007] One of the major problems for AV is the map localization - given a map, pinpoint the current location on the map, in relatively high accuracy.

[008] The initial sensor used for localization is the GPS. This normally gives the general area on the map. Sometimes it can be accurate as few meters, but sometimes far than that, and even missing (when sky are not clear, urban environments, or under roofs and covers).

[009] Following the rough information given by the GPS, the main sensors used today for localization fine-tuning are the visual sensors: Camera, LiDAR, RADAR, IR Camera. These sensors normally compare the visual image post processing to image data that was

mapped/collected before. When working fine, it may yield accuracy of centimeters. [0010] The main problem is that these sensors are not functioning 100% of the time due to problems such as: bad weather, headlight blindness, jamming, change in the scene, etc.

[0011] In such cases, the vehicle my not be able to localize itself accurately: longitudinal and latitudinal.

[0012] Furthermore- the knowledgebase required for exact positioning when using visual sensor is very large as it include a large number of images. Updating the database may require vast communication and processing resources.

[0013] Vehicle Profile

[0014] Autonomous Vehicles (AV) applications and Advanced Driver Assistance Systems (ADAS) applications are based on the vehicle behavior and on road conditions.

[0015] A vehicle behavior depends on a vast number of parameters - thus making the vehicle behavior unpredictable - even when allocating vast computational and storage resources to the estimation of the vehicle behavior.

[0016] There is a growing need to provide an accurate and effective estimate of a behavior of a vehicle.

[0017] Weight

[0018] The weight of a vehicle may have a significant influence on the performance of the vehicle. For example, the weight of the vehicle affects the break distance. The weight of the vehicle also affects the fuel consumption, the ware of various modules of the vehicle, and the like.

[0019] Autonomous Vehicles (AV) applications and Advanced Driver Assistance Systems (ADAS) applications may benefit from receiving in real time accurate measurements of the weight of the vehicle.

[0020] The weight of a vehicle may be of commercial importance when the vehicle is conveying goods, and the total weight of the vehicle provides an estimate of the overall weight of goods that are conveyed by the vehicle.

[0021] There is a growing need to provide accurate estimates of the weight of the vehicle.

[0022] Grip

[0023] An anti-lock braking system or anti-skid braking system (ABS) is an automobile safety system that allows the wheels on a motor vehicle to maintain tractive contact with the road surface according to driver inputs while breaking, preventing the wheels from locking up (ceasing rotation) and avoiding uncontrolled skidding ί -M-H|---<-« Mjft A typical ABS system prevents the wheels from locking up by releasing the brakes - usually by pumping the breaks when the marginal grip reaches a certain threshold. The pumping of the breaks is energy consuming and there is a growing need to reduce this energy consumption. Furthermore - when reaching a marginal grip value the breaking effectiveness reduces. There is a growing need to improve the breaking effectiveness.

[0024] Autonomous Vehicles (AV) applications and Advanced Driver Assistance Systems (ADAS) applications are based on various parameters including but not limited to vehicle parameters and on road conditions.

[0025] The road conditions and the vehicle parameters may change over time and the grip may change over time in an unpredicted manner. These grip changes may affect the manner in which the vehicle should be driven.

[0026] There is a growing need to determine the grips of path segments is a fast and accurate manner.

SUMMARY

[0027] ELEVATION DATA AND BAROMETER NOISE ESTIMATION

[0028] There may be provided a method for estimating heights of road segments, the method may include : measuring, by a barometer of a vehicle and during a given driving session, inner vehicle pressure to provide multiple barometer measurements; wherein the measuring occurs while the vehicle passes over the road segments; compensating, by a computer, for barometer affecting vehicle conditions to provide multiple compensated barometer measurements; and merging the multiple compensated barometer measurements with barometer information obtained during multiple other driving sessions that were executed by multiple vehicles, thereby providing height estimates of the road segments; wherein the merging may include performing session constant offset compensation and inter session offset compensation.

[0029] The merging may include searching for overlapping nodes, wherein each overlapping node corresponds to a same location and belongs to multiple sessions.

[0030] The merging may include a welding process for substantially equalizing height estimates of different sessions that may be related to a same overlapping node.

[0031] The method may include changing height estimates of non-overlapping nodes based on a change of a height estimate of an overlapping node that was introduced during the welding process. [0032] The changing of the height estimates of the non-overlapping nodes may include distributing height adjustments along a session according to a predefined height adjustment distribution.

[0033] The predefined height adjustment distribution may be an evenly distributed height adjustment distribution.

[0034] The session constant offset compensation may include reducing height differences between overlapping nodes without welding the overlapping nodes.

[0035] The inter session offset compensation may include the welding process.

[0036] The compensating for the barometer affecting vehicle conditions may be based on information provided by the barometer and by at least one other vehicle sensor that differs from the barometer.

[0037] The at least one other vehicle sensor may be an accelerometer.

[0038] The merging may include calculating statistics of height estimates associated with an overlapping node; and rejecting one or more height estimates based on the statistics.

[0039] The method may include transmitting the multiple compensated barometer measurements to a computerized system that may be located outside the vehicle and wherein the merging may be executed by the computerized system.

[0040] At least a part of the merging may be executed by a computer of the vehicle.

[0041] The compensating for the barometer affecting vehicle conditions may include low pass filtering the barometer measurements.

[0042] The compensating for the barometer affecting vehicle conditions may include determining to ignore at least some of the barometer measurements.

[0043] The compensating for the barometer affecting vehicle conditions may include determining to ignore at least some of the barometer measurements.

[0044] The compensating for the barometer affecting vehicle conditions may include determining to ignore at least some of the barometer measurements when a slope of a road portion that stretches between two points, as reflected by barometer measurements related to the two points, exceeds a maximal slope threshold.

[0045] The compensating for the barometer affecting vehicle conditions may include calculating an effect of a barometer affecting event on a value of at least one barometer measurement.

[0046] The compensating for the barometer affecting vehicle may be responsive to an acceleration of a vehicle when the barometer measurements were taken. [0047] The compensating for the barometer affecting vehicle may be responsive to a deacceleration of a vehicle when the barometer measurements were taken.

[0048] There may be provided a non-transitory computer program product for estimating heights of road segments, the non-transitory computer program product may store instructions for: measuring, by a barometer of a vehicle and during a given driving session, inner vehicle pressure to provide multiple barometer measurements; wherein the measuring occurs while the vehicle passes over the road segments; compensating, by a computer, for barometer affecting vehicle conditions to provide multiple compensated barometer measurements; and merging the multiple compensated barometer measurements with barometer information obtained during multiple other driving sessions that were executed by multiple vehicles, thereby providing height estimates of the road segments; wherein the merging may include performing session constant offset compensation and inter session offset compensation.

[0049] The merging may include searching for overlapping nodes, wherein each overlapping node corresponds to a same location and belongs to multiple sessions.

[0050] The merging may include a welding process for substantially equalizing height estimates of different sessions that may be related to a same overlapping node.

[0051] The non- transitory computer program product may store instructions for changing height estimates of non-overlapping nodes based on a change of a height estimate of an overlapping node that was introduced during the welding process.

[0052] The changing of the height estimates of the non-overlapping nodes may include distributing height adjustments along a session according to a predefined height adjustment distribution.

[0053] The predefined height adjustment distribution may be an evenly distributed height adjustment distribution.

[0054] The session constant offset compensation may include reducing height differences between overlapping nodes without welding the overlapping nodes.

[0055] The inter session offset compensation may include the welding process.

[0056] The compensating for the barometer affecting vehicle conditions may be based on information provided by the barometer and by at least one other vehicle sensor that differs from the barometer.

[0057] The at least one other vehicle sensor may be an accelerometer.

[0058] The compensating for the barometer affecting vehicle conditions may be based on barometer measurements patterns. [0059] The merging may include calculating statistics of height estimates associated with an overlapping node; and rejecting one or more height estimates based on the statistics.

[0060] The non-transitory computer program product may store instructions for transmitting the multiple compensated barometer measurements to a computerized system that may be located outside the vehicle and wherein the merging may be executed by the computerized system.

[0061] The compensating an at least a part of the merging may be executed by a computer of the vehicle.

[0062] The compensating for the barometer affecting vehicle conditions may include low pass filtering the barometer measurements.

[0063] The compensating for the barometer affecting vehicle conditions may include determining to ignore at least some of the barometer measurements.

[0064] The compensating for the barometer affecting vehicle conditions may include determining to ignore at least some of the barometer measurements.

[0065] The compensating for the barometer affecting vehicle conditions may include determining to ignore at least some of the barometer measurements when a slope of a road portion that stretches between two points, as reflected by barometer measurements related to the two points, exceeds a maximal slope threshold.

[0066] The compensating for the barometer affecting vehicle conditions may include calculating an effect of a barometer affecting event on a value of at least one barometer measurement.

[0067] The compensating for the barometer affecting vehicle may be responsive to an acceleration of a vehicle when the barometer measurements were taken.

[0068] The compensating for the barometer affecting vehicle may be responsive to a deacceleration of a vehicle when the barometer measurements were taken.

[0069] MEASURING PHYSICAL EVENTS

[0070] There may be provided methods, systems and non-transitory computer readable media as illustrates in the claims and/or the specification and/or drawings.

[0071] There may be provided a method for measuring physical events related to multiple road segments method may include measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle may be driving on the multiple road segments; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting may be based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information.

[0072] The detected physical events may be selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

[0073] The detected physical events may include collision, slip, skid, spin, latitude spin and longitude spin.

[0074] The first vehicle sensors may include an accelerometer and multiple wheel movement sensors.

[0075] The method may include calculating road segment attributes.

[0076] The road segment attributes may include at least one road segment attribute out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[0077] The road segment attributes may include at least three segment attributes out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[0078] The method may include calculating locations of the physical events.

[0079] The method may include calculating locations of the physical events based upon locations of different vehicle components associated with the physical events at points in time that correspond to the measuring of the first set of parameters.

[0080] The method may include calculating differences between (a) a reference map of the multiple road segments, the reference map may include reference information about previously detected physical events related to the multiple road segments, and (b) the physical events information; and wherein the transmitting at least some of the differences.

[0081] The method may include receiving or calculating a reference map of the multiple road segments, the reference map may include (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

[0082] The method may include determining a position of the vehicle based on the reference map and a sequence of detected physical events. [0083] The method may include determining a position of the vehicle by searching within the reference map for a reference sequence of physical events that fits a sequence of detected physical events.

[0084] The method may include determining a position of the vehicle by searching within the reference map for a reference sequence of mandatory physical events that fits a sequence of mandatory detected physical events.

[0085] The reference map may include a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments.

[0086] The reference map may include a layer may store the reference information about the previously detected physical events related to the multiple road segments.

[0087] The method may include determining a position of the vehicle by searching within the layer for a reference sequence of physical events that fits a sequence of detected physical events.

[0088] The searching may include scanning road segments represented by the basic layer and retrieving reference information about previously detected physical events related to scanned road segments.

[0089] The retrieving may include applying a hash function to locate the reference information about previously detected physical events.

[0090] The reference map may include (a) a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that may include additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers may be linked to the basic layer.

[0091] The method may include generating driving instructions, based on the one or more sparse layers and the position of the vehicle.

[0092] The reference map may include a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers may include the reference physical event information.

[0093] The method may include receiving a reference map update for updating a portion of the reference map and updating the portion of the reference map without updating a non-updated portion of the reference map.

[0094] The reference map may include private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and may include public fields.

[0095] The method further may include generating virtual sensors information based on at least the first set of parameters. [0096] The method further may include determining lateral locations of the vehicle by using an image sensor.

[0097] The physical events information may include normalized magnitudes of the detected physical events.

[0098] There may be provided a method for generating a reference map of a region, the method may include receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute may be related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles may be based on a first set of parameters that may be sensed by first vehicle sensors of the vehicle; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

[0099] The detected physical events may be selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

[00100] The detected physical events may include collision, slip, skid, spin, latitude spin and longitude spin.

[00101] The first vehicle sensors may include an accelerometer and multiple wheel movement sensors.

[00102] The road segment attributes may include at least one road segment attribute out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00103] The road segment attributes may include at least three segment attributes out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00104] The reference map may include (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments. [00105] The reference map may include a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments.

[00106] The reference map may include a layer may store the reference information about the previously detected physical events related to the multiple road segments.

[00107] The reference map may include (a) a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that may include additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers may be linked to the basic layer.

[00108] The reference map may include a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers may include the reference physical event information.

[00109] The reference map may include private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and may include public fields.

[00110] The physical events information may include normalized magnitudes of the detected physical events.

[00111] There may be provided a non-transitory computer program product for measuring physical events related to multiple road segments, wherein the non-transitory computer program product stores instructions for measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle may be driving on the multiple road segments; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting may be based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information.

[00112] The detected physical events may be selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

[00113] The detected physical events may include collision, slip, skid, spin, latitude spin and longitude spin.

[00114] The first vehicle sensors may include an accelerometer and multiple wheel movement sensors.

[00115] The non-transitory computer program product may store instructions for calculating road segment attributes. [00116] The road segment attributes may include at least one road segment attribute out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00117] The road segment attributes may include at least three segment attributes out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00118] The non-transitory computer program product may store instructions calculating locations of the physical events.

[00119] The non-transitory computer program product may store instructions for calculating locations of the physical events based upon locations of different vehicle components associated with the physical events at points in time that correspond to the measuring of the first set of parameters.

[00120] The non-transitory computer program product may store instructions for calculating differences between (a) a reference map of the multiple road segments, the reference map may include reference information about previously detected physical events related to the multiple road segments, and (b) the physical events information; and wherein the transmitting at least some of the differences.

[00121] The non-transitory computer program product may store instructions for receiving or calculating a reference map of the multiple road segments, the reference map may include (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

[00122] The non-transitory computer program product may store instructions for determining a position of the vehicle based on the reference map and a sequence of detected physical events.

[00123] The non-transitory computer program product may store instructions for determining a position of the vehicle by searching within the reference map for a reference sequence of physical events that fits a sequence of detected physical events.

[00124] The non-transitory computer program product may store instructions for determining a position of the vehicle by searching within the reference map for a reference sequence of mandatory physical events that fits a sequence of mandatory detected physical events.

[00125] The reference map may include a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments. [00126] The reference map may include a layer may store the reference information about the previously detected physical events related to the multiple road segments.

[00127] The non-transitory computer program product may store instructions for determining a position of the vehicle by searching within the layer for a reference sequence of physical events that fits a sequence of detected physical events.

[00128] The searching may include scanning road segments represented by the basic layer and retrieving reference information about previously detected physical events related to scanned road segments.

[00129] The retrieving may include applying a hash function to locate the reference information about previously detected physical events.

[00130] The reference map may include (a) a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that may include additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers may be linked to the basic layer.

[00131] The non-transitory computer program product may store instructions for generating driving instructions, based on the one or more sparse layers and the position of the vehicle.

[00132] The reference map may include a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers may include the reference physical event information.

[00133] The non-transitory computer program product may store instructions for receiving a reference map update for updating a portion of the reference map and updating the portion of the reference map without updating a non-updated portion of the reference map.

[00134] The reference map may include private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and may include public fields.

[00135] The non-transitory computer program product further may include generating virtual sensors information based on at least the first set of parameters.

[00136] The non-transitory computer program product further may include determining lateral locations of the vehicle by using an image sensor.

[00137] The physical events information may include normalized magnitudes of the detected physical events.

[00138] There may be provided a non-transitory computer program product for generating a reference map of a region, the non-transitory computer program product stores instructions for receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute may be related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles may be based on a first set of parameters that may be sensed by first vehicle sensors of the vehicle; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and

calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

[00139] The detected physical events may be selected from a group consisting of collision, slip, skid, spin, latitude spin and longitude spin.

[00140] The detected physical events may include collision, slip, skid, spin, latitude spin and longitude spin.

[00141] The first vehicle sensors may include an accelerometer and multiple wheel movement sensors.

[00142] The road segment attributes may include at least one road segment attribute out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00143] The road segment attributes may include at least three segment attributes out of (i) a curvature of a group of road segments that may include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00144] The reference map may include (a) reference information about previously detected physical events related to the multiple road segments, and (b) reference road segments attributes related to the multiple road segments.

[00145] The reference map may include a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments.

[00146] The reference map may include a layer may store the reference information about the previously detected physical events related to the multiple road segments.

[00147] The reference map may include (a) a basic layer may store information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that may include additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers may be linked to the basic layer.

[00148] The reference map may include a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers may include the reference physical event information.

[00149] The reference map may include private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and may include public fields.

[00150] The physical events information may include normalized magnitudes of the detected physical events.

[00151] There may be provided a system for measuring physical events related to multiple road segments, the system may include a vehicle computer that may be configured to (i) receive from first vehicle sensors a first set of parameters; wherein the measuring occurs while the vehicle may be driving on the multiple road segments; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; (ii) to detect detected physical events related to the driving on the multiple road segments, wherein the detecting may be based on the first set of parameters; generate physical events information about the detected physical events; and store or assist in transmitting at least a portion of the physical events information. The assisting may include instructing a communication module of the vehicle to transmit.

[00152] There may be provided a system for generating a reference map of a region, the system may include a communication interface that may be configured to receive from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute may be related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles may be based on a first set of parameters that may be sensed by first vehicle sensors of the vehicle; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and a processor that may be configured to calculate the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

[00153] VEHICLE PROFILE [00154] There may be provided methods, systems and non- transitory computer readable media as illustrated in the specification and/or claims and/or drawings.

[00155] There may be provided a method for generating a vehicle profile, the method may include collecting vehicle profile information candidates, wherein a vehicle profile information candidate may include fuel consumption information related to different road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by first vehicle sensors that differ from road image sensors; and generating the vehicle profile based on, at least, the vehicle profile information candidates; wherein the vehicle profile consists essentially of (i) a cruise data structure that may include cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters, (ii) an idle deceleration data structure that may include idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters, and (iii) an acceleration data structure that may include acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters.

[00156] The cruise data structure consists essentially of the values of the cruise fuel consumption parameter.

[00157] The first set of road path and vehicle parameters consist essentially of vehicle speed, road segment slope, vehicle weight, and one or more transmission system parameters.

[00158] The transmission system parameters may include gear and throttle position.

[00159] The idle deceleration structure consists essentially of the values of the idle deceleration distance.

[00160] The second set of road path and vehicle parameters consist essentially of start vehicle speed, road segment slope, and vehicle weight.

[00161] The second set of road path and vehicle parameters consist essentially of start vehicle speed, road segment slope, and vehicle weight and one or more transmission system parameters.

[00162] The transmission system parameters may include gear.

[00163] The cruise data structure consists essentially of the values of the acceleration fuel consumption parameter. [00164] The third set of road path and vehicle parameters consist essentially of start vehicle speed, road segment slope, vehicle weight, acceleration distance and one or more transmission system parameters.

[00165] The transmission system parameters may include gear and throttle position.

[00166] The method may include rejecting vehicle profile information candidates based on a comparison between a slope of a path segment and a ratio between (i) height differences between two ends of the path segment and (ii) a length of a horizontal projection of the path segment.

[00167] The method may include dynamically clustering the vehicle based on the vehicle profile.

[00168] The method may include calculating a cluster profile for each cluster.

[00169] The method may include updating, based on at least a cluster profile of the cluster that may include the vehicle, at least one out of the cruise data structure, the idle deceleration data structure, and the acceleration data data structure.

[00170] The method may include compressing the vehicle profile to generate a compressed vehicle profile.

[00171] The compressing may include calculating a mathematical relationship between dependent road path and vehicle parameters, and removing information about at least one of the dependent road path and vehicle parameters, from at least one of the cruise data structure, the idle deceleration data structure, and the acceleration data data structure.

[00172] The compression may include removing road path and vehicle parameters that may be related to a sub-group of vehicle speeds.

[00173] The compressing may include using one or more road path and vehicle parameters as keys without storing the one or more road path and vehicle parameters in any one of the vehicle profile.

[00174] The generating of the vehicle profile may include extrapolating values of the cruise fuel consumption parameter for certain values of a first of road path and vehicle parameters, wherein the extrapolating may be responsive to values of the cruise fuel consumption parameter for certain other measured values of the first set of road path and vehicle parameters.

[00175] The method may include calculating suggested driving parameter for a path that precedes the vehicle, wherein the calculating may be based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations. [00176] The calculating may include virtually segmenting the path to the portions, each portion may include one or more path segments of substantially a same slope and substantially a same extrinsic limitation.

[00177] The method may include finding an optimal speed for each portion based on the slope and maximal speed limit related to the portion.

[00178] The vehicle profile consists of the cruise data structure, the idle deceleration data structure, and the acceleration data structure.

[00179] There may be provided a non-transitory computer program product for generating a vehicle profile, wherein the non-transitory computer program product stores instructions for collecting vehicle profile information candidates, wherein a vehicle profile information candidate may include fuel consumption information related to different road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by first vehicle sensors that differ from road image sensors; and generating the vehicle profile based on, at least, the vehicle profile information candidates; wherein the vehicle profile consists essentially of (i) a cruise data structure that may include cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters, (ii) an idle deceleration data structure that may include idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters, (iii) an acceleration data structure that may include acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters.

[00180] There may be provided a computerized system for generating a vehicle profile, the computerized system may include (i) a collection module for collecting vehicle profile information candidates, wherein a vehicle profile information candidate may include fuel consumption information related to different road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by first vehicle sensors that differ from road image sensors; and (ii) a computer for generating the vehicle profile based on, at least, the vehicle profile information candidates; wherein the vehicle profile consists essentially of (a) a cruise data structure that may include cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters, (b) an idle deceleration data structure that may include idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters, and (c) an acceleration data structure that may include acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters; and (iii) a memory for storing the cruise data structure, the idle deceleration data structure, and the acceleration data structure.

[00181] There may be provided a method for determining a driving session, the method may include receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile may be generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating may be based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations.

[00182] The calculating may include virtually segmenting the path to the portions, each portion may include one or more path segments of substantially a same slope and substantially a same extrinsic limitation.

[00183] The method may include finding an optimal speed for each portion based on the slope and maximal speed limit related to the portion.

[00184] The vehicle profile substantially consists of a cruise data structure, an idle deceleration data structure, and an acceleration data structure.

[00185] The vehicle profile consists of a cruise data structure, an idle deceleration data structure, and an acceleration data structure.

[00186] There may be provided a non-transitory computer program product for determining a driving session, wherein the non-transitory computer program product stores instructions for receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile may be generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating may be based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations. [00187] WEIGHT

[00188] There may be provided methods, systems and non-transitory computer readable media as illustrates in the claims and/or the specification and/or drawings.

[00189] There may be provided a method for evaluating a weight of a vehicle, the method may include obtaining during a learning period and by vehicle sensors, vehicle sensor measurements regarding driving sessions of the vehicle, wherein the vehicle sensor measurement may include (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; and calculating, based on the vehicle sensor measurements, an evaluated weight of the vehicle; wherein the calculating may be based on values of energy coefficients that may be indicative of energy wasted by the vehicle.

[00190] The calculating of the evaluated weight further may include finding a motor efficiency function and a fuel consumption error correction function.

[00191] The calculating may include searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion.

[00192] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, according to the following equation

ame · fe · fuel— k x x— k 3 xv 2

gAh + ~ Vl ) + k 2 x + k 4 xv 2

wherein the group of energy coefficients may include kl k2 k3 and k4;

wherein ame may be a value of the estimated motor efficiency function;

wherein v maybe a velocity of the vehicle at an end of the path segment;

v maybe a velocity of the vehicle at a start of the path segment;

v represents at least one value of a velocity of the vehicle when driving over the path segment; x may be a length of the path segment;

Ah may be a height difference between the end and the start of the path segment; and fuel may be an error corrected fuel consumption related to the path segment.

[00193] The calculating may include searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion [00194] The predefined statistical significance criterion may be a maximal statistical significance.

[00195] The predefined statistical significance criterion may be a smallest standard deviation of at least one of the weight estimate distributions.

[00196] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments and for different values of the energy coefficients.

[00197] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different motor efficiency function values.

[00198] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different fuel consumption error correction function values.

[00199] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients, for different motor efficiency function values and for different fuel consumption error correction function values.

[00200] The determining of the evaluated weight may include associating a quality attribute with each weight estimate.

[00201] The determining of the evaluated weight may include associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle may be responsive to the quality attribute assigned to each weight estimate.

[00202] The determining of the evaluated weight may include associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle may be a histogram, wherein the histogram may include bins, wherein each bin may be associated with a weight estimate range and has a value that represents quality attributes of weight estimates that belong to the bin.

[00203] The determining of the evaluated weight may include associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle may be a histogram, wherein the histogram may include bins, wherein each bin may be associated with a weight estimate range and has a value that represents a sum of quality attributes of weight estimates that belong to the bin. [00204] The method may include assigning quality attributes to at least some of the vehicle sensor measurements.

[00205] The method may include assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a difference related to velocities of the vehicle at a start and at an end of the certain path segment.

[00206] The method may include assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a maximal velocity of the vehicle during the certain driving session.

[00207] The method may include ignoring vehicle sensor measurements obtained at path segments in which the vehicle descended.

[00208] The calculating may include applying machine learning.

[00209] There may be provided a non-transitory computer readable medium for evaluating a weight of a vehicle, the non-transitory computer readable medium stores instructions for obtaining during a learning period, vehicle sensor measurements regarding driving sessions of the vehicle, wherein the vehicle sensor measurement may include (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; and calculating, based on the vehicle sensor measurements, an evaluated weight of the vehicle; wherein the calculating may be based on values of energy coefficients that may be indicative of energy wasted by the vehicle.

[00210] The calculating of the evaluated weight further may include finding a motor efficiency function and a fuel consumption error correction function.

[00211 ] The calculating may include searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion.

[00212] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, according to the following equation

ame · fe · fuel— k x x— k 3 xv 2

gAh + ~ Vl ) + k 2 x + k 4 xv 2

wherein the group of energy coefficients may include kl k2 k3 and k4;

wherein ame may be a value of the estimated motor efficiency function;

wherein v maybe a velocity of the vehicle at an end of the path segment;

v maybe a velocity of the vehicle at a start of the path segment; v represents at least one value of a velocity of the vehicle when driving over the path segment; x may be a length of the path segment;

Ah may be a height difference between the end and the start of the path segment; and fuel may be an error corrected fuel consumption related to the path segment.

[00213] The calculating may include searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle, the at least one distribution fulfills at least one predefined statistical significance criterion

[00214] The predefined statistical significance criterion may be a maximal statistical significance.

[00215] The predefined statistical significance criterion may be a smallest standard deviation of at least one of the weight estimate distributions.

[00216] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments and for different values of the energy coefficients.

[00217] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different motor efficiency function values.

[00218] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different fuel consumption error correction function values.

[00219] The determining of the evaluated weight may include determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients, for different motor efficiency function values and for different fuel consumption error correction function values.

[00220] The determining of the evaluated weight may include associating a quality attribute with each weight estimate.

[00221] The determining of the evaluated weight may include associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle may be responsive to the quality attribute assigned to each weight estimate.

[00222] The determining of the evaluated weight may include associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle may be a histogram, wherein the histogram may include bins, wherein each bin may be associated with a weight estimate range and has a value that represents quality attributes of weight estimates that belong to the bin.

[00223] The determining of the evaluated weight may include associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle may be a histogram, wherein the histogram may include bins, wherein each bin may be associated with a weight estimate range and has a value that represents a sum of quality attributes of weight estimates that belong to the bin.

[00224] The non-transitory computer readable medium may store instructions for assigning quality attributes to at least some of the vehicle sensor measurements.

[00225] The non-transitory computer readable medium may store instructions for assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a difference related to velocities of the vehicle at a start and at an end of the certain path segment.

[00226] The non-transitory computer readable medium may store instructions for assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a maximal velocity of the vehicle during the certain driving session.

[00227] The non-transitory computer readable medium may store instructions for ignoring vehicle sensor measurements obtained at path segments in which the vehicle descended.

[00228] The calculating may include applying machine learning.

[00229] There may be provided a method for evaluating a weight of a vehicle, the method may include receiving values of energy coefficients that may be indicative of energy wasted by the vehicle; wherein the values of the energy coefficients were calculated based, at least in part, on vehicle sensor measurements obtained by vehicle sensors of the vehicle, the vehicle sensor measurements were obtained during driving sessions of the vehicle; wherein the vehicle sensor measurement may include (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; obtaining, during a new driving session and by the vehicle sensors, new vehicle sensor measurements related to the new driving session; and calculating the weight of the vehicle, by a vehicle computer, based on the values of the energy coefficients and the new vehicle sensor measurements.

[00230] The method may include receiving information regarding a motor efficiency function of the vehicle and wherein the calculating of the weight of the vehicle may be further responsive to the motor efficiency function of the vehicle. [00231] The information regarding the motor efficiency function may include motor efficiency function coefficients.

[00232] The number of motor efficiency function coefficients may not exceed fifty.

[00233] The method may include receiving information regarding a fuel consumption error correction function of the vehicle and wherein the calculating of the weight of the vehicle may be further responsive to the fuel consumption error correction function.

[00234] The information regarding a fuel consumption error correction function may include fuel consumption error correction function coefficients.

[00235] The number of fuel consumption error correction function coefficients may not exceed ten.

[00236] The method may include receiving information regarding a motor efficiency function of the vehicle and a fuel consumption error correction function of the vehicle, and wherein the calculating of the weight of the vehicle may be further responsive to the motor efficiency function of the vehicle and to the fuel consumption error correction of the vehicle.

[00237] The calculating of the weight of the vehicle may be performed in real time.

[00238] The method may include transmitting the new vehicle sensor measurements related to the new driving session.

[00239] The method may include receiving updated values of energy coefficients and wherein the calculating of the weight may be responsive to the updated values of energy coefficients.

[00240] The calculating of the weight may include calculating, for a new path segments of the new session, the following equation:

ame · fe · fuel— k x x— k 3 xv 2

gAh + ~ Vl ) + k 2 x + k 4 xv 2

wherein the group of energy coefficients may include ki, ka, k3 and 1¾;

wherein ame may be a value of the estimated motor efficiency function;

wherein V2 may be a velocity of the vehicle at an end of the new path segment;

vi may be a velocity of the vehicle at a start of the new path segment;

v represents at least one value of a velocity of the vehicle when driving over the new path segment;

x may be a length of the new path segment;

Ah may be a height difference between the end and the start of the new path segment; and fuel may be an error corrected fuel consumption related to the new path segment. [00241] There may be provided a non-transitory computer readable medium for evaluating a weight of a vehicle, the non-transitory computer readable medium may store instructions for receiving values of energy coefficients that may be indicative of energy wasted by the vehicle; wherein the values of the energy coefficients were calculated based, at least in part, on vehicle sensor measurements obtained by vehicle sensors of the vehicle, the vehicle sensor measurements were obtained during driving sessions of the vehicle; wherein the vehicle sensor measurement may include (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions; obtaining, during a new driving session and by the vehicle sensors, new vehicle sensor measurements related to the new driving session; and calculating the weight of the vehicle, by a vehicle computer, based on the values of the energy coefficients and the new vehicle sensor measurements.

[00242] The non-transitory computer readable medium may store instructions for receiving information regarding a motor efficiency function of the vehicle and wherein the calculating of the weight of the vehicle may be further responsive to the motor efficiency function of the vehicle.

[00243] The information regarding the motor efficiency function may include motor efficiency function coefficients.

[00244] The number of motor efficiency function coefficients does not exceed fifty. The number of per gear may not exceed three.

[00245] The non-transitory computer readable medium may store instructions for receiving information regarding a fuel consumption error correction function of the vehicle and wherein the calculating of the weight of the vehicle may be further responsive to the fuel consumption error correction function.

[00246] The information regarding a fuel consumption error correction function may include fuel consumption error correction function coefficients.

[00247] The number of fuel consumption error correction function coefficients may not exceed ten.

[00248] 'The non-transitory computer readable medium may store instructions for receiving information regarding a motor efficiency function of the vehicle and a fuel consumption error correction function of the vehicle, and wherein the calculating of the weight of the vehicle may be further responsive to the motor efficiency function of the vehicle and to the fuel consumption error correction of the vehicle.

[00249] The calculating of the weight of the vehicle may be performed in real time.

[00250] The non-transitory computer readable medium may store instructions for transmitting the new vehicle sensor measurements related to the new driving session.

[00251] The non-transitory computer readable medium may store instructions for receiving updated values of energy coefficients and wherein the calculating of the weight may be responsive to the updated values of energy coefficients.

[00252] The calculating of the weight may include calculating, for a new path segments of the new session, the following equation:

ame · fe · fuel— k x x— k 3 xv 2

gAh + (^2 2 - ) + k ^ x + kiXV 2

wherein the group of energy coefficients may include ki, ka, k3 and 1¾;

wherein ame may be a value of the estimated motor efficiency function;

wherein V2 may be a velocity of the vehicle at an end of the new path segment;

vi may be a velocity of the vehicle at a start of the new path segment;

v represents at least one value of a velocity of the vehicle when driving over the new path segment;

x may be a length of the new path segment;

Ah may be a height difference between the end and the start of the new path segment; and fuel may be an error corrected fuel consumption related to the new path segment.

[00253] GRIP

[00254] There may be provided a method for generating normalized path segment grip information related to a path segment and to a vehicle, the method may include : generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a grip event; determining, based on vehicle parameters obtained during at least a part of the grip event, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

[00255] The method may include receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de-normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

[00256] The method may include calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

[00257] The de-normalizing may be based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00258] The grip event may be selected out of a breaking event, a turn event and a high-speed event.

[00259] The determining of the normalized path segment grip information may include calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

[00260] The method may include determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

[00261] The calculating of the excitation may include selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the grip event.

[00262] The calculating of the normalized slip rate and normalized excitation may be based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00263] The generating of the wheel speed information may include low pass filtering wheel speed information, wherein the low pass filtering may be responsive to expected wheel speeds.

[00264] The generating of the wheel speed information may include ignoring short-term variations.

[00265] The grip event may be a response of a vehicle to a passage over a small obstacle, wherein the small obstacle has a length that is smaller than a perimeter of each one of the multiple wheels of the vehicle.

[00266] There may be provided a non-transitory computer program product for generating normalized path segment grip information related to a path segment and to a vehicle, wherein the non-transitory computer program product stores instructions for: generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a grip event; determining, based on vehicle parameters obtained during at least a part of the grip event, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information. [00267] The non-transitory computer program product may store instructions for receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de-normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

[00268] The non-transitory computer program product 3, may store instructions for calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

[00269] The non-transitory computer program product 3 wherein the de-normalizing may be based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00270] The grip event may be selected out of a breaking event, a turn event and a high-speed event.

[00271] The determining of the normalized path segment grip information may include calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

[00272] The non-transitory computer program product may store instructions for determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

[00273] The calculating of the excitation may include selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the grip event.

[00274] The calculating of the normalized slip rate and normalized excitation may be based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00275] The generating of the wheel speed information may include low pass filtering wheel speed information, wherein the low pass filtering may be responsive to expected wheel speeds.

[00276] The generating of the wheel speed information may include ignoring short-term variations.

[00277] The grip event may be a response of a vehicle to a passage over a small obstacle, wherein the small obstacle has a length that is smaller than a perimeter of each one of the multiple wheels of the vehicle.

[00278] There may be provided a vehicle system for generating a vehicle profile, the vehicle system may include : sensors that may be configured to generate wheel speed information related to speeds of multiple wheels of the vehicle; a computer vehicle that may be configured to (i) detect, based on the wheel speed information, a grip event; and (ii) determine, based on vehicle parameters obtained during at least a part of the grip event, the normalized path segment grip information; and at least one out of (a) a communication module that may be configured to transmit the normalized path segment grip information, and a memory module that may be configured to store the normalized path segment grip information.

[00279] A method for generating normalized path segment grip information related to a path segment and to a vehicle, the method may include generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a response of the vehicle to a passage over a small obstacle; wherein the small obstacle has a length that may be smaller than a perimeter of each one of the multiple wheels of the vehicle; determining, based on vehicle parameters obtained during at least a part of the response of the vehicle to the passage over the small obstacle, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

[00280] The method may include receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de-normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

[00281 ] The method may include calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

[00282] The de-normalizing may be based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00283] The determining of the normalized path segment grip information may include calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

[00284] The method may include determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

[00285] The calculating of the excitation may include selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the response of the vehicle to the passage over the small obstacle.

[00286] The calculating of the normalized slip rate and normalized excitation may be based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation. [00287] The generating of the wheel speed information may include low pass filtering wheel speed information, wherein the low pass filtering may be responsive to expected wheel speeds.

[00288] The generating of the wheel speed information may include ignoring short-term variations.

[00289] A non-transitory computer program product for generating normalized path segment grip information related to a path segment and to a vehicle, wherein the non-transitory computer program product stores instructions for: generating, using sensors, wheel speed information related to speeds of multiple wheels of the vehicle; detecting, by a vehicle computer and based on the wheel speed information, a response of the vehicle to a passage over a small obstacle; wherein a small obstacle has a length that may be smaller than a perimeter of each one of the multiple wheels of the vehicle; determining, based on vehicle parameters obtained during at least a part of the response of the vehicle to the passage over the small obstacle, the normalized path segment grip information; and performing at least one of (i) transmitting the normalized path segment grip information and (ii) storing the normalized path segment grip information.

[00290] The non-transitory computer program product may store instructions for receiving from a computerized system, normalized path segment grip information generated by the computerized system, and de-normalizing the normalized path segment grip information generated by the computerized system to provide actual path segment grip information.

[00291] The non-transitory computer program product may store instructions for calculating a marginal grip of the vehicle when passing the path segment based on the actual path segment grip information.

[00292] The de-normalizing may be based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00293] The determining of the normalized path segment grip information may include calculating excitation, calculating a slip rate and calculating normalized slip rate and normalized excitation.

[00294] The non-transitory computer program product may store instructions for determining a normalized slip curve based on the normalized slip rate and the normalized excitation.

[00295] The calculating of the excitation may include selecting some vehicle speed readings and ignoring other vehicle speed readings obtained during the response of the vehicle to the passage over the small obstacle. [00296] The calculating of the normalized slip rate and normalized excitation may be based on at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[00297] The non-transitory computer program product wherein generating of the wheel speed information may include low pass filtering wheel speed information, wherein the low pass filtering may be responsive to expected wheel speeds.

[00298] The non-transitory computer program product wherein generating of the wheel speed information may include ignoring short-term variations.

[00299] There may be provide a vehicle system for generating a vehicle profile, the vehicle system may include sensors that may be configured to generate wheel speed information related to speeds of multiple wheels of the vehicle; a computer vehicle that may be configured to (i) detect, based on the wheel speed information, a response of the vehicle to a passage over a small obstacle; and (ii) determine, based on vehicle parameters obtained during at least a part of the response of the vehicle to the passage over the small obstacle, the normalized path segment grip information; and at least one out of (a) a communication module that may be configured to transmit the normalized path segment grip information, and a memory module that may be configured to store the normalized path segment grip information.

[00300] AQUAPLANING

[00301] Wikipedia.org defines aquaplaning or hydroplaning by the tires of a load vAitt¼ tfnjnftor other wheeled vehicle occurs when a layer of Hilar builds between the wheels of the vehicle and the road surface, leading to a loss of flff iffli that prevents the vehicle from responding to control inputs. If it occurs to all wheels simultaneously, the vehicle becomes, in effect, an uncontrolled g¼4 Aquaplaning is a different phenomenon from when water on the surface of the roadway merely acts as a hferiOMfc Traction is diminished on wet pavement even when aquaplaning is not occurring.

[00302] It is very hard to predict when aquaplaning occurs and thus autonomous driving may be shut down whenever it rains.

BRIEF DESCRIPTION OF THE DRAWINGS

[00303] The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:

[00304] FIG. 1 illustrates an example of some road segments and some sessions;

[00305] FIG. 2 illustrates an example of nodes and edges that represent the sessions;

[00306] FIG. 3 illustrates an example of vehicle, a network and a computerized system;

[00307] FIG. 4 illustrates an example of vehicle, a network and a computerized system;

[00308] FIG. 5 illustrates an example of a method;

[00309] FIG. 6 illustrates an example of a method;

[00310] FIG. 7 illustrates an example of a method;

[00311 ] FIG. 8 illustrates height measurements relating to two sequences of road segments, and a welding error;

[00312] FIGs. 9 and 10 provide examples of multiple sessions and various height estimation processes;

[00313] FIG. 11 illustrates an example of a method;

[00314] FIG. 12 illustrates an example of a method;

[00315] FIG. 13 illustrates an example of a method;

[00316] FIG. 14 illustrates an example of a reference map;

[00317] FIG. 15 illustrates an example of a step of the method of FIG. 12 and of the method of FIG. 13;

[00318] FIGs. 16 and 17 illustrate an example of roads, road segments, ways and nodes;

[00319] FIG. 18 illustrates the bottom of a vehicle ;

[00320] FIG. 19 illustrates a calibration function;

[00321] FIG. 20 illustrates an example of a vehicle;

[00322] FIG. 21 illustrates a method;

[00323] FIG. 22 illustrates an example of a method;

[00324] FIG. 23 illustrates an example of a vehicle profile;

[00325] FIG. 24 illustrates an example of a cruise table;

[00326] FIG. 25 illustrates an example of an idle acceleration table;

[00327] FIG. 26 illustrates an example of an acceleration table;

[00328] FIG. 27 illustrates an example of generating or updating the vehicle profile;

[00329] FIG. 28 illustrates an example of a method;

[00330] FIG. 29 illustrates an example of a road path, maximal allowable speed, and a suggested velocity of the vehicle; [00331] FIG. 30 illustrates an example of a method;

[00332] FIG. 31 illustrates an example of a method;

[00333] FIG. 32 illustrates an example of an approximation of a motor efficiency function;

[00334] FIG. 33 illustrates a table that includes forty-eight coefficients;

[00335] FIG. 34 illustrates an example of a non-linear approximation of a motor efficiency function;

[00336] FIG. 35 is an example of an approximation of a fuel consumption error correction function;

[00337] FIG. 36 illustrates a histogram of a distribution related to weight estimates;

[00338] FIG. 37 illustrates a histogram of a distribution related to weight estimates;

[00339] FIG. 38 illustrates an example of a method;

[00340] FIG. 39 illustrates an example of a method;

[00341] FIG. 40 illustrates an example of a vehicle, a network, and a computerized system;

[00342] FIG. 41 illustrates an example of a vehicle, a network, and a computerized system;

[00343] FIG. 42 illustrates an example of a vehicle, a network, and a computerized system;

[00344] FIG. 43 illustrates an example of a method;

[00345] FIG. 44 illustrates an example of a method;

[00346] FIG. 45 illustrates an example of a method;

[00347] FIG. 46 illustrates an example of a method and of breaking profiles;

[00348] FIG. 47 illustrates an example of a method;

[00349] FIG. 48 illustrates an example of a method;

[00350] FIG. 49 illustrates an example of a method;

[00351] FIG. 50 illustrates an example of a vehicle, a network and a computerized system;

[00352] FIG. 51 illustrates an example of normalized slip curves;

[00353] FIG. 52 illustrates an example of a a vehicle speed and of a wheel speed;

[00354] FIG. 53 illustrates an example of a method;

[00355] FIG. 54 illustrates an example of a method;

[00356] FIG. 55 illustrates an example of a method;

[00357] FIG. 56 illustrates an example of a method; and

[00358] FIG. 57 illustrates an example of a method. DETAILED DESCRIPTION OF THE DRAWINGS

[00359] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.

[00360] It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.

[00361] Any reference in the specification to a system should be applied mutatis mutandis to a method that can be executed by the system.

[00362] Because the illustrated embodiments of the present invention may for the most part, be implemented using electronic components and circuits known to those skilled in the art, details will not be explained in any greater extent than that considered necessary as illustrated above, for the understanding and appreciation of the underlying concepts of the present invention and in order not to obfuscate or distract from the teachings of the present invention.

[00363] Any reference in the specification to a method should be applied mutatis mutandis to a system capable of executing the method and should be applied mutatis mutandis to a non- transitory computer readable medium that stores instructions that once executed by a computer result in the execution of the method.

[00364] Any reference in the specification to a system should be applied mutatis mutandis to a method that can be executed by the system and should be applied mutatis mutandis to a non-transitory computer readable medium that stores instructions that once executed by a computer result in the execution of the method.

[00365] ELEVATION DATA AND BAROMETER NOISE ESTIMATION

[00366] According to an embodiment of invention the method may include an initial error correction process and a location process of associating barometer readings to the location of the vehicle.

[00367] Figure 1 illustrates an example of some road segments that include north-south road segments 11, 15 and 18, east-west road segments 12, 13, 14, 16 and 19, and a curved road segment 17. All road segments except road segment 14 are bi-directional roads that have one lane per direction and road segment 14 has two lanes per direction.

[00368] There are three driving sessions, each driving session is represented by location readings such as GPS readings that may or may not be aligned with the road segments.

[00369] A first driving session is denoted 21 and passes through road segments 12, 13 and a left lane of road segment 14.

[00370] A second driving session is denoted 22 and passes through road segments 11, 15, 16, 17, 18 and 19.

[00371] A third driving session is denoted 23 and passes through road segments 19, 18, 17, 16, 15, 13 and a right lane of road segment 14.

[00372] Figure 2 illustrates an example of nodes and edges that represent the sessions.

[00373] First session 21 is represented by a first sequence of nodes and edges 31.

[00374] Second session 22 is represented by a second sequence of nodes and edges 32.

[00375] Third session 23 is represented by a third sequence of nodes and edges 33.

[00376] The first, second and third sequences of nodes and edges 31, 32 and 33 respectively share an overlapping node 41 - that represents a junction formed by road segments 11, 13 11 and 15.

[00377] The height of overlapping node 41 should be the same in each one of the first and second sequences of nodes and edges 31 and 32.

[00378] The third and second sequences of nodes and edges 33 and 32 share multiple overlapping nodes 42 - that represents an overlap between these sessions.

[00379] The height of each one of the overlapping nodes 41 should be the same in each one of the third and second sequences of nodes and edges 33 and 32.

[00380] It should be noted that the suggested method may be applicable on other road networks- and is usually used for mapping much larger road networks that may include hundreds, thousands and even more roads, may be nationwide road networks, regional road networks and the like.

[00381] Overlapping nodes may become as welding nodes - when the overlapping nodes are subjected to a welding process.

[00382] A welding process of a welding point involves equalizing the height estimates of the welding point at different sessions - despite the initial differences in the height estimates (welding errors). The error is then distributed along the different nodes of the graph. The distribution may be any distribution- and especially a distribution that reduces the effect of the welding process with an increment of a distance from the welding point.

[00383] The welding operation may take into account many (any number between 10 and 100,000 and even more) of overlapping nodes that are shared between multiple road segments (between multiple sequence of nodes).

[00384] The welding process may calculate welding errors (different height measurements associated with the same overlapping nodes) and attempt to distribute the welding errors between nodes while taking into account the propagation process - for example by limiting the distance of propagation of a welding error and/or by ignoring welding errors (before or after propagation) that are smaller than a threshold.

[00385] Figure 3 illustrates an example of vehicle 50, a network 62 and a computerized system 60. Figure 4 illustrates another example of vehicle 50, a network 62 and a computerized system 60. Figure 4 differs from figure 3 by further including processor 55.

[00386] The vehicle 50 may be any type of vehicle. Figure 5 illustrates the vehicle as including a barometer 51, other sensors 52, vehicle computer 53, air condition module / fan 54, window 57, and communication module 58.

[00387] The barometer 51 is illustrated as being located at the front of the vehicle 50. The barometer may be located in any location within vehicle 50. There may be more than a single barometer.

[00388] The other sensors 52 may sense various parameters related to the vehicle and/or ambient conditions. The other sensors 52 may include at least one out of an accelerometer, a speedometer, a thermometer, a window status sensor, an air condition module/ fan status sensor, an engine sensor (such as fuel consumption sensor) or any other sensor.

[00389] The vehicle computer 53 may monitor the status of various components and/or systems of the vehicle, may control various components and/or systems of the vehicle and may or may not participate in the execution of any of the methods illustrated in the specification.

[00390] The communication module 58 may communicate with computerized system 60 via network 62.

[00391] The communication module 58 may be a short-range communication module, a long-range communication module such as a radio frequency communication module, a satellite communication module, a cellular communication network, and the like.

[00392] The vehicle may include multiple windows and for simplicity of explanation only a single window 57 is shown. [00393] Vehicle computer 53 may include a processor and a memory unit. The processor may include hardware components and may be a general-purpose processor, an image processor, a hardware accelerator, an FPGA, an ASIC, and the like. The memory unit may be a non-volatile memory.

[00394] The computerized system 60 may be located in a cloud computing environment, may include one or more servers or any combination of computers.

[00395] Any step that includes processing, calculating and the like (and is illustrated in the application) may be executed by the vehicle computer 53, by processor 55 and/or by computerized system 60.

[00396] Initial error correction process

[00397] The initial error correction process that may involve correcting barometer errors that result from barometer affecting events such as the driving itself (for example - acceleration, deceleration), road conditions (for example - bumps, holes), and other barometer affecting events such as opening and/or closing one or more window (or other opening of the vehicle), operating a fan and/or an air condition module, and the like.

[00398] It is beneficial to perform the initial error correction process before affecting barometer readings from other vehicles thereby reducing the influence of the barometer errors.

[00399] The initial error correction step may include detecting a barometer affecting event by directly or indirectly sensing the barometer affecting events. The sensing may consider only the barometer reading (finding barometer reading patterns that characterize a barometer affecting event - such as a steep change in the barometer reading), but the sensing may also include using readings from other sensors (such as other sensors 52) such as an accelerometer, a speed sensor, a fuel consumption sensor, an air condition and/or fan sensor or control module.

[00400] The barometer affecting events may include speed changes. For example, when the vehicle accelerates, the air inside the cabin is pressed backwards. If the barometer is located at the dashboard of the vehicle the acceleration creates an under-pressure in the environment of the barometer, which might be interpreted by mistake as higher altitude (lower pressure reading). On the other hand, when vehicle decelerates, air is moving forward, which creates over-pressure around the barometer - can be interpreted by mistake as a higher altitude (higher pressure reading). The acceleration and deceleration may include linear and non-linear accelerations and decelerations. Non-linear accelerations may result from turns. [00401] The barometer affecting events may include opening a window. When the window is opened, especially when driving at a high speed, this may generate wind gusts inside the vehicle, or under-pressure due to air suction.

[00402] The initial error correcting process may include learning the relationship between barometer affecting events and the barometer readings, receiving information about the relationship between barometer affecting events and the barometer readings, dynamically updating the relationship between the barometer affecting events and the barometer readings, and the like.

[00403] Air pressure changes occur in a relatively gradual manner. Unless extraordinary conditions exist - the air pressure of the environment should change very gradually are maintain substantially constant over regions that may be hundreds of meters long- and even more. Abrupt changes in the barometer readings can be associated with barometer affecting events. An occurrence of a barometer affecting event may be validated or detected using other vehicle sensors such as accelerometers, vent control unit sensor, temperature sensors that sense a fast change in the temperature of the interior space of the vehicle due to an opening of the window, an acoustic sensor that may sense sounds related to opening the window, operating an air conditioning unit, and the like.

[00404] Once a barometer affecting event is detected the barometer readings obtained during the occurrence of the barometer affecting event may be discarded and/or may be corrected by compensating for the errors introduced by the barometer affecting event.

[00405] For example - the method may include detecting speed changes that may result in faked slopes in the barometer readings. These fake slopes may be smoothed. The fake slopes may appear in predefined location (for example decelerating before entering a junction - especially an intersected junction - and acceleration after exiting the junction). The location of the junction (especially an intersected junction) may be known in advance - and this may assist in locating the fake slopes associated with the junction.

[00406] The location of the junction may be learnt from a map or other database that stores the location of the junction and/or may be learnt from the appearance of fake slopes in the barometer readings of many vehicle that passes through the junction.

[00407] The change of pressure and the change of heights per distance are relatively limited or at least may be estimated or known in advance. For example- the slope of a road - especially in non-mountainous area is moderate - and barometer readings that represent an elevation change that exceeds that slope can be discarded or be filtered (for example low pass filtered). Low pass- for example low pass filtering of about 5 Hertz or any other selected frequency.

[00408] location process

[00409] The location process includes transforming vehicle location data to nodes of a graph that represents a network of roads. The nodes and the graph are merely a non-limiting example of a virtual representation of the network of roads.

[00410] The transformation may include, for example, mapping GPS readings to a list of nodes of a graph. The mapping may include finding the best match (or a sub-optimal match) between GPS readings and the nodes. The match may include finding the closest road that may match the GPS readings.

[00411] GPS readings are merely a non-limiting example of a vehicle location data. Other sensors and/or location modules (within the vehicle or without the vehicle) may provide the vehicle location data.

[00412] The location process continues by associating barometer readings to nodes of the graph - thereby facilitating a height estimation process that considers barometer readings from multiple vehicles and during multiple points in time.

[00413] For example - referring to figures 1 and 2 - GPS readings that represent driving sessions 21, 22 and 23 should be mapped to the corresponding road segments and to the corresponding first, second and third sequences of nodes and edges 31, 32 and 33.

[00414] The height estimation process may consider barometer readings that were acquired during multiple sessions. A session represents a propagation of the vehicle along a path during a certain period.

[00415] The session may have a maximal allowed length, a maximal allowed duration

(time) and may be associated with continuous barometer readings. A gap of a predefined number of barometer readings (a predefined number of consecutive nodes in the graph that are without a barometer reading) may be defined as a border between two sessions. The maximal allowable length may be driven from expected changes in the ambient pressure.

[00416] After assigning barometer readings to the nodes of the graph then the method may include estimating barometer readings of nodes that are not associated with barometer readings.

The estimation may involve extrapolation or any other estimation method.

[00417] The initial error correction process may be executed after mapping barometer readings of a session to nodes of the graphs and/or before the mapping. [00418] The barometer readings associated with the different nodes may be converted to height estimations of the nodes.

[00419] After assigning barometer readings and/or height estimations to nodes of a session the height estimation process may perform a multi-session height estimation process that considers barometer readings that were obtained during other sessions.

[00420] The multi-session height estimation process may be an iterative process during which barometer readings from a new session are merged with barometer readings taken from other sessions.

[00421] The multi-session height estimation process may compensate for (a) session constant offsets - elevation shift (elevation error) of an entire path, due to change in the ambient pressure, and (b) inter session offsets - changes of the ambient pressure along the session, due to change in time, or defining a too long session.

[00422] Figure 5 illustrates method 100 according to an embodiment of the invention.

[00423] Method 100 is a height estimation process.

[00424] Method 100 may start by an initialization step 110.

[00425] Step 110 may include determining the relationships between the nodes of the new session and the nodes of the previous sessions.

[00426] New nodes are nodes of the new session that were not included in the previous sessions.

[00427] Step 110 is followed by step 120 of (a) defining the elevation of new nodes (if such exist) as the elevations obtained from the new session, and (b) merging the heights estimations of the other nodes of the new session.

[00428] For example- if previous sessions include first and second sessions 21 and 22 then when evaluating the third session 23 step 120 will find overlapping nodes 42, overlapping node 41 and multiple new nodes 43.

[00429] The merging may include compensating for session constant offsets and for inter- session offsets.

[00430] The following example of step 120 may be explained using the following annotations and Acronyms:

AC offset - inter-session offsets.

AOA - AC Offset algorithm (also referred to inter-session offset algorithm)

DC offset - session constant offsets.

MDB - Map Database, holding the result of the Learn and Merge process: elevation per node DOA - DC Offset Algorithm (also referred to session constant offset algorithm)

SDB - the session database, holding the data for each session as a result of the Learn stage.

N - number of sessions in SDB

q - iteration # in DOA, q=l,2,...,N

OLN;,q - Overlapping nodes - during iteration #q, the group of overlapping nodes {N j } between session S; and the reset of sessions Si, S 2) .. -S q , excluding S;

OLNi - Overlapping Nodes - the group of overlapping nodes {N j } between session S; and the reset of sessions in SDB

Mi, q - number of nodes in OLN;, q . so that j= 1,2, ...,M;, q

M; - number of nodes in OLN;

CNj - Nj Counter - the number of different sessions, from Server init, that include node Nj TC; - Total C; - total counts of all nodes in OLN;

Msk - total number of nodes in session Sk

P(Nj, Sk) - [P] - original pressure height at node Nj, as recorded at session Sk, k=l,2, ...,N, j=l,2,...,Msk

DCOFF(Sk) - [P] - current known DC-offset of session S k , k=l,2, ...,N, to be added to P(Nj, S k ), j=l,2,...,Msk

OLSq j - OverLapping Sessions per Node - sub-group of {Si, S 2 , ..., S q } holding node N j OLSe qj - OverLapping Sessions Excluding - sub-group of {Si, S 2 , S q } holding node N j , excluding S q itself

OLSi - OverLapping Sessions per Session - sub-group of {Si, S 2 , ..., S q } holding at list one Nodes Nm that is included also in S;

Mt j j - size of sub-group OLS q ,j

Meq j - size of sub-group OLSe qj

dOF(OLSe q , j ) - [P] - new incremental DC-offset to add to each session at OLSe^

Pm(OLS q ,j) - [P] - mean of DC-compensated pressure height at node Nj: P(Nj, Sk)+DCOFF(Sk), for each Sk in OLS q ,j

PNj - Pressure assigned to node Nj, following Learn and Merge of Si, S 2) . . . ,SN-I

Emin - [P] - min change (threshold) in P m , that requires propagated update of the sessions'

DCOFF.

ACOFF(S k ,Nj) - [P] - calculated additional offset to DCOFF(Sk) for specific node Nj in S k MS - Modified Sessions - list of all session IDs that their DCOFF was updated during DOA. MN - Modified Nodes - list of all Node IDs Nj that their PNj was updated during DOA. [00431] Session constant offsets compensation

[00432] This process is aimed to overcome fixed changes (in time and space) of the ambient pressure. This process may go over all new sessions in SDB after learn stage, and tries to find how to best correlate them to each other in order to generate a 3D frame of map.

[00433] Given - SDB holding N sessions with data after Learn stage

[00434] Target - find DCOFF(Sk), k= 1 , 2, ... ,N - the delta that needs to be added to each of the sessions elevations, so that it will best fit each other

[00435] Step 120 may include step 130 of a session constant offsets compensation.

[00436] Step 130 may include an initialization step 132 of setting parameters:

DCOFF(Sk) = 0, k=l,2,...,N

Agg_cntr = 0.

[00437] Step 132 may be followed by step 134 of going over SDB in an iterative manner, each iteration takes into account a new session. Each iteration may include:

a. Finding height estimations of overlapping nodes that belong to different sessions.

b. Calculating height estimation errors between the height estimates of the currently evaluated session and sessions that were previously processed.

c. Trying to reduce an attribute that is related to the height estimation errors- preferably without welding. This may include, for example, reducing the overall height error.

[00438] Figure 9 illustrates three sessions 610, 620 and 620 that have different height estimates. There are three pairs of overlapping nodes:

a. A first pair that includes node 611 of session 610 and node 631 of session 630.

b. A second pair that includes node 612 of session 610 and node 621 of session 620.

c. A third pair that includes node 622 of session 620 and node 632 of session 630.

[00439] Each pair of overlapping nodes refer to the same location and each pair is associated with height estimation error - the difference between the height estimates related to the pair of nodes - D13 641 of the first pair, D12 642 of the second pair, and D23 643 of the third pair.

[00440] Step 134 may include reducing the overall height errors - for example- reducing the sum of the height errors, reducing a weighted sum of the height errors, reducing a sum of squares of height errors, and the like.

[00441] It may be assumed that all the sessions are new sessions or at least one session may be a new session. [00442] The bottom part of figure 9 illustrates the three sessions after the height error compensation process of step 134 - session 630 was lowered (height estimates of nodes related to the session were lowered) and session 620 was elevated (height estimates of nodes related to the session were increased).

[00443] The updated height errors D13' 641' , D12' 642', and D23' 643' are smaller than height errors D 13 641, D 12 642 and D23 643.

[00444] Step 134 may include iterating for each S q in SDB, q=l,2,...,N.

[00445] Step 134 may include:

Inserting S q into Queue

For each new session, finding its best DCOFF, and propagate changes in frame -

1. While Queue not empty

2. S; = session from top of Queue

3. Find OLNi q

4. For each Nj in OLNiq Calculate mean P of Nj, prior to adding (i.e. excluding) Si:

Pm(OLSeij) = (1/Mei,j)*sigma(k=l, k<=Mei,j)[P(Nj, S k )+DCOFF(S k )]

5. Calculate offset for the new session Si, so that deviation of its overlapping nodes N j from their P m will be evenly distributed (or distributed in another predefined manner):

Delta_DCOFF(Si) = (l/Mi)*sigma(k=l,k<=Mi)[P m (OLSi-i,j)-P(Nj,Si)]

6. If Delta_DCOFF(Si) > E min

a. DCOFF(Si) += Delta_DCOFF(Si)

b. Propagation: Calculate the small offset to propagate into the map: for each Nj in OLN; i.Calculate dOF(OLSij) = Pm(OLSij) - Pm(OLSi-ij).

ϋ. For each S q in {OLSij } excluding Si update:

1. Agg_DCOFF(S q ) += dOF(OLSij)

2. Agg_cntr++

c. If ABS(Agg_DCOFF(S q )/ Agg_cntr) > E m in // in case of substantial change i. DCOFF(Sq) += Agg_DCOFF(S q )/ Agg_cntr

ii. Insert S q into end of Queue

End:

Update DC-Offsets: Insert DCOFF(S;) into SDB, for all session S;, i=l,2,..,N

[00446] In step 130 all nodes of a session may be elevated or lowered in the same manner.

[00447] Step 120 may also include step 140. Step 140 may include inter-session offsets compensation. [00448] Step 140 may include compensating for local-by-nature changes in the ambient pressure, such as:

[00449] Selecting a session that is too long in the sense that is covers places with different ambient pressures.

[00450] Selecting a session that has a long duration - during which the ambient pressure has changed.

[00451] Step 140 may include (a) searching (142) for overlapping nodes of the new session that (i) overlap with nodes of other sessions, and (ii) had their height amended during step 120 of session constant offsets compensation; (b) performing (144) height compensation so that the heights of each overlapping node of the new session and overlapping node of other sessions are equal, and (c) distributing (146) the correction made to the heights of the overlapping nodes of the new session to other nodes of the session- according to a certain error distribution.

[00452] Figure 10 illustrates the three sessions after the three overlapping nodes were welded (height equalized) to provide three welding points. The welding may include adopting the height of one of the overlapping nodes (after the session constant compensations), or calculating a new weight of the welding point based on the height of at least one updated overlapping node.

[00453] Non-limiting assumptions:

a. Ambient pressure changes are graduate, therefore the AC-offset should be graduate.

b. A predefined behavior of ambient pressure may be assumed- for example - a unified distribution of the ambient pressure change

c. Ambient pressure at each node changes in time is unified distributed. So, looking at the values histogram per node we will get Gaussian-like structure

[00454] Target - given S q , q=l,2,...,N, sessions in SDB, with their DCOFF(S q ) updated using DOA (DC offset algorithm),

[00455] Find ACOFF(S q ,Nj) for each node in S q , so that:

a. All overlapping nodes in SDB have same height after applying DCOFF(S q ) +

ACOFF(S q ,Ni)

b. "noise" is distributed according to a predefined distribution - for example an even distribution along sessions.

[00456] Output - update elevation for each node in MDB

[00457] Step 140 may include

Init - Insert into SQueue, all sessions S q , that their DCOFF(S q ) has changed // stage#l "Welding": calculate height of OLN in MDB, and collect updated nodes in NQueue for each S; in SQueue:

-For each N j in OLN; and not in NQueue

Calculate P m (Nj) = (1/Mi)*sigma(k=l, k<=Mi)[P(Nj,S k ) + DCOFF(Sk)]

Update P m (N j ) in MDB, as the elevation for N j

Insert N j into NQueue

[00458] // stage#2 "Smoothing": fine tune nodes height adjacent to "welded" nodes from stage#l

while NQueue not empty:

Take Nj from top of NQueue

For each Sk in OLSij

Find an adjacent OLN on Sk, closest to Nj. Denoted by: {NA^}

For each N a in {NA^}

Calculate ACOFFi = P(S k ,N a ) + DCOFF(Sk) - Pm(N a )

Calculate ACOFF 2 = P(S k ,Nj) + DCOFF(Sk) - P m (Nj)

Go over all nodes N z on Sk, located between N a and Nj, and refine their elevation P(Sk, N z ) to be linearly distributed (or according to another predefined distribution) between ACOFFi and ACOFF2

Update elevation of N z in MDB

[00459] Figure 6 illustrates method 200' according to an embodiment of the invention.

[00460] Method 200' is a height estimation process.

[00461] Method 200' is more efficient than method 100 as it does not recalculate the heights or height correction parameters for each node of the previous sessions.

[00462] Method 200' may rely on one or more databases or fields that were not used by method 100- including but not limited to - the following MDB fields:

MW_NODES - new field P_COUNT integer - holds CNj, total number of times we got pressure value for Node N j - init to 0.

MW_NODES - replace field ELEVATION with field PRESSURE - holds P N j - average pressure height (instead of elevation), init to NotAvailable.

SQL formula/view: convert PRESSURE to ELEVATION using the standard formula, where ambient pressure = 101300[Pascal] (standard pressure) [00463] Method 200' may include an elevation learn modification - for defining pressure pre-processing noise-reduction algorithm, as part of elevation learn stage, to run prior to the merging of data related to a new session and previous sessions.

[00464] Instead of reading the pressures related to all previous sessions and generating weighted average between new session and old sessions - method 200' stores a last average PN j and its counter CN j . Nj is the j'th overlapping node. Cnj - number of sessions that are associated with the overlapping node.

[00465] In method 100 the DOA may be performed over all sessions from scratch and this is followed by performing AOA to get the elevation at Node N. Method 200', on the other hand, may be more incremental in nature: given new session Si, the method uses statistics about the previous sessions - such as PNj from MW_NODES instead of P(Nj, S q ) +

DCOFF(Sq). This way we take into the account the AOA results as well.

[00466] In method 200' the welding stage (weighted average of PN is done now in DOA and not in AOA

[00467] Method 200' may include calculating Delta_DCOFF(Si) - need to weight according to the different CN j of each N j , where N j are the overlapping nodes in Si.

[00468] Method 200' may include using a new list called Modified Sessions (MS) that holds the IDs of the sessions that their DCOFF was updated during DOA stage. This will be used in the AOA stage.

[00469] Method 200' may include adding a new list called Modified Nodes (MN) that holds the IDs of the Nodes that their PNj was updated during DOA stage. This will be used in the AOA stage.

[00470] Method 200' may include an initialization step 210' that may be followed by step 220' of Defining the elevation of new nodes (if such exist) as the elevations obtained from the new session, and (b) merging the heights estimations of the other nodes of the new session.

[00471] Step 220' may include step 240' of a session constant offsets compensation.

[00472] Step 240' may include using (232'), during each session, statistics related to the previous sessions and information related to the new session. Especially - step 240' may include calculating offset updates for a new session Si, so that deviation of its overlapping nodes N j from their P^, weighted by their CN j , will be evenly distributed (or distributed in another manner).

[00473] Assumed status: SDB holding N-1 sessions with data after Elevation Learn and Elevation Merge stages (both DOA and AOA)

PNj and CNj values, per each Node N j we have visited before, are updated in MDB

Session S N has passed Elevation Learn stage (noise reduction and pressure to nodes)

[00474] Given - New Session S N after Elevation Learn stage

[00475] Target

Update DCOFF(S k ), k=l, 2,...,N - the DC offset that needs to be added to each of the previous sessions elevations, so that it will best fit the each other

Update and CNj for each effected Node N j - "welding"

[00476] Step 240' may include:

Init:

Set default DCOFF for the new session - DCOFF(SN) = 0

Set propagation threshold: E m in = 2[Pascal] = ~17[cm]

Start with empty Modified Session and Modified Nodes list: NM and MS = { }

Start with processing the new session:

Insert S N into Queue

Process all modified sessions, until nothing to propagate

While Queue not empty

Get the next session to process: S; = top of Queue

Indicate for AOA that S; was modified - Add S; to MS list

Find the group of nodes {Nj } that exist in Si and in some other Session in SDB - Get OLN; Assign - M; = sizeof(OLNi)

Retrieve last set Pressure and Counters from MDB :

For each Nj in OLN Si - Get P N j and C N j from MW_NODES

Calculate total count of Nodes in OLN; TC; = sigma(j = 1, j <= Μ;)[0¾]

Calculate offset update for session Si, so that deviation of its overlapping nodes N j from their P^, weighted by their CNj, will be evenly distributed:

Delta_DCOFF(Si) =

= (1 / TC;) * sigmaCj = 1, j <= Mi)[C Nj * (PNJ - (P(Nj,Si) + DCOFF(Si)))]

= (1 / TC;) * sigmaCj = 1, j <= Mi)[C Nj * (PNJ - P(Nj,S ; ))] - DCOFF(S ; )

Check if change is substantial - if Delta_DCOFF(S;) > E m in

update offset of current processed session DCOFF(Si) += Delta_DCOFF(Si) update MDB pressures for Nodes in OLN; - weighted average with the new value of S; -

"welding" - for each N j in OLNsi

P Nj = (P(Nj,S + DCOFF(Si) + C Nj * P Nj ) / (1 + C Nj )

Add Node ID to Modified Nodes list - Add N j to MN list

Find the sessions that might be affected due to PNj change - Get OLSi

Propagation - Go over the Sessions with potential to change:

For each Sk in OLS; :

Find the group of nodes {Nj }, common to Sk and S; -Get OLNsk,si

Assign: Mk,i = sizeof(OLNsk,si)

Calculate total count of the group OLNsk,si— TCk,i = sigma(j = 1, j <= Mk,i)[CNj]

Calculate the combined offset change for Sk:

Delta_DCOFF(S k ) =

= (1 / TCk,0 * sigmaCj = 1, j <= Mk,i)[C N j * (P Nj - (P(Nj,S k ) + DCOFF(S k )))] = (1 / TC k ,0 * sigmaCj = 1, j <= M k ,i)[C N j * (P Nj - P(Nj,S k ))] - DCOFF(S k )

Check if this is a substantial change to DCOFF(Sk):

If (ABS (Delta_DCOFF(S k )) > E min ) Update the DCOFF:

DCOFF(Sk) += Delta_DCOFF(S k )

Add Sk to queue to check for furthur propagation - Insert Sk into end of Queue

End:

Make sure SDB and MDB are updated according to the above changes Send MS and MN to next stage - AOA

[00477] Step 240' may also include step 240. Step 240 may include inter-session offsets compensation.

[00478] AC Offset Algorithm

[00479] The AC Offset Algorithm (AOA) deals with local noise and environment air pressure shift over time and space that might have distorted or skewed the signal we use to learn elevations (air pressure). The Idea is that after the DOA has done its job, the pressures of the sessions that overlap, should be leveled, and any misses should be a result of the above reasons (local noise and skew over time and space).

[00480] Noise is reduced or cancelled by applying a heuristic approach that approach the problem under the assumption that there cannot be a "singular" point in the road network - meaning it' s impossible that a single node (or multiple nodes) will have a very big slope with regards to its neighbors (meaning its elevation is significantly different than its neighbors').

[00481] The heuristic examines "welding points" (i.e: nodes that are shared across different sessions, and therefore have an averaged pressure value), and tries to maintain the shape the road had before welding. Let's look at an example to understand this approach:

Notation

Si - Session i

N j - Node j

P Nj - The final pressure of node N j

P N) - The average pressure of node N j after DO A (for non- welding points it's their original pressure + DC offset).

^Nj,s k - The pressure of node N j on session S k (ignoring DC offset)

j k - The change in pressure difference between node J and node K (effectively - the slope change between the nodes)

A ]k - The average pressure difference between nodes N j and N k across all sessions both appear in.

Ej k - The directed edge from node N j to node N k

| Ejk | - The accumulated cost traversing to node N k through the edge E jk

d N Nk - The driving distance from N j to N k

D err - The error factor (defines how far a welding error should be spread, default: -^— ) [00482] Input

{Welding Points] - A set of the node ids of the welding points created by the DOA. {Nodes} - a hash mapping the Node data to its Id.

Graph - A graph containing all welding points with a "sufficient" radius around them - each vertex in the graph represent a node in the road network, and each edge represents a road segment, with its length (d jk ) and average pressure difference (A ]k ). The graph may be built assuming that a maximal height error is associated with a welding point (under maximal difference in weather conditions), and the minimal error that will be propagated. [00483] Allowed_Error - The error we allow each node to absorb from a single welding point (given as percentage)Output

[00484] [Dirty Nodes} - A set of all nodes that have been updated by the algorithm [00485] Data Structures

[00486] Graph - Given as an input, the graph facilitates the traversal over the road network from each Welding Point. Note that the graph stores both d ]k and A ]k on each edge E ]k .

[00487] [Traversal Front} - a DS used to store the current traversal points ("wave front")

[00488] Description

For each node N j in [Welding Points}:

For each node N k , neighbor of N j

Add E jk to the [Traversal Front} \E jk | = d N . Nk

Initialize iV 's pressure to be the average pressure: P N . = P N)

While [Traversal Front} isn't empty:

Pop edge E jk from the [Traversal Front} queue, where \E jk | is minimal (the edge with the lowest cost).

Denote E jk 's source node as N j and target node as N k .

If E kj e [Traversal Front} (Check If the current front collides with another)

Calculate the allowed error - ε = D err X d Nk>N .

Calculate the slope change between the nodes:

Remove both E kj and E jk from the [Traversal Front}

For each node V; neighbor of node N j If i≠ k

Remove Εμ from [Traversal Front} if it exists.

Add E j i to [Traversal Front} with an updated cost. For each node iV; neighbor of node N k If i≠ j

Remove E ki from {Traversal Front] if it exists

Add E ki to {Traversal Front] with an updated cost.

Continue to next iteration of the while loop.

If A jk < 0

Δ 7 ¾ = Δ ¾ + ε

Else A jk = A jk — ε

Update both nodes' pressures:

P N K = P N K +—

Add N j and N k to {Dirty Nodes].

Remove both E kj and E jk from the {Traversal Front].

For each neighbor (iV;) of N k , except for N j Add E ki to the {Traversal Front] with the cost of: |£ ; - fc | + d NkiN .

For each neighbor (iV;) of N j , except for N k Add Εμ to the {Traversal Front] with the cost of:

ELSE (If E fc does not belong to {Traversal Front]:

For each neighbor ( V;) of N k , except for iV fc 's parent (N j ) and if the cost of the edge (N k , N t is smaller than the max

Find the error we allow to pass to node N so that the error added to the segment (iV , V;) will not be greater than the allowed error ε = D err X d Nk>N .

Calculate the target pressure to which we want to "Pull" V; towards N k : If P N . is not initialized P N . = P Ni

&ki = { P N K ~ PN I ) ~ ^ki

If ki < ε (check if the node has a smaller error as it is):

Continue to next iteration of the while loop.

Else - update Ni 's pressure:

lf P Nl < P Nk — + Δ/d ε

Else

P Ni = P Ni + A ki + s

For each neighbor (N ) of N i r except for N k :

Add E a to the [Traversal Front} with the cost of: |E fci | + d N . N[

Add Ni to [Dirty Nodes}.

Return [Dirty Nodes}

[00489] Database

[00490] Fetching data for the AOA

[00491] In order to run the AOA we need to build 3 data structures in advance:

The [Welding Points} set, read from the mw_elevation_weldings table

The Nodes map, consist of data read from the mw_elevation_weldings and mw_nodes tables.

The Grpah - created by a special snake query, which reads its data from the mw_topology table (edges and distances), and from the mw_slopes table (average pressure difference between nodes).

[00492] Persisting the data

Update mw_nodes:

For each node N j in [Dirty Nodes}

Update pressure & avg_pressure columns

If N j £ [Welding Points}

Also update the following columns:

std_deviation

a. merge_count

[00493] Elevation layer welding

[00494] Figure 7 illustrates method 400'. Method 400' includes elevation layer welding. Method 400' may replace either one of method 100 and 200' and/or be included in either one of method 100 and 200'.

[00495] Method 400' may include step 410' and step 420'. [00496] Step 410' includes calculating pressure values related to a overlapping node

[00497] In this step, all of the post-DOA pressures are calculated (i.e - the pressures of all nodes touched by sessions that moved in the DC stage). Note that this step can be easily parallelized.

[00498] Input

[00499] Nodes to sessions map - mapping of each node N j £ {OLN} to the set of sessions that pass through it- for example:

Updated Sessions - every session that has moved in the DOA

[00500] Outliers cutoff width (C max )

[00501] Output

[00502] Hash: { node_id => node }

[00503] Step 420' may include calculating the number of sessions that include the overlapping node and if there are enough sessions then calculating overlapping node pressure value statistics and remove outliers. Creating an empty node hash: {Dirty Nodes]

[00504] For each node N j in {Updated Sessions}' nodes:

If N j £ {Dirty Nodes}

Calculate number of sessions passing through the node (merge _count)

Calculate P Nj - the average pressure at node N j across all of the sessions passing through it.

Calculate σ Ν . - the standard deviation of node iV 's elevation.

If merge_count > min_count

Remove outliers (those that are not within C max times σ)

Find the new session count for the node (without outliers)

Recalculate P Nj

Add N j to {Dirty Nodes}

[00505] Step 420' includes persist consolidation results.

[00506] Welding points should be saved so that the AOA will be able to read them once executed.

[00507] Input: {Dirty Nodes] - a mapping between node ids to Node objects, containing the nodes that changed.

[00508] Process:

For each node N j £ {Dirty Nodes]

Save (upsert) the following information about N j to the mw_elevation_welding

Welding information:

Welding pressure

Welding standard deviation

Welding count

Welding point: true (if N j is a welding point)

General information:

Average pressure

Standard deviation (including outliers)

1. Count (including outliers)

[00510] One or more of the mentioned above methods was validated by comparing the outcome of one or more algorithm to detailed elevation information obtained from

measurements done along specific routes, in variable pitch, using survey vehicles.

[00511 ] Definitions and Assumptions

[00512] Filter:

Compare slope to slope at the Nodes defined by MW Server

Use LPF to generate slopes out of the input elevations

Linear Extrapolation of a window of size 60[m] around the Node location, one for the MW elevation values of the neighboring nodes, and second for the accurate elevation measurements - this yields the two slopes to compare slope

[00513] Assumptions:

The error is defined as the difference between the original slope percentage and the MW measured slope percentage at the same point. So, the error units are [%]

The distribution of the errors is Gaussian - when Merging large amount of sessions in the same location

[00514] Measured errors : a. Standard Deviation (Sigma-1) - the slope error value [%] that 70% of the results are better than it

b. Sigma-2 - the slope error value [%] that 95% of the results are better than it

[00515] In order to demonstrate the data convergence, we measure the above for the following sets:

a. Single session (randomly selected) along the path

b. 4 Sessions (randomly selected) along the path

c. 10 Sessions (randomly selected) along the path

d. We assume that 10 sessions' result is close enough to big data number

[00516] In order to demonstrate the noise canceling/reduction, we measure the above:

a. Before noise canceling / reduction

b. After noise canceling / reduction

[00517] Figure 8 illustrates height measurements relating to two sequences of road segments, and a welding error.

[00518] Overlapping node 41 is shared by a sequence of road segments 11, 15, 16, 17 and 18 and to a sequence of road segments 12, 13 and 14.

[00519] Curve 511 ' illustrates height measurements obtained for sequence of road segments 11 , 15, 16, 17 and 18.

[00520] Curve 512' illustrates height measurements obtained for sequence of road segments 12, 13 and 14.

[00521] The height of overlapping node 41 in curve 51 Γ is denoted Hl l 50Γ.

[00522] The height of overlapping node 41 in curve 512' is denoted H12 502'.

[00523] There is a welding error WE 531 ' between the height of overlapping node 41 in curves 511 ' and 512' - and thus the height of the overlapping node 402 in both curves should be modified - thereby amending the entire height measurements of both curves 511 ' and 512'. The welding error is propagated among various nodes- thereby the curves 511 ' and 512' are not just moved upwards and/or downwards - their shape may also be amended- depending on the propagation of the welding error- whether the welding error is applied to nodes as a function of the distance between the overlapping node that generated the welding error and the updated node.

[00524] Figure 9 illustrates method 700 according to an embodiment of the invention.

[00525] Method 700 may start by step 710 of receiving or measuring inner vehicle pressure to provide multiple barometer measurements. The measuring is executed by a barometer of the vehicle and during a given driving session while the vehicle passes over road segments. [00526] Step 710 may be followed by step 720 of compensating, by a computer, for barometer affecting vehicle conditions to provide multiple compensated barometer measurements.

[00527] Step 720 may include at least one of the following:

a. Performing the compensating for the barometer affecting vehicle conditions based on information provided by the barometer and by at least one other vehicle sensor that differs from the barometer. The at least one other vehicle sensor may or may not be an accelerometer.

b. Performing low pass filtering the barometer measurements.

c. Determining to ignore at least some of the barometer measurements.

d. Determining to ignore at least some of the barometer measurements.

e. Determining to ignore at least some of the barometer measurements when a slope of a road portion that stretches between two points, as reflected by barometer measurements related to the two points, exceeds a maximal slope threshold.

f. Calculating an effect of a barometer affecting event on a value of at least one barometer measurement.

g. Performing the compensating in response to an acceleration and/or acceleration of a vehicle when the barometer measurements were taken.

[00528] It has been found that ignoring barometer measurements that are suspected as being highly noisy and/or strongly affected by barometer affected events and/or otherwise indicative of unreasonable slopes (slopes that are in contrary of slopes of roads - for example slopes that are near ninety degrees, about seventy degrees, and the like) - the accuracy of the height estimates is dramatically increased. The rejection of barometer measurements that are related to a road segments may be compensated by waiting to receive other barometer measurements related to the same road segments - at another point in time and/or from another vehicle, and the like. Performing method 700 over multiple barometer measurements taken over hours, days, weeks and the like will fill the missing data

[00529] Step 720 may be followed by step 730 of compensating, by a computer, for barometer affecting vehicle conditions to provide multiple compensated barometer measurements.

[00530] Step 730 may include at least one out of:

a. Searching for overlapping nodes, wherein each overlapping node corresponds to a same location and belongs to multiple sessions.

b. Performing a welding process for substantially equalizing height estimates of different sessions that are related to a same overlapping node. c. Changing height estimates of non-overlapping nodes based on a change of a height estimate of an overlapping node that was introduced during the welding process.

d. Changing of the height estimates of the non-overlapping nodes by distributing height adjustments along a session according to a predefined height adjustment distribution. The predefined height adjustment distribution may be any distribution - even or uneven distributed height adjustment distribution.

e. Performing session constant offset compensation by reducing height differences between overlapping nodes without welding the overlapping nodes.

f. Performing the inter session offset compensation by applying a welding process.

g. Calculating statistics of height estimates associated with an overlapping node; and rejecting one or more height estimates based on the statistics.

[00531] The method may include transmitting the multiple compensated barometer measurements to a computerized system that is located outside the vehicle and wherein the merging is executed by the computerized system.

[00532] At least a part of the merging is executed by a computer of the vehicle.

[00533] Method 700 is highly accurate and uses simple inaccurate barometers that are already installed in vehicles. Method 700 provides an accurate height estimate even when few barometer measurements per road segments were collected.

[00534] An accuracy of about one percent (up to one percent height error related to the height of a path segment) was achieved when processing valid (non-rejected) barometer measurements obtained when passing over the path segment three times.

[00535] An accuracy of about half a percent was achieved when processing valid (non-rejected) barometer measurements obtained when passing over the path segment seven times.

[00536] An accuracy of about 0.3 percent was achieved when processing valid (non-rejected) barometer measurements obtained when passing over the path segment fifteen times.

[00537] These accuracies are comparable to height measurement accuracies obtained when using costly dedicate devices such as the RT 3000 of Oxford Technical Solutions Ltd. of the UK.

[00538] MEASURING PHYSICAL EVENTS

[00539] Figure 12 illustrates an example of method 10' for measuring physical events related to multiple road segments.

[00540] Method 10' may be executed by various components, systems or units installed in a vehicle. [00541] Method 10' may start by step 20' of measuring a first set of parameters by first vehicle sensors. The measuring occurs while the vehicle is driving on the multiple road segments.

[00542] The measuring may be performed in a continuous or non-continuous manner. The measuring may be executed at multiple points of time (thus- at multiple locations) per road segment.

[00543] Accordingly - the first set of parameters may be measured for multiple locations per road segment of the multiple road segments.

[00544] The measurement may be executed at a rate that may exceed ten and even hundred measurements per second. For example, wheel speed may be detected at any rate - and especially a rate of at least 100 Hertz. Any other rate may be used. A 3-axes accelerometer may be read at any rate - and especially at a rate of at least 100 Hertz. A barometer may be read at any rate - and especially at a rate of at least 20 Hertz .

[00545] The first set of parameters may be measured by sensors that are not road image sensors. A road image sensor is an image sensor that is dedicated for acquiring images of road segments. For example - a road image sensor may be a camera that has a main task of acquiring images the area in front of a vehicle.

[00546] The multiple road segments are linked to each other in the sense that the vehicle can move from one road segment to the other. The number of the road segments may range between two, and few tens, few hundreds and even few thousands.

[00547] The first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters.

[00548] The vehicle may include multiple wheels. The multiple wheels may include driven wheels, non-driven wheels or a combination of both. In a 2x4 vehicle, two wheels are driven wheels and two wheels are non-driven wheels. In a 4x4 vehicle (when operating in a 4x4 mode) all wheels may be regarded as driven wheels.

[00549] The wheel movements parameters may reflect the rotation of all the wheels of the vehicle or at least some of the wheels of the vehicle.

[00550] For simplicity of explanation it is assumed that

a. The vehicle includes a front right wheel, a front left wheel, a rear right wheel and a rear right wheel.

b. The vehicle has a rear-wheel-drive configuration - the rear wheels are the driven wheels. c. The wheel movement parameters of all four wheels are monitored. [00551] These are merely non-limiting assumptions and the method is applicable regardless of these assumptions. For example - the method is applicable for any number of wheels, for any number of monitored wheels, for front-wheel-drive configuration, on a 4x4 vehicle and or any number of wheels and/or driving configuration.

[00552] Method 10' may also include step 30' of obtaining additional information about the vehicle and/or the road segments.

[00553] The additional information may include location information of the vehicle, and additional vehicle parameters. The location information may include the longitudinal location of the vehicle and the latitude location of the vehicle - the lane and even the location within a lane. The location information may be calculated by using one or more sensors - such as GPS (provides a very rough estimate of the location), image sensors and the like.

[00554] The additional information may include the locations of alignment targets. The alignment targets may be used to reset virtual odometer errors. For example- the odometer may be updated based on an integral of a wheel speed. Nevertheless, the wheel may slip, may have an actual effective radius that differs from the expected one- so that the odometer may accumulate distance errors. These distance errors may be reset, and the actual effective radius be determined based on the distance between adjacent alignment targets.

[00555] An actual effective radius of the wheel represents the real distance that is passed by a vehicle when the vehicle wheel completes a full turn. The actual effective radius may be affected from the air pressure of the wheel, the weight of the wheel, and the like.

[00556] Step 20' may be followed by step 40' of detecting, by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting is based on the first set of parameters.

[00557] Non-limiting examples of detected physical events may include collision, slip, skid, spin, latitude spin and longitude spin. Each physical event may be represented by a binary value - for example - three bits may represent the type of each event out of collision, slip, skid, spin, latitude spin and longitude spin.

[00558] Collision - bumping into an element that is higher than the level ahead of it.

Examples: stepping into a bump, stepping out of a pothole.

[00559] The collision may be detected by the following:

a. Driven wheel - abrupt momentary speed drop.

b. Non-driven wheel - abrupt momentary speed drop.

c. Accelerometer - X and Z indications, following high pass filter (HPF). d. Barometer - abrupt height increment.

[00560] Slip - stepping into an element that is lower than the level ahead of it. Examples: stepping into a pothole, stepping out of a bump.

[00561] The slip may be detected by the following:

a. Driven wheel - abrupt momentary speed increase.

b. Non-driven wheel - slight momentary speed drop.

c. Accelerometer - X and Z indications, following HPF.

d. Barometer - abrupt height decrement.

[00562] Skid - loss of tire-surface grip, when entering worse grip at same height. Examples: stepping into an ice / oil spillage / gravel / puddle, where surface height doesn't change.

[00563] The slip may be detected by the following:

a. Driven wheel - abrupt (but not momentary) speed increase

b. Non-driven wheel - gradual speed drop. Drop rate increase with axe friction.

[00564] Spin - gain of tire-surface grip, when entering better grip at same height.

Examples - stepping out of an ice / oil spillage / gravel into a better grip surface, where surface doesn't change height.

[00565] The spin may be detected by the following:

a. Driven wheel - abrupt (but not momentary) speed decrease.

b. Non-driven wheel - gradual speed increase. Increase rate goes down with axe friction.

[00566] Latitude spin - vehicle Y-Z plane movement, on top of its steady state motion. Examples - stepping into / over a dent (concave or convex) in the road with one wheel

[00567] The latitude spin may be detected by the following:

a. Driven wheel - no distinct speed change.

b. Non-driven wheel - no distinct speed change.

c. Accelerometer - distinct motion vector on Y-Z:

[00568] The latitude spin is longer in time than collision or slip.

[00569] The accelerometer readings related to a latitude spin are of lower magnitude than collision or slip.

[00570] Longitude spin - vehicle X-Z plane movement, on top of its steady state motion. Examples - stepping into / over a dent (concave or convex) in the road with two wheels

[00571] The latitude spin may be detected by the following:

a. Driven wheel - no distinct speed change.

b. Non-driven wheel - no distinct speed change. c. Accelerometer - distinct motion vector on X-Z:

[00572] The longitude spin is longer in time than collision or slip.

[00573] The accelerometer readings related to a longitude spin are of a lower magnitude than collision or slip.

[00574] Steps 30' and 40' may be followed by step 50' of generating physical events information about the detected physical events.

[00575] The physical events information may include the physical events and their locations.

[00576] A location of a physical event may be calculated based on the location of the vehicle at the time that a set of first parameter indicative of the physical event was measured and to the location of a component of the vehicle associated with the physical event.

[00577] Step 50' may be followed by step 90' of performing at least one out of storing, transmitting and processing the physical events information. The physical events information may be further processed before being transmitted and/or stored.

[00578] Steps 20' and 30' may also be followed by step 60' of calculating road segment attributes.

[00579] While multiple physical events may be detected per a road segment, a road segment attribute represents the entire road segment. Examples of road segment attributes may include (i) a curvature of a group of road segments that include the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment.

[00580] Each road segment attribute may be calculated by applying any function (such as a statistical function - especially an averaging function) on readings made in different locations of the road segment.

[00581] Referring to the curvature of a group of road segments that include the road segment. A roundabout and a curved turn may be represented by a group of road segments. The curvature of the roundabout or the curved turn is represented by the curvature of the group of road segments.

[00582] The curvature of a group of road segments may include the radius and the number of road segments that belong to the group - or any other indication (such as an aggregate length) of the group of road segments.

[00583] In order to store the curvature of a group of road segments in a compressed manner - the curvature may be stored in relation to a certain road segment of the group (for example the first road segment) and additional information may indicate the size of the group of road segments that should be also associated with the curvature.

[00584] Step 60' may be followed by step 80' of generating road segment information based on the road segment attributes. The road segments information may be the collection of the road segment attributes.

[00585] Step 80' may also include performing at least one out of storing, transmitting and further processing the roads segments information. The roads segments information may be further processed before being transmitted and/or stored.

[00586] Steps 80' and 90' may be combined in the sense that the roads segments information and the physical events information may undergo the same processes of processing, storage and transmission.

[00587] For example, the method may reduce the amount of transmitted information from the vehicle by sending only deltas- difference between reference information and the information collected during method 10'.

[00588] For example, steps 80' and 90' may include:

a. Calculating differences between (a) a reference map of the multiple road segments, the reference map comprises reference information about previously detected physical events related to the multiple road segments, and (b) the physical events information; and wherein the transmitting at least some of the differences.

b. Determining whether to transmit the differences from the vehicle. If the differences are insignificant then they may not be transmitted.

[00589] Step 50' may also be followed by step 100' of determining a location of the vehicle based on reference map and physical events information.

[00590] Figure 13 illustrates an example of method 11 ' for measuring physical events related to multiple road segments.

[00591] Method 1 Γ differs from method 10' by including step 70' of calculating virtual sensor readings - merging the first set of parameters and maybe additional information to generate outputs of virtual sensors that do not exist in the vehicle. The virtual sensor readings may be processed and/or transmitted and/or stored in either one of steps 80' and 90.

[00592] Method 1 Γ differs from method 10' by including step 102' of tracking the progress of the vehicle- after step 100' of determining the location of the vehicle.

[00593] Step 100' and/or step 102' may affect step 80' and/ or 90' - for example by providing more accurate location to the physical event information and/or to the road segment attributes. Yet for another example - the accurate location information may be used to calculate map deltas - (a) differences between reference information about previously detected physical events related to the multiple road segments, and the physical events information, and/or (b) differences between reference road segment attributes and the roads segments attribute calculated during step 60.

[00594] Method 11 ' differs from method 10' by including step 104' of generating driving instructions and/or driving suggestions based on the location of the vehicle and the reference map. The driving suggestions may be aimed to the driver of the vehicle while the driving instructions may be fed to various components of the vehicle - such as an autonomous vehicle module.

[00595] For example - an autonomous vehicle module may set the speed of the vehicle to value that matches (or substantially matches) the road segment attributes and the physical events that will occur in the near future - when the vehicle drives on the next road segments. This may increase the fuel consumption and/or reduce the load of the brakes.

[00596] Referring back to step 100' - step 100' includes determining a location of the vehicle based on reference map and physical events information

[00597] The reference map includes information that was obtained from one or more vehicles and/or other information sources regarding road segments and physical events - including but not limited to the location of the physical events.

[00598] For example - the reference map may include reference information about previously detected physical events related to the multiple road segments, and reference road segments attributes related to the multiple road segments.

[00599] The reference map may be updated based on information gathered during method 10.

[00600] The reference map may be any arrangement or collection of information about road segments and/or physical events associated with road segments.

[00601] The reference map may cover roads that span over any predefined geographical region or area.

[00602] Step 100' may include searching within the reference map for a reference sequence of physical events that match a sequence of detected physical events.

[00603] The match may require that the order of physical events, the relative distance between the physical events should equal to each other - or be within an allowable error range.

[00604] It should be noted that the physical events may be classified to mandatory physical events and optional physical events. [00605] A mandatory physical event is a physical event that is located within a road segment and must be sensed by a vehicle when passing through the road segment. For example - a significant bump that stretches along the entire width of the road segment must be sensed.

[00606] An optional physical event is a physical event that is located within a road segment and may or may not be sensed by a vehicle when passing through the road segment. For example - a small pithole that can be bypassed when driving the through the road segment may or may not be sensed.

[00607] The match may require that the order of mandatory physical events, the relative distance between the mandatory physical events should equal to each other - or be within an allowable error range.

[00608] The physical events may be characterized by a normalized magnitude. The magnitude is normalized in the sense that parameters that differ from one vehicle to the other - such as suspensions, configuration, weight and the like are compensated for. The normalization may involve comparing the information sensed by different vehicles when passing the same road segment, estimating the weight of the vehicle and the like.

[00609] The matching process and/or the normalizing process may be executed by applying any matching techniques such as neural network, deep learning, fuzzy logic, and the like.

[00610] The search may be executed within the entire reference map or within a part of the reference map. The part of the reference map may be selected out of the entire map based on ae estimate about the location of the vehicle. The estimate may be provided by a location system such as but not limited to the global positioning system (GPS).

[00611] The resolution and/or accuracy of the GPS system are usually not sufficient for providing the exact location of the vehicle- thus even when GPS location is known the method still has to use the reference map.

[00612] Figure 14 illustrates a reference map 600'.

[00613] Reference map 600' includes a basic layer 610', a fixed layer 620', a fired size sparse layer and a variable size sparse layer. 640'. The number of layers, the type of layers, the content of each layer may differ from those illustrated in figure 14.

[00614] Figures 14-17 will be illustrated using the following definitions:

a. Node - a basic element in a way. Nodes may be spaced apart from each other by up to a predefined maximal distance (for example few tens of meters). Nodes may also be defined where a direction or a slope is changing. b. Junction pointers - pointers that are associated with a junction node. Different junction nodes are associated with different exits from the junction.

c. Way - an ordered collection of nodes.

d. Road segment - a part of a road that is delimited by two adjacent nodes.

[00615] It should be noted that road segments and nodes may be used in an interchangeable manner - for example- information about a road segment may be associated with a node that either starts the road segment or ends the road segment.

[00616] The basic layer 610' may store information about locations of the multiple road segments and spatial relationships between the multiple road segments. In figure 14 this information is arranged on a way to way basis.

[00617] The basic layer 610' include multiple basic way information units. Each basic way information unit may include information about locations of the road segments that belong to the way and spatial relationships between the road segments that belong to the way. The basic way information unit may include additional basic information such slope of a road segment and pointers (or other retrieval information) that point (or allow retrieval) towards a next way. The additional basic information may be stored in various formats - such as in a way header.

[00618] The way header may include information such as direction of the way - bi-directional, uni-directional - forward direction and uni-directional - reverse direction, way speed limit, way length and the like.

[00619] The basic layer may also store turn counters - statistics per driver, per vehicle, per a group of driver, per a group of vehicles, per a time period and the like- about which turns were made. The turn counters may assist in predicting the path of a driver- when the destination is provided or even when the destination is not provided. The path may be fed to the system from a navigation application such as Google maps and/or Waze.

[00620] Fixed layer 620' includes multiple units of fixed size additional reference information about any road segment of the way. Each unit may include information about each road segment.

[00621] Fixed size sparse layer 630' and variable size sparse layer 640' include information that is not associated with each road segment of each way. The difference between these layers is in the size of their information units - fixed size units (belong to fixed size sparse layer 630') or variable size units (belong to variable size sparse layer 640').

[00622] For example - some segments may belong to linear parts of the road while some road segments may belong to curved parts of the road. A curvature attribute may be associated only with road segments that belong to curved parts of the road. Furthermore - instead of assigning a curvature attribute to each road segment that belongs to a curved part of the road - the curvature attribute may be assigned to one of the road segments - and also include information about the number of other road segments that share the same curvature attribute.

[00623] Fixed size sparse layer 630' includes multiple units of fixed size additional reference information - about none or only some road segment of the way. An empty unit (that bears no information) may be omitted from the table.

[00624] Variable size sparse layer 640' includes multiple units of variable size additional reference information - about none or only some road segment of the way. An empty unit (that bears no information) may be omitted from the table.

[00625] Accordingly, the number of units in each one of the sparse layers (630' and 640') may be smaller (and even much smaller) than the number of units of the basic layer 610' and of the fixed layer 620'.

[00626] The information units of the variable size sparse layer 640' and/or of the fixed size sparse layer 630' may be accessed by applying a hash function on the address of the corresponding units in the basic layer and/or the fixed layer. Any other storage arrangement may be applied. Any hash collision avoidance policy and/or hash collision solving policy may be applied. For example - data units of the same hash value may be stored near each other - end even in a concatenated manner.

[00627] Each information unit of each of the layers - or even information that forms a part of an information unit may be subjected to an access control policy.

[00628] For example- some information units may be tagged private while other may be tagged as public- and there may be more access control levels than private and public. For example- private information may include information about driving patterns associated with the vehicle or with a driver of the vehicle and comprises public fields.

[00629] Private information may not be shared with others vehicle or may be subjected to any other access control rule.

[00630] An information unit or a part of information unit may be flagged, tagged or otherwise marked as being associated with an access control policy.

[00631] The physical events information may be included in the variable size additional reference information - as the number of physical events per road segment may differ from one road segment to the other.

[00632] Figure 15 illustrates step 100' . [00633] Step 100' may include step 110' of searching in the reference map a reference sequence of physical events that fits a sequence of detected physical events.

[00634] Step 110' may include step 112' of scanning the basic layer and step 114' of scanning for the reference sequence of events in the variable size sparse layer that are linked to the scanned the basic layer.

[00635] Figures 5 and 6 illustrates an example of roads, road segments, ways and nodes.

[00636] Way 401 (of figure 17) is bi-directional, includes one lane per direction and "covers" road portion 111. Way 401 includes road segments that are delimited by of nodes.

[00637] Way 402 (of figure 17) is bi-directional, includes one lane per direction, and "covers" road portion 112. Way 202 includes road segments 222 and 322 and nodes 221, 223 and 321 and 323.

[00638] Road portions 111, 112, 113 and 115 are delimited by junction 120.

[00639] Way 403 (of figure 17) is bi-directional, includes one lane per direction, and "covers" road portion 113. Way 403 includes road segments that are delimited by of nodes.

[00640] Way 404 (of figure 17) is bi-directional, includes two lanes per direction, and "covers" road portion 114. Way 404 includes road segments that are delimited by of nodes.

[00641] Way 405 (of figure 17) is bi-directional, includes one lane per direction, and "covers" road portion 115, road portion 116, road portion 117 and road portion 118. Way 405 includes road segments that are delimited by of nodes. Road portion 117 is curved. One lane of road portion 117 is represented by road segments 272, 274, 276 and 278 and nodes 271, 273, 275, 277 and 279. Another lane of road portion 117 is represented by road segments 372, 374, 376 and 378 and nodes 371, 373, 375, 377 and 379.

[00642] Way 409 (of figure 17) is bi-directional, includes one lane per direction, and "covers" road portion 119. Way 409 includes road segments that are delimited by of nodes.

[00643] Way 409' (of figure 17) is bi-directional, includes one lane per direction, and "covers" road portion 119'. Way 409' includes road segments that are delimited by of nodes.

[00644] Road portions 118, 119 and 119' are delimited by junction 121.

[00645] Only road segments that belong to road portion 117 have a curvature attribute. The curvature attribute may be associated with the first or last node of (371, 373, 375, 377 and 379) and/or of (271, 273, 275, 277 and 279) and additional information may indicate the number of nodes (five) that share this curvature. [00646] Figure 16 illustrates that road segment 222 includes obstacles such as a pithole 243, a bumper 242 that stretches along a single lane, another bumper 241 that stretches across both lanes and a slippery road section 244 that stretches along a single lane.

[00647] The physical events that will be experienced by the vehicle when driving over one of the lanes of road segment 222 will be represented by detected physical events information or by reference physical events information.

[00648] Figure 18 illustrates the bottom of the vehicle- and especially illustrates the spatial relationship between various components of the vehicle - including the coordinates (XI, Yl) of a first wheel Wl 501, the coordinates (ΧΙ,ΥΙ) of a second wheel W2 502, the coordinates (X3,Y3) of a third wheel W3 503 and the coordinates (X4,Y4) of a fourth wheel W4 504, the coordinates (X5,Y5) of a center 505 of a first axel that is coupled between Wl and W2, and the coordinates (X6,Y6) of a second axel that is coupled between W3 and W4.

[00649] A physical event may be experienced by one wheel - and in this case the location of the physical event may be attributed to the location of that wheel - or by multiple wheels - for example a pair of front wheels or a pair of second wheels- and it will be attributed to the location of both wheels (for example when colliding with a bump) or attributed to the location of the center of the axis (for example- when sliding).

[00650] For example- for physical events such as collision, slip, skid and spin - a physical event is associated with each wheel that encounters the physical even. If, for example if both front wheels encounter the same type of physical event at about the same time - two physical events attributes to the two front wheels will be generated.

[00651] Yet for another example - latitude spin and longitude spin may be attributed to the middle of the axel between the front wheels of the vehicle (assuming the vehicle moves forwards).

[00652] The physical event information may include a normalized magnitude of the event. The normalization may include compensating for parameters that differ from one vehicle to the other - such as suspensions, configuration, weight and the like.

[00653] Figure 19 illustrates a curve 700' that provide an example of a normalization process that include applying a calibration factor that is based on the weight of the vehicle. Different parameters of the first set of parameters may be subjected to different calibration factors. [00654] The normalization process may take into account weight, patch size, speed (may be a main normalization factor for swing), excitation (acceleration, deceleration, curve), wheel base distance (front-rear, right-left) and suspension.

[00655] Figure 20' illustrates an example of vehicle 51, a network 590 and a computerized system 592.

[00656] The vehicle 51 may be any type of vehicle.

[00657] Figure 20 illustrates the vehicle as including first wheel Wl 501, second wheel W2 502, third wheel W3 503, fourth wheel W4 504, first wheel sensor WS 511, second wheel sensor WS 512, third wheel sensor WS 513, fourth wheel sensor WS 514, accelerometer 515, barometer 516, other sensor 517, vehicle computer 550, processor 552, memory module 554, communication module (CM) 542, and man machine interface (MMI) 540.

[00658] MMI 540 may provide information to the driver such as driving suggestions.

[00659] The barometer 516 is illustrated as being located at the front of the vehicle 51. The barometer may be located in any location within vehicle 50. There may be more than a single barometer.

[00660] Accelerometer 515 may be a three-axis accelerometer.

[00661] The other sensors 517 may sense various parameters related to the vehicle and/or road conditions. The other sensors 517 may include at least one out of a speedometer, a thermometer, an engine sensor (such as fuel consumption sensor) or any other sensor.

[00662] The vehicle computer 550 may monitor the status of various components and/or systems of the vehicle, may control various components and/or systems of the vehicle and may or may not participate in the execution of any of the methods illustrated in the specification.

[00663] The communication module 542 may communicate with computerized system 592 via network 590.

[00664] The communication module 542 may be a short-range communication module, a long-range communication module such as a radio frequency communication module, a satellite communication module, a cellular communication network, and the like.

[00665] Vehicle computer 550 may include a processor and a memory unit. The processor may include hardware components and may be a general-purpose processor, an image processor, a hardware accelerator, an FPGA, an ASIC, and the like. The memory unit may be a non-volatile memory.

[00666] The computerized system 592 may be located in a cloud computing environment, may include one or more servers or any combination of computers. [00667] Any step that includes processing, calculating and the like (and is illustrated in the application) may be executed by the vehicle computer 550, by processor 552 and/or by computerized system 592.

[00668] Memory nodule 554 may store the reference map. Various components of vehicle may execute method 10' and/or method 11 '.

[00669] Figure 21 illustrates an example of method 800.

[00670] Method 800 may be executed by a computerized system that may be located in a vehicle or outside the vehicle.

[00671] Method 800 may start by step 810 of receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attributes are related to road segments that belong to the region.

[00672] A region may be any predefined region - it may include a part of a city, an entire city, a part of a country, an entire country, a part of multiple countries, multiple countries and even the entire globe.

[00673] The information may be received from different vehicle at the same time or at different point of time. The information from different vehicle may refer to different road segments or to the same road segments. There may be a partially overlap between the road segments related to information reported by different vehicles.

[00674] The physical events information of a vehicle of the multiple vehicles is based on a first set of parameters that is sensed by first vehicle sensors of the vehicle.

[00675] The first set of parameters comprises vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors.

[00676] The detected physical events may include, for example, at least one or more out of collision, slip, skid, spin, latitude spin and longitude spin.

[00677] The first vehicle sensors may include an accelerometer and multiple wheel movement sensors.

[00678] The road segment attributes may include at least one road segment attribute out of (i) a curvature of a group of road segments that comprise the road segment; (ii) a longitudinal slope of the road segment, (iii) a lateral slope of the road segment, (iv) a grip level related to the road segment, (v) a waviness of the road segment. [00679] The detected physical event information and the road segment attributes are very compact - they may include few fields of limited size (magnitude of few bytes per field) - and are only a fraction of the size required for images used for image -based location. Accordingly - the reference map may be very small, and thus saves communication resources, computational resources and storage resources while providing a highly accurate description of roads.

[00680] The first set of parameters differ from visual information of road segments - and may include errors that differ from errors related to visual information of road segments. Merging these types of information may reduce the errors of both visual information and the information gathered during steps 810 and 820.

[00681 ] The detecting of the physical events based on the first set of parameters is much more accurate that performing inaccurate visual information-based estimates.

[00682] Method 800 may be used even under conditions that prevent visual sensors from operating (fog, sand storms, heavy rain, and the like).

[00683] The compact size of the information (road segments attributes and/or physical events information) eases the generation of updated information, the storage of updated information and the transmission of updated information - and eases the tracking after changes in the road condition.

[00684] Step 810 may be followed by step 820 of calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles.

[00685] The reference map includes reference physical events information related to the segments of the region and reference road segment attributes that relates to the road segments of the region.

[00686] The reference map may be initially generated and then updated. The update may occur in a continuous or non-continuous manner. The update may be represented by the arrow from step 820 to step 810.

[00687] The map is called a reference map in the sense that it includes reference data that may be compared to updated information acquired by a vehicle. The comparison may be performed during reference map updates and/or when the vehicle generates deltas to be transmitted to the computerized system.

[00688] The deltas are differences between the road segment attributes and/or physical events information and the reference map. [00689] Step 820 may include updating only the relevant road segments attributes and/or physical event information included in the deltas.

[00690] The reference map may be the reference map of figure 14- although the reference map may have another stricture and may store different information.

[00691] The reference map may include a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments.

[00692] The reference map may include a layer that stores the reference information about the previously detected physical events related to the multiple road segments.

[00693] The reference map may include (a) a basic layer that stores information about locations of the multiple road segments and spatial relationships between the multiple road segments, and (b) one or more sparse layers that comprise additional information about only some of the road segments of the multiple road segments; wherein the one or more sparse layers are linked to the basic layer.

[00694] The reference map may include a fixed field size sparse layer and a variable size sparse layer; wherein the variable size sparse layers may include the reference physical event information.

[00695] The reference map may include private fields that store information about driving patterns associated with the vehicle or with a driver of the vehicle and may include public fields.

[00696] The physical events information may include normalized magnitudes of the detected physical events.

[00697] VEHICLE PROFILE

[00698] There may be provided There may be provided a compact vehicle profile. The compact size of the vehicle profile eases the generation of updated and vehicle profile, the storage of the vehicle profile and the transmission of the vehicle profile. The vehicle profile may be generated and/or updated using only a limited amount of computational and/or memory resources.

[00699] The vehicle profile may be further compressed thereby further reducing its memory footprint.

[00700] Figure 22 illustrates an example of method 900.

[00701] Method 900 may start by step 910 of collecting vehicle profile information candidates, wherein a vehicle profile information candidate comprises fuel consumption information related to different road path and vehicle parameters. At least some of the road path and the vehicle parameters are sensed by first vehicle sensors that differ from road image sensors.

[00702] The collecting may include sensing the road path vehicle parameters by the first vehicle sensors, receiving information about the sensed parameters by a vehicle computer, a computerized system located outside the vehicle, and the like.

[00703] Non-limiting examples of first vehicle sensors are illustrated in US provisional patent applications serial numbers 62/556,443 and 62/556444 filing date September 10, 2017.

[00704] Step 910 may include searching for steady state candidates.

[00705] A steady state candidate is a candidate that represents information after the vehicle reaches a steady state - and before exiting the steady state.

[00706] A steady state is obtained after the vehicle maintains the same acceleration for a predetermined period, after the vehicle maintains the same velocity for the predetermined period, or after the vehicle maintained the same idle deceleration for the predetermined period. The predetermined period may be of any length - for example few seconds - especially five seconds.

[00707] The predetermined period related to the steady state for cruise may be the same or may differ than the predetermined period related to the steady state for acceleration.

[00708] The predetermined period related to steady state for cruise may be the same or may differ than the predetermined period related to steady state for idle deceleration.

[00709] The predetermined period related to steady state for idle deceleration may be the same or may differ than the predetermined period related to steady state for acceleration.

[00710] An acceleration steady state may start when the vehicle is at a start speed and may end when the vehicle reaches a predefined velocity that is above the start speed by a predetermined amount (for example- 5 km/h - or any other value).

[00711] An idle deceleration steady state may start when the vehicle is at a start speed and may end when the vehicle reaches a certain velocity that is below the start speed by a certain amount (for example- 5 km/h - or any other value).

[00712] The certain amount may be the same as the predetermined amount or may differ from the predetermined amount.

[00713] The idle deceleration data structure may store only the start speed, only the predefined velocity or both start speed and predefined velocity.

[00714] The acceleration data structure may store only the start speed, only the certain velocity or both start speed and certain velocity. [00715] Step 910 may be followed by step 920 of generating the vehicle profile based on, at least, the vehicle profile information candidates.

[00716] The vehicle profile may consist, may consists essentially of, or may include:

[00717] a cruise data structure that comprises cruise information about values of a cruise fuel consumption parameter associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters.

[00718] an idle deceleration data structure that comprises idle deceleration information about values of an idle deceleration distance values associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters.

[00719] an acceleration data structure that comprises acceleration information about values of an acceleration fuel consumption parameter associated with a constant acceleration of the vehicle for different values of a third set of road path and vehicle parameters.

[00720] The cruise data structure may consist, may consists essentially of, or may include values of the cruise fuel consumption parameter for different combination of values of the first set of road path and vehicle parameters.

[00721] The first set of road path and vehicle parameters may include, may consist of, or may consist essentially of vehicle speed, road segment slope, vehicle weight, and one or more transmission system parameters.

[00722] The transmission system parameters may include, may consist of, or may consist essentially of gear and throttle position.

[00723] The idle deceleration data structure may include, may consist of, or may consist essentially of the values of the idle deceleration distance. Idle deceleration may mean a deceleration that does not involve using the brakes of the vehicle.

[00724] The second set of road path and vehicle parameters may include, may consist of, or may consist essentially of start vehicle speed, road segment slope, and vehicle weight.

[00725] The second set of road path and vehicle parameters may include, may consist of, or may consist essentially of start vehicle speed, road segment slope, and vehicle weight and one or more transmission system parameters.

[00726] The transmission system parameters may include, may consist of, or may consist essentially of gear.

[00727] The cruise data structure may include, may consist of, or may consist essentially of the values of the acceleration fuel consumption parameter. The acceleration fuel consumption parameter may be an average momentary fuel consumption and/or the average fuel consumption per a certain distance. And/or fuel consumption at liters per 100 kilometers.

[00728] The third set of road path and vehicle parameters may include, may consist of, or may consist essentially of start vehicle speed, road segment slope, vehicle weight, acceleration distance and one or more transmission system parameters.

[00729] The transmission system parameters may include, may consist of, or may consist essentially of gear and throttle position.

[00730] Step 920 may include rejecting vehicle profile information candidates based on a comparison between a slope of a path segment and a ratio between (i) height differences between two ends of the path segment and (ii) a length of a horizontal projection of the path segment.

[00731] Step 920 may be followed by step 930 of dynamically clustering the vehicle based on the vehicle profile.

[00732] Step 930 may include calculating a cluster profile for each cluster. The cluster profile may include, may consist of, or may consist essentially of a cluster cruise data structure, a cluster idle deceleration data structure, and a cluster acceleration data structure.

[00733] A cluster cruise data structure represents the cruise data structure of at least some of the vehicle of a cluster. The cluster cruise data structure may be calculated using any function - such as but not limiting to - statistical functions, weighted averaging and the like.

[00734] A cluster idle deceleration data structure represents the idle deceleration data structure of at least some of the vehicle of a cluster. The cluster idle deceleration data structure may be calculated using any function - such as but not limiting to - statistical functions, weighted averaging and the like.

[00735] A cluster acceleration data structure represents the acceleration data structure of at least some of the vehicle of a cluster. The cluster acceleration data structure may be calculated using any function - such as but not limiting to - statistical functions, weighted averaging and the like.

[00736] Step 930 include updating, based on at least a cluster profile of the cluster that may include the vehicle, at least one out of the cruise data structure, the idle deceleration data structure, and the acceleration data data structure.

[00737] Step 920 and/or 930 may be followed by step 940 of compressing the vehicle profile to generate a compressed vehicle profile. [00738] The compressed vehicle profile may be stored in a memory unit of the vehicle and/or in a memory unit outside the vehicle. The compressed vehicle profile may be transmitted to the vehicle and/or may be transmitted outside the vehicle.

[00739] Step 940 may include at least one of the following:

[00740] Calculating a mathematical relationship between dependent road path and vehicle parameters, and removing information about at least one of the dependent road path and vehicle parameters, from at least one of the cruise data structure, the idle deceleration data structure, and the acceleration data data structure.

[00741] Removing road path and vehicle parameters that are related to a sub-group of vehicle speeds. For example- determining the optimal speed per a path segment - and keeping only fuel consumption parameters related to the optimal speed per a path segment.

[00742] Using one or more road path and vehicle parameters as keys without storing the one or more road path and vehicle parameters in any one of the vehicle profile. Accordingly - different fuel consumption parameters may be stored in a data base and are accessed using one or more road path and vehicle parameters (such as slope and/or speed) as keys.

[00743] A non-limiting example of calculating the mathematical estimation is illustrated below, and at least a part of this example is illustrated in US provisional patent applications serial numbers 62/556,445 and 62/556447 filing date September 10, 2017.

[00744] The following section illustrates how the slope parameter may be amended to reflect the slope and the weight of the vehicle - thereby removing the weight from the vehicle profile to provide a compressed vehicle profile.

[00745] The following compression can be applied on the cruise data structure - other data structures (acceleration, idle deceleration) may be compressed using other formulas:

[00746] The following elements are used:

[00747] mg h - fuel is turned to elevation potential energy

[00748] ) _ f ue j - s turnec L to kinetic energy

[00749] k 2 mx— represents energy turned to friction (affected by mass)

[00750] k 3 xv 2 — represents energy turned to friction (drag)

[00751] *Note that all calculation for Cruise steady state (i.e. velocity is constant and time frame of T ss second)

[00752] On the one side of the equation, and the energy we get out of the engine, on the other:

[00753] E Fue i - represents fuel energy [00754] Finally, we get:

[00755] E = mgAh + mk 2 x + (V 2 2 - V{) + k 3 xV

Efric V~const =>£fc→0 drag

[00756] Definitions:

[00757] K 2 Coefficient is given at the end of each session.

[00758] x - Total distance in meters. Here it is determined per steady state (i.e. x = V ss *

T ss ).

[00759] 5 0 - steady state slope in percent

[00760] Ah - elevation difference (derived from slope and x)

FW-EW

[00761] m 0 (per VCT)

[00762] m reai ~ rea l estimated weight for current session

[00763] Am = m rea i — m Q - mass change (from mo)

[00764] dh - effective change of elevation difference that result of mass change

[00765] S new - new slope with weight m 0 (take into account S 0 and Am)

[00766] Relation of slope and h

[00768]

[00769] Our energy equations are:

&E Feu i = (m 0 + Am)gAh + (m Q + Am)k 2 x + k 3 xV 2

[00770]

AE Feui = m 0 g(Ah + dh) + m 0 k 2 x + k 3 xV 2

[00771] We like to find dh that cause the same fuel consumption (AE Fuel ) as the addition of Am, thus we need to solve:

[00772] (m 0 + Am)gAh + (m 0 + Am)k 2 x = m 0 g{Ah + dh) + m 0 k 2 x

[00773] AmgAh + Amk 2 x = m 0 gdh→ dh =— ΔΛ. +—

m 0 \ g J

[00774] Now, the new slope is:

[00775] 5 new = 100

[00776] Thus, we found a function that maps (S 0 , m 0 , Am, k 2 ) to a new effective slope. [00777] Assuming that a slope of a road segment is known - then The compression may involve maintaining in the compressed vehicle profile only information related to the slope of the road segment. If the vehicle is about to pass a sequence of path segments - then the compressed vehicle profile may include information related only to the slopes of the path segments of the sequence.

[00778] The compressing may take into account maximal speed limits and remove during the compression information regarding speed values that exceed the maximal speed limits.

[00779] If, for example, during step 950 a computerized system generated suggested one or more driving parameters (such as speed, throttle, and gear) related to a path that precedes the vehicle then the compression may take into account the suggested parameters and remove, during the compression, information related to other driving parameters.

[00780] Step 920 may include extrapolating values of the cruise fuel consumption parameter for certain values of a first of road path and vehicle parameters. The extrapolating may be responsive to values of the cruise fuel consumption parameter for certain other measured values of the first set of road path and vehicle parameters.

[00781] The extrapolation is merely an example of how to estimate fuel consumption or idle deceleration distance (depending upon the table) for values of road path and vehicle parameters that were not sensed based on road path and vehicle parameters that were sensed and/or were taken from a cluster vehicle cluster or were guessed or obtained in another manner.

[00782] Figure 27 illustrates that the cruise data structure 1010 may be generated and/or updated using default cruise information 1010' (preprogrammed values, or any default values, the default values may be generated randomly, in a pseudo-random manner, based on any parameter of the vehicle - manufacturer, model, year), cluster cruise information 1010" and/or actual (measured) cruise information 1010".

[00783] The idle deceleration data structure 1020 may be generated and/or updated using default idle deceleration information 1020' (preprogrammed values, or any default values, the default values may be generated randomly, in a pseudo-random manner, based on any parameter of the vehicle - manufacturer, model, year), cluster idle deceleration information 1020" and/or actual (measured) idle deceleration information 1020".

[00784] The acceleration data structure 1030 may be generated and/or updated using default acceleration information 1030' (preprogrammed values, or any default values, the default values may be generated randomly, in a pseudo-random manner, based on any parameter of the vehicle - manufacturer, model, year), cluster acceleration information 1030" and/or actual (measured) acceleration information 1030".

[00785] Any estimate may be responsive to the quality of the road path and vehicle parameters. The quality may be determined in any manner. For example - a higher quality may be assigned to a combination of values of road path and vehicle parameters that were measured multiple times, and have a small distribution (at least smaller that the distributions of another combination that has a lower quality). Measured fuel consumption and/or idle deceleration values may have a higher quality that corresponding values for extrapolated values and/or cluster values.

[00786] Referring back to figure 22 - method 900 may include step 950 of suggesting one or more driving parameter for a path that precedes the vehicle. Step 950 is based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations such as maximal speed limits.

[00787] At least one step of method 900 may be executed by a vehicle computer and/or by a computerized system, located outside the vehicle. The vehicle computer and the computerized system may cooperate with each other during the execution of method 900.

[00788] Figures 23-26 illustrate examples of a vehicle profile and various data structures of the vehicle profile.

[00789] Figures 23 and 24 illustrates cruise data structure 1010 as including cruise information about values of a cruise parameter (such as average momentary fuel consumption 1011) associated with a constant velocity movement of the vehicle for different values of a first set of road path and vehicle parameters (1012). The first set of road path and vehicle parameters may include, for example, velocity, slope of path segment, weight of vehicle, gear, and average throttle position.

[00790] Assuming that there are Nv different speed values (VI - Vnv), Ns different slope values (SI -Sns), Nw different vehicle weight values (Wl-Wnw), Ng different values of gear position (Gl-Gng), Natp different values of average throttle position (ATP1 - ATPnatp) - the cruise data structure may include up to Nv * Ns * Nw * Ng * Natp entries.

[00791] Figure 24 illustrates three entries - each entry includes an average momentary fuel consumption (AVMFC) field { 1011(1,1,1,1,1), 1011(1,1,1,1,2) and 1011(nv, ns, nw, ng, natp)} and a corresponding Related vehicle and road path parameters field { 1012(1,1,1,1,1),

1012(1,1, 1,1,2) and 1012(nv, ns, nw, ng, natp)}. [00792] Figures 23 and 25 illustrates idle deceleration data structure 1020 as including idle deceleration information about values of an idle deceleration parameter (such as idle deceleration distance 1021) associated with an idle deceleration of the vehicle for different values of a second set of road path and vehicle parameters (1022). The second set of road path and vehicle parameters may include, for example, starts velocity (velocity when starting the idle deceleration), slope of path segment, weight of vehicle and gear.

[00793] Assuming that there are Nv different start speed values (VI - Vnv), Ns different slope values (SI -Sns), Nw different vehicle weight values (Wl-Wnw) and Ng different values of gear position (Gl-Gng) - the idle deceleration data structure may include up to Nv * Ns * Nw * Ng entries.

[00794] Figure 25 illustrates three entries - each entry includes an idle deceleration distance field (IDS) { 1021(1,1,1,1), 1021(1,1, 1,2) and 1021(nv, ns, nw, ng)} and a corresponding related vehicle and road path parameters field { 1022(1,1, 1,1), 1022(1,1,1,2) and 1022(nv, ns, nw, ng)}.

[00795] Figures 23 and 26 illustrate acceleration data structure 1030 as including acceleration information about values of an acceleration parameter (such as accumulated fuel consumption 1031) associated with a constant acceleration movement of the vehicle for different values of a third set of road path and vehicle parameters (1032). The third set of road path and vehicle parameters may include, for example, start velocity, slope of path segment, acceleration length, weight of vehicle, gear, and average throttle position.

[00796] Assuming that there are Nv different speed values (VI - Vnv), Ns different slope values (SI -Sns), Nad different acceleration distances (AD1 - ADnad), Nw different vehicle weight values (Wl-Wnw), Ng different values of gear position (Gl-Gng), Natp different values of average throttle position (ATP1 - ATPnatp) - the acceleration data structure may include up to Nv * Ns * Nad * Nw * Ng * Natp entries.

[00797] Figure 26 illustrates three entries - each entry includes an accumulated fuel consumption (AFC) field { 1031(1,1,1,1,1,1), 1031(1, 1,1,1,1,2) and 1031(nv, ns, nad, nw, ng, natp)} and a corresponding Related vehicle and road path parameters field { 1032(1,1,1,1,1,1), 1032(1,1, 1,1,1,2) and 1032(nv, ns, nad, nw, ng, natp)}.

[00798] Non-limiting examples of values and granularity of parameters is provided below:

[00799] Velocity or start velocity may be range between 0-140 Km/h with granularity between 1-5 Km/h, and the like. [00800] Slope may range between minus 20 and plus 20 with a granularity between 0.05 - 2 degrees, and the like.

[00801] Weight may range between 1-100 percent of a maximal loaded vehicle with a granularity between 0.5-8 percent, and the like.

[00802] Gear may range between 4 and 16 with a granularity of 1.

[00803] Average throttle position may range between 1-100 percent of a maximal open throttle with a granularity between 0.5-8 percent, and the like.

[00804] Average momentary fuel consumption may range between 0 to 1200 Liter to 100 Km, with a granularity between 0.05-1 percent, and the like.

[00805] Average fuel consumption may range between 0 to 255 Liter/hour, with a granularity between 0.5-5 liter/hour, and the like.

[00806] Idle deceleration distance may range between 0-1000 meters with resolution between 0.5-5 meters.

[00807] The range and/or resolution may change between one data structure to another.

[00808] Figure 20 illustrates an example of vehicle 51, a network 590 and a computerized system 592.

[00809] The vehicle 51 may be any type of vehicle.

[00810] Vehicle 51 may include any type of vehicle sensors. Non-limiting examples of vehicle sensors are illustrated in US provisional patent applications serial numbers 62/556,443 and 62/556444 filing date September 10, 2017.

[00811] Figure 20 illustrates the vehicle as including first wheel Wl 501, second wheel W2 502, third wheel W3 503, fourth wheel W4 504, first wheel sensor WS 511, second wheel sensor WS 512, third wheel sensor WS 513, fourth wheel sensor WS 514, accelerometer 515, barometer 516, other sensor 517, vehicle computer 550, processor 552, memory module 554, communication module (CM) 542, and man machine interface (MMI) 540.

[00812] MMI 540 may provide information to the driver such as driving suggestions.

[00813] The barometer 516 is illustrated as being located at the front of the vehicle 51. The barometer may be located in any location within vehicle 50. There may be more than a single barometer.

[00814] Accelerometer 515 may be a three-axis accelerometer.

[00815] The other sensors 517 may sense various parameters related to the vehicle and/or road conditions. The other sensors 517 may include at least one out of a speedometer, a thermometer, an engine sensor (such as fuel consumption sensor) or any other sensor. [00816] The vehicle computer 550 may monitor the status of various components and/or systems of the vehicle, may control various components and/or systems of the vehicle and may or may not participate in the execution of any of the methods illustrated in the specification.

[00817] The communication module 542 may communicate with computerized system 592 via network 590.

[00818] The communication module 542 may be a short-range communication module, a long-range communication module such as a radio frequency communication module, a satellite communication module, a cellular communication network, and the like.

[00819] Vehicle computer 550 may include a processor and a memory unit. The processor may include hardware components and may be a general-purpose processor, an image processor, a hardware accelerator, an FPGA, an ASIC, and the like. The memory unit may be a non-volatile memory.

[00820] The computerized system 592 may be located in a cloud computing environment, may include one or more servers or any combination of computers.

[00821] Any step that includes processing, calculating and the like (and is illustrated in the application) may be executed by the vehicle computer 550, by processor 552 and/or by computerized system 592.

[00822] Memory nodule 554 may store the reference map. Various components of vehicle may execute method 900 and/or 1200.

[00823] Figure 28 illustrates method 1200 and figure 9 illustrates an example of suggested driving speed obtained when using method 1200.

[00824] Method 1200 is for calculating suggested driving parameter for a path that precedes a vehicle. The driving parameter may include, for example, speed, throttle position and gear.

[00825] Method 1200 is based, at least in part, on the vehicle profile, path portions slope and extrinsic limitations such as maximal speed limit, ambient weather, and the like.

[00826] Method 1200 may start by step 1210 of virtually segmenting the path to portions. Each portion may include one or more path segments of substantially a same slope and substantially a same extrinsic limitation. A path segment may be an atomic unit for road path parameters. A rod segments may be, for example, between 1 and 50 meters long - but may have other lengths.

[00827] Step 1210 may be followed by step 1220 of calculating suggested driving parameters for the future path based on the vehicle profile, and the slopes and the extrinsic limitations of the portions. [00828] The calculating may include, step 1222 of finding an optimal speed for the portion based on the slope and extrinsic limitations. The speed may be optimal in the sense that it may be selected to provide a minimal fuel consumption, may result in the fastest passage over the entire path, and/or may be responsive to any other constraint.

[00829] The calculating may include step 1224 of evaluating, based on driving parameters related to adjacent portions, a portion driving profile that starts a fixed acceleration period at the beginning of the portion, a constant speed portion at the optimal speed and an idle deceleration at the end of the portion.

[00830] Step 1220 may be executed in a backpropagating manner - starting from the end of the pat and assuming that the vehicle should idle at the end of the last segment. The method may then try to check whether the last portion can be driven by starting with a fixed acceleration period till reaching an optimal speed and then performing idle deceleration to stop the vehicle at the end of the last portion. This should take into account the limitations of the previous portion and extrinsic limitations.

[00831] The backpropagating may include determining the driving profile through the portion based on the parameters related to a preceding and/or following portions.

[00832] In figure 29 a path includes a first portion PI 1241, a second portion P2 1242, a third portion P3 1243, a fourth portion P4 1244 and a fifth portion P5 1245.

[00833] Each portion may include multiple path segments.

[00834] First portion PI 1241 includes few path segments that have different slopes - but the sloped are substantially the same. The slope allocated to first portion PI 1241(for calculating the driving session) is denoted Slope 1 1241 ' and may reflect any slope and/or height change of the path segments of the first portion.

[00835] Third portion P3 1243 and fourth portion P4 1244 have the same slope but are associated with different maximal speed limits - V2 versus VI.

[00836] The suggested velocity is illustrated at the bottom of figure 9. It was calculated by backpropagating the desired driving profile (trapezoid shaped profile) from the fourth portion backwards.

[00837] The driving profile of the first portion starts by a fixed acceleration SV1 1251 that is followed by a fixed velocity cruising SV2 2152. In this example, the first portion includes a positive slope and idle deceleration will reduce the speed of the vehicle in a manner that will require unnecessary acceleration during the second portion. [00838] The driving profile of the second portion starts by a fixed acceleration SV3 1253 that is followed by a fixed velocity cruising SV4 1254, and ends with idle deceleration SV5 1245.

[00839] The driving profile of the third portion starts by a fixed velocity cruising SV6 1256, and ends with idle deceleration SV7 1247. The third and fourth segments have a negative slope and the vehicle reaches the maximal speed limit at the end of the third segments- there is no need to starts the fourth portion with a fixed acceleration. The maximal speed limit of the fourth portion is lower than the maximal speed limit of the third portion - and a relatively long idle deceleration period is required at the end of the third portion.

[00840] The driving profile of the fourth portion starts by a fixed velocity cruising SV8 1258, and ends with idle deceleration SV9 1249.

[00841] The driving profile of the fifth portion starts by a fixed velocity cruising SV10 1250, and ends with idle deceleration SV11 1251 - so that at the end of the path the vehicle is idle.

[00842] It is noted that the path may be associated with different start and end conditions - for example the vehicle may not be idle at the end of the path.

[00843] WEIGHT

[00844] The weight of the vehicle can be evaluated based on energy consumed by the vehicle in various path segments and on the energy gained by the fuel consumption.

[00845] The weight of the vehicle can be evaluated based on assumptions related to a motor efficiency function and a fuel consumption errors associated with fuel consumption measurements. The motor efficiency function represents the relationship between consumed fuel and output (mechanical) energy.

[00846] The evaluation process may be performed in an iterative manner, in which one or more assumptions that were used for calculating the evaluated weight can be re-evaluated given the evaluated weight. The same iterative approach may be applied to the estimate of the motor efficiency function and/or to the fuel consumption errors.

[00847] The evaluation process of the weight and/or any estimation process (that is based on the estimated weight) can be done at any complexity and/or by any computerized system - either by a vehicle computer or an out-of-vehicle server or computer. For example, the out-of- vehicle computer may initially evaluate the energy coefficients using a vast number (thousands or more) of measurements. The vehicle computer may receive the initially evaluated energy coefficients and use them (in addition to more measurements obtained by the vehicle sensors) to update (even in real time) the weight estimate of the vehicle.

[00848] Initial or other estimates of energy coefficients, motor efficiency function values and/or to the fuel consumption errors values related to a certain vehicle may be based on the behavior of vehicles that belong to the same class of vehicles. A class of vehicles may be vehicles of the same model, same manufacturer and/or same year of production. Additionally or alternatively, the vehicle may be classified and/or re-classified based on the weight measurements of the vehicle.

[00849] The evaluation process may examine multiple combinations of values of energy coefficients, motor efficiency function values and/or to the fuel consumption errors values.

[00850] Any search process may be applied. The entire set of combinations may be evaluated or only a part of the entire set of combination may be evaluated.

[00851] The search process may take into account a quality attribute associated with a path segment. The quality attribute may be used to filter measurements related to path segments and/or may be used in another manner.

[00852] For example, the weight of a vehicle can be evaluated based on an evaluation of work and energy gained by the fuel consumed.

[00853] A weight of a vehicle may be evaluated during a learning period (or a learning period). During the learning period, the monitored vehicle passes through multiple paths. The multiple paths may be segmented to path segments.

[00854] The work and energy gained by the fuel consumed may be estimated per each path segment.

[00855] The work and energy gained by the fuel consumed may be expressed using the following six components:

a. m ^ 2 ^ Vl ) _ ue j s turned to kinetic energy

b. mg h - fuel is turned to elevation potential energy

c. / — represents energy turned to friction

d. k 2 mx— represents energy turned to friction (affected by weight)

e. k 3 xv 2 — represents energy turned to friction (drag)

f. k 4 mxv 2 — represents energy turned to friction (weight involved)

[00856] On the side of the equation, the energy outputted from the engine of the vehicle, taking into account the energy loss by engine inefficiency: ame fe fuel - represents fuel energy. [00857] Using an equilibrium equation (Energy = Potential Gain + Loss):

ante · fe · fuel = m(~V2 Vl ^ + mg h + k x x + k 2 mx + k 3 xv 2 + k 4 mxv 2

[00858] We may extract the mass of the vehicle:

[00859] Mass estimates may be converted to weight estimates (weight = mass x g).

[00860] The values of the energy coefficient values may be evaluated over any range and at any resolution. For example - kl may range between 0 and 10,000 and be evaluated at a resolution (steps) of 1000 (0, 1000, 2000, 3000...), and each one of k2, k3 and k4 may range between 0 and 1 and be evaluated at a resolution of 0.01 (0, 0.01, 0.02, 0.03...).

[00861] A search process may include calculating the weight estimates for a plurality of path segments. The plurality of path segments may include all the path segments of all paths that were passed by the vehicle during the learning period or only some of the paths segments.

[00862] A path segments may be ignored (filtered out) for one or more reasons such as an insufficient quality.

[00863] Non-limiting examples of path segmentation and/or filtering out and/or assigning a quality attribute are provided below:

a. Path segment may be relatively short (in time) - for example below half a minute. The duration of the path is a tradeoff between the need to obtain enough data, expecting that at least some variables will be substantially constant during the entire path segment and having enough valid path segments within a single driving session. The longer the path segment the higher the quality.

b. Ignore path segments (or assign low quality) in which the vehicle descended - thereby avoiding braking losses, and since in such path segments the fuel is cut from engine.

c. Motor revolutions per minute (RPM) - higher RPM difference (between start and end of path segment) - the higher the quality.

d. Assign higher quality to path segments having bigger momentum (momentum is the difference between the square of the velocity at the end of a path segment and the square of the velocity at the start of a path segment. Insufficient momentum (below a momentum threshold - such as 50[m A 2/Sec A 4])- may be ignored of - or be assigned a very low quality.

e. Ignore path segments (or assign low quality) - in which the velocity exceeded a certain speed threshold (for example - above 70 Km/h) - due to quantization errors. f. Ignore path segments (or assign low quality) in which the overall fuel consumption rate is below a threshold (for example - 3[L/hour])

g. Assign higher quality level to path segments that include steeper climbs of the vehicle. h. Prevent a single path from including stops that are long enough to enable substantial weight changes of the vehicles. For example- if unloading 500 kilograms of goods lasts two minutes - then an occurrence of such a stop that is at least two minutes long may mark the border between two path segments.

[00864] The suggested weight evaluation is accurate and may require limited computational resources. The suggested weight evaluation compensates for inaccuracies of measurements performed by vehicle sensors and enables using low cost limited accuracy sensors.

[00865] Figure 30 illustrates method 100".

[00866] Method 100" may start with step 110" of determining weight estimates for different combination of energy coefficient values and for each path segment of a plurality of path segments (assuming a certain motor efficiency function and a certain fuel consumption error correction function), according to the following equation:

m = (ame fe fuel - k_\ x - k_3 xv A 2)/(gAh + (( [v_2] A 2 - [v_l] Λ 2))/2 + k_2 x + k_ χν Λ 2 ) .

[00867] Wherein "ame" is a value of the estimated motor efficiency function, V2 is a velocity of the vehicle at an end of the path segment, vi is a velocity of the vehicle at a start of the path segment, v represents at least one value of a velocity of the vehicle when driving over the path segment (for example the average velocity), x is a length of the path segment, Ah is a height difference between the end and the start of the path segment; and fuel is an error corrected fuel consumption related to the path segment.

[00868] Step 110" provides a plurality of weight estimates.

[00869] Step 110" may be followed of step 120" of analyzing the plurality of weight estimates to determine the estimated weight of the vehicle.

[00870] The analysis may include evaluating multiple combinations of energy coefficient values. The multiple combinations of energy coefficient values may cover all the possible combinations of energy coefficient values or only a subset of all the possible combinations of energy coefficient values. Any method for selecting which combination to evaluate may be provided.

[00871] Step 120" may include at least one of the following:

a. For each combination of energy coefficient values (of the multiple combinations): i. Calculating, a distribution related to the weight estimates. The distribution may be provided by applying the combination of energy coefficient values to inputs received about multiple path segments. The distribution may be a distribution of weight estimates, may be a distribution that is responsive to quality attributes of the path segments, may be a distribution that ignores the quality attributes of the path segments, may include only information about path segments of enough quality, may be a distribution of values that represents quality attributes of weight estimates that belong to a bin associated with a range of weight estimates, may be a distribution of values of sums of quality attributes of weight estimates that belong to a bin associated with a range of weight estimates. For example- when the distribution is a weight distribution then this step may including calculating a weight estimate, using the combination, for each path segment of multiple path segments.

ii. Finding one or more clusters (for each one of the distributions). For example- if the weight of the vehicles was not changed during the learning period then it is expected to receive a single cluster. The number of typical and distinguishable weights of the vehicle (for example- empty or full) may determine the number of clusters.

iii. Determining one or more statistical parameter of the clusters. For example - statistical variation, width of the cluster, and the like.

b. Selecting, out of the different combinations of energy coefficient values (that are associated with different distributions), a selected combination of energy coefficient values. The selection is based on the one or more statistical parameters of the clusters of the distribution that is related to the selected combination of energy coefficient parameters. For example - the selected combination of energy coefficient values may provide a distribution that has the most statistically significant clusters.

c. Using the weight estimate provided when using the selected combination of energy coefficients as the evaluated weight of the vehicle. The weight estimate may be one of the weight estimates of one or more path segments, may represent (for example be an average, median or any other representation of) the different weight estimates related to different path segments (when using the selected combination of energy coefficients), and the like.

[00872] Step 120" may be responsive to quality attributes of the path segments. For example, the distribution of the weight estimates may represent quality attributes and/or may ignore path segments of insufficient quality.

[00873] Step 120" may be followed by step 130" of responding to the evaluated weight of the vehicle. [00874] Step 130" may include one or more steps out of:

a. Updating an Autonomous Vehicles application.

b. Updating an Advanced Driver Assistance Systems (ADAS) application.

c. Reporting the estimated weight to the driver of the vehicle or to another entity (such as a vehicle supervisor).

d. Using the evaluated weight of the vehicle to verify or better estimate the motor efficiency function.

e. Using the evaluated weight of the vehicle to verify or better estimate the certain fuel consumption error correction function.

f. Classifying the vehicle to a certain class of vehicles.

g. Using the selected combination of the energy coefficient values and future measurements obtained by the vehicle to calculate in real time (even by the vehicle computer) the future weight of the vehicle.

[00875] Method 100" provides a highly accurate estimate of the vehicle without using dedicated and costly weight sensors such as dedicated vehicle scales, and the like. The highly accurate weight estimate dramatically reduces the resources required for measurement of a weight of a vehicle. The method may used constrained and unconstrained machine learning and is highly efficient in terms of usage of computerized resources. By checking a vast number of measurements and readings the method may filter out inaccuracies.

[00876] Figure 31 illustrates a vehicle (such as truck 100) and multiple paths 1160" traveled by the vehicle during the learning period. The learning period may last hours, days, weeks, months, years, and the like.

[00877] The paths may be segmented to path segments. The path segments may be of different lengths, may be of equal length, and the like.

[00878] Figure 32illustrates an example of an approximation 1100 of a motor efficiency function 1100. In figure 32 the x-axis represents RPM and the y-axis represents average motor efficiency.

[00879] The approximation 1100 includes three vertexes (1101 , 1102 and 1103) and two edges 1104 and 1105. The peak of the approximation 1100 is vertex 1102. Edge 1104 links vertexes 1101 and 1102. Edge 1105 links vertexes 1102 and 1103.

[00880] Approximation 1100 may be represented in a compact manner by motor efficiency function values such as coefficients ai, ai and a3. Coefficient a3 may be the value of vertex 1102. Coefficient ai may be a reciprocal of the slope of edge 1105. Coefficient &2 may be a reciprocal of the slope of edge 1104.

[00881] Any other representation of the approximation may be used.

[00882] It should be noted that the motor efficiency function may be responsive to the gear - and that the motor efficiency function may be represented by a set of coefficients per gear.

[00883] Figure 33 illustrates a table 1150 that includes forty-eight coefficients - three coefficients per each one out of sixteen gears - ai,i till ai 6 ,3.

[00884] Figure 34 illustrates an example of a non-linear approximation 1111 of a motor efficiency function 1100.

[00885] Figure 35 is an example of an approximation 1140 of a fuel consumption error correction function.

[00886] The fuel consumption error correction function corrects errors in fuel consumption measurements

[00887] Figure 35 illustrates a linear approximation that includes six segments. The six segments have start values denoted fl, f2, f3, f4, f5 and f6 1141-1146.

[00888] Figure 36 illustrates a histogram 1120 of a distribution related to weight estimates.

[00889] The histogram includes multiple bins that are associated with weight ranges. The value of each bin is a sum of quality attributes of path segments that are associated with the same weight range.

[00890] Figure 36 shows two distinct clusters 1121 and 1122.

[00891] Figure 37 illustrates a histogram 1130 of a distribution related to weight estimates.

[00892] The histogram includes multiple bins that are associated with weight ranges. The value of each bin is a sum of quality attributes of path segments that are associated with the same weight range.

[00893] Figure 37 shows two distinct clusters 1131 and 1132.

[00894] Figure 38 illustrates method 200".

[00895] Method 200" may start with step 210" of determining weight estimates (i) for different combination of energy coefficient values, (ii) for each path segment of a plurality of path segments, (iii) for different motor efficiency function values, and (iv) for different fuel consumption error correction function values, according to the following equation:

m = (ame fe fuel - k_\ x - k_3 xv A 2)/(gAh + (( [v_2] A 2 - [v_l] Λ 2))/2 + k_2 x + k_ χν Λ 2 ) . [00896] It should be noted that step 210" may include determining weight estimates (i) for different combination of energy coefficient values, (ii) for each path segment of a plurality of path segments, and (iii) for different motor efficiency function values (given a certain fuel consumption error correction function).

[00897] Alternatively, step 210" may include determining weight estimates (i) for different combination of energy coefficient values, (ii) for each path segment of a plurality of path segments, and (iii) for different fuel consumption error correction function values (given a certain motor efficiency function).

[00898] Step 210" provides a plurality of weight estimates.

[00899] Step 210" may be followed of step 220" of analyzing the plurality of weight estimates to determine the estimated weight of the vehicle.

[00900] Step 220" may include at least one of the following:

a. For each combination of energy coefficient values, each fuel consumption error correction function values and each motor efficiency function values:

i. Calculating a distribution related to the weight estimates. The distribution may be provided by applying the combination of energy coefficient values to inputs received about multiple path segments. The distribution may be a distribution of weight estimates, may be a distribution that is responsive to quality attributes of the path segments, may be a distribution that ignores the quality attributes of the path segments, may include only information about path segments of enough quality, may be a distribution of values that represents quality attributes of weight estimates that belong to a bin associated with a range of weight estimates, may be a distribution of values of sums of quality attributes of weight estimates that belong to a bin associated with a range of weight estimates.

ii. Finding one or more clusters. For example- if the weight of the vehicles was not changed during the learning period then it is expected to receive a single cluster. The number of typical and distinguishable weights of the vehicle (for example- empty or full) may determine the number of clusters.

iii. Determining one or more statistical parameter of the clusters. For example - statistical variation, width of the cluster, and the like.

b. Selecting, out of the different combinations of energy coefficient values, the different fuel consumption error correction function values, and the different motor efficiency function values (that are associated with different distributions), a selected combination of energy coefficient values, fuel consumption error correction function values and different motor efficiency function values. The selection is based on the one or more statistical parameters of the clusters. For example - the selected combination of energy coefficient values, fuel consumption error correction function values and different motor efficiency function values may provide the most statistically significant clusters.

c. Using the weight estimate provided when using the selected combination of energy coefficients, fuel consumption error correction function values and different motor efficiency function values as the evaluated weight of the vehicle. The weight estimate may be one of the weight estimates of one or more path segments, may represent (for example be an average, median or any other representation of) the different weight estimates related to different path segments (when using the selected combination of energy coefficients), and the like.

[00901] Step 220" may be responsive to quality attributes of the path segments. For example, the distribution of the weight estimates may represent quality attributes and/or may ignore path segments of insufficient quality.

[00902] Step 220" may be followed by step 230" of responding to the evaluated weight of the vehicle.

[00903] Step 230" may include one or more steps out of:

a. Updating an Autonomous Vehicles application.

b. Updating an Advanced Driver Assistance Systems (ADAS) application.

c. Reporting the estimated weight to the driver of the vehicle or to another entity (such as a vehicle supervisor).

d. Using the evaluated weight of the vehicle to verify or better estimate the motor efficiency function.

e. Using the evaluated weight of the vehicle to verify or better estimate the certain fuel consumption error correction function.

f. Classifying the vehicle to a certain class of vehicles.

[00904] Figure 39 illustrates method 300".

[00905] Method 300" may start by step 310" of obtaining during a learning period and by vehicle sensors, vehicle sensor measurements regarding driving sessions of the vehicle.

[00906] The vehicle sensor measurement may include: Height measurements of paths related to the driving sessions. Fuel consumption measurements related to the driving sessions. Length measurements of the of road segments related to the driving sessions.

[00907] Step 310" may be followed by step 320" of calculating, based on the vehicle sensor measurements, an evaluated weight of the vehicle. [00908] The calculating is based on values of energy coefficients that are indicative of energy wasted by the vehicle. Non-limiting example of the coefficients are kl, k2, k3 and k4 mentioned above.

[00909] Step 320" may include finding at least one out of the motor efficiency function and a fuel consumption error correction function.

[00910] Step 320" may include searching for values of the energy coefficients that provide at least one distribution related to weight estimates of the vehicle that fulfills at least one predefined statistical significance criterion.

[00911] The predefined statistical significance criterion may be a maximal statistical significance, may be a smallest standard deviation of at least one of the weight estimate distributions

[00912] Step 320" may include at least one of the following steps:

a. Evaluating values of the energy coefficients, by determining, for a plurality of path segment of the set of paths, an evaluated weight of the vehicle.

b. Determining weight estimates for each path segment of the plurality of path segments, according to the following equation:

ame-fe-f el-k 1 x-k 3 xv 2

171 = (V 2 -v 2 1 ·

gAh+ (V2 2 " 1 '+k 2 x+k 4 xv 2

[00913] Step 320" may include at least one out of

a. Determining weight estimates for each path segment of the plurality of path segments and for different values of the energy coefficients.

b. Determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different motor efficiency function values. c. Determining weight estimates for each path segment of the plurality of path segments, for different values of the energy coefficients and for different fuel consumption error correction function values.

d. Determining estimates for each path segment of the plurality of path segments, for different values of the energy coefficients, for different motor efficiency function values and for different fuel consumption error correction function values.

e. Associating a quality attribute with each weight estimate.

f. Associating quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is responsive to the quality attribute assigned to each weight estimate. g. Associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is a histogram, wherein the histogram comprises bins, wherein each bin is associated with a weight estimate range and has a value that represents quality attributes of weight estimates that belong to the bin.

h. Associating a quality attribute with each weight estimate, wherein the at least one distribution related to weight estimates of the vehicle is a histogram, wherein the histogram comprises bins, wherein each bin is associated with a weight estimate range and has a value that represents a sum of quality attributes of weight estimates that belong to the bin.

i. Assigning quality attributes to at least some of the vehicle sensor measurements.

j. Assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a difference related to velocities of the vehicle at a start and at an end of the certain path segment.

k. Assigning quality attribute to vehicle sensor measurements related to a certain path segment based on a maximal velocity of the vehicle during the certain driving session.

1. Ignoring vehicle sensor measurements obtained at path segments in which the vehicle descended.

[00914] Step 320" may be followed by step 330" of responding to the evaluated weight of the vehicle.

[00915] Any method of methods 100", 200" and 300" may be executed once, in a periodical manner, in a repetitive manner that is not periodic, in any time, in response to events and the like. For example - the methods (or at least one of the methods) may be executed each two months (or other period of time) in order to compensate for changes such as vehicle wear, and the like.

[00916] Any one of the method may receive or otherwise obtain one or more actual weight measurements, and the one or more actual weight measurements of the vehicle may be taken into account.

[00917] For example- the selection of any combination of energy coefficients (and/or any values related to a motor efficiency function and/or to a fuel consumption error correction function) may take into account the one or more actual weight measurements.

[00918] Thus, any one of methods 100", 200" and 300" may be a constrained or a non- constrained learning process. The constraints being the one or more actual weight measurements.

[00919] For example- the selection may include applying a cost function that is responsive to the one or more actual weight measurements and to at least one predefined statistical significance criterion. For example - find the combination of energy coefficients (and/or any values related to a motor efficiency function and/or to a fuel consumption error correction function) that once applied with provide the clusters that are closest to the one or more actual weight measurements and are of maximal statistical significance (for example- are the narrowest clusters).

[00920] Any one or method 100", 200" and 300" may involve applying a machine learning process - especially a deep learning process.

[00921] A learning period may be any period of time during which measurements are made, and the measurements may be used for estimating the weight of the vehicle.

[00922] Figure 40 illustrates a vehicle 51, network 1070 and computerized system 1080.

[00923] Vehicle 51 may include vehicle sensors such as sensors 1040, a memory module 1030, a vehicle computer 1020 that includes a processor 1010, a man machine interface 1050, a communication module 1060 and wheels W1-W4 501-504.

[00924] Man machine interface (MMI) 1050 may include a screen, a holographic screen, a speaker, a camera, an audio system and/or an audio-visual system, a keyboard, and the like.

[00925] The vehicle 51 may be any type of vehicle.

[00926] Sensors 1040 may include, at least speed sensors, height sensors, distance sensors and fuel consumption sensors.

[00927] Sensors 1040 are configured to provide height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions.

[00928] Sensors 1040 may include, for example, at least one out of an accelerometer, a speedometer, a thermometer, a window status sensor, an air condition module/ fan status sensor, an engine sensor (such as fuel consumption sensor) or any other sensor.

[00929] Vehicle computer 1020 may monitor the status of various components and/or systems of the vehicle, may control various components and/or systems of the vehicle, and may participate (using processor 1010) in the execution of any of the methods illustrated in the specification.

[00930] The communication module (CM) 1060 may communicate with computerized system 1080 via network 1070.

[00931] The communication module 1060 may be a short-range communication module, a long-range communication module such as a radio frequency communication module, a satellite communication module, a cellular communication network, and the like.

[00932] Vehicle computer 1020 may include a processor and a memory unit. The processor may include hardware components and may be a general-purpose processor, an image processor, a hardware accelerator, an FPGA, an ASIC, and the like. The memory unit may be a non-volatile memory.

[00933] The computerized system 1080 may be located in a cloud computing environment, may include one or more servers or any combination of computers.

[00934] Any step that includes processing, calculating and the like (and is illustrated in the application) may be executed by the vehicle computer 1020, by processor 1010 and/or by computerized system 1080.

[00935] Figure 41 illustrates a vehicle 51, network 1070 and computerized system 1080. In figure 12 the processor 1010 is not included in the vehicle computer 1030. The vehicle computer 1030 may or may not participate in the execution of any of the method illustrated above.

[00936] Figure 42 illustrates a vehicle 51, network 1070 and computerized system 1080.

[00937] In figure 42 the sensors 1040 include a fuel consumption sensor 1041, an accelerometer 1045, a barometer 1046 and four-wheel speed sensors WS 511-514.

[00938] Characterizing a vehicle based on a limited number of energy coefficients, and a compact representation of the motor efficiency function and a fuel consumption error correction function - is highly efficient in terms of storage resources.

[00939] Figure 43 illustrates method 600".

[00940] Method 600" may be executed by a vehicle computer (any computer located within the vehicle).

[00941] Method 600" may include step 610" of receiving values of energy coefficients that are indicative of energy wasted by the vehicle; wherein the values of the energy coefficients were calculated based, at least in part, on vehicle sensor measurements obtained by vehicle sensors of the vehicle, the vehicle sensor measurements were obtained during driving sessions of the vehicle; wherein the vehicle sensor measurement comprise (a) height measurements of paths related to the driving sessions, (b) fuel consumption measurements related to the driving sessions, (c) length measurements of the of road segments related to the driving sessions; and (d) velocity measurements related to the driving sessions.

[00942] Step 610" may also include at least one out of (i) receiving information regarding a motor efficiency function of the vehicle, and (ii) receiving information regarding a fuel consumption error correction function of the vehicle.

[00943] Step 610" may be followed by step 620" of obtaining, during a new driving session and by the vehicle sensors, new vehicle sensor measurements related to the new driving session. [00944] Step 620" may be followed by step 630" of calculating the weight of the vehicle, by a vehicle computer, based on the values of the energy coefficients and the new vehicle sensor measurements.

[00945] The calculating may also be responsive to at least one out of (i) information regarding a motor efficiency function of the vehicle, and (ii) information regarding a fuel consumption error correction function of the vehicle.

[00946] The information regarding the motor efficiency function may be compact. It may include motor efficiency function coefficients. Various examples of such coefficients are provided in the text above.

[00947] The information regarding the fuel consumption error correction function may be compact. It may include fuel consumption error correction function coefficients. Various examples of such coefficients are provided in the text above.

[00948] Step 630" may be performed in real time - for example within few seconds, less than a minute, few minutes, and the like.

[00949] Method 600" may include transmitting the new vehicle sensor measurements related to the new driving session. These new measurements may be used to refine, update and/or verify the previously provided c values of energy coefficients.

[00950] Step 630" may include calculating the weight, for a new path segments of the new session, by applying the following equation:

ame · fe · fuel— k x x— k 3 xv 2

gAh + ~ Vl ) + k 2 x + k 4 xv 2

wherein the group of energy coefficients comprises ki, k2, k3 and ]¾;

wherein ame is a value of the estimated motor efficiency function;

wherein V2 is a velocity of the vehicle at an end of the new path segment;

vi is a velocity of the vehicle at a start of the new path segment;

v represents at least one value of a velocity of the vehicle when driving over the new path segment;

x is a length of the new path segment;

Ah is a height difference between the end and the start of the new path segment; and fuel is an error corrected fuel consumption related to the new path segment.

[00951] Calculating in real time the real weight of the vehicle using few sensors readings and the limited number of energy coefficients, and a compact representation of the motor efficiency function and a fuel consumption error correction function - is highly efficient in terms of storage resources and of computerized resources.

[00952] GRIP

[00953] There may be provided a system, method and a computer program product for determining a grip related to a vehicle and a path segment, the determination takes into account the parameters of the path as well as the parameters of the vehicle.

[00954] Some of the following example assume that a vehicle includes four wheels. It should be noted that the number of wheels may differ from four.

[00955] A grip event is an event that is undergone by the vehicle and may provide information for estimation of a grip of a path segment. Non-limiting example of grip events includes a breaking event, turning of the vehicle, passing an obstacle, and reaching a predefined vehicle velocity. For simplicity of explanation some of the following examples will refer to a grip event that is a breaking event.

[00956] In the following example "normalizing" involves compensating for parameters that are specific to a certain vehicle and/or other circumstances that may affect a certain grip related measurement. De-normalizing reverses the normalizing process.

[00957] Multiple vehicles may pass over a path segment and may calculate normalized grip related information. A computerized system may receive normalized grip related information from multiple vehicles.

[00958] A path segment may be a segment of a path that may be between few centimeters long to few meters long and even more. The grip along a single path segment may be the same or may slightly deviate.

[00959] The computerized system may calculate normalized path segment grip information and may transmit the normalized path segment grip information to the vehicles.

[00960] The normalized path segment grip information may be calculated using crowd sourcing, bit data techniques, machine learning and/or any other techniques.

[00961] Obtaining and processing normalized path segment grip information from multiple vehicles may increase the accuracy of the calculation of path segment grip information.

Furthermore - obtaining and processing normalized path segment grip information from multiple vehicles may assist in providing path segment grip information for a vehicle that did not pass over the path segment. [00962] The vehicles may monitor vehicle parameters and may de-normalize the normalized path segment grip information to provide actual path segment grip information that may reflect the grip parameters of the path segment, given the current vehicle parameters.

[00963] The path segment grip information may include a grip level of the path segment, a residual grip, and the like.

[00964] Figure 44 illustrates an example of method 2100.

[00965] Method 2100 may be executed by a vehicle computer (a computer that is located within a vehicle), by a computerized system located outside the vehicle- or by both. Executing method 2100 by a vehicle computer reduces the amount of information transmitted from the vehicle.

[00966] Method 2100 may start by step 2110 of monitoring wheel speeds of multiple vehicle wheels.

[00967] Any wheel sensor may be used. Especially - a wheel speed sensor may be allocated for each wheel.

[00968] Step 2110 may be followed by step 2120 of calculating vehicle speed estimates. The estimate may be based on the wheel speed signals from the multiple wheel speed sensors.

[00969] Step 2120 may be followed by step 2130 of detecting a grip event. The grip event may be detected by monitoring the vehicle speed but may be detected by monitoring speeds of one or more wheels.

[00970] Figure 44 illustrates three examples of grip events - breaking event 2131, high speed event 2132 (for example reaching a certain speed- for example 80 km/h) and a turn 2133. Other grip events may be detected. For example- and as illustrated in figure 53 - a grip event may be passing an obstacle.

[00971] Step 2130 may be followed by step 2140 of calculating excitation, and by step 2150 of calculating a slip rate.

[00972] The slip rate may be calculated per wheel and is the relation between the vehicle speed to the wheel speed. During step 2150 a high pass filter may be applied on the wheel speed.

[00973] Steps 2140 and 2150 may be followed by step 2160 of normalizing excitation and slip rate of multiple vehicle wheels to generate normalized excitation and normalized slip rate.

[00974] The normalized excitation and normalized slip rate are usually far away from excitation and grip values that represent a loss of grip. For example, assuming that the grip is lost at an excitation of twenty percent and an excitation of one -the normalized excitation does not exceed a half and that the and normalized slip rate is lower than ten percent.

[00975] Method 2100 may involve estimating the residual grip based on these normalized excitation and normalized slip rate.

[00976] For example - the method may estimate the residual grip by finding a relevant slip curve, and calculating the residual grip by comparing between the current grip and the loss of grip point associated with the relevant grip curve.

[00977] Step 2160 may be followed by step 2170 of determining, based on the normalized excitation and normalized slip rate, a relevant slip curve. Each slip curve includes a mapping between slip rate values and excitation values. Step 2170 fits the normalized excitation and normalized slip rates to the relevant slip curve.

[00978] Step 2170 may select the relevant slip curve out of a finite group of N (for example 210) possible slip curves and/or may extrapolate or otherwise calculated a new slip curve based on the slip curves of the finite curves.

[00979] Step 2180 may include responding to the determining of the relevant slip curve.

Step 2180 may include storing relevant slip curve information (such as an index or other identifier of the relevant slip curve), transmitting the relevant slip curve, calculating an actual path segment grip information, and the like.

[00980] Figure 45 illustrates an example of step 2120.

[00981] Step 2120 may include the following steps:

a. Receiving or generating first till fourth wheel speed signals (2111-2114).

b. Pre-processing wheel speed signals 2120. This may include low pass filtering wheel speed readings (2121), the low pass filtering may be responsive to the estimated wheel speed.

c. Wheel speed processing 2122.

[00982] The wheel speed processing may include at least one of the following:

a. Detection of difference between wheels. 2123. This step may include detecting long term (more than few hours) differences between wheels - for example due to changes in air pressure, changes in tire health and the like.

b. Ignoring short-term variations 2124. Short-term may be few seconds or less. The short- term variations may be caused to to small slips. The ignoring may include ignoring all wheel speed measurements obtained during a short-term variation of a wheel speed of any of the wheels.

c. Detecting turns. 2125. d. Calculating compensated wheel speed readings. 2126.

e. Calculating vehicle speed based on compensated wheel speed readings 2127.

[00983] Step 2124 may include detecting a disagreement between the wheel speeds that is not related to a turn. If a turn is detected, then the wheel speeds measured during the turn may be processed to determine the grip.

[00984] Step 2120 may include maintaining a factor (for example ratio between wheel speeds of a current wheel and of a reference wheel), and tuning this factor along time (like control loop with very low pass filter). Then, if the momentary factor is larger / smaller than this factor by more than a certain amount (for example- five percent) then a short-term variation is detected. Following step 2120, the method may keep updating the factor very gently (i.e. using a very low pass filter) and use the factor during step 2127.

[00985] Step 2127 may include calculating (after ignoring wheel speed readings - as indicated in step 2124) wheel speeds, applying the factors to all wheel speeds (except the reference wheel) to provide weighted wheel speeds and then applying a function (such as but not limited to averaging) on the weighted wheel speeds to provide the vehicle speed.

[00986] Figure 46 illustrates an example of step 2140.

[00987] Step 2140 may include step 9142 and/or step 9144.

[00988] Step 2142 may include selecting vehicle speed estimates related to at least one part of the grip event to provide selected vehicle speed estimates while ignoring other vehicle speed estimates related to at least one other part of the grip event. For example- the grip event may last few seconds, and multiple wheel speed readings may be obtained per second (for example- fifty till one -hundred-wheel speed readings per second).

[00989] Step 2142 may include selecting some of the wheel readings while ignoring some other wheel readings.

[00990] Any selection rule may be applied. For example- ignoring wheel speed readings obtained during a start period of the grip event and/or during an end period of the grip event (for example - during the first twenty percent of the duration of the grip event and/or the last fifteen percent of the duration of the grip event), ignoring wheel speed events that are associated with certain acceleration and/or deceleration values, waiting till the acceleration deceleration or speed reaches a steady state (and selecting the steady state readings) and the like.

[00991] Step 2144 may include calculating the excitation based on one or more changes in the selected vehicle speed over time and on zero or more additional factors. [00992] The zero or more additional factors may be used to normalize the excitation value.

The excitation value may represent the one or more changes in any manner for example - the overall change in the vehicle speed during a selected period of time that includes the selected vehicle speed estimates divided by the duration of the selected period of time.

[00993] The additional factors may include vehicle driving and/or breaking parameters, slopes of one or more path segments (over which the vehicle passed), and the like.

[00994] The breaking parameters may reflect the manner in which the brakes of the vehicle were activated - pumping or not, any change of the position of the brake pedal, and the like.

For example- the breaking parameters may reflect at least one of The average or minimal or maximal change in the position of the brake pedal over time.

[00995] Different breaking patterns (for example patterns 2171 and 2172) my result in different excitation. The slope may be represented by at least one of The average or minimal or maximal slope of the path segment.

[00996] Figure 47 illustrates an example of step 2160.

[00997] Step 2160 may include step 2169. Step 2169 may be preceded by at least one of steps 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2167', and 2168.

[00998] Step 2161 may include receiving or estimating climate bias. A climate bias may represent change in the grip that are related to climate changes such as rain, fog, temperature, and the like. The climate bias may be measured by climate sensors (such as humidity sensor, barometer, temperature sensor, and the like) and/or may be sensed by detected by finding similar differences between grip levels experienced by multiple vehicles in relation to the same path segment within a limited time frame (for example of thirty minutes to few hours).

[00999] Step 2162 may include receiving or estimating wheel effective patch size.

[001000] Step 2164 may include receiving or estimating tire health. The tire health is expected to change very slowly (except in a case of a flat tire) and may be represented as a relatively constant bias over a long period of time.

[001001] Step 2166 may include receiving or estimating a weight of the vehicle. A non- limiting example of a weight estimate is illustrated in US provisional patent application serial numbers 62/556,447 filing date September 10, 2017.

[001002] Step 2167 may include receiving or estimating excitation. The excitation may be taken from step 2140.

[001003] Step 2167' may include receiving or estimating grip. [001004] Step 2168 may include receiving or estimating speed. The speed may be obtained from step 2120.

[001005] Step 2169 may include normalizing excitation and slip rate of multiple vehicle wheels to generate normalized excitation and normalized slip rate. The normalizing may be responsive to at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

The normalizing may involve comparing the information sensed by different vehicles when passing the same road segment, and compensating the climate bias, wheel effective patch, tire health, weight of the vehicle, excitation, and the like.

[001006] Figure 48 illustrates method 2200. Method 2200 may be executed by a

computerized system located outside the vehicle, by the vehicle computer, by both vehicle computer and the computerized system, by multiple vehicle computers of different vehicles, and the like.

[001007] Method 2200 may include at least some of steps 2210, 2220, 2230 and 2240.

[001008] Step 2210 may include learning normalizing functions and/or selection rules. The normalizing functions are used, for example, during step 2169. The selection rules are used, for example, during step 2142.

[001009] Step 2210 may include learning de-normalizing functions. The de-normalizing functions may reverse the operation of the normalizing function. Step 2210 may include processing normalized path segment grip information obtained during driving sessions - in which information about weight, effective patch size, tire health, excitation, speed and/or climate are known. The normalization functions may be learnt using driving sessions with different values of weight, effective patch size, tire health, excitation, speed and/or climate are.

[001010] Step 2220 may include receiving normalized slip curves related to multiple path segments and to multiple driving sessions of multiple vehicles.

[001011] Step 2230 may include building or updating a mapping between path segments and normalized slip curves. The mapping may take into account the information received during step 2220. Step 2230 may involve using crowd sourcing, big data, machine learning or any other technique.

[001012] Step 2230 may include averaging (or applying any other statistical function) on the information obtained during step 2220. [001013] Step 2240 may include distributing at least a part of the mapping to the vehicles and/or users. When a vehicle is located at a certain region then it may receive information related to that region, one or more adjacent regions, and the like.

[001014] After a vehicle receives the mapping then the vehicle may use the mapping and the current state of the vehicle and of one or more path segments to provide actual path segment grip information.

[001015] Figure 49 illustrates method 2300.

[001016] Method 2300 may include step 2320. Step 2320 may be preceded by step 2320 and at least one of steps 2161, 2162, 2163, 2164 2165, 2166, 2167, 2167' and 2168.

[001017] Step 2320 may include de-normalizing the normalized slip graph to provide a de- normalized slip graph. The de-normalizing is based on at least some out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[001018] Step 2320 may be followed by step 2330 of Determining the marginal grip based on the de-normalized slip graph and the relevant grip-excitation coordinate on the slip graph.

[001019] Step 2340 may be followed by step 2340 of responding to the marginal grip. This may include automatically driving the vehicle, informing the user what is the vehicle speed, preventing the ABS system from working - by maintaining the grip level below the marginal grip value that activates the ABS, and the like.

[001020] Figure 50 illustrates the vehicle as including first wheel Wl 501, second wheel W2 502, third wheel W3 503, fourth wheel W4 504, first wheel sensor WS 511, second wheel sensor WS 512, third wheel sensor WS 513, fourth wheel sensor WS 514, other sensors (such as but not limited to at least one out of climate sensors, one or more brake sensors, one or more engine sensors, fuel consumption sensors, accelerometer, and the like) vehicle computer 550, processor 552, memory module 554, communication module (CM) 542, and man machine interface (MMI) 540.

[001021] MMI 540 may provide information to the driver such as driving suggestions.

[001022] The other sensors 517 may sense various parameters related to the vehicle and/or road conditions.

[001023] The vehicle computer 550 may monitor the status of various components and/or systems of the vehicle, may control various components and/or systems of the vehicle and may or may not participate in the execution of any of the methods illustrated in the specification.

[001024] The communication module 542 may communicate with computerized system 592 via network 590. [001025] The communication module 542 may be a short-range communication module, a long-range communication module such as a radio frequency communication module, a satellite communication module, a cellular communication network, and the like.

[001026] Vehicle computer 550 may include a processor and a memory unit. The processor may include hardware components and may be a general-purpose processor, an image processor, a hardware accelerator, an FPGA, an ASIC, and the like. The memory unit may be a non-volatile memory.

[001027] The computerized system 592 may be located in a cloud computing environment, may include one or more servers or any combination of computers.

[001028] Any step that includes processing, calculating and the like (and is illustrated in the application) may be executed by the vehicle computer 550, by processor 552 and/or by computerized system 592.

[001029] Memory nodule 554 may store any information and/or programs required for executing any of the methods of this application.

[001030] Various components of vehicle may execute method 2100 and/or method 2300.

[001031] Figure 51 illustrates an example of two normalized slip graphs 2910 and 2920 that represent different path segment conditions.

[001032] Step 2170 may include selecting one of these slip graphs or generating a new slip graph based on at least one of these slip graphs.

[001033] Figure 52 illustrates an example of a grip event, a vehicle speed 2525 and a wheel speed 2520 during the grip event, before the grip event and after the grip event.

[001034] The grip may be evaluated based on an impulse response of the vehicle to an small obstacle. The grip may be calculated in view of one or more of the passage of a small obstacle, any any other excitation event (such as breaking event, high speed event, turn event)

[001035] When the vehicle drives over a small obstacle attached to the road surface, the vehicle responds to it as if it was excited. The response (also referred to as an impulse response) characteristics, as derived from the sensors, depends (among other factors) on the grip level between the vehicle and the road surface right after the small obstacle.

[001036] Small obstacles have the following nature:

a. Structural - step up or/or step down when driving over it. A step up

followed by a step down may represent a small bump.

b. Longitudinal short in comparison to tire perimeter. [001037] Examples:

a. Pavement crack.

b. Bridge stitch.

c. Small stone.

d. Wood branch.

[001038] This small obstacle will normally impose a force over the vehicle that can be separate into:

a. Vertical acceleration - due to slight "jump" over the small obstacle. b. Horizontal deceleration - due to "bumping" into a ramp.

[001039] These forces (accelerations) are of momentary nature, normally they last over a sub-second period. Then, the vehicle goes through "after-effect" that is the response period.

[001040] When stepping out of the small obstacles, following the vertical and horizontal accelerations described above, the vehicle goes through a restraint period, where it normally return to its steady state - e.g. cruising on a smooth surface.

[001041] In order to detect and characterize the impulse nature and then analyze the response period, the output of the following sensors may be read:

a. Wheel speed.

b. Brake torque.

c. Engine Torque.

[001042] The following parameters affect the signal characteristics and features:

a. Vehicle Weight.

b. Tire pressure.

c. Tire Health (stiffness).

d. Vehicle speed.

e. Dampers.

[001043] These sensors may be actual sensors and/or virtual sensors that their output is calculated based on the readings of other actual sensors.

[001044] The readings of the sensors should be normalized in order to compensate for the parameters (such as those mentioned above) that may affect the readings of the sensors.

[001045] For example - the heavier the vehicle is, the smaller are the wheel speed changes due to the same small obstacle. Same for lower tire pressure or soft dumpers / suspensions. The faster the vehicle encounter the small obstacle, the bigger are the wheel speed changes.

[001046] Figure 53 illustrates method 2105.

[001047] Method 2105 may be executed by a vehicle computer (a computer that is located within a vehicle), by a computerized system located outside the vehicle- or by both. Executing method 2100 by a vehicle computer reduces the amount of information transmitted from the vehicle.

[001048] Method 2105 may start by steps 2110 and 2115.

[001049] Step 2115 may include monitoring break torque and engine torque.

[001050] Step 2110 may include monitoring wheel speeds of multiple vehicle wheels.

[001051] Any wheel sensor may be used. Especially - a wheel speed sensor may be allocated for each wheel.

[001052] Step 2110 may be followed by step 2120 of calculating vehicle speed estimates. The estimate may be based on the wheel speed signals from the multiple wheel speed sensors.

[001053] Step 2120 and step 2115 may be followed by step 2130' of detecting a grip event. The grip events may include a breaking event, a high speed event and a turn event. These grip events may be detected using the output of step 2120. The grip event may be detected by monitoring the vehicle speed but may be detected by monitoring speeds of one or more wheels.

[001054] A grip event may include passing an small obstacle and the impulse response of the vehicle to the passing of the small obstacle may be detected based on the output of steps 2115 and 2120. The breaking event may also be detected based on the output of step 2115.

[001055] Figure 54 illustrates four examples of grip events - breaking event 2131, high speed event 2132 (for example reaching a certain speed- for example 80 km/h) and a turn 2133, and passing an small obstacle 2134.

[001056] Step 2130' may be followed by step 2140' of calculating excitation, and by step 2150 of calculating a slip rate.

[001057] Step 2140' may include step 2146 of calculating an impulse response of the vehicle to passing an small obstacle.

[001058] The slip rate may be calculated per wheel and is the relation between the vehicle speed to the wheel speed. During step 2150 a high pass filter may be applied on the wheel speed.

[001059] Steps 2140' and 2150 may be followed by step 2160' of normalizing excitation and slip rate of multiple vehicle wheels to generate normalized excitation and normalized slip rate. [001060] Step 2160' may include normalizing the impulse response based on

[001061] The normalized excitation and normalized slip rate are usually far away from excitation and grip values that represent a loss of grip. For example, assuming that the grip is lost at an excitation of twenty percent and an excitation of one -the normalized excitation does not exceed a half and that the and normalized slip rate is lower than ten percent.

[001062] Method 2105 may involve estimating the residual grip based on these normalized excitation and normalized slip rate.

[001063] For example - the method may estimate the residual grip by finding a relevant slip curve, and calculating the residual grip by comparing between the current grip and the loss of grip point associated with the relevant grip curve.

[001064] Step 2160' may be followed by step 2170 of determining, based on the normalized excitation and normalized slip rate, a relevant slip curve. Each slip curve includes a mapping between slip rate values and excitation values. Step 2170 fits the normalized excitation and normalized slip rates to the relevant slip curve.

[001065] Step 2170 may select the relevant slip curve out of a finite group of N (for example 210) possible slip curves and/or may extrapolate or otherwise calculated a new slip curve based on the slip curves of the finite curves.

[001066] Step 2180 may include responding to the determining of the relevant slip curve. Step 2180 may include storing relevant slip curve information (such as an index or other identifier of the relevant slip curve), transmitting the relevant slip curve, calculating an actual path segment grip information, and the like.

[001067] Figure 54 illustrates an example of step 2140'.

[001068] Step 2140' may include step 9142 and/or step 9144. Step 2140' includes step 2146 of calculating an impulse response of the vehicle to passing an small obstacle.

[001069] Step 2142 may include selecting vehicle speed estimates related to at least one part of the grip event to provide selected vehicle speed estimates while ignoring other vehicle speed estimates related to at least one other part of the grip event. For example- the grip event may last few seconds, and multiple wheel speed readings may be obtained per second (for example- fifty till one -hundred-wheel speed readings per second).

[001070] Step 2142 may include selecting some of the wheel readings while ignoring some other wheel readings.

[001071] Any selection rule may be applied. For example- ignoring wheel speed readings obtained during a start period of the grip event and/or during an end period of the grip event (for example - during the first twenty percent of the duration of the grip event and/or the last fifteen percent of the duration of the grip event), ignoring wheel speed events that are associated with certain acceleration and/or deceleration values, waiting till the acceleration deceleration or speed reaches a steady state (and selecting the steady state readings) and the like.

[001072] Step 2144 may include calculating the excitation based on one or more changes in the selected vehicle speed over time and on zero or more additional factors.

[001073] The zero or more additional factors may be used to normalize the excitation value.

The excitation value may represent the one or more changes in any manner for example - the overall change in the vehicle speed during a selected period of time that includes the selected vehicle speed estimates divided by the duration of the selected period of time.

[001074] The additional factors may include vehicle driving and/or breaking parameters, slopes of one or more path segments (over which the vehicle passed), and the like.

[001075] The breaking parameters may reflect the manner in which the brakes of the vehicle were activated - pumping or not, any change of the position of the brake pedal, and the like.

For example- the breaking parameters may reflect at least one of The average or minimal or maximal change in the position of the brake pedal over time.

[001076] Different breaking patterns (for example patterns 2171 and 2172) my result in different excitation. The slope may be represented by at least one of The average or minimal or maximal slope of the path segment.

[001077] Figure 55 illustrates an example of step 2160'.

[001078] Step 2160' may include step 2169. Step 2169 may be preceded by at least one of steps 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2167', and 2168. Step 2160' may be preceded by step 2215 (also illustrated in figure 55). Step 2215 may belong to method 2200.

[001079] Step 2161 may include receiving or estimating climate bias. A climate bias may represent change in the grip that are related to climate changes such as rain, fog, temperature, and the like. The climate bias may be measured by climate sensors (such as humidity sensor, barometer, temperature sensor, and the like) and/or may be sensed by detected by finding similar differences between grip levels experienced by multiple vehicles in relation to the same path segment within a limited time frame (for example of thirty minutes to few hours).

[001080] Step 2162 may include receiving or estimating wheel effective patch size.

[001081] Step 9162 may include receiving or estimating engine torque and/or breaks torque. [001082] Step 2164 may include receiving or estimating tire health. The tire health is expected to change very slowly (except in a case of a flat tire) and may be represented as a relatively constant bias over a long period of time.

[001083] Step 2166 may include receiving or estimating a weight of the vehicle. A non- limiting example of a weight estimate is illustrated in US provisional patent application serial numbers 62/556,447 filing date September 10, 2017.

[001084] Step 2167 may include receiving or estimating excitation. The excitation may be taken from step 2140.

[001085] Step 2167' may include receiving or estimating grip.

[001086] Step 2168 may include receiving or estimating speed. The speed may be obtained from step 2120.

[001087] Step 2169 may include normalizing excitation and slip rate of multiple vehicle wheels to generate normalized excitation and normalized slip rate. The normalizing may be responsive to at least one out of speed, climate bias, wheel effective patch size, tire health, weight of vehicle and excitation.

[001088] The normalizing may involve comparing the information sensed by different vehicles when passing the same road segment, and compensating the climate bias, wheel effective patch, tire health, weight of the vehicle, excitation, and the like.

[001089] Step 2169 may be preceded by step 2215 of receiving and/or learning normalizing functions and/or selection rules.

[001090] Step 2215 may include conducting a training stage and/or receiving outputs learnt during the training stage.

[001091] Step 2215 may include includes applying factors and look-up tables over the features extracted from the sensors' signals. These factors and look-up tables are learnt and built during training stage.

[001092] Given a specific vehicle type, one or more tests may be conducted on a controlled environment / proving ground, to derive the signals feature.

[001093] The one or more tests may be conducted over a pre-defined small obstacles, such as pre-define small obstacles of The following types:- step up, step down, bump (for example a small bump).

[001094] There may be multiple small obstacles per type, wherein the small obstacles may differ from each other by at least one out of step height, length of bump, orientation in relation to the surroundings, and the like. [001095] The tests may be done one one vehicle type that exhibit at least one different value of weight, speed, tire pressure, dumpers settings, and the like.

[001096] The climate may change between certain tests.

[001097] The small obstacles may be positioned within vicinities of different grip values- different values of Mue).

[001098] During each tests various sensor readings are read (for example wheel speed, brake torque and engine torque), to provide impulse responses of the vehicle when passing an small obstacle.

[001099] The relationship between sensors' signals and their features, vehicle parameters (weight, speed, tire pressure, dampers) and estimated grip level is calculated. This relationship may be referred to as a normalizing function.

[001100] AQUAPLANING ( AP)

[001101] The text above and at least some of figures 1-55 describe how to calculate parameters of a vehicle (Vehicle DNA) and how to calculate parameters of the road (SurfaceDNA).

[001102] Any reference to an occurrence of an aquaplaning event may be interpreted as related to an actual occurrence of an aquaplaning event or to an estimated (but not actual) occurrence of an aquaplaning event. For example- when planning a path the different road segments of the path may be selected based on the possibility of an occurrence of an aquaplaning event . Yet for another example - when a vehicle senses a physical event that is an aquaplaning event - this is treated as an actual aquaplaning event.

[001103] The estimation of an occurrence of an aquaplaning event of a certain road segment may be based on the calculated and/or estimated characters of the road segment (for example physical events related to the road segment), on an estimated and/or calculated characters of the rain, and on an estimated and/or calculated parameter of the vehicle, and a mapping between (i) the estimated characters of the rain, (ii) the characters of a road segment, (iii) the occurrence of the aquaplaning, and (iv) an estimated and/or calculated parameter of the vehicle (for example- tire health).

[001104] The mapping may be calculated and/or learnt based on previous driving sessions on various road segments, on information regarding aquaplaning events that were detected in various manners, and the like.

[001105] The effect of the aquaplaning on the vehicle may be a function of various parameters- such as speed, change of speed, weight of the vehicle, tire health, nominal grip of the road segment, and the like. [001106] The aquaplaning may reduce the nominal grip of a road segment - and thus an amended grip level of a road segment should be calculated and should be taken in account when driving over the road segment (for example- determining automatically a maximal driving speed over the road segment, determining whether to operate in autonomous mode or in a non- autonomous mode, and the like. The nominal grip of a road segment may be calculated, for example, by any of the methods mentioned above for calculating grip (for example method 2100 of figure 44). A grip degradation attributed to an aquaplaning event may represent a gap associated with a normalized grip level expected when driving a vehicle over a dry road segment and between a normalized grip measured when passing over the same road segment within the vehicle when the aquaplaning event occurs.

[001107] The occurrence of an aquaplaning may be detected by comparing the a reduction of grip of multiple vehicle that pass the same road segment within a certain time window (for example - the PWT described below).

[001108] The rain rate may be detected by automatic wipers units that are arranged to change the wiper rate as a function of the estimated rain rate. The readings of rain rate sensors of multiple automatic wiper units of multiple vehicle may be processed to reject one or more erroneous readings of one or more rain rate sensors.

[001109] The severity of the aquaplaning phenomena may relate to: speed of the vehicle, water level, tire thread depth and road segment characters such as micro-texture

[001110] The water level may be a function of: (i) accumulated precipitation amount drop in a time period in a segment, (ii) surfaces Micro texture, (iii) dents in the tarmac / inclination, (iv) drains and flow paths, and the like.

[001111] The tire thread depth and structure may be also referred to a tire health. It is estimated using any of the mentioned above methods. TAH is the name of a scalar parameter that can be used to represent the grip difference between one tire to another, when passing AP event, while all other parameters are the same. The TAH may be represented by the tire thread depth and structure, since this is the major contributor to the grip difference.

[001112] Parameters of the road paths (surface micro-texture, dents, inclination, drain, etc) may be estimated by any of the mentioned above methods.

[001113] Definition and Annotations

[001114] Baseline Available Grip (BAG) - [g] the available grip attribute attached to a road segment, reflecting its nominal grip when the road is dry at nominal temperature. [001115] Precipitation Rate (PR) - [mm/h] rate of rain dropping (per space unit), at a specific geographical point at a specific time - as recorded / indicated by a specific indication.

[001116] Mean Precipitation Rate (MPR) - [mm/h] average of PR at a specific road segment at a specific point of time.

[001117] Precipitation Window Time (PWT) - [min] the window time length for aggregating MPR to determine the amount water on the road surface.

[001118] Aggregate Window Precipitation (AWP) - [mm] the total amount of water (per space unit) that was dropped during PWT at a given road segment in a given time

[001119] Aquaplaning Grip Degradation (AGD) - [g] the amount of available grip. The method may need to reduce from the nominal available grip (of a dry road segment) due to an AP event, at a nominal speed.

[001120] Aquaplaning Event (AP) - detected AP phenomena under-the-vehicle.

[001121] Tire Aquaplaning Health (TAH) - the grip degradation of a specific vehicle due to a

AP event with a given severity.

[001122] Normalized Aquaplaning Event (NAP) - AP following compensation procedure, using TAH of the vehicle

[001123] Degradation Vs. Precipitation (DVP) mapping - a mapping (for example- table, equation) describing the relation between AWP and AGD per specific road segment at nominal vehicle speed and nominal TAH.

[001124] Assumptions

a. Relevant Precipitation: Basically, precipitation include: rain, hail, snow. Rain seems to be of relevance. The method may or may not ignore the rest. The term rain may apply to any relevant precipitation.

b. The method may assume that zero temperature is the minimum for rain.

Below that it might be snow.

[001125] There may be a season related problem: two roads with same grip level when dry may have different grip degradation when raining - and this can be measured during rain (or during tests in which the road segments may be wetted).

[001126] Grip degradation due to rain can differ between two roads with AWP. I.e. it might be that with low AWP one road is worse than the other, but with higher AWP it flips

[001127] Repeatability - the method may assume that in most cases, each year each specific location on the road with have the same AGD given same AWP. [001128] PWT. The method may assume that it takes time for paddles to full due to rain. On the other hand they get drained due to: l(i) Evaporation - High temperature, strong wind, low humidity, (ii) Drain paths - water pipes, (iii) water flow paths, (iv) Vehicle splashes.

[001129] The method may set PWT to be the time window during which the precipitation is aggregated on the road: (i) Below that - The method may can still aggregate more water on road if rain will continue, (ii) Above it - "old" dropped rain will start drain / evaporate.

[001130] The exact time may relate to condition of: temperature, wind, humidity.

[001131] The PWT for each road segment may be learnt by monitoring the road segment, and/or may be estimated in any manner.

[001132] AP Signature: The method may assume that in the vehicle may can detect a signature of the signals that represent driving on a paddle / AP phenomena, and its magnitude. The AP may be referred to as a physical event with a templated signature and variable magnitude.

[001133] This will be reflected by a Virtual Sensor "AP Detected" that may find a signature of an occurrence of an AP event by using sensors that sense at least some out of start speed, Engine / wheel torque and Magnitude.

[001134] AP Vs. Speed: the method may assume that as speed of the vehicle is higher the AP severity gets higher. Per specific AP phenomena (e.g. surface micro-texture and water level). The method may can define a mapping that relates AGD to vehicle speed (or may have any other mapping - including an equation).

[001135] Therefore, it may be sufficient to learn a single number per road segment per water level

[001136] AP Vs. Aggregate Window Precipitation (AWP): The method may assume that each road segment has its own SurfaceDNA that per a given AWP [mm] will always generate the same water level. Therefore, it may be sufficient to learn a mapping that reflects water level per AWP - or actually, AGD per AWP.

[001137] Detection in the vehicle. The first step for AP handling is in-the-vehicle detection - detecting a physical event (having a unique signature) that is an AP event. The severity (associated with amount of loss of grip level) of an AP event may be effected by the rain and road segment parameters but also by the vehicle (for example- health of a tire).

[001138] Assumptions - AP is mostly increased with speed: this is why the method may detect AP while cruising, assuming that when braking on paddle the vehicle may lose speed immediately, so the phenomena is less severe. [001139] If AWP is zero (i.e. no rain indications in last period) then the method may assume that there can't be AP phenomena.

[001140] Signature detection

[001141] Signature of AP events may be detected in various manners - for example during controlled tests, and/or when driving over road segments in which AP exists.

[001142] For example- recordings of driving in water (proving grounds, normal roads during winter)

[001143] The signature learning process may include collect data and annotate. For example- find all test drives over water planes: winter, sprinklers, etc.; and find features in the signals: acceleration, wheel-speed, driven/non-driven, etc. related to AP events.

[001144] The data may be processed in various manners - for example - by running SVM or some other Machine Learning algorithm and train it to detect grip degradation.

[001145] Generating a mapping for grip degradation - for example per speed and/or per water depth.

[001146] Generating a virtual AP sensor.

[001147] Once the Machine Learning training algorithm is completed, The method may have ready Supporting Vectors. The method may run SVM algorithm in the vehicle in real-time, use the Supporting Vectors that were found found, so to detect AP event, and its severity

[001148] When AP event is detected the method may issue associate various attribute with the

AP event - start speed [km/h], Engine Torque / driven wheel torque [Nm], AP severity [unit less],

Tire Aquaplaning Health (TAH) - [unit less], and the like.

[001149] Precipitation Rate Virtual Sensor

[001150] In order to calculate the water rain amount on the surface, The method may generate a Precipitation Rate Virtual Sensor.

[001151] This Virtual sensor reflects the water / rain rate at the moment and location of its issuance.

[001152] This Vsensor (virtual) may be repetitively issued when Rain Rate > 0

[001153] Implicitly, when it is not detected - The method may assume Rain Rate = 0

[001154] The method may have two potential sensors in the vehicle :

a. Vipers sensor - wipe rate. The method may assume that the driver operates the vipers when it rains. The vipers speed will vary with the rain rate, since the driver intent to clear the windshield. Therefore, The method may extract the vipers' rate. b. Rain Sensor. In modern vehicle there is an optical sensor behind the windshield that detects the amount of water in front of it (normally, according to opacity or reflections). The sensor returns a value in unit of [%] stands for the amount of water on the windshield. The method may read this sensor and use it as a rain rate sensor.

[001155] Another source - Weather stations: normally, weather station are located in the road environment. The method may retrieve, close to real-time, the rain rate from their data.

[001156] To avoid situation that vipers are operated due to dirty wind shield: the method may ignore indications related to very short short rain periods (for example - less than a minute), or detect water sprinkler activation, then ignore vipers operation for 1 [min]

[001157] Vehicle Speed - the method may assume that window water rate gets higher with vehicle speed. Therefore, The method may should normalize (compensate) for speed

[001158] Aquaplaning Layer

[001159] The target is to generate a map layer, holding the locations (road segments) that have AP problems when it's raining, and the expected severity per Precipitation Rate [PR]. The layer may be added (or may be included in) data structure 600' .

[001160] Input

[001161] The main input for this mapping layer is the stream of data from crowd of vehicle to the cloud that includes the following Virtual Sensors: (i) AP Detection Vsensor, (ii) Precipitation Rate Vsensor, (iii) Tire AP Health Metadata.

[001162] In addition, The method may receive momentary measured precipitation rate from weather condition providers: (i) Precipitation Rate per road segment / area - units of [mm/h] [001163] Aggregate Window Precipitation (AWP)

[001164] As defined above, this is the amount of rain, in units of [mm] per space that was aggregated to generate a paddle.

[001165] It is calculated as the integral of the PR at a specific location, over a time window preceding the time of calculation.

[001166] The size of the window (i.e. the time before current time The method may need to aggregate the rain from) depends on the rate of water evaporation. Evaporated water not to be aggregated for calculating paddle depth.

[001167] The rate of evaporation depends on following parameters:

a. Temperature - as temperature is higher, the rate of water evaporation gets higher. b. Humidity - as the humidity is lower, the evaporation rate gets higher.

c. Wind - as the wind gets stronger, the evaporation rate gets higher.

[001168] The above parameters are received from weather report stations along the road area, and used to calculate Precipitation Window Time (PWT) in [min] . When calculated, The method may use PWT to calculate AWP as the integral of PR(t) over PWT.

[001169] Aquaplaning Vs. Precipitation Rate - mapping

[001170] There may be provided a model (mapping) that may reflect the relation between PR and the AP hazard levels per each road segment. As described above, this reflect the SurfaceDNA components that affects the AP severity (e.g. asphalt dents, micro-texture, blocked water drain etc.). AP severity is measured by Aquaplaning Grip Degradation (AGD) - units of [g].

[001171] The method may assume that the AP phenomena at the road segment is a function of the Aggregate Window Precipitation (AWP) - units of [mm]. Therefore The method may define a LUT: AGP Vs. AWP, denoted as: Degradation Vs. Precipitation (DVP) table.

[001172] Structure (example):

[001173] Learn

[001174] This process is executed over each driving session - a specific vehicle driving for some miles over specific roads, transmitting its Vsensors to the cloud.

[001175] Stage#l : AP events

a. Given: TAH of each vehicle, AP Vsensor instances

b. Per session, following routing algorithm (map matching)

c. Find the map Nodes (road segments) that AP was detected in them d. For each AP event compensate for TAH:

i. Factorize the AP event magnitude by TAH of the vehicle ii. Normally, when TAH is poor, the compensated (i.e. normalized) AP magnitude will decrease

e. Generate Normalized AP (NAP) events

i. Normalized AP event is AP event with nominal magnitude ii. i.e. the magnitude following factorization by TAH

[001176] Stage#2 : Precipitation Rate (PR)

a. Find all PR Vsensors.

b. Generate additional PR Vsensors instances from external weather source (if positive rain indication)

i. Establish a connection with weather report service

ii. Extract PR value per vicinity of each road segment

iii. Generate a Vsensor instance out of this information (as if it was detected by the vehicle).

c. Remove out-layers / errors for PR indication in the session - Too short PR events, Rare PR events - i.e. if not recurring for too long

[001177] Merge

[001178] This procedure is executed in the cloud every time period (for example - every few hours), following reception of several driving sessions of same or different vehicles - and after that each one of the sessions was going through the Learn procedure described above.

[001179] Go over the roads in the map, then: per road, per time interval, go over new learnt sessions:

[001180] Stage#l : PWT

a. Calculate Precipitation Window Time (PWT) - [min]

b. Given: temperature, wind, humidity

[001181] Stage#2: MPR

a. Given PWT of the road and time

b. Calculate Mean Precipitation Rate (MPR) - using all learnt sessions in the same road and same time window:

i. For each vehicle driving in the vicinity of the road segment around the same time frame.

ii. Extruct PR at the vicinity

iii. Average all PRs

c. Remove out layer

[001182] Stage#3: AWP

a. Given MPR

b. Calculate Aggregate Window Precipitation (AWP) - per time per road segment [001183] Stage#4: DVP table

a. Per: Road segment

b. Given:

i. AWP of the segment

ii. Normalized AP (NAP) events in the segment (see stage# above c. Process:

i. Average NAPs and remove out-layers

ii. Generate Degradation Vs. Precipitation mapping

1. Per AWP range, collect all NAP events that were collected given AWP within that range

2. Average the NAPs

3. Populate the AWP range entry in the mapping table

4. Finally, we have a full Look-Up Table describing the relative NAP value (i.e. nominal grip degradation) per a specific PR) for each road segment

[001184] Usage - Aquaplaning Prediction

[001185] Following crowd sourcing AP event along rainy days, The method may managed to map:

a. AP severity per road segment, per AWP

b. Per vehicle: TAH

i. The variable that is attached to each vehicle (aged over time) ii. It defines how to normalize the AP severity so to reflect the grip degradation that this specific vehicle will experience due to a specific magnitude of AP event

[001186] Now, assume that a specific vehicle is about to drive over a specific road, The method may would like to calculate the maximal safe speed at each road segment so not to reduce available grip level below a predefined level.

[001187] Given:

a. Per specific road segments ahead of the vehicle

b. AWP - given PR from crowd sourcing or weather station over PWT before current time

c. Tire Aquaplaning Health (TAH) - per the specific vehicle

[001188 ] Retrieve from map : a. The value of grip degradation, extracted from the LUT associated with the road segments, per speed

b. Compensate with TAH

[001189] Return:

a. The maximal safe speed before losing grip substantially

[001190] Finally, the vehicle can use this specific speed as its maximal speed cruising along these road segments.

[001191] The calculations and parameters illustrated in the previous tan pages are non- limiting examples of a method for calculating and/or predicting aquaplaning.

[001192] Figure 56 illustrates method 2400 for driving a vehicle, the method may include the following steps :

a. Receiving or generating rain information regarding rain that may be associated with multiple road segments. Step 2402.

b. Estimating a grip level degradation associated with each read segment of the multiple road segment. Step 2404. The estimating of the grip level degradation may be based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and grip level degradation.

c. Performing a driving related operation based on the grip level degradation.

Step 2406.

[001193] The rain related parameter of the vehicle may include a health of at least one tire of the vehicle.

[001194] Step 2404 of estimating of the grip level degradation may include step 2405 of estimating an occurrence of one or more aquaplaning events in the multiple road segments.

[001195] Step 2404 may include estimating the grip level degradation associated with the occurrence of one or more aquaplaning events in the multiple road segments.

[001196] The method may include step 2408 of verifying the occurrence of the one or more aquaplaning events by the vehicle.

[001197] The verifying may include sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by the vehicle, for one or more aquaplaning signatures in the sensing results. [001198] Step 2402 may include accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

[001199] Step 2402 may include receiving or calculating the Precipitation Window Time per road segment.

[001200] Step 2406 may include selectively activating an autonomous driving module for autonomously driving the vehicle.

[001201] Step 2406 may include at least one out of :

a. Deactivating and/or activating an autonomous driving module that may be configured, when activated, to autonomously driving the vehicle. Thus - autonomous driving may be activated for road segments in which the vehicle has a normalized grip (taking into account the grip degradation calculated during step 2404) of certain values, the autonomous driving may be deactivated for road segments in which the vehicle has a normalized grip (taking into account the grip degradation calculated during step 2404) of other values. It should be noted that the activation and/or deactivation of the autonomous driving may be a function of grip levels related to the multiple road segments - especially to the distance between road segments in which the vehicle will have a problematic grip level - as it may not be efficient to turn on and off the autonomous driving each few tens of meters. Any function may be applied and be used for determining, given the outcome of step 2404 how to operate the autonomous driving. It should be noted that in at least some cases an occurrence of an aquaplaning event can be avoided by setting the speed of the vehicle to be low enough to allow the wheels of the vehicle to evacuate enough water - even in road segments that aggregated enough water to cause (in higher velocities) aquaplaning. Thus - the autonomous driving may be applied also in problematic road segments. b. Setting a velocity of the vehicle in each of the multiple road segments. The velocity may be set such as not to exceed a maximal safe velocity associated with a road segment under the estimated conditions (including a possible occurrence of a AP event). The maximal safe velocity will enable the wheels of the vehicle to evacuate enough water - even in road segments that aggregated enough water to cause (in higher velocities) aquaplaning. c. Alerting a human driver of the vehicle. This may be any audio/visual message. The alert may be issued when the drier control the vehicle and/or even when the vehicle is autonomously driven. The alert may indicate a danger of an aquaplaning event, inform the driver about the recommended vehicle speed, and the like.

d. Perform or prevent changes of velocity (for example acceleration or deceleration) in road segments in which aquaplaning events are expected to occur.

[001202] Step 2402 may include estimating a rain perception rate by at least one vehicle sensor.

[001203] The at least one vehicle sensor may belong to a wiper control unit.

[001204] There may be provided a non- transitory computer program product for driving a vehicle, wherein the non-transitory computer program product stores instructions for receiving or generating rain information regarding rain that may be associated with multiple road segments; estimating a grip level degradation associated with each read segment of the multiple road segment, wherein the estimating of the grip level degradation may be based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and grip level degradation; and performing a driving related operation based on the grip level degradation.

[001205] The rain related parameter of the vehicle may include a health of at least one tire of the vehicle.

[001206] The estimating of the grip level degradation may include estimating an occurrence of one or more aquaplaning events in the multiple road segments.

[001207] The estimating of the grip level degradation may include estimating the grip level degradation associated with the occurrence of one or more aquaplaning events in the multiple road segments.

[001208] The non-transitory computer readable medium may include verifying the occurrence of the one or more aquaplaning events by the vehicle.

[001209] The verifying may include sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by a vehicle computer, for one or more aquaplaning signatures in the sensing results. [001210] The non-transitory computer readable medium that may store instructions for accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

[001211] The performing of the driving related operation may include selectively activating an autonomous driving module for autonomously driving the vehicle.

[001212] The performing of the driving related operation may include selectively deactivating an autonomous driving module that may be configured, when activated, to autonomously driving the vehicle.

[001213] The performing of the driving related operation may include setting a velocity of the vehicle in each of the multiple road segments.

[001214] The non-transitory computer readable medium that may store instructions for estimating a rain perception rate by at least one vehicle sensor.

[001215] The at least one vehicle sensor belongs to a wiper control unit.

[001216] The performing of the driving related operation may include alerting a human driver of the vehicle.

[001217] There may be provided a vehicle system for driving a vehicle, the vehicle system may include sensors (such as any of the sensors illustrated in the specification and/or in any one of figures 3, 4, 20, 40, 41, 42 and 50, and/ any rain sensor of the vehicle) that may be configured to perform at least out out of (a) sensing a behavior of the vehicle, and (b) sensing a rain parameter; and a computer vehicle (such as any of the processors illustrated in the specification and/or in any one of figures 3, 4, 20, 40, 41, 42 and 50) that may be configured to receive or generate rain information regarding rain that may be associated with multiple road segments; estimate a grip level degradation associated with each read segment of the multiple road segment, wherein the estimating of the grip level degradation may be based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and grip level degradation; and assist in performing a driving related operation based on the grip level degradation.

[001218] Figure 56 illustrates method 2420 for estimating an occurrence of one or more aquaplaning events, the method may include the following steps :

a. Receiving or generating rain information regarding rain that may be associated with multiple road segments. Step 2402.

b. Estimating, by a vehicle computer, an occurrence the one or more aquaplaning events in the multiple road segments. Step 2424. The estimating of the occurrence of one or more aquaplaning events may be based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and an occurrence of the one or more aquaplaning events.

[001219] Method 2420 may also include at least one out of :

a. Step 2426 of performing a driving related operation based on the estimating of the occurrence of the one or more aquaplaning events.

b. Step 2428 of verifying the occurrence of the one or more aquaplaning events by the vehicle.

[001220] Step 2428 may include sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by the vehicle, for one or more aquaplaning signatures in the sensing results.

[001221] Step 2402 may include accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

[001222] Step 2402 may include receiving or calculating the Precipitation Window Time per road segment.

[001223] Step 2426 may include at least one out of:

a. Deactivating and/or activating an autonomous driving module that may be configured, when activated, to autonomously driving the vehicle. Thus - autonomous driving may be activated for road segments in which the vehicle has a normalized grip (taking into account the grip degradation calculated during step 2404) of certain values, the autonomous driving may be deactivated for road segments in which the vehicle has a normalized grip (taking into account the grip degradation calculated during step 2404) of other values. It should be noted that the activation and/or deactivation of the autonomous driving may be a function of grip levels related to the multiple road segments - especially to the distance between road segments in which the vehicle will have a problematic grip level - as it may not be efficient to turn on and off the autonomous driving each few tens of meters. Any function may be applied and be used for determining, given the outcome of step 2404 how to operate the autonomous driving. It should be noted that in at least some cases an occurrence of an aquaplaning event can be avoided by setting the speed of the vehicle to be low enough to allow the wheels of the vehicle to evacuate enough water - even in road segments that aggregated enough water to cause (in higher velocities) aquaplaning. Thus - the autonomous driving may be applied also in problematic road segments. b. Setting a velocity of the vehicle in each of the multiple road segments. The velocity may be set such as not to exceed a maximal safe velocity associated with a road segment under the estimated conditions (including a possible occurrence of a AP event). The maximal safe velocity will enable the wheels of the vehicle to evacuate enough water - even in road segments that aggregated enough water to cause (in higher velocities) aquaplaning.

c. Alerting a human driver of the vehicle. This may be any audio/visual message. The alert may be issued when the drier control the vehicle and/or even when the vehicle is autonomously driven. The alert may indicate a danger of an aquaplaning event, inform the driver about the recommended vehicle speed, and the like.

d. Perform or prevent changes of velocity (for example acceleration or deceleration) in road segments in which aquaplaning events are expected to occur.

[001224] There may be provided a non-transitory computer program product for estimating an occurrence of one or more aquaplaning events, wherein the non-transitory computer program product stores instructions for receiving or generating rain information regarding rain that may be associated with multiple road segments; and estimating, by a vehicle computer, an occurrence the one or more aquaplaning events in the multiple road segments, wherein the estimating of the occurrence of one or more aquaplaning events may be based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and an occurrence of the one or more aquaplaning events.

[001225] The non-transitory computer readable medium may include performing a driving related operation based on the estimating of the occurrence of the one or more aquaplaning events.

[001226] The non- transitory computer readable medium may include verifying the occurrence of the one or more aquaplaning events by the vehicle. [001227] The verifying may include sensing, by vehicle sensors, the behavior of the vehicle when driving over the multiple road segments to provide sensing results; and searching, by the vehicle, for one or more aquaplaning signatures in the sensing results.

[001228] The non-transitory computer readable medium that may store instructions for accumulating rain perception rate information obtained during a precipitation time window to generate the rain information.

[001229] The performing of the driving related operation may include selectively activating an autonomous driving module for autonomously driving the vehicle.

[001230] The performing of the driving related operation may include selectively deactivating an autonomous driving module that may be configured, when activated, to autonomously driving the vehicle.

[001231] The performing of the driving related operation may include setting a velocity of the vehicle in each of the multiple road segments.

[001232] The non-transitory computer readable medium that may store instructions for estimating a rain perception rate by at least one vehicle sensor.

[001233] The at least one vehicle sensor belongs to a wiper control unit.

[001234] The performing of the driving related operation may include alerting a human driver of the vehicle.

[001235] There may be provided a vehicle system for driving a vehicle, the vehicle system may include sensors (such as any of the sensors illustrated in the specification and/or in any one of figures 3, 4, 20, 40, 41, 42 and 50, and/ any rain sensor of the vehicle) that may be configured to perform at least out out of (a) sensing a behavior of the vehicle, and (b) sensing a rain parameter; and a computer vehicle (such as any of the processors illustrated in the specification and/or in any one of figures 3, 4, 20, 40, 41, 42 and 50) that may be configured to receive or generate rain information regarding rain that may be associated with multiple road segments; and estimate an occurrence the one or more aquaplaning events in the multiple road segments, wherein the estimating of the occurrence of one or more aquaplaning events may be based on the rain information, on at least one rain related parameter of the vehicle and and on a mapping, related to the each road segment of the road segments, between the rain information and an occurrence of the one or more aquaplaning events.

[001236] The vehicle computer may be configured to assist in performing a driving related operation based on the estimating of the occurrence of the one or more aquaplaning events. [001237] There may be provided a method for measuring physical events related to multiple road segments method may include measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle may be driving on the multiple road segments; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting may be based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information. The physical event may be an aquaplaning event. For example- each one of method 10' of figure 12 and method 11 ' of figure 13 may be amended to detect physical event may be an aquaplaning event. Referring to figure 14 - information about aquaplaning event may be added to the database 600' - for example to fixed size sparse layer 630' or to variable size sparse layer 640'.

[001238] There may be provided a non-transitory computer program product for measuring physical events related to multiple road segments, wherein the non-transitory computer program product stores instructions for measuring a first set of parameters by first vehicle sensors; wherein the measuring occurs while the vehicle may be driving on the multiple road segments; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; detecting by a vehicle computer, detected physical events related to the driving on the multiple road segments, wherein the detecting may be based on the first set of parameters; generating physical events information about the detected physical events; and storing or transmitting at least a portion of the physical events information; wherein the physical events may include an occurrence of an aquaplaning event.

[001239] There may be provided a system for measuring physical events related to multiple road segments, the system may include a vehicle computer that may be configured to (i) receive from first vehicle sensors a first set of parameters; wherein the measuring occurs while the vehicle may be driving on the multiple road segments; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; (ii) to detect detected physical events related to the driving on the multiple road segments, wherein the detecting may be based on the first set of parameters; generate physical events information about the detected physical events; and store or assist in transmitting at least a portion of the physical events information; wherein the physical events may include an occurrence of an aquaplaning event.

[001240] There may be provided a method for generating a reference map of a region, the method may include receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute may be related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles may be based on a first set of parameters that may be sensed by first vehicle sensors of the vehicle; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles; wherein the detected physical events may include an occurrence of an aquaplaning event. Referring to method 800 of figure 21 - step 810 may include receiving physical events information that may be indicative of occurrences of one or more aquaplaning events. Step 820 may include calculating a reference map that may reflect the occurrence of the one or more aquaplaning events.

[001241] There may be provided a non-transitory computer program product for generating a reference map of a region, the non-transitory computer program product stores instructions for receiving, by a communication interface, from multiple vehicles (a) physical events information about detected physical events that were detected by the multiple vehicles when driving over road segments that belong to the region, and (b) road segment attributes that were calculated by the multiple vehicles, the road segments attribute may be related to road segments that belong to the region; wherein physical events information of a vehicle of the multiple vehicles may be based on a first set of parameters that may be sensed by first vehicle sensors of the vehicle; wherein the first set of parameters may include vehicle wheel movement parameters and vehicle acceleration parameters; wherein the first vehicle sensors differ from road image sensors; and calculating, by a computerized system, the reference map based on the physical events information about detected physical events that were detected by the multiple vehicles and the road segment attributes that were calculated by the multiple vehicles; wherein the detected physical events may include an occurrence of an aquaplaning event. [001242] There may be provided a method for determining a driving session, the method may include receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile may be generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating may be based, at least in part, on the vehicle profile, path portions slope, extrinsic limitations and information related to one or more aquaplaning events. The extrinsic limitations may include an occurrence of one or more aquaplaning events. Referring to method 1200 of figure 28 - step 1220 may be responsive to extrinsic limitations may include an occurrence (actual or expected) of one or more aquaplaning events.

[001243] There may be provided a non-transitory computer program product for determining a driving session, wherein the non-transitory computer program product stores instructions for receiving or generating, by a vehicle computer, a vehicle profile, and slopes of portions of a path that precedes a vehicle; wherein the vehicle profile may be generated based on, at least, road path and vehicle parameters; wherein at least some of the road path and the vehicle parameters may be sensed by vehicle sensors that differ from road image sensors; and determining, by the vehicle computer, suggested driving parameters for the path that precedes the vehicle, wherein the calculating may be based, at least in part, on the vehicle profile, path portions slope, and extrinsic limitations such as an occurrence to one or more aquaplaning events.

[001244] The terms "including", "comprising", "having", "consisting" and "consisting essentially of" are used in an interchangeable manner. For example- any method may include at least the steps included in the figures and/or in the specification, only the steps included in the figures and/or the specification.

[001245] In the foregoing specification, the invention has been described with reference to specific examples of embodiments of the invention. It will, however, be evident that various modifications and changes may be made therein without departing from the broader spirit and scope of the invention as set forth in the appended

[001246] Moreover, the terms "front," "back," "rear" "top," "bottom," "over," "under" and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions. It is understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the invention described herein are, for example, capable of operation in other orientations than those illustrated or otherwise described herein.

[001247] The connections as discussed herein may be any type of connection suitable to transfer signals from or to the respective nodes, units, or devices, for example via intermediate devices. Accordingly, unless implied or stated otherwise, the connections may for example be direct connections or indirect connections. The connections may be illustrated or described in reference to being a single connection, a plurality of connections, unidirectional connections, or bidirectional connections. However, different embodiments may vary the implementation of the connections. For example, separate unidirectional connections may be used rather than bidirectional connections and vice versa. Also, plurality of connections may be replaced with a single connection that transfers multiple signals serially or in a time multiplexed manner. Likewise, single connections carrying multiple signals may be separated out into various different connections carrying subsets of these signals. Therefore, many options exist for transferring signals

[001248] Although specific conductivity types or polarity of potentials have been described in the examples, it will be appreciated that conductivity types and polarities of potentials may be reversed.

[001249] Those skilled in the art will recognize that the boundaries between various components are merely illustrative and that alternative embodiments may merge various components or impose an alternate decomposition of functionality upon various components. Thus, it is to be understood that the architectures depicted herein are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality.

[001250] Any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" Each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected," or "operably coupled," to Each other to achieve the desired functionality.

[001251] Furthermore, those skilled in the art will recognize that boundaries between the above described operations merely illustrative. The multiple operations may be combined into a single operation, a single operation may be distributed in additional operations and operations may be executed at least partially overlapping in time. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments.

[001252] However, other modifications, variations and alternatives are also possible. The specifications and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.

[001253] Any combination of any component of any component and/or unit of a system or device or apparatus that is illustrated in any of the figures and/or specification and/or the claims may be provided.

[001254] Any combination of any systems and/or devices and/or apparatuses illustrated in any of the figures and/or specification and/or the claims may be provided.

[001255] Any combination of steps, operations and/or methods illustrated in any of the figures and/or specification and/or the claims may be provided.

[001256] Any combination of operations illustrated in any of the figures and/or specification and/or the claims may be provided.

[001257] Any combination of methods illustrated in any of the figures and/or specification and/or the claims may be provided.

[001258] There may be provided one or more non-transitory computer readable medium that may store instructions for executing combination of steps, operations and/or methods illustrated in any of the figures and/or specification and/or the claims.

[001259] There may be provided one or more apparatuses and/or systems and/or units that are constructed and arranged to execute any combination of steps, operations and/or methods illustrated in any of the figures and/or specification and/or the claims.

[001260] The terms configured to and constructed and arranged to are used in an interchangeable manner.

[001261] The phrase "may be X" indicates that condition X may be fulfilled. This phrase also suggests that condition X may not be fulfilled.

[001262] Those skilled in the art will recognize that the boundaries between logic blocks are merely illustrative and that alternative embodiments may merge logic blocks or circuit elements or impose an alternate decomposition of functionality upon various logic blocks or circuit elements. Thus, it is to be understood that the architectures depicted herein are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. [001263] Any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected," or "operably coupled," to each other to achieve the desired functionality.

[001264] Furthermore, those skilled in the art will recognize that boundaries between the above described operations merely illustrative. The multiple operations may be combined into a single operation, a single operation may be distributed in additional operations and operations may be executed at least partially overlapping in time. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments.

[001265] Also for example, in one embodiment, the illustrated examples may be implemented as circuitry located on a single integrated circuit or within a same device. Alternatively, the examples may be implemented as any number of separate integrated circuits or separate devices interconnected with each other in a suitable manner.

[001266] Also for example, the examples, or portions thereof, may implemented as soft or code representations of physical circuitry or of logical representations convertible into physical circuitry, such as in a hardware description language of any appropriate type.

[001267] Also, the invention is not limited to physical devices or units implemented in nonprogrammable hardware but can also be applied in programmable devices or units able to perform the desired device functions by operating in accordance with suitable program code, such as mainframes, minicomputers, servers, workstations, personal computers, notepads, personal digital assistants, electronic games, automotive and other embedded systems, cell phones and various other wireless devices, commonly denoted in this application as 'computer systems'.

[001268] In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word 'comprising' does not exclude the presence of other elements or steps than those listed in a claim. Furthermore, the terms "a" or "an," as used herein, are defined as one or more than one. Also, the use of introductory phrases such as "at least one" and "one or more" in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an." The same holds true for the use of definite articles. Unless stated otherwise, terms such as "first" and "second" are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements. The mere fact that certain measures are recited in mutually different claims does not indicate that a combination of these measures cannot be used to advantage.

[001269] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.