Weather-based speed and route planning

By identifying potential road segments, receiving weather forecast information, and optimizing route and speed planning, the uncertainty of long-distance driving of autonomous vehicles due to severe weather has been resolved, improving the reliability and safety of vehicles under adverse weather conditions.

CN115243952BActive Publication Date: 2026-07-17WAYMO LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
WAYMO LLC
Filing Date
2021-03-20
Publication Date
2026-07-17

AI Technical Summary

Technical Problem

Severe weather conditions introduce uncertainty into the long-distance driving performance and reliability of autonomous vehicles, leading to safety issues and delays. Existing technologies struggle to effectively plan for avoiding or mitigating the impact of adverse weather.

Method used

By identifying potential road segments, receiving future weather forecasts, evaluating weighted cost factors for road segments, selecting the optimal road segments and speeds to avoid adverse weather, and using a computing system to optimize route and speed planning.

Benefits of technology

To improve the reliability and safety of autonomous vehicles in adverse weather conditions, reduce travel delays, and achieve more reliable and safer long-distance transportation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115243952B_ABST
    Figure CN115243952B_ABST
Patent Text Reader

Abstract

One example method involves identifying one or more potential road segments that co-connect at least two locations, receiving spatiotemporal weather information predicting future weather conditions along the route of each potential road segment, and for each potential road segment, evaluating a partial cost function comprising a sum of a set of road segment weighted cost factors, wherein at least one road segment weighted cost factor includes an adverse weather risk factor based on future weather conditions along the route of the potential road segment. The method also involves selecting a set of chosen road segments and corresponding target speeds for vehicles to use when traversing between at least two locations to avoid adverse weather conditions, based on minimizing a total cost function, which is the sum of partial cost functions associated with the set of road segments co-connecting at least two locations.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to U.S. non-provisional application No. 17 / 207,663, filed March 20, 2021, which claims priority to U.S. provisional patent application No. 62 / 992,544, filed March 20, 2020, the entire contents of which are incorporated herein by reference. Background Technology

[0003] The vehicle can be configured to operate in an autonomous mode; in autonomous mode, the vehicle navigates through its environment with little or no driver input. Such an autonomous vehicle may include one or more systems (e.g., sensors and associated computing devices) configured to detect information about the vehicle's operating environment. The vehicle and its associated computer-implemented controller use the detected information to navigate through the environment. For example, if the system(s) detect that the vehicle is approaching an obstacle, and this is determined by the computer-implemented controller, the controller adjusts the vehicle's directional control to allow the vehicle to maneuver around the obstacle.

[0004] When operating autonomous vehicles, inclement weather can degrade the performance or reliability of automated operations. For example, severe weather can lead to safety issues when transporting goods, reduced sensor reliability, vehicle damage, lost cargo, or significant delays. Weather is less of a concern during short-distance autonomous vehicle travel because it is easier to predict and plan for. However, during long-distance travel (e.g., 1,000 miles), weather becomes uncertain because it is constantly changing and can be difficult to plan ahead. Vehicles are more likely to encounter severe or other adverse weather conditions on long journeys, and there is greater uncertainty about whether they will encounter destructive weather. Solutions to mitigate this problem allow autonomous vehicles to operate under less stringent constraints, and weather issues do not become a bottleneck for long-haul freight transport. Summary of the Invention

[0005] This disclosure generally relates to speed planning for autonomous vehicles based on weather conditions.

[0006] Therefore, the first embodiment describes a method performed by a computing system configured to control vehicle operation. The method involves: identifying one or more potential road segments that co-connect at least two locations. The method also involves: receiving spatiotemporal weather information predicting future weather conditions along each potential road segment. The method further involves: for each potential road segment, evaluating a partial cost function comprising a sum of a set of road segment weighted cost factors, wherein at least one road segment weighted cost factor includes an adverse weather risk factor based on future weather conditions along the potential road segment. The method further involves: based on minimizing the total cost function, selecting a set of selected road segments and corresponding target speeds for use by the vehicle when traversing between at least two locations to avoid adverse weather conditions, wherein the total cost function is the sum of partial cost functions associated with the set of road segments co-connecting at least two locations.

[0007] The second embodiment describes an article of manufacture including a non-transitory computer-readable medium having instructions stored thereon, which, when executed by a processor in a computing system, cause the computing system to perform the following operations: The operations include: identifying one or more potential road segments that co-connect at least two locations. The operations also include: receiving spatiotemporal weather information predicting future weather conditions along each potential road segment. The operations further include: for each potential road segment, evaluating a partial cost function comprising a sum of a set of road segment weighted cost factors, wherein at least one road segment weighted cost factor includes an adverse weather risk factor based on future weather conditions along the potential road segment. The operations also include: based on minimizing a total cost function, selecting a set of selected road segments and corresponding road segment target speeds for use by vehicles traveling between at least two locations to avoid adverse weather conditions, wherein the total cost function is the sum of partial cost functions associated with a set of road segments co-connecting at least two locations.

[0008] A third embodiment describes a system comprising: at least one processor; and a memory for storing instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations. The operations include: identifying one or more potential road segments that co-connect at least two locations. The operations also include: receiving spatiotemporal weather information predicting future weather conditions along each potential road segment. The operations further include: for each potential road segment, evaluating a partial cost function comprising a sum of a set of road segment weighted cost factors, wherein at least one road segment weighted cost factor includes an adverse weather risk factor based on future weather conditions along the potential road segment. The operations also include: selecting a set of selected road segments and corresponding road segment target speeds for use by vehicles traveling between at least two locations to avoid adverse weather conditions, based on minimizing a total cost function, wherein the total cost function is the sum of partial cost functions associated with a set of road segments co-connecting at least two locations.

[0009] These and other embodiments, aspects, advantages, and alternatives will become apparent to those skilled in the art upon reading the following detailed description with reference to the accompanying drawings. Furthermore, it should be understood that the summary and other descriptions provided herein, along with the accompanying drawings, are intended to illustrate embodiments by way of example only, and therefore numerous variations may be included. For example, structural elements and processing steps may be rearranged, combined, distributed, eliminated, or otherwise modified while remaining within the scope of the claimed embodiments. Attached Figure Description

[0010] Figure 1 This is a functional block diagram illustrating a vehicle according to one or more example embodiments.

[0011] Figure 2A A side view of a vehicle according to one or more example embodiments is shown.

[0012] Figure 2B A top view of a vehicle according to one or more example embodiments is shown.

[0013] Figure 2C A front view of a vehicle according to one or more example embodiments is shown.

[0014] Figure 2D A rear view of a vehicle according to one or more example embodiments is shown.

[0015] Figure 2E Additional views of a vehicle according to one or more example embodiments are shown.

[0016] Figure 3 A side view of an example vehicle in the form of a semi-trailer truck with a traction unit and a semi-trailer is shown.

[0017] Figure 4 This is a conceptual diagram of wireless communication between various computing systems related to autonomous vehicles.

[0018] Figure 5 An example segmented route is shown according to one or more example embodiments.

[0019] Figure 6 Example speed curves are shown according to one or more example embodiments.

[0020] Figure 7 A flowchart of a weather-based speed and route planning method according to an example embodiment is shown.

[0021] Figure 8 This is a schematic diagram of a computer program according to an example implementation. Detailed Implementation

[0022] In the following detailed description, reference is made to the accompanying drawings, which form a part thereof. In the drawings, similar symbols generally identify similar components unless the context otherwise requires. The exemplary embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments may be used, and other changes may be made, without departing from the scope of the subject matter set forth herein. It will be readily understood that various aspects of this disclosure, as generally described herein and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a variety of different configurations, all of which are explicitly contemplated herein.

[0023] This disclosure provides methods and systems for speed planning of autonomous vehicles (e.g., trucks) that are traveling or will travel along a route, particularly based on predicted weather conditions along the route, such as weather forecasts relating to one or more road segments. Thus, speed can be adjusted to advantageously minimize the risk of adverse weather conditions predicted to occur along at least a portion of the route traveled (e.g., traveling in adverse weather conditions for the shortest possible time or avoiding them entirely), thereby facilitating more reliable and / or safer trip planning. Adverse weather conditions may include, for example, heavy rain or snow, dense fog, ice or sleet, and other possibilities. The vehicle control system and / or associated computing devices and processors consider that the type of adverse weather may be predefined (e.g., hard-coded in the vehicle software) and dynamically updated as needed, or may be determined in some other way.

[0024] To determine an optimal set of target speeds for the segments that make up a particular route (e.g., a first target speed for the first segment, a second target speed for the second segment, etc.), a vehicle may use a cost function, for example. For instance, a vehicle may calculate the optimal sequence of target speeds for each segment throughout the route to minimize a cost function applied to the entire route, which is the sum of the costs of each segment under this speed target selection. The cost of each segment may be based on various cost factors, such as the probability and / or severity of weather conditions expected when the vehicle travels along a given segment, and other possible factors.

[0025] This disclosure also provides methods and systems for adjusting the routes of autonomous vehicles (e.g., trucks) traveling along a route, particularly based on predicted weather conditions along the route, such as weather forecasts relating to one or more road segments. In this way, the route can be adjusted to advantageously minimize the risk of adverse weather conditions (e.g., heavy rain or snow, dense fog, etc.) predicted to occur along at least a portion of the route traveled, thereby facilitating more reliable and / or safer trip planning by the vehicle.

[0026] This article will discuss in more detail what the route and / or speed group should be (or what route and / or speed group should be adjusted to during driving) can be based on minimizing travel through adverse weather conditions, and perhaps additionally on avoiding other environmental conditions / obstacles, such as traffic, construction, or unusual or hazardous conditions (e.g., accidents, potholes, nearby wildfires, police activity, etc.). The vehicle's control system can continuously replan its route or strategy on the current route to take into account the latest conditions and optimize the route or strategy on the route accordingly.

[0027] Now refer to the attached diagram, Figure 1 This is a functional block diagram illustrating an example vehicle 100. Vehicle 100 may represent a vehicle capable of operating fully or partially in an automatic mode. More specifically, vehicle 100 can operate in automatic mode without (or with reduced) human-machine interaction by receiving control commands from a computing system (e.g., a vehicle control system). As part of operating in automatic mode, vehicle 100 may use sensors (e.g., sensor system 104) to detect and identify objects in the surrounding environment for safe navigation. In some embodiments, vehicle 100 may also include a subsystem that enables a driver (or remote operator) to control the operation of vehicle 100.

[0028] like Figure 1 As shown, vehicle 100 includes various subsystems, such as a propulsion system 102, a sensor system 104, a control system 106, one or more peripheral devices 108, a power supply 110, a computing system 112, a data storage 114, and a user interface 116. The subsystems and components of vehicle 100 can be interconnected in various ways (e.g., wired or wireless connections). In other examples, vehicle 100 may include more or fewer subsystems. Furthermore, the functionality of vehicle 100 described herein can be divided into additional functions or physical components, or combined into fewer functions or physical components in embodiments.

[0029] The propulsion system 102 may include one or more components operable to provide powered motion to the vehicle 100, and may include an engine / motor 118, an energy source 119, a transmission 120, and wheels / tires 121, as well as other possible components. For example, the engine / motor 118 may be configured to convert the energy source 119 into mechanical energy and may correspond to an internal combustion engine, one or more electric motors, a steam engine, or a Stirling engine, as well as one or a combination of other possible options. For example, in some embodiments, the propulsion system 102 may include multiple types of engines and / or motors, such as gasoline engines and electric motors.

[0030] Energy source 119 represents an energy source that can power one or more systems of vehicle 100 (e.g., engine / motor 118), either wholly or partially. For example, energy source 119 may correspond to gasoline, diesel, other petroleum-based fuels, propane, other compressed gas-based fuels, ethanol, solar panels, batteries, and / or other power sources. In some embodiments, energy source 119 may include a combination of a fuel tank, battery, capacitor, and / or flywheel.

[0031] The transmission 120 can transmit mechanical power from the engine / motor 118 to the wheels / tires 121 and / or other possible systems of the vehicle 100. Therefore, the transmission 120 may include a gearbox, clutch, differential, and drive shaft, as well as other possible components. The drive shaft may include an axle connected to one or more wheels / tires 121.

[0032] The wheels / tires 121 of vehicle 100 can have various configurations in the example embodiments. For example, vehicle 100 can exist as a unicycle, bicycle / motorcycle, tricycle, or four-wheeled car / truck, as well as other possible configurations. Therefore, the wheels / tires 121 can be attached to vehicle 100 in various ways and can be made of different materials, such as metal and rubber.

[0033] Sensor system 104 may include various types of sensors, such as a Global Positioning System (GPS) 122, an Inertial Measurement Unit (IMU) 124, one or more radar units 126, a laser rangefinder / LiDAR unit 128, a camera 130, a steering sensor 123, and a throttle / brake sensor 125, as well as other possible sensors. In some embodiments, sensor system 104 may also include sensors configured to monitor the internal systems of vehicle 100 (e.g., O2 monitor, fuel gauge, engine oil temperature, brake status).

[0034] GPS 122 may include a transceiver operable to provide information about the position of vehicle 100 relative to the Earth. IMU 124 may be configured to use one or more accelerometers and / or gyroscopes and may sense changes in the position and orientation of vehicle 100 based on inertial acceleration. For example, IMU 124 may detect the pitch and yaw of vehicle 100 when vehicle 100 is stationary or in motion.

[0035] Radar unit 126 may represent one or more systems configured to use radio signals to sense objects (e.g., radar signals) within the local environment of vehicle 100, including the speed and heading of the objects. Therefore, radar unit 126 may include one or more radar units equipped with one or more antennas configured to transmit and receive radar signals as described above. In some embodiments, radar unit 126 may correspond to an mountable radar system configured to acquire measurements of the environment surrounding vehicle 100. For example, radar unit 126 may include one or more radar units configured to be coupled to the bottom of the vehicle.

[0036] The laser rangefinder / LiDAR 128 may include one or more laser sources, a laser scanner, and one or more detectors, as well as other system components, and may operate in a coherent mode (e.g., using heterodyne detection) or an incoherent detection mode. The camera 130 may include one or more devices (e.g., a still camera or video camera) configured to capture images of the environment of the vehicle 100.

[0037] Steering sensor 123 can sense the steering angle of vehicle 100, which may involve measuring the angle of the steering wheel or measuring an electrical signal representing the steering wheel angle. In some embodiments, steering sensor 123 can measure the angle of the wheels of vehicle 100, for example, detecting the angle of the wheels relative to the front axle of vehicle 100. Steering sensor 123 may also be configured to measure a combination (or subset) of the steering wheel angle of vehicle 100, an electrical signal representing the steering wheel angle, and wheel angles.

[0038] The throttle / brake sensor 125 can detect either the throttle position or the brake position of the vehicle 100. For example, the throttle / brake sensor 125 can measure the angle of both the accelerator pedal (accelerator) and the brake pedal, or it can measure, for example, an electrical signal that represents the angle of the accelerator pedal (accelerator) and / or the brake pedal. The throttle / brake sensor 125 can also measure the angle of the throttle body of the vehicle 100, which may include part of a modulated physical mechanism (e.g., a butterfly valve or carburetor) that provides energy to the engine / motor 118. Additionally, the throttle / brake sensor 125 can measure the pressure of one or more brake pads on the rotor of the vehicle 100, or a combination (or subset) of the angle of the accelerator pedal (accelerator) and the brake pedal, an electrical signal representing the angle of the accelerator pedal (accelerator) and the brake pedal, the angle of the throttle body, and the pressure exerted by at least one brake pad on the rotor of the vehicle 100. In other embodiments, the throttle / brake sensor 125 may be configured to measure the pressure applied to a vehicle pedal, such as the accelerator or brake pedal.

[0039] The control system 106 may include components configured to assist navigation of the vehicle 100, such as a steering unit 132, a throttle 134, a braking unit 136, a sensor fusion algorithm 138, a computer vision system 140, a navigation / pathing system 142, and an obstacle avoidance system 144. More specifically, the steering unit 132 is operable to adjust the heading of the vehicle 100, while the throttle 134 controls the operating speed of the engine / motor 118 to control the acceleration of the vehicle 100. The braking unit 136 can decelerate the vehicle 100, which may involve using friction to slow down the wheels / tires 121. In some embodiments, the braking unit 136 can convert the kinetic energy of the wheels / tires 121 into electrical current for subsequent use by one or more systems of the vehicle 100.

[0040] Sensor fusion algorithm 138 may include Kalman filters, Bayesian networks, or other algorithms capable of processing data from sensor system 104. In some embodiments, sensor fusion algorithm 138 may provide assessments based on incoming sensor data, such as assessments and / or features of individual objects, assessments of specific situations, and / or assessments of the potential impact of a given situation.

[0041] Computer vision system 140 may include hardware and software operable to process and analyze images to determine objects, environmental objects (e.g., traffic lights, road boundaries, etc.), and obstacles. Therefore, computer vision system 140 may use object recognition, structure from motion (SFM), video tracking, and other algorithms used in computer vision, such as to identify objects, map the environment, track objects, estimate object velocities, etc.

[0042] Navigation / path system 142 can determine the driving path of vehicle 100, which may involve dynamically adjusting navigation during operation. Therefore, navigation / path system 142 can use data from sensor fusion algorithm 138, GPS 122, maps, and other sources to navigate vehicle 100. Obstacle avoidance system 144 can assess potential obstacles based on sensor data and enable vehicle 100 to systematically avoid or otherwise successfully traverse potential obstacles.

[0043] like Figure 1 As shown, vehicle 100 may also include peripheral devices 108, such as a wireless communication system 146, a touchscreen 148, a microphone 150, and / or a speaker 152. Peripheral devices 108 can provide users with controls or other elements to interact with user interface 116. For example, touchscreen 148 can provide information to users of vehicle 100. User interface 116 can also accept input from users via touchscreen 148. Peripheral devices 108 can also enable vehicle 100 to communicate with devices such as other vehicle equipment.

[0044] The wireless communication system 146 can communicate wirelessly with one or more devices, either directly or via a communication network. For example, the wireless communication system 146 can use cellular communication, such as CDMA, EVDO, GSM / GPRS, 4G cellular communication such as WiMAX or LTE, or 5G cellular communication. Alternatively, the wireless communication system 146 can communicate with a Wireless Local Area Network (WLAN) using WiFi or other possible connections. For example, the wireless communication system 146 can also communicate directly with devices using an infrared link, Bluetooth, or ZigBee. In the context of this disclosure, other wireless protocols, such as those used in various vehicle communication systems, may also be used. For example, the wireless communication system 146 may include one or more Dedicated Short-Range Communications (DSRC) devices that can include public and / or private data communications between vehicles and / or roadside stations.

[0045] Vehicle 100 may include a power source 110 for powering components. In some embodiments, power source 110 may include a rechargeable lithium-ion battery or a lead-acid battery. For example, power source 110 may include one or more batteries configured to provide power. Vehicle 100 may also use other types of power sources. In an example implementation, power source 110 and energy source 119 may be integrated into a single energy source.

[0046] Vehicle 100 may also include a computing system 112 to perform operations, such as those described herein. Thus, computing system 112 may include at least one processor 113 (which may include at least one microprocessor) operable to execute instructions 115 stored in a non-transitory computer-readable medium such as data memory 114. In some embodiments, computing system 112 may represent multiple computing devices that can be used to control various components or subsystems of vehicle 100 in a distributed manner.

[0047] In some implementations, data memory 114 may contain instructions 115 (e.g., program logic) that can be executed by processor 113 to perform various functions of vehicle 100, including the combinations described above. Figure 1 Those described. Instruction 115 may include at least those used to perform the actions described herein. Figure 7 The instructions describe the operation. The data memory 114 may also contain additional instructions, including instructions for transmitting, receiving, interacting with, and / or controlling one or more of the propulsion system 102, sensor system 104, control system 106, and peripheral devices 108.

[0048] In addition to instruction 115, data storage 114 can store data such as road maps, route information, and other information. This information can be used by vehicle 100 and computing system 112 while vehicle 100 is operating in automatic, semi-automatic, and / or manual modes.

[0049] Vehicle 100 may include a user interface 116 for providing information to or receiving input from a user of vehicle 100. User interface 116 may control the content and / or layout of interactive images that may be displayed on touchscreen 148, or enable control thereon. Furthermore, user interface 116 may include one or more input / output devices within a set of peripheral devices 108, such as wireless communication system 146, touchscreen 148, microphone 150, and speaker 152.

[0050] The computing system 112 can control the functions of the vehicle 100 based on inputs received from various subsystems (e.g., propulsion system 102, sensor system 104, and control system 106) and from the user interface 116. For example, the computing system 112 can utilize inputs from the sensor system 104 to estimate the outputs generated by the propulsion system 102 and the control system 106. According to embodiments, the computing system 112 is operable to monitor multiple aspects of the vehicle 100 and its subsystems. In some embodiments, the computing system 112 can disable some or all functions of the vehicle 100 based on signals received from the sensor system 104.

[0051] The components of vehicle 100 can be configured to operate in an interconnected manner with other components within or outside their respective systems. For example, in an example embodiment, camera 130 can capture multiple images that may represent information about the environmental state of vehicle 100 operating in automatic mode. The environmental state may include road parameters on which the vehicle is operating. For example, computer vision system 140 is capable of identifying slope (incline) or other features based on multiple images of the road. Additionally, a combination of features identified by GPS 122 and computer vision system 140 can be used with map data stored in data memory 114 to determine specific road parameters. Furthermore, radar unit 126 can also provide information about the environment surrounding the vehicle.

[0052] In other words, the combination of various sensors (which may be referred to as input indication and output indication sensors) and computing system 112 can interact to provide indications of inputs for controlling the vehicle or indications of the vehicle's surrounding environment.

[0053] In some embodiments, the computing system 112 can determine various objects based on data provided by systems other than radio systems. For example, vehicle 100 may have lasers or other optical sensors configured to sense objects in the vehicle's field of view. The computing system 112 can use the outputs from various sensors to determine information about objects in the vehicle's field of view, and can determine distance and orientation information from the vehicle to various objects. The computing system 112 can also determine whether an object is advantageous or disadvantageous based on the outputs from various sensors.

[0054] although Figure 1 Various components of vehicle 100 are shown, namely wireless communication system 146, computing system 112, data storage 114, and user interface 116, which are integrated into vehicle 100. However, one or more of these components can be installed or associated separately from vehicle 100. For example, data storage 114 can exist partially or entirely separate from vehicle 100. Therefore, vehicle 100 can be provided in a form where the device elements are located separately or together. The device elements constituting vehicle 100 can be communicatively coupled together via wired and / or wireless means.

[0055] Figure 2A , 2B Views 2C, 2D, and 2E illustrate different views of the physical configuration of vehicle 100. The included views depict example sensor locations 202, 204, 206, 208, and 210 on vehicle 100. In other examples, the sensors may be located at different positions on vehicle 100. While vehicle 100 is... Figures 2A to 2E The vehicle 100 is depicted as a van, but in this example, it may have other configurations, such as a truck, car, semi-trailer truck, motorcycle, bus, shuttle, golf cart, off-road vehicle, robotic equipment, or agricultural vehicle, as well as other possible examples.

[0056] As described above, vehicle 100 may include sensors coupled to various external locations, such as sensor locations 202 to 210. Vehicle sensors include one or more types of sensors, each configured to capture information from the surrounding environment or perform other operations (e.g., communication links, obtaining overall positioning information). For example, sensor locations 202 to 210 can be used as locations for any combination of one or more cameras, radar, lidar, rangefinders, wireless devices (e.g., Bluetooth and / or 802.11), acoustic sensors, and other possible types of sensors.

[0057] When in Figures 2A to 2EWhen coupled at the example sensor locations 202 to 210 shown, various mechanical fasteners, including permanent and non-permanent fasteners, can be used. For example, bolts, screws, clips, latches, rivets, anchors, and other types of fasteners can be used. In some examples, the sensor can be attached to the vehicle using adhesive. In further examples, the sensor can be designed and constructed as part of a vehicle component (e.g., part of a vehicle mirror).

[0058] In some embodiments, one or more sensors may be positioned at sensor locations 202 to 210 using a movable base operable to adjust the orientation of one or more sensors. The movable base may include a rotation platform capable of rotating the sensor to acquire information from multiple directions around the vehicle 100. For example, the sensor located at sensor location 202 may use a movable base capable of rotating and scanning within a specific angular and / or azimuth range. Therefore, the vehicle 100 may include mechanical structures enabling the mounting of one or more sensors on the roof of the vehicle 100. Furthermore, other mounting locations may also be included in this example.

[0059] Figure 3 A side view of an example vehicle 300 in the form of a semi-trailer truck with a traction unit 302 and a semi-trailer 304 is shown.

[0060] Vehicle 300 represents a larger vehicle that can use any of the operations described herein to facilitate travel along a planned route, such as for the purpose of delivering goods to a specific location. The configuration of Vehicle 300 is provided as an example implementation. Other examples may involve other types of vehicles (e.g., multi-trailer trucks, military vehicles, off-road vehicles).

[0061] like Figure 3 As shown, the towing unit 302 includes an engine compartment 306, a cab 308, an air dam 310, a fuel tank 312, and a fifth wheeling coupling 314. The towing unit 302 can be configured to navigate and transport goods within a semi-trailer 304. Therefore, the towing unit 302 represents an example configuration of a vehicle configured to transport objects within a semi-trailer 304. Other examples of the towing unit 302 are also possible.

[0062] Engine compartment 306 represents an area that can house an engine. Therefore, the engine can correspond to a complex mechanical device configured to convert energy into useful motion of traction unit 302. In some examples, traction unit 302 may include one or more engines. In other cases, traction unit 302 may be an electric vehicle driven by one or more electric motors.

[0063] Cabin 308 is shown as an enclosed space that allows the driver and / or passengers to be seated. In other examples, the size and configuration of cabin 308 may differ. Therefore, cabin 308 may also include berths that allow the driver or passengers to rest. Air dam 310 represents an aerodynamic configuration to enhance the operation of traction unit 302.

[0064] The semi-trailer 304 is shown coupled to the towing unit 302 and includes an enclosed cargo space 316 and a landing gear 317 configured for use when the semi-trailer 304 is disengaged from the towing unit 302. Therefore, the semi-trailer 304 and the towing unit 302 may include several components configured to couple the semi-trailer 304 and the towing unit 302 together. The cargo space 316 can accommodate and protect objects or materials during transport by the towing unit 302.

[0065] In some embodiments, vehicle 300 may also include one or more radar units and / or other vehicle sensor systems. For example, radar units 318A and 318B are shown coupled to the bottom of traction unit 302. The position and orientation of radar units 318A and 318B represent an example layout for coupling radar units 318A and 318B to traction unit 302. In other examples, traction unit 302 may include more or fewer radar units at other locations. For example, traction unit 302 may include only radar unit 318B coupled to its bottom. Furthermore, while radar units 318A and 318B are shown below the bumper line of traction unit 302, in other examples, radar units 318A and 318B may be positioned at different heights above the ground.

[0066] Additionally or alternatively, vehicle 300 may include radar units or other sensor units coupled to other locations on vehicle 300, such as the underside of semi-trailer 304 (e.g., the bottom of the vehicle body). For example, radar units 320A, 320B, 320C, and 320D are shown coupled to the underside of semi-trailer 304. The position and orientation of radar units 320A, 320B, 320C, and 320D represent an example layout for coupling radar units to semi-trailer 304. In other examples, semi-trailer 304 may include more or fewer radar units in other locations. Furthermore, although radar units 320A, 320B, 320C, and 320D are shown below the bumper line of semi-trailer 304, in other examples, radar units 320A, 320B, 320C, and 320D may be positioned at different heights above the ground.

[0067] Figure 4This is a conceptual diagram illustrating wireless communication between various computing systems associated with an autonomous vehicle, implemented according to an example. Specifically, wireless communication can occur between a remote computing system 402 and vehicle 100 (e.g., computing system 112 of vehicle 100) via network 404. Wireless communication can also occur between server computing system 406 and remote computing system 402, and between server computing system 406 and vehicle 100. During operation of vehicle 100, the vehicle can send and receive data from both server computing system 406 and remote computing system 402 to assist in its operation. Vehicle 100 can transmit data related to its operation, as well as data from its sensors, to server computing system 406 and remote computing system 402. Additionally, vehicle 100 can receive operational commands and / or data related to objects sensed by vehicle sensors from server computing system 406 and computing system 402.

[0068] Vehicle 100 may correspond to various types of vehicles capable of transporting passengers or objects between locations, and may take the form of any one or more of the aforementioned vehicles, including the form of vehicle 300.

[0069] The remote computing system 402 can represent any type of device associated with remote assistance and operation technologies, including but not limited to those described herein. In the examples, the remote computing system 402 can represent any type of device configured to (i) receive information relating to vehicle 100, (ii) provide an interface through which a human operator or computer operator can sequentially perceive information and input response information relating to vehicle 100, and (iii) send responses to vehicle 100 or other devices. The remote computing system 402 can take various forms, such as a workstation, desktop computer, laptop computer, tablet computer, mobile phone (e.g., smartphone), and / or server. In some examples, the remote computing system 402 may include multiple computing devices operating together in a network configuration.

[0070] The remote computing system 402 may include one or more subsystems and components similar to or identical to those of the vehicle 100. The remote computing system 402 may include at least one processor configured to perform the various operations described herein. In some embodiments, the remote computing system 402 may also include a user interface including input / output devices such as a touchscreen and a speaker. Other examples may also be included.

[0071] Network 404 represents the infrastructure that enables wireless communication between remote computing system 402 and vehicle 100. Network 404 also enables wireless communication between server computing system 406 and remote computing system 402, as well as between server computing system 406 and vehicle 100.

[0072] The location of the telecomputing system 402 can vary in the examples. For instance, the telecomputing system 402 can have a remote location away from vehicle 100, with wireless communication via network 404. In another example, the telecomputing system 402 can correspond to a computing device within vehicle 100, separate from vehicle 100, but through which a human operator can interact with passengers or the driver of vehicle 100. In some examples, the telecomputing system 402 can be a computing device with a touchscreen operable by passengers of vehicle 100. In some examples, the telecomputing system 402 can be a computing device with a touchscreen operable by passengers of vehicle 100.

[0073] In some implementations, the operations performed by the remote computing system 402 described herein may additionally or alternatively be performed by the vehicle 100 (i.e., by any one or more systems or subsystems of the vehicle 100). In other words, the vehicle 100 may be configured to provide a remote assistance mechanism with which the driver or passengers of the vehicle can interact.

[0074] Server computing system 406 can be configured to wirelessly communicate with remote computing system 402 and vehicle 100 via network 404 (or possibly directly with remote computing system 402 and / or vehicle 100). Server computing system 406 can represent any computing device configured to receive, store, determine, and / or transmit information relating to vehicle 100 and its remote assistance. Thus, server computing system 406 can be configured to perform any one or more operations, or a portion thereof, which are described herein as being performed by remote computing system 402 and / or vehicle 100. Some implementations of wireless communication related to remote assistance may use server computing system 406, while others may not.

[0075] Server computing system 406 may include one or more subsystems and components similar to or the same as those of remote computing system 402 and / or vehicle 100, such as processors configured to perform the various operations described herein, and wireless communication interfaces for receiving information from remote computing system 402 and vehicle 100 and providing information to remote computing system 402 and vehicle 100.

[0076] The example operations related to weather-based speed and route planning will now be described in more detail.

[0077] The operations described below include Figure 7The operation of method 700 will be primarily described as being performed by vehicle 100, i.e., by the computing system 112 of vehicle 100. However, it should be understood that, for method 700, and other processes and methods disclosed herein, the operation described below may additionally or alternatively be performed, wholly or partially, by other systems of vehicle 100, by multiple vehicles (i.e., such that the operation is distributed across multiple vehicle computing systems), by a remote server / external computing system (e.g., systems 402 and 406), and / or by a combination of one or more external computing systems and one or more vehicles, and other possible cases.

[0078] The disclosed operations typically involve determining a set of road segments and corresponding target speeds for use by vehicle 100 while traversing a route, thereby avoiding or minimizing travel under identified adverse weather conditions along the route. The disclosed operations utilize spatiotemporal weather information, such as hyperlocal weather forecasts or other types of weather data, to accurately predict the time and / or location of weather conditions (including adverse weather to be avoided) that will occur on road segments along various routes along which vehicle 100 may travel. In some embodiments, the spatiotemporal weather information may be received by computing system 112 via wireless communication system 146 or via another communication device. As described herein, spatiotemporal weather information may be received periodically and / or dynamically. Computing system 112 may use the spatiotemporal weather information, along with a variety of other techniques described in more detail below, to find optimal speed / route travel to avoid adverse weather. In some situations, completely avoiding adverse weather may be overly idealistic, although in other situations, the disclosed operations can be carried out with the goal of minimizing vehicle 100’s exposure to such adverse weather, such as choosing a route or speed that completely avoids adverse weather in less than ideal scenarios (e.g., vehicle 100 has a specific transport time and no other available or ideal route options).

[0079] In one example, the route that vehicle 100 can travel can take the form of a set of navigation directions followed by vehicle 100 as it travels from its initial location to its destination along various roads and / or other drivable areas. The route can be defined by or through at least two locations, including but not limited to buildings, other landmarks, intersections, street signs, locations of speed limit changes (e.g., speed limit signs), uphill or downhill sections, gas stations, charging stations, loading and unloading docks, maintenance facilities, defined boundaries of towns / cities / states / counties, etc., and / or estimated edges of boundary areas where weather-specific areas appear or are predicted to appear, as well as other possible circumstances.

[0080] In some examples, computing system 112 may use the publicly disclosed operations discussed herein (e.g., method 700) and / or one or more other techniques to determine the route itself. In other examples, computing system 112 may receive route identification data from another computing system (e.g., server computing system 406) located remotely from vehicle 100. In other examples, route identification may involve referencing existing routes stored in memory accessible to computing system 112. In other examples, route identification may involve determining the route, for example by identifying multiple route options to a particular destination and then selecting one of the multiple route options based on one or more criteria (e.g., time, distance, etc.).

[0081] In one embodiment, the computing system 112 may determine a route before the vehicle 100 departs from its initial position, as described above. For example, there may be three different route variations between Dallas and Los Angeles, each with its own fixed distance. The computing system 112 may use one or more of the disclosed operations to determine which route to select first. Thus, the road segment constituting the route taken by the vehicle 100 according to this disclosure may be a predetermined route or a segment of a selected route from a plurality of predetermined routes.

[0082] In another embodiment, the computing system 112 may use one or more techniques other than method 700 to determine the route, and may then perform one or more of the disclosed operations (e.g., once or interactively, such as at repeated intervals or continuously) to adjust the route during travel, thereby optimizing it for better weather conditions (trading off some distance / time for increased safety or conditional predictability).

[0083] In another embodiment, the computing system 112 may identify a new route after departure and then use one or more of the disclosed operations to select (and possibly adjust) one of the new routes.

[0084] To facilitate the assessment of weather conditions along potential road segments that vehicle 100 may traverse, and to aid in the determination or adjustment of the route itself, computing system 112 may consider a route between at least two locations as one or more potential road segments that commonly connect the at least two locations. As will be discussed in more detail herein, computing system 112 may sometimes plan (or replan) the route and then divide the route into one or more potential road segments for the purpose of performing the techniques described herein, or alternatively, may use the techniques described herein to determine the route in advance.

[0085] Figure 5An example of how the computing system 112 can segment route 502 is shown. Route 502 can be a pre-planned route (or a segment thereof) that vehicle 100 is set to travel, or it can be one of multiple potential routes (or a segment thereof) that vehicle 100 can travel. As described above, each of the road segments 504a to 504b can be a portion of route 502 between at least two locations 506a to 506c. Specifically, decision points on the route can define a road segment. For example, the location of road segment 504b can be the current geographic location of the vehicle on route 506c and route decision point 506b. Alternatively, the computing system 112 can define a road segment by two future decision points. For example, the computing system 112 can define road segment 504a by decision point 506a and decision point 506b. Decision points can be points where the controller of vehicle 100 must decide whether to stay on the route, leave the route and take route adjustments for the road segment, or stop. Examples of route decision points could be nearby operational supply depots 520 (e.g., loading docks, truck and other vehicle maintenance facilities), highway exits 510, road intersections 512, or the closing point of highway interchanges 514. Decision points could also be points where vehicle 100 can return to the route from the adjusted route.

[0086] Potential road segments can also be identified in other ways based on one or more criteria added to or used alternatively to the decision points described above. In some examples, weather can define or otherwise correspond to the road segments considered by the computing system 112 when performing the techniques described herein. For example, weather data received by the computing system 112 (also referred to herein as “spatiotemporal weather information” or “predicted weather data”) can identify geographic areas where one or more specific weather conditions exist, whether they are adverse weather conditions (e.g., heavy rain) or non-adverse weather conditions (e.g., light rain or fog). In this case, the computing system 112 can set the boundary of a specific road segment as the expected or current boundary where one or more weather conditions exist. As a specific example, the start point of a specific road segment can correspond to a point along the boundary of a predicted heavy rain and the end point of a specific road segment can correspond to another point along the boundary of a predicted heavy rain. Thus, the specific road segment is entirely within the boundary of the heavy rain. In other words, a specific road segment of a route can be defined by one or more weather zones along the route. Specifically, the two locations defining the road segment can be the start and end points of the predicted weather conditions along the route, such that the road segment encompasses all specific weather zones. In other cases, a specific road segment can be selected as a segment that includes weather zones, but also includes other geographical areas that do not include any adverse weather.

[0087] In another embodiment, these road segments can be fixed, thus dividing the route into segments of equal length defined by geographical locations along the route. Additionally or alternatively, these road segments can be continuously updated. In this way, the road segments can move along the route as vehicle 100 moves. For example, a road segment could begin half a mile ahead of vehicle 100 and end at its destination, such that the road segments are continuously updated every half mile and moved along the route at small intervals. Dividing the road segments into small intervals for updating makes it more accurate. Alternatively, these road segments can be continuously updated but maintained at a predetermined distance from vehicle 100 along the route. For example, the first road segment (e.g., the first segment in sequence among all road segments) could begin half a mile ahead of vehicle 100; the second road segment could begin two miles ahead of vehicle 100, and so on. Furthermore, these road segments may not cover the entire route, but could extend along a portion of the route so that they only cover half of the route ahead of vehicle 100.

[0088] In another embodiment, one or more of distance or time measurements can define the length or duration of a segment along the route. For example, a segment can be defined in 1-mile increments along the route. Alternatively, these segments can be defined by the expected time for vehicle 100 to reach a point on the route, and an increment of 1 hour following arrival at that point. In some cases, segments along the route may overlap slightly (e.g., by a few miles, a few feet, or other distances). Segment overlap can improve the accuracy of weather data predictions for segments that immediately follow the first segment when the same or similar weather data is also present. Because closer segments have smaller differences in weather data confidence, more distant predictions can be labeled as reliable. For example, when a more distant segment includes weather patches that overlap with closer segments, the calculation system 112 can label the weather forecast for the more distant segment with a higher confidence level than the weather forecasts for other, more distant segments.

[0089] According to the disclosed technology, the computing system 112 can also receive predictive spatiotemporal weather information on the future weather conditions of each potential road segment (including but not limited to the road segment types described above) identified by the computing system 112.

[0090] In some cases, weather data can be received at a centralized location, such as (i) a server computing system that can communicate with a fleet of autonomous vehicles or other types of vehicle fleets and / or (ii) a computing system of another vehicle that can communicate with the fleet. Therefore, weather data can be stored in a centralized location and then distributed among the vehicles in the fleet so that each vehicle can adjust its speed accordingly. Furthermore, vehicles currently traveling on the route can use their sensors to acquire data representing the weather conditions they are currently facing and send the acquired data to the centralized location for sharing with other vehicles. The weather data collected by the vehicles can be further used to improve future weather models, thereby increasing accuracy over time. Additionally or alternatively, weather data can be sent directly to another vehicle and stored in the vehicle's onboard memory.

[0091] In one embodiment, the computing system 112 can query weather forecasts for routes that cross one or more road segments. In some examples, these segment-specific weather forecasts can be obtained by utilizing hyperlocal weather forecasts. Hyperlocal weather forecasts can take the form of regional weather forecasts and can be as specific as determining weather data every minute to an hour at a precise GPS location. As vehicle 100 travels along the route, these road segments can allow for the periodic collection and updating of more accurate hyperlocal weather data, even when the weather data crosses multiple road segments, because the query can be for hyperlocal weather close to the time of the query. In some embodiments, the query is performed only in the route area that includes the route. Alternatively, a general forecast corresponding to a larger geographic area (e.g., a town or county) can also be used. In particular, if a large undesirable weather pattern is predicted to cross the route, it may be meaningful to consider weather patterns far from vehicle 100 to make significant changes to the arrival time of vehicle 100 in the segment with the undesirable weather pattern.

[0092] In some examples, a hyperlocal weather forecast can be queried for a specific time when vehicle 100 is predicted to arrive at a road segment. In such examples, the hyperlocal weather forecast may be less accurate for road segments farther from vehicle 100 and with less predictable arrival times. In some embodiments, hyperlocal weather queries may only be made for the road segments closest to vehicle 100 that vehicle 100 can reach near the query time; for road segments farthest from vehicle 100, whose arrival times are further from the query time, only a general forecast can be queried (e.g., at a lower resolution). For example, computing system 112 can query precise weather ten miles ahead along the route at minute or sub-minute resolution. This is because the accuracy of weather forecasts is high within the local time frame. Alternatively, for locations on the route two hours away from vehicle 100, computing system 112 can make a coarser query. For example, in a 15-minute incremental estimate or for longer segments of the route. Because the arrival times vary more at more distant road segments, high-resolution weather queries may be less accurate, so a general forecast can be used to determine the weather in the area surrounding the more distant road segments. For both hyperlocal weather and general forecasts, the variance of weather forecasts may be higher if the queries for these forecasts are made for times that are too far removed from the query time.

[0093] To receive weather data, the computing system 112 can further query weather forecasts at predetermined intervals for one or more road segments that span the current location of vehicle 100 and are within a predetermined distance. For example, the query can be optimized by searching weather data at predefined time intervals (e.g., every 5 to 10 minutes). Querying every 5 to 10 minutes allows for weather development and consolidation, but such queries may not allow for large time spans that make the weather unpredictable and difficult to plan. In some cases, the weather forecast may be most accurate for the road segment closest to vehicle 100 because the time of arrival of vehicle 100 is less variable. Weather data predictions for that location can be more precise because the arrival time can be accurately predicted, especially when it falls within the middle of a weather pattern. Therefore, the boundaries of weather patterns are queried most frequently, as these locations have the greatest uncertainty and impact on the route.

[0094] For potential road segments where weather conditions are predicted with greater certainty / accuracy, the frequency of querying may not be as high as for potential road segments containing weather pattern boundaries. Instead, for road segments containing weather pattern boundaries and therefore having greater uncertainty and impact on the speed and / or route that vehicle 100 should travel, high-frequency querying is possible to better predict weather data for that road segment. However, due to the difficulty in generating accurate weather data forecasts, road segments located at a greater distance from vehicle 100 can be queried less frequently.

[0095] In some examples, the computing system 112 may not query all road segments at the same frequency. If the weather is generally sunny, queries can be performed at a low frequency, but if the weather is foggy, snowy, rainy, or otherwise undesirable, the computing system 112 can increase the frequency of queries to maximize the information that may affect the driving plan. For example, initially, road segments far from vehicle 100 may not be queried frequently due to possible variations in road segment arrival times. However, general forecast queries can be used for more distant road segments to alert the computing system to possible impending weather conditions. For example, forecast weather data received during queries for more distant road segments can make the computing system 112 aware of the possibility of particularly bad weather. If the forecast weather data indicates a risk of severe weather, the computing system 112 can query more distant road segments at a higher frequency to better predict incoming weather data and thus plan the speed at which vehicle 100 will travel. For example, vehicle 100 may travel 250 miles in 4 hours. By adjusting the speed by 5 or 10 miles per hour, vehicle 100 can bridge 30 miles between its predicted and actual locations. This 30 miles can help avoid undesirable weather. In addition, road segments with weather data that is particularly relevant to vehicle travel can be queried more frequently than other road segments.

[0096] The computing system 112 can receive predicted weather data in various ways. In an example embodiment, the computing system 112 can receive predicted weather data from a weather station server or other types of servers. The weather station server can be a local weather station server along or near a route, such as a specific geographic area or road segment; that is, a weather station server dedicated to a specific geographic area or road segment, and configured to acquire weather data corresponding to that specific geographic area or road segment, and send the weather data to one or more vehicle computing systems. Additionally or alternatively, the weather station server can be a global weather station server configured to acquire weather data corresponding to multiple locations, such as an entire state, county, country, etc. The global weather station server can also operate as a server configured to collect weather data from multiple local weather station servers and send the collected weather data to one or more vehicle computing systems. In some embodiments, the weather station server can be configured to predict weather conditions in various ways and include different types of information in the weather data. For example, the weather station server can predict weather conditions such as fog, mist, snow, and rain. This weather condition forecasting behavior may involve a weather station server (or vehicle 100) monitoring and analyzing the quality of indicators such as fog, mist, and rain. Other example functions of local or global weather station servers may also be included.

[0097] To facilitate receiving forecasted weather data from a weather station server, the computing system 112 can select one weather station server from a plurality of possible weather station servers and send a query for forecasted weather data to the selected weather station server. The computing system 112 can then receive meteorological data in response to the query from the selected weather station.

[0098] Furthermore, in some embodiments, the weather station server can be configured to publish updates of forecast weather data for certain locations to a fleet of vehicles (e.g., multiple different vehicle computing systems associated with multiple different vehicles) or individual vehicles. Additionally, the weather station server can be configured to send forecast weather data to the vehicle system in response to receiving a query for forecast weather data from computing system 112 and / or without a specific request from computing system 112 (e.g., configured to publish weather data updates for a specific location every 30 minutes). Other examples are also possible.

[0099] In any of the examples provided in this article, the predicted weather data can be timestamped so that the calculation system 112 can use the timestamps as a reference to adjust its speed and / or route.

[0100] In another example embodiment, predicted weather data can be received from a second vehicle (e.g., a leading / prior vehicle). Specifically, computing system 112 can identify that the second vehicle is already or is currently traveling on one or more potential road segments within a predetermined distance ahead of vehicle 100's current position. Vehicle 100 can query whether the second vehicle is a predetermined distance ahead of vehicle 100's current position. If the second vehicle is too far from vehicle 100, the data collected by the second vehicle may be inaccurate. While traveling, the second vehicle may have already collected data about its environment, such as predicted weather data or current weather data. Once the second vehicle is identified, vehicle 100 can request the weather data collected by the second vehicle by querying the second vehicle's second computing system for predicted weather data in one or more road segments.

[0101] In another example embodiment, the weather station server can collect weather data from the second vehicle. For example, while driving, the second vehicle may have already collected data about its environment, such as the weather conditions it is experiencing. The weather station server can query the second vehicle for the collected weather data, or the second vehicle's computing system can automatically send the collected weather data to the weather station server. The weather station server can use the weather data collected from the second vehicle, along with weather forecasts, to make weather predictions for the computing system 112 to receive.

[0102] In addition to allowing for more efficient route queries, road segments also allow the calculation system 112 to use vehicle speed to determine when the vehicle 100 is expected to arrive at a particular road segment. As discussed above, a particular road segment can be further queried to obtain predicted weather data, and the calculation system 112 can determine that the predicted weather will occur at that particular road segment when the vehicle 100 is predicted to travel through it at a first speed.

[0103] Using a cost function, the calculation system 112 can output a cost based on cost factor inputs. Cost factors can include predicted weather data for road segments at each of a plurality of target speeds. Based on the speed associated with the minimum cost, for a specific road segment, vehicle 100 can adjust its speed and avoid predicted weather conditions for that segment. Selecting the speed associated with the minimum cost may also be referred to herein as minimizing the cost or minimizing the cost function with respect to speed.

[0104] In some cases, different second cost functions can be used for multiple target routes of a vehicle. These second cost functions include a second set of cost factors as input and provide a cost based on these second cost factors as output. For each target route among multiple target routes, the second cost factors include predicted weather data and the corresponding target route. The second cost function can treat multiple target routes as variable inputs. As different target routes are input into the cost function, the value of the cost function may change. For example, one route may have a faster arrival time than another. Additionally, target routes may include routes that guide vehicles to operational resupply stations.

[0105] In one embodiment, the cost function may include a partial cost function and a total cost function. The partial cost function determines the cost for each potential road segment that the vehicle 100 can travel on. The partial cost function may include a set of segment-weighted cost factors, such as adverse weather risk based on future weather conditions along the respective potential road segment. The segment-weighted cost factors may include values ​​that can vary depending on speed. The segment-weighted cost factors for each respective potential road segment can then be summed together. The sum of the segment-weighted cost factors can be considered as a partial cost for each respective potential road segment.

[0106] The total cost function can be used to determine the minimum cost of selecting road segments that a vehicle can use to travel between at least two locations at a target speed. The total cost function can take all partial cost functions for each potential road segment and sum them together. The total cost function can consider which road segments will jointly connect the two locations of the start and end of the journey, and can determine the minimum total cost by minimizing the cost for each road segment by considering different speeds. The result of the total cost function can be a set of selected road segments spanning two locations and corresponding target speeds for the road segments used by the vehicle to avoid adverse weather conditions.

[0107] Equations 1, 2, and 3 provide the partial cost function, the total cost function, and a method for determining a set of optimal target speeds S for road segments by minimizing the total cost function, respectively. opt An example of the approach, where the total cost function is applied to n potential road segments.

[0108] c1(s)=(w_weather1*weather_risk(s)1)+w_fuel1*fuel_consumption(s)1+

[0109] w_ETA1*ETA(s)1) (Equation 1)

[0110] C(S)=∑ n (c n (s)) (Equation 2)

[0111] S opt =argmin S C(S) (Equation 3)

[0112] Specifically, Equation 1 shows c1(s) as an example partial cost function for the first potential road segment (n=1). In general, a partial cost function can serve as a measure of the cost per potential road segment as a function of speed. As shown, the partial cost function in Equation 1 consists of a set of segment-weighted cost factors, each including a cost factor (as a function of speed) and associated weights. The partial cost function in Equation 1 includes three cost factors: adverse weather risk factor, fuel consumption factor, and ETA factor, each representing a corresponding type of risk / cost as a function of speed. However, as described herein, other types of segment-weighted cost factors are considered, and such additional cost factors can be incorporated into the partial cost function.

[0113] For the cost function used to calculate costs, cost factors can be assigned numerical values. For example, weather risk can be mapped to numbers, where 1 represents the lowest risk of weather occurring and 10 represents the highest risk, while fuel consumption can be the amount of fuel typically burned at a certain rate. Because weights can be associated with values ​​of different proportions, these weights can be normalized in some cases. In some examples, for a given cost factor, the weight associated with it can be based on the absolute or relative importance of the cost factor as the vehicle travels along the route. For example, fuel consumption can be reweighted when the vehicle is on a long journey without the opportunity to refuel. In some examples, for instance, if the importance of the cost factor varies between road segments, the weight for a particular cost factor can change between road segments.

[0114] Each cost factor can have different values ​​as a function of the vehicle's speed along a given road segment. For example, at 60 mph, the probability of the vehicle encountering weather conditions is likely high, so the cost factor's value is high; however, if the vehicle slows down to 50 mph, the weather may end, so the cost factor's value may be low. Similarly, some cost functions can calculate the cost of a cost factor based on different speeds. For example, a vehicle may consume more fuel at 60 mph than it would at 50 mph.

[0115] Equation 2 then shows C(S) as an example total cost function for a set of n potential road segments. In particular, the total cost function can be obtained by summing all costs calculated using the partial cost functions for each potential road segment as a speed function.

[0116] Equation 3 then shows how to optimize the total cost function C(S) to find a set of selected road segments and corresponding target speeds S that produce the lowest cost. opt Specifically, the total cost function can consider which potential road segments commonly connect at least two locations. Based on which potential road segments commonly connect at least two locations, the total cost function can determine the target speed for each potential road segment that minimizes the total cost. Output S opt It can be a set of selected road segments and corresponding target speeds for road segments that minimize the total cost function when the vehicle is in motion.

[0117] As mentioned earlier, the cost function can calculate the total cost based on different speeds and cost factors. To determine the optimal set of speeds, the cost function can be minimized. By minimizing the cost function, a speed can be determined for each road segment that yields the lowest cost function when considered as a whole with other speeds for other road segments. The speeds of each road segment can then be combined into the optimal set of speeds for that route.

[0118] A cost function can be used to calculate the total cost over multiple cost factors that vary based on input variables. The cost function can include multiple cost factors, each with an associated numerical value. For example, rainfall can be mapped to a numerical value of weather, and arrival time can be a quantity of remaining time in the journey. As previously mentioned, the value of each cost factor may vary depending on changes in the input variables, which in turn affects the total cost. For example, the calculation system 112 can consider predicted weather and arrival time as cost factors in the cost function. Each of these cost factors can vary based on speed. For example, at some speeds along the route, the vehicle may encounter severe weather, or the vehicle may arrive late at some speeds. The cost function can then output a cost based on these variable cost factors. Speeds associated with severe weather and late arrival times may also be associated with higher total costs. The cost function can consider multiple speeds and select any speed associated with the lowest total cost. Specifically, the calculation system 112 can calculate costs based on a cost function that takes into account predicted weather data for the time when vehicle 100 will encounter weather data to determine multiple speed and route adjustments to avoid the weather at the lowest cost.

[0119] For the cost function input, the calculation system 112 can consider multiple weighted cost factors, multiple speeds, and multiple routes to determine the minimum cost. The calculation system 112 can adjust the route based on the minimum cost. The cost function can be determined through discrete optimization and by assigning weights to multiple cost factors. Cost factors may include, for example, the probability of weather conditions occurring on the route, the distance already traveled by vehicle 100 from the start of the route, the amount of fuel used by vehicle 100 since the start of the route, the estimated remaining time required for vehicle 100 to reach the end of the route and / or the distance from vehicle 100 to a known operational supply station, and other possible cost factors. Cost factors can be further assigned numerical values ​​to calculate the cost of the cost function. For example, the probability of weather conditions occurring can be mapped to numerical values, such as higher values ​​for more severe weather. Distance can be the number of miles traveled on the route or the number of miles remaining on the route, fuel can be fuel efficiency, remaining time can be the number of hours or minutes remaining on the route, and distance to an operational supply station can be the number of miles the vehicle is from the operational supply station.

[0120] Weather data retrieved from hyperlocal weather forecasts may also include probabilities of weather data considered in the cost function. The cost function may prioritize the weather closest to the vehicle when calculating costs. However, in some embodiments, weather data for a particular road segment may be ignored when calculating the cost function. For example, weather data indicating a specific weather condition has a probability of occurrence below a certain threshold (e.g., below 40%) may be ignored by the calculation system 112. In other words, when adjusting routes, the calculation system 112 may not consider weather data identifying one or more weather conditions with a probability below a certain threshold. In other examples, the predicted weather data may not include any weather data at all.

[0121] Each cost factor considered in the cost function can be weighted based on its importance value. For example, if vehicle 100 has a deadline to reach its destination and there is no query for the weather on the upcoming route, the cost factor predicting the remaining time required for vehicle 100 to reach the route endpoint can be weighted more heavily than the cost factor predicting the probability of weather conditions occurring on the route. The weights used in the cost function can sum to 1, or each can be any integer multiplier.

[0122] In one embodiment, the calculation system 112 can assign a weight to each road segment based on the predicted weather data corresponding to that road segment. In particular, when a road segment is defined by predicted weather conditions, the severity of the weather conditions may affect the weight of the road segment. For example, a road segment defined by hail may be weighted more heavily than a road segment defined by light showers.

[0123] In some examples, a user can manually input (or write source code or other instructions indicating one or more weights) one or more weights of the cost factors based on user preferences, and the calculation system 112 can implement the cost factors accordingly. Alternatively or additionally, the calculation system 112 itself can set the weights of one or more cost factors.

[0124] Furthermore, even in embodiments where the weights are set by the user and / or automatically set by the computing system 112, the computing system 112 can also adjust the cost function during the journey. For example, the computing system can dynamically adjust at least one weight among the cost factors as the vehicle travels on the route. For instance, the weights may change according to the time of day. Since driving at night in undesirable weather increases risk, the weight of weather probability may change throughout the route as night approaches. Therefore, the cost function may weight weather factors more heavily on segments of road with undesirable weather at night than during the day. Additionally, if the route is long, more weight may be given to fuel consumption, or if there are important deliveries, the time spent may be weighted higher.

[0125] In another example, the weights of cost factors can remain relatively static based on the balanced objectives and risks. However, new information about events occurring after the current journey may also cause the calculation system 112 to update the weights. For example, vehicle 100 may be selected to travel subsequent journeys before starting or while traveling on the route. In that case, the calculation system 112 may increase the weight of the remaining time required for vehicle 100 to reach the end of the route in an attempt to reach the destination quickly so that it can be used for subsequent journeys. In another embodiment, the calculation system 112 can modify the cost function by adding additional cost factors during the journey, such as one or more corresponding cost factors assigned to each segment. For example, the calculation system 112 may receive information about accidents along the route that are causing large traffic delays. The calculation system 112 may add the accidents along the route as cost factors and weight the cost factors according to the amount of delay in order to update the target speed and / or route.

[0126] In one embodiment, taking into account predicted weather data, the cost function can scale the cost with the risk associated with operating the vehicle at the corresponding target speed. Specifically, when the vehicle is traveling in predicted weather, the cost function can give more weight to factors that may pose a risk to the vehicle. For example, driving at 40 mph in the rain may be low-risk, but driving at 60 mph in the rain may be high-risk. The higher risk may outweigh the benefit of arriving at the destination earlier.

[0127] As previously mentioned, the cost function can take into account multiple variables whose values ​​will change based on the inputs. For example, driving at 70 mph may result in a faster estimated time of arrival (ETA) and may use more fuel than driving at 55 mph. Therefore, the total cost depending on factors at the two different speeds may differ. The calculation system 112 can then determine the minimum cost based on the cost provided by the cost function. One embodiment may also include determining the minimum cost based on the cost provided by a second cost function in a similar manner to the cost function. The second cost function can take into account different routes and different routes with operational refueling stations to change the cost factors. The calculation system 112 can then determine the minimum cost.

[0128] The selected target speed can be used as the target speed for vehicle 100 on one or more road segments preceding a segment with undesirable weather conditions, and / or as the target speed for vehicle 100 on a road segment with undesirable weather conditions. For example, to avoid weather conditions on a third of four road segments of a route, the selected target speed can be used on the first or second segment so that vehicle 100 slows down sufficiently for the weather conditions to end on the third segment. Alternatively, to avoid the same weather conditions, the selected target speed can be used on the third segment (e.g., before vehicle 100 reaches the portion of the third segment where the weather conditions exist). Other examples are also possible.

[0129] In some examples, the optimal target speed for traversing an optimal road segment may be included in the speed profile of vehicle 100. The speed profile is or includes one or more ideal speeds of vehicle 100 defined by a specified range, one or more constraints (e.g., maintaining the vehicle's speed at 55 mph to achieve a specific objective), or averages. However, the actual speed of vehicle 100 may be determined in real time by the vehicle's onboard computer based on current road or environmental conditions.

[0130] Speed ​​profiles can take various forms, such as speed ranges, maximum or minimum speeds, or sequences or lists of speeds at which vehicle 100 will travel on the route, including a selected target speed at which vehicle 100 will travel on the route. In other words, a speed profile defines how the speed of vehicle 100 will change over time as vehicle 100 travels on the route. Speed ​​profiles can also change in real time as vehicle 100 travels on the route.

[0131] In some embodiments that divide a route into segments, as described in more detail below, for each of one or more segments, the speed profile may include one or more speeds at which vehicle 100 can travel on that segment. For example, for a route divided into multiple segments, a cost function may be evaluated for each of the multiple segments. In those cases, the speed sequence in the speed profile may include a corresponding target speed associated with the lowest cost of each of the multiple segments.

[0132] As previously mentioned, in addition to allowing for more efficient route queries, road segments can also be used to plan speed curves based on predicted weather data. Specifically, the calculation system 112 can determine that the vehicle is traveling at a first speed. The speed can be adjusted from a first target speed to a selected target speed for at least one road segment of the route to avoid undesirable weather conditions in an upcoming segment of the route. The selected speed can be incorporated into the updated speed curve, which the calculation system 112 can then implement. For example, at the start of the current road segment, the speed can be changed from the first target speed to a selected target speed that allows the vehicle 100 to avoid predicted undesirable weather in that segment. Updating the speed curve can be accomplished by reducing the speed in the speed curve from the first speed to the selected target speed, causing the vehicle 100 to decelerate and allowing the undesirable weather to end while continuing to travel within the road segment. The calculation system can also perform this method dynamically as the vehicle travels, allowing the calculation system to repeatedly update the speed curve.

[0133] Adjusting the speed profile can also be accomplished by increasing the speed of vehicle 100 from a first target speed to a higher selected target speed, so that vehicle 100 traverses the remainder of its current segment or at least a portion of a particular segment before the arrival of undesirable weather conditions or before the majority of the time undesirable weather conditions are expected to occur. Alternatively, the selected speed can be implemented at a point or time within the segment. In this way, vehicle 100 can gradually change speed to reach the selected speed at the right time, rather than changing to the selected speed abruptly. The updated speed profile is then applied to the duration of the current segment. The calculation system 112 can also update the speed profile within the segment from a first speed to an adjusted speed to avoid predicted weather conditions in an upcoming second segment of the route. However, in cases where the weather pattern or conditions are extreme and it proves impossible to avoid them by normal driving speed, vehicle 100 can intentionally slow down and stop on the shoulder or off the highway within the segment for a defined period of time until more suitable plans become available. In other words, the calculation system 112 performs zero-speed maneuvers for a set time (e.g., allowing time to elapse during optimization while moving at zero speed).

[0134] Figure 6An example speed curve for route 610 is illustrated in the form of graph 600. On this graph, the x-axis represents time, and the y-axis represents the distance traveled along route 610. In practice, the calculation system 112 can determine the optimal speed curve for multiple route options. For example, the calculation system 112 can determine that there are three route options from Dallas to Los Angeles. Each route option in route 610 may cross multiple highways and differ in geographical direction, but may have a fixed distance. The calculation system 112 can determine the optimal speed curve for each route option and select the route with the lowest cost as route 610. Figure 6 The optimal speed curve for one possible route option for route 610 is plotted. On this graph, the x-axis represents time, and the y-axis represents the distance traveled along route 610. Figure 6 The graph includes a straight line representing the initial speed 602 of the speed curve of vehicle 100 from distance = 0 on route 610 to a target distance of a fixed distance (e.g., 650 miles in 10 hours). Furthermore, it should be understood that... Figure 6 The straight lines shown in the diagram do not indicate that route 610 is geographically straight, but rather represent a portion of a speed curve of vehicle 100 traveling at a constant speed. Among other variations, steeper sections of the line indicate faster speeds along route 610. Conversely, flatter sections of the line indicate slower speeds along route 610. Horizontal line 604 represents a point in a fixed time interval where speed = 0.

[0135] in addition, Figure 6 Undesirable weather conditions are also depicted, represented as a blocky region 606 on route 610, affecting a specific distance along route 610 within a specific time window. In an example embodiment, vehicle 100 may be traveling on route 610 at a speed of 65 miles per hour (mph). However, at 65 mph, vehicle 100 may encounter undesirable weather. By reducing the speed to 45 mph on a portion 608 of the speed curve, vehicle 100 can avoid the undesirable weather on route 610. Therefore, calculation system 112 can update the speed curve to adjust route 610. Since route 610 can have both speed and route components simultaneously, adjusting route 610 can be considered as adjusting by selecting a target speed or selecting a target route. The figure also plots the difference 616 between the arrival time for the speed on route 610 and the adjusted speed.

[0136] The use of metalocal weather allows the computing system 112 to query for probabilistic results of weather conditions for various future times and locations further along the route as vehicle 100 travels along its route. Such queries can provide the probability and distribution of weather along the route and allow the computing system 112 to plan a speed profile consistent with the weather probabilities along the travel route. For example, vehicle 100 could travel slower during a portion of the graph, reducing its forward movement and thus placing vehicle 100 within different ranges in the graph's space.

[0137] Figure 6 The figure also shows a first line 612 representing the maximum possible speed during the journey. Some embodiments may also include a second line 614 representing the maximum amount of time that may be spent on the route. In some embodiments, the maximum amount of time that may be spent on the route, when specified by user input, can be a hard constraint or bounding box. For example, route 610 may temporarily fall below the maximum time line 614 during the journey, but route 610 may end above the maximum time line 614. Thus, time line 614 can represent a bounding box at which vehicle 100 should also be at a certain distance at a certain time. However, in some examples, the maximum time amount is not a necessary constraint or bounding box. The space between the first and second lines can represent one or more areas along and around the route(s) being searched for inclement weather.

[0138] In some examples, the calculation system 112 may also select from multiple target routes a target route that minimizes a specific cost function (e.g., the second cost function mentioned above). In some cases, this may involve selecting a route to an operational supply station. Selecting a target route associated with the lowest cost may also be referred to herein as minimizing cost or minimizing a cost function about the route. Once the calculation system 112 has calculated the costs of multiple target routes, it can select the target route associated with the lowest cost.

[0139] Once a set of target speeds is selected for vehicle 100, computing system 112 can control vehicle 100 to operate according to that set of target speeds. In the example, controlling vehicle 100 to operate according to that set of target speeds could involve computing system 112 sending instructions to vehicle 100's control system 106 to operate according to that set of target speeds. Because the set of target speeds can be incorporated into a speed curve, computing system 112 can also control vehicle 100 to operate according to the speed curve. The instructions may include data representing the speed curve in which the selected set of target speeds is incorporated. Upon receiving the instructions, control system 106 can responsively control vehicle 100 to navigate in one or more of the ways described above. Further, computing system 112 can similarly control vehicle 100 to operate according to a selected target route.

[0140] Based on a minimized cost function, the computing system 112 can adjust the speed and / or route and control the vehicle 100 to operate according to the adjustment. This adjustment may be or include a set of selected target speeds for avoiding weather conditions in at least one segment of the route and / or a selected target route configured for navigation to avoid weather conditions in at least one segment of the route. In an example embodiment, the computing system 112 may implement the set of selected target speeds and selected target routes. By implementing both, the vehicle 100 can be better equipped to avoid unwanted weather. Furthermore, the computing system 112 can dynamically calculate the cost function as the vehicle 100 travels, repeatedly updating the route and speed curves as the vehicle 100 travels on the route to avoid unwanted weather.

[0141] The weather data queried by the computing system 112 as the basis for adjustment can take various forms of weather-related information, such as fog, freezing temperatures, snow, rain, sleet, or other precipitation, as well as other possibilities. In an example embodiment, the predicted weather data can also be used to determine and select a target route to avoid hazardous road conditions present in a road segment. As discussed earlier, the computing system 112 can receive predicted road condition data by querying weather data for a specific road segment and determine that, although the weather condition may no longer be present in the specific road segment, the predicted weather data (or other data received by the computing system 112) indicates that the weather caused a predicted hazardous road condition when the vehicle's speed curve planned for the vehicle to travel at a first speed in the specific road segment. For example, heavy rain may make the road wet and slippery, or rain and snow may make the road icy and slippery. Therefore, the computing system 112 can adjust the speed of the vehicle 100 to avoid hazardous road conditions based on a cost function that minimizes the hazardous road conditions. As an addition to or alternative to receiving predicted road condition data, the calculation system 112 may receive data indicating the height and / or inclination associated with different potential road segments, and the calculation system 112 may use this data as a basis for avoiding certain road segments, if possible, such as those with an inclination greater than a threshold. This may be particularly useful for heavy trucks carrying heavy loads.

[0142] In an example embodiment, the computing system 112 can determine a selected target speed for at least one segment of the route to avoid weather conditions. As previously described, when vehicle 100 travels along the route, vehicle 100 can query upcoming segments to determine the weather in each segment and adjust the speed at which vehicle 100 is currently traveling in the speed curve to the selected target speed. The computing system 112 can adjust the speed curve with the selected target speed and control vehicle 100 to operate according to the selected target speed, such that the vehicle's speed increases at one or more points along the route, decreases at one or more points along the route, and / or brings vehicle 100 to a complete stop for a specific period of time at one or more points along the route. The selected speed adjustment can depend on the type and location of the predicted weather data. For example, vehicle 100's speed can be reduced to avoid predicted weather in future segments, or it can simply be reduced to provide safe driving conditions in less severe weather. However, if there is no lower cost or if there is no weather data above a threshold level, vehicle 100 may not need to update its speed curve, in which case vehicle 100 can adhere to the optimal speed curve and the optimal route for that route.

[0143] To avoid undesirable weather, the speed profile of vehicle 100 can be adjusted within the current road segment to cautiously traverse future road segments where there is no opportunity for vehicle 100 to pull over. For example, calculation system 112 can adjust the speed profile within the current road segment to freely avoid any weather patterns occurring on long, narrow bridges where there is no opportunity to pull over. Because the decision points used to adjust the route are further apart, calculation system 112 can be more sensitive to weather. Alternatively, the route can be adjusted to avoid the entire bridge.

[0144] In some embodiments, determining a selected target speed for avoiding weather conditions includes determining an optimal speed for avoiding weather conditions that minimizes a cost function, and adjusting the speed from a first target speed to an adjusted speed for at least one road segment includes adjusting the speed from the first target speed to the adjusted optimal speed for at least one road segment. The selected target speed can be considered either the optimal speed or the adjusted optimal speed. For example, the computational system 112 can determine the optimal speed by minimizing a cost function. To optimize the speed, discrete speed curves can be searched and encoded to “wait” for the weather to end along the route by slowing down or to “lead” the weather by accelerating. Each discrete option representing the action along the road segment can then be weighted by cost. The computational system 112 can then set the lowest-cost speed curve as the optimal speed for avoiding weather conditions. The computational system 112 can then set the optimal speed as the adjusted speed.

[0145] In some embodiments, the computing system 112 may set a speed profile for the route, and may only update the speed profile if the computing system 112 determines that the predicted weather data exceeds a confidence threshold for severity. If the confidence threshold is exceeded, the computing system 112 may then update the speed profile to avoid the weather by slowing down the vehicle 100, so that the undesirable weather ends before the vehicle 100 arrives. Alternatively and additionally, if the query results indicate (i) clear weather in the road segment, the computing system 112 may provide instructions (e.g., to the control system 106) to accelerate the vehicle 100, but (ii) if the vehicle 100 does not travel through at least a portion of the road segment at a certain time, the weather will become undesirable around that time, so the vehicle 100 may travel in the undesirable weather. The computing system 112 may also rank the severity of the weather data exceeding the confidence threshold to precisely determine how to update the speed profile to avoid more or the worst weather. Based on the severity of the weather, the worst weather may be ranked higher even if the confidence level of the worst weather is lower than that of less severe weather. However, in some embodiments, the computing system 112 may update the speed curve as severe weather approaches. For example, if there is a moderate storm ahead of vehicle 100 that vehicle 100 must slow down to avoid, but further ahead there is a dangerous storm that vehicle 100 must accelerate to avoid, vehicle 100 may slow down to avoid the first storm and then optimize for the second storm, including pulling over and waiting for the storm to pass.

[0146] In an example embodiment, the computing system 112 can also control the vehicle to operate according to a selected target route. Specifically, the computing system can determine that the vehicle 100 is on a first target route and adjust the route from the first route (e.g., adjust a set of navigation directions) to a selected target route (e.g., to a set of selected new navigation routes). The route can be adjusted from the first route to a specific road segment with undesirable weather or to a road segment preceding an undesirable weather segment to avoid that weather. In an example embodiment, road segments can be used for route adjustments. Specifically, the computing system 112 can query weather forecasts for one or more road segments before the vehicle 100 crosses its current location within a predetermined distance at predetermined time intervals. Once a minimum cost function is calculated for a specific road segment of the route using the queried forecast weather data, the computing system 112 can determine the target route for that specific road segment associated with the minimum cost function. The selected target route can be used to avoid undesirable weather conditions and dangerous road conditions anticipated when the vehicle 100's speed curve is planned to travel at a first speed in a specific road segment of the route.

[0147] The computing system 112 can receive predicted road condition data, evaluate a cost function for multiple target speeds of the vehicle, wherein the cost function includes a set of cost factors as input and provides a cost based on the cost factors as output, wherein for each corresponding target speed among multiple target speeds, the cost factors include the predicted road condition data and the corresponding target speed, determine a minimum cost from the costs provided by the cost function, select a target speed associated with the minimum cost from the multiple target speeds, and control the vehicle to operate at the selected target speed to avoid dangerous road conditions. For example, as previously described, the computing system 112 can receive predicted road condition data by querying weather data for a specific road segment and determine that although the weather condition no longer exists in the specific road segment, a dangerous road condition caused by the weather is expected to occur when the vehicle's speed curve is planned to cause the vehicle to travel at a first speed in the specific road segment of the route. Therefore, the computing system 112 can adjust the speed and / or route of the vehicle 100 to avoid dangerous road conditions based on a minimum cost function that takes dangerous road conditions into account.

[0148] As previously described, decision points can define road segments. At each decision point, the computing system 112 can determine whether the cost of taking the selected target route at the decision point is lower than the cost of continuing along that route. If the cost is lower, the vehicle 100 can take the selected target route for at least that road segment. Route adjustments can be performed dynamically by the computing system 112. For example, once the route is adjusted to the selected target route, the computing system 112 can make further adjustments. At a decision point marking the end of a specific segment of the adjusted route, the computing system 112 can decide whether to return to that route or deviate further from it. In an example embodiment, the highway may have auxiliary roads adjacent to the highway. See also... Figure 6 Highway 618 is flanked by auxiliary road 616. Auxiliary road 616 is easily accessible from each decision point 606a-606b on route 602. The speed limit on the auxiliary road is typically lower than that on the highway. The cost of driving at the speed limit on the auxiliary road in weather conditions may be lower than the cost of driving at a lower speed on the highway in weather conditions. Even if the speed curve is lowered on the highway, there may still be risks from other vehicles traveling at high speeds, thus increasing costs. Therefore, the calculation system 112 will select an adjusted route with a lower cost than a specific segment of the route to avoid weather conditions. Similarly, once vehicle 100 has passed through the auxiliary road in weather conditions, the calculation system 112 can recalculate the route that minimizes the cost for vehicle 100 to return to the highway at the next decision point.

[0149] In an example embodiment, computing system 112 can control vehicle 100 to operate according to a selected target route and proceed to an operational supply station. Specifically, computing system 112 can determine a selected target route with a cost at least lower than the cost of a specific segment of the route, including determining the location of an operational supply station and redirecting at least the specific segment of the route to the operational supply station. For example, in a specific segment with undesirable weather conditions, computing system 112 can determine to minimize the cost function by reducing the speed to zero. However, in a specific segment or future segment that vehicle 100 is navigating, stopping vehicle 100 on the side of the road may not be safe. In an example embodiment, vehicle 100 can redirect the target route to a safe location and reduce the speed curve to zero, thereby effectively stopping vehicle 100 in a known safe location to wait for the undesirable weather to pass. Therefore, a target route with a cost at least lower than the cost of a specific segment of the route could be one that redirects the specific segment of the route to an operational supply station and stops. (See also...) Figure 6 Vehicles can access the operational supply station from route 602. If the weather becomes too dangerous, the computing system 112 can instruct vehicle 100 to leave highway 618 at decision point 606b and proceed to operational supply station 620 based on a cost minimization function. The location of the operational supply station can be stored in the memory of the computing system 112. Alternatively, the centralized control system can send the location of the operational supply station to the computing system 112.

[0150] The calculation system 112 can also determine the optimal adjustment route that minimizes the cost function, adjusting the route to the optimal adjustment route for at least one road segment. It should be understood that a selected target route can be considered the optimal adjustment route. To optimize the route, discontinuous road segments that avoid weather conditions can be searched. These discontinuous routes can then be weighted by cost. The calculation system 112 can set the discontinuous route with the lowest cost as the optimal adjustment route that avoids weather conditions. The optimal adjustment route is then set as the adjustment route for vehicle 100 navigation. Furthermore, the calculation system can intentionally and automatically delay the overall departure time to maximize route optimization.

[0151] As previously described, the computing system 112 can dynamically update the route while the vehicle 100 is traveling. Specifically, while the vehicle 100 is traveling, the route for a specific road segment can be repeatedly updated based on a changing cost function. The computing system 112 can evaluate a second cost function while the vehicle is navigating the current segment of a first target route, select a second target route associated with the lowest cost from multiple target routes, and adjust the route from the first target route to the second target route at the end of the current segment. This adjustment to the second target route can occur while the vehicle is traveling and can continue to be repeated, allowing the route to continue to change.

[0152] However, the route can also be dynamically updated without segmenting it. For example, the computing system 112 can receive predicted hyperlocal weather data for a predetermined distance of approximately 1 to 10 miles ahead of the vehicle 100 on the route. Based on the predicted weather data, the computing system 112 can dynamically update the cost function to determine a new strategy for navigating the route at the lowest cost. If the new strategy for navigation is less effective than the planned strategy for navigating the route, the computing system 112 can adjust the route based on the new strategy. In this embodiment, speed and route can be continuously updated to minimize the cost function, rather than being updated based on road segments.

[0153] In some embodiments, the computing system 112 may also determine a selected target speed and a selected target route for at least a segment of the route, for which the vehicle 100 is configured to navigate, to avoid weather conditions. For example, the computing system 112 may adjust the speed of the vehicle 100 to advantageously avoid severe or other undesirable weather expected to occur in a segment of the route. However, if the speed profile of the vehicle 100 still predicts that the vehicle 100 will encounter weather conditions in that segment of the route after adjusting the speed, the route may be adjusted in at least that segment to further avoid the weather conditions.

[0154] In an example embodiment, adjustments to speed and / or route, as well as control of vehicle 100, can be dynamically performed based on weather forecasts. For instance, if the weather forecast for one or more segments of the route within a predetermined distance prior to the current position of vehicle 100 is undesirable and if a cost function has determined a lower cost, the calculation system 112 can continuously change the route.

[0155] In the example embodiment, the procedures outlined herein can be performed before vehicle 100 begins traveling on the route. Figure 7 The method is publicly available. For example, before vehicle 100 departs, it can be used to determine an initial route optimized for preferred weather conditions.

[0156] In some embodiments, the computing system 112 may not divide the route into multiple segments. Instead, for example, the computing system 112 may query weather data associated with one or more locations along or near the route, and upon identifying predicted weather conditions in a specific segment of the route (e.g., a section of a highway running through a city), the computing system 112 may perform the other operations described above to avoid predicted weather conditions. Other examples are also possible.

[0157] Figure 7This is a flowchart of method 700 according to an example embodiment. Method 700 may include one or more operations, functions, or actions as shown in one or more of blocks 702 to 708. Although the blocks of each method are illustrated sequentially, in some cases these blocks may be executed in parallel, and / or in an order different from that described herein. Furthermore, various blocks may be combined into fewer blocks, divided into additional blocks, and / or removed based on desired implementation.

[0158] Furthermore, for method 700 and other processes and methods disclosed herein, this flowchart illustrates one possible implementation of functionality and operation in the current embodiment. In this regard, each block may represent a module, a segment, part of a manufacturing or operational process, or part of program code comprising one or more processor-executable instructions for implementing a specific logical function or step in the process. This program code may be stored on any type of computer-readable medium, such as storage devices including disks or hard disk drives. Computer-readable media may include non-transitory computer-readable media, such as short-term data storage media such as register memory, processor cache, and random access memory (RAM). Computer-readable media may also include non-transitory media, such as auxiliary or persistent long-term storage, such as read-only memory (ROM), optical disks or magnetic disks, and compact-disc read-only memory (CD-ROM). Computer-readable media may also be any other volatile or non-volatile storage system. For example, a computer-readable medium may be considered a computer-readable storage medium or a tangible storage device.

[0159] Additionally or alternatively, for method 700 and other processes and methods disclosed herein, one or more boxes in the flowchart may represent circuits wired to perform a specific logical function in the process.

[0160] Method 700 can be executed by various computing systems, such as computing system 112 configured to control vehicle 100. Other computing systems—including those on-board or remote from vehicle 100—can perform one or more operations of method 700 and / or one or more of the operations described above, such as server computing system 406.

[0161] In box 702, method 700 involves identifying one or more potential road segments that commonly connect at least two locations.

[0162] In box 704, method 700 involves receiving spatiotemporal weather information that predicts future weather conditions along each potential road segment. For example, the spatiotemporal weather information may be or include hyperlocal weather forecasts or other types of weather data, including any data discussed herein. In some cases, box 704 may be performed after box 702, and the identification of one or more potential road segments may be based at least in part on the spatiotemporal weather information (e.g., specifying roads that are part of a potential road segment and are entirely in heavy rain).

[0163] In box 706, method 700 involves evaluating a partial cost function for each potential road segment, the partial cost function comprising a sum of a set of segment-weighted cost factors, wherein, for each potential road segment, the partial cost function is evaluated as a sum of a set of segment-weighted cost factors. That is, the partial cost function may be or include at least weather-related weighted risks for a given potential road segment.

[0164] In box 708, method 700 involves minimizing a total cost function, selecting a set of selected road segments and corresponding road segment target speeds for use by vehicles traveling between at least two locations to avoid adverse weather conditions, wherein the total cost function is the sum of partial cost functions associated with a set of road segments that commonly connect at least two locations.

[0165] In some embodiments of method 700, the computing system may evaluate each of a number of different possible road segments, and may not select some of them if these road segments would cause vehicles to encounter adverse weather conditions. However, in other embodiments, the result of method 700 may be: selecting the road segment where adverse weather conditions currently exist, but the result may also be: selecting at least one target speed for at least one road segment preceding the road segment with adverse weather conditions to avoid adverse weather conditions (e.g., the vehicle slows down or pulls over and stops on an earlier road segment so that it can travel through the road segment with adverse weather conditions after the adverse weather has passed).

[0166] As an example, the total cost function can take the form of Equation 1 above, and the minimization of the total cost function can be expressed by Equation 2 above.

[0167] A selected set of road segments can be a sequence of consecutive road segments that together form a route, such as a route consisting of a first road segment, a subsequent second road segment, and a subsequent third road segment, with the third road segment ending at the vehicle's destination. Therefore, the corresponding target speeds for the selected road segments can include a first target speed (based on the vehicle's traversal of the first road segment), a second target speed (based on the vehicle's traversal of the second road segment), and a third target speed (based on the vehicle's traversal of the third road segment).

[0168] In some embodiments, the given target speed selected based on the total cost function may be or include (i) the speed range (including or excluding) that the vehicle should travel along the corresponding selected road segment, (ii) the maximum speed that the vehicle should reach or fall below while traveling along the corresponding selected road segment, (iii) the minimum speed that the vehicle should reach or exceed while traveling along the corresponding selected road segment, or (iv) the average speed that the vehicle should travel along the corresponding selected road segment. Furthermore, in some cases, the vehicle's speed profile may be determined or updated to include the selected target speed.

[0169] In some embodiments, as described above, the at least two locations include the vehicle's current geographic location on the route and a route decision point. For example, a route decision point may be an operational supply station (e.g., a loading / unloading dock or maintenance facility), a highway exit, an intersection, a gas station or charging station, or an overpass.

[0170] In some embodiments, method 700 may also involve identifying one or more adverse weather geographic areas corresponding to one or more selected road segments based on spatiotemporal weather information. For example, one or more selected road segments may be road segments whose boundaries correspond to the boundaries of geographic areas where adverse weather exists or is expected to exist, such as heavy rain or a combination of multiple adverse weather conditions, which may or may not at least partially overlap in their geographic areas. As a more specific example, heavy rain may occupy a first geographic area and dense fog may occupy a second geographic area that at least partially overlaps with the first geographic area. Therefore, a potential road segment as one of the selected road segments may be a road segment whose start and end points fall on or within the boundary of a combination of the first and second geographic areas, such that heavy rain and / or dense fog occur or are expected to occur throughout the road segment. In such embodiments, a target speed may be selected for any selected road segment within one or more adverse weather geographic areas to mitigate the adverse weather effects along that / those selected road segments (e.g., slowing down a vehicle before a road segment where heavy rain exists so that the heavy rain is no longer present when the vehicle reaches that segment).

[0171] In some embodiments, identifying one or more potential road segments may involve identifying one or more speed limit change points where a speed limit change exists between the vehicle's current location and its destination, and then identifying the one or more potential road segments as one or more potential road segments that commonly connect at least two locations including the identified one or more speed limit change points. For example, a potential road segment may be a road segment with a speed limit of 55 mph, and a new road segment may subsequently begin at a location where the speed limit changes from 55 mph to 65 mph (e.g., at a speed limit sign). The speed limit change point may be a useful start or end point of a road segment because the speed limit present in that road segment restricts the vehicle's target speed (e.g., along a 65 mph road segment, the vehicle can travel at a target speed of 55 mph, but may not go below that speed).

[0172] In some embodiments, identifying one or more potential road segments may involve identifying a predetermined route. That is, a predetermined route may include a set of selected road segments. In other words, while method 700 may be used to select a set of optimal target speeds and / or a set of optimal road segments for vehicle use, method 700 may also be used to select a set of optimal target speeds for vehicle use along a selected or planned route to avoid adverse weather conditions along the predetermined route.

[0173] In a similar embodiment, the action of identifying one or more potential road segments may involve identifying multiple predetermined routes, each connecting the vehicle's current location to its destination. In this case, the action of selecting the selected set of road segments includes choosing from the multiple predetermined routes. In other words, method 700 can be used to select the optimal route (and associated optimal target speed) from a finite number of options. For example, a vehicle may receive three route options from a Dallas warehouse to a Boston warehouse, and method 700 can be used to optimize across the three route options.

[0174] In some embodiments, and as described above, the action of receiving spatiotemporal weather information may involve identifying a lead vehicle that has been traveling or is currently traveling on at least one of the one or more potential road segments and is ahead of the vehicle's current position within a predetermined distance from the vehicle's current position. The action of receiving spatiotemporal weather information may also involve, in response to identifying the lead vehicle, querying a second computing system of the lead vehicle (e.g., a central computing / control system on the lead vehicle) to obtain at least a portion of the spatiotemporal weather information. Alternatively or additionally, at least a portion of the spatiotemporal weather information may be retrieved from a server computing system communicating with a convoy including the vehicles and the lead vehicle.

[0175] In some embodiments, and consistent with the discussion of cost functions herein, each segment-weighted cost factor used according to the partial cost function referred to in box 706 may include a corresponding cost factor and a corresponding weight. In some examples, the corresponding weight may be used as a multiplier for the corresponding cost factor and may be an integer or other numerical value representing the expected weight or importance of that corresponding cost factor. Such weights may be static or may change dynamically as the vehicle's surrounding environment or vehicle capabilities change. For example, the weight of adverse weather risk factors may initially be high, but if the vehicle's sensor system is improved to reduce the threat of rain, snow, etc., to a predetermined severity, the weight may be reduced.

[0176] In some embodiments, the weights corresponding to a particular cost factor can be the same or different for two or more different potential road segments. Furthermore, in some cases, a corresponding weight can be assigned to each potential road segment. Weights can be used across multiple road segments or segment by segment. For example, a potential road segment known to have flat terrain and / or low traffic volume can be assigned a lower weight to the adverse weather risk factor than a potential road segment known to have rugged terrain and / or high traffic volume.

[0177] In some embodiments, adverse weather risk factors may be based on one or more future weather conditions along a given potential road segment. As mentioned above, one type of future weather condition may be or include rain, fog, snow, freezing rain, sleet and / or hail, as well as other possibilities. Alternatively or additionally, adverse weather risk factors may be based on the expected severity of future weather conditions along a given potential road segment and / or on the probability of future weather conditions occurring along the given potential road segment when the vehicle is expected to travel along the given potential road segment.

[0178] As described above, various segment-weighted cost factors can be used to minimize a portion of the cost function (and thus the total cost function) to obtain the optimal speed and / or route using the techniques described herein. In some embodiments, for example, in addition to adverse weather risk factors, this set of segment-weighted cost factors may also include: (i) a distance factor based on the total distance the vehicle has traveled or is expected to travel from the route origin at at least two locations; (ii) a fuel consumption factor based on the vehicle's current or expected fuel level; and / or (iii) an ETA (estimated time of arrival) factor based on the ETA of the vehicle reaching the midpoint or end point of the route. Other segment-weighted cost factors are also possible, including, but not limited to, delivery factors based on the delivery time window of the vehicle's expected delivery of goods, ground elevation factors based on the known inclination angle and / or height of a given potential segment, road traffic / accident factors based on traffic or vehicle accidents along a given potential segment, and / or public area factors based on known areas along a given potential segment with high population density or often crowded areas.

[0179] In some embodiments, at a given point in time, such as when a vehicle leaves its starting position and is pulled over or driven, for all or some potential route segments, segment-weighted cost factors including the aforementioned factors can be added to or removed from the partial cost function. For example, road traffic / accident factors may initially not be included as part of any partial cost function, but if it is determined that a road accident suddenly occurred, method 700 can be performed again and the road traffic / accident factors can be included at least in the partial cost function of the potential route segment where the accident occurred. As another example, this may be particularly useful when a vehicle is traveling to a specific first destination and then, en route to that first destination, the vehicle's computing system receives instructions to travel to a subsequent destination after reaching the first destination. Potential route segments that can collectively connect the first destination to the subsequent destination may have new cost factors associated with them for the vehicle to consider, and such cost factors can therefore be used for at least those potential route segments.

[0180] For example, to facilitate the addition of segment-weighted cost factors, method 700 may include: after a vehicle has started traveling along a selected set of segments, identifying new segment-weighted cost factors that are different from the segment-weighted cost factors in that set, adding the new segment-weighted cost factors to the segment-weighted cost factors in that set to form a new set of segment-weighted cost factors, and then, for each remaining selected segment, evaluating a partial cost function based on the new set of segment-weighted cost factors, and evaluating the total cost function using the updated partial cost function.

[0181] In some implementations, method 700 and one or more of the other operations described above may be performed before the vehicle leaves the route starting point at at least two locations.

[0182] In other embodiments, method 700 and one or more of the other operations described above may be performed periodically and / or dynamically while the vehicle is in motion to adjust the set of selected road segments and their corresponding target speeds for use when the vehicle travels between at least two locations. Thus, while the vehicle is in motion, the route itself and / or the target speed for each road segment can be reassessed to maintain the optimal route and / or speed from the route start point, through any intermediate points, to the route end point, or further.

[0183] Figure 8 This is a schematic diagram illustrating a conceptual partial view of an example computer program product arranged according to at least some embodiments shown herein, the example computer program product including a computer program for executing computer processes on a computing device. In some embodiments, the disclosed methods may be implemented as computer program instructions encoded in a machine-readable format on a non-transitory computer-readable storage medium, or on other non-transitory media or articles of art.

[0184] In one embodiment, the example computer program product 800 is provided using a signal bearer medium 802, which may include one or more programming instructions 804 that, when executed by one or more processors, can provide according to... Figure 7 The described functions or parts thereof. In some examples, signal carrying medium 802 may include a non-transitory computer-readable medium 806, such as, but not limited to, hard disk drives, optical discs (CDs), digital video discs (DVDs), digital magnetic tapes, memory, etc. In some embodiments, signal carrying medium 802 may include a computer-recordable medium 808, such as, but not limited to, memory, read / write (R / W) CDs, R / W DVDs, etc. In some embodiments, signal carrying medium 802 may include a communication medium 810, such as, but not limited to, digital and / or analog communication media (e.g., fiber optic cables, waveguides, wired communication links, wireless communication links, etc.). Therefore, for example, signal carrying medium 802 may be transmitted wirelessly via communication medium 810.

[0185] One or more programming instructions 804 may be, for example, computer-executable and / or logically implemented instructions. In some examples, such as Figure 1 The computing device of computing system 112 can be configured to provide various operations, functions, or actions in response to programming instructions 804 transmitted to computing system 112 by one or more of computer-readable medium 806, computer-recordable medium 808, and / or communication medium 810. Other devices can perform the operations, functions, or actions described herein.

[0186] Non-transitory computer-readable media can also be distributed among multiple data storage elements, which can be remotely located relative to each other. The computing device executing some or all of the storage instructions can be a vehicle, for example... Figure 1-3 The vehicle 100 shown. Alternatively, the computing device that executes some or all of the stored instructions can be another computing device, such as a server.

[0187] The above detailed description, with reference to the accompanying drawings, illustrates various features and functions of the disclosed systems, apparatus, and methods. While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be readily apparent. The aspects and embodiments disclosed herein are for illustrative purposes and are not intended to be limiting; the true scope is indicated by the following claims.

[0188] It should be understood that the configurations described herein are for illustrative purposes only. Thus, those skilled in the art will understand that other configurations and other elements (e.g., machines, devices, interfaces, functions, commands, and functional groups, etc.) can be used instead, and some elements can be omitted entirely depending on the desired outcome. Furthermore, many of the elements described are functional entities that can be implemented as discrete or distributed components or combined with other components in any suitable combination and location.

Claims

1. A method performed by a computing system configured to control vehicle operation, the method comprising: Identify one or more potential road segments that connect at least two locations; Receive spatiotemporal weather information predicting future weather conditions along each potential road segment; For each specific potential road segment among the one or more potential road segments, a partial cost function is determined based on the sum of multiple segment-weighted cost factors associated with the specific potential road segment, wherein each of the multiple segment-weighted cost factors includes: (i) a corresponding cost factor as a function of vehicle speed, and (ii) a corresponding weight based on the importance of the corresponding cost factor, wherein at least one segment-weighted cost factor includes an adverse weather risk factor based on future weather conditions along the specific potential road segment; and Based on minimizing the total cost function, a set of selected road segments and corresponding target speeds for use by vehicles traveling between at least two locations to avoid adverse weather conditions are selected, wherein the total cost function is the sum of partial cost functions associated with a set of road segments that commonly connect at least two locations, and wherein selecting at least one of the target speeds for the road segments includes selecting a target speed for at least one road segment to avoid adverse weather conditions in another upcoming road segment.

2. The method according to claim 1, wherein, Identifying one or more potential road segments includes identifying a predetermined route, and The predetermined route includes the set of selected road segments.

3. The method according to claim 1, wherein, Identifying one or more potential road segments involves identifying multiple predetermined routes, each route connecting the vehicle's current location to its destination, and... Selecting a set of selected road segments includes choosing from the multiple predetermined routes.

4. The method according to claim 1, wherein, The adverse weather risk factors are based on the type of future weather conditions along a specific potential road segment, which includes one or more of rain, fog, snow, freezing rain, sleet, or hail.

5. The method according to claim 1, wherein, The adverse weather risk factors are based on the expected severity of future weather conditions along specific potential road sections.

6. The method according to claim 1, wherein, The adverse weather risk factors are based on the probability of future weather conditions occurring along a specific potential road segment when the vehicle is expected to travel along that segment.

7. The method according to claim 1, wherein, The multiple segment weighted cost factors also include one or more of the following: (i) a distance factor based on the total distance the vehicle has traveled or is expected to travel from the route start point at at least two locations; (ii) a fuel consumption factor based on the vehicle's current or expected fuel level; or (iii) an estimated arrival time factor based on the estimated arrival time of the vehicle to the midpoint or end point of the route.

8. The method according to claim 1, further comprising: After the vehicle has started traveling along the selected road segment, a new road segment weighted cost factor is determined; Add the new road segment weighted cost factor to the multiple road segment weighted cost factors to form new multiple road segment weighted cost factors; as well as For each remaining selected road segment, the partial cost function is evaluated based on the new multi-segment weighted cost factors.

9. The method according to claim 1, further comprising: When the vehicle travels along the selected road segment of the group, at least one weight is dynamically adjusted.

10. The method according to claim 1, wherein, Each target speed includes one or more of a speed range, maximum speed, minimum speed, or average speed, according to which the vehicle traverses the corresponding selected road segment.

11. The method according to claim 1, wherein, The at least two locations include the vehicle's current geographical location on the route and the route decision point, and The route decision points include at least one of the following: operational supply stations, highway exits, intersections, gas stations or charging stations, or overpasses.

12. The method according to claim 1, further comprising: Based on spatiotemporal weather information, identify one or more geographically adverse weather areas corresponding to one or more selected road segments. Specifically, the target speed for road segments within one or more geographically adverse weather areas is selected based on mitigating the impact of adverse weather along the one or more selected road segments.

13. The method according to claim 1, wherein, Identifying one or more potential road segments includes: Identify one or more speed limit change points between the vehicle's current location and its destination where a speed limit change occurs, and The one or more potential road segments are identified as one or more potential road segments that commonly connect at least two locations including one or more identified speed limit change points.

14. The method according to claim 1, wherein, Receiving spatiotemporal weather information includes: Identify the lead vehicle that has already traveled or is currently traveling on at least one of the one or more potential road segments and is within a predetermined distance preceding the current position of the vehicle; and In response to identifying the lead vehicle, a second computing system of the lead vehicle is queried to obtain at least a portion of the spatiotemporal weather information.

15. The method according to claim 1, wherein, The method is performed before the vehicle leaves the route starting point at the at least two locations.

16. The method according to claim 1, wherein, The method is performed periodically and / or dynamically while the vehicle is in motion, thereby adjusting the selected road segments and corresponding target speeds for use when the vehicle travels between at least two locations.

17. An article of manufacture comprising a non-transitory computer-readable medium having instructions stored thereon, which, when executed by a processor in a computing system, cause the computing system to perform the following operations: Identify one or more potential road segments that connect at least two locations; Receive spatiotemporal weather information predicting future weather conditions along each potential road segment; For each specific potential road segment among the one or more potential road segments, a partial cost function is determined based on the sum of multiple segment-weighted cost factors associated with the specific potential road segment, wherein each of the multiple segment-weighted cost factors includes: (i) a corresponding cost factor as a function of vehicle speed, and (ii) a corresponding weight based on the importance of the corresponding cost factor, wherein at least one segment-weighted cost factor includes an adverse weather risk factor based on future weather conditions along the specific potential road segment; and Based on minimizing the total cost function, a set of selected road segments and corresponding target speeds for use by vehicles traveling between at least two locations to avoid adverse weather conditions are selected, wherein the total cost function is the sum of partial cost functions associated with a set of road segments that commonly connect at least two locations, and wherein selecting at least one of the target speeds for the road segments includes selecting a target speed for at least one road segment to avoid adverse weather conditions in another upcoming road segment.

18. The article of manufacture according to claim 17, wherein, The adverse weather risk factors are based on the type of future weather conditions along a specific potential road segment, which includes one or more of rain, fog, snow, freezing rain, sleet, or hail. The adverse weather risk factors are based on the expected severity of future weather conditions along specific potential road sections.

19. A computing system, comprising: At least one processor; and A memory for storing instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations: Identify one or more potential road segments that connect at least two locations; Receive spatiotemporal weather information predicting future weather conditions along each potential road segment; For each specific potential road segment among the one or more potential road segments, a partial cost function is determined based on the sum of multiple segment-weighted cost factors associated with the specific potential road segment, wherein each of the multiple segment-weighted cost factors includes: (i) a corresponding cost factor as a function of vehicle speed, and (ii) a corresponding weight based on the importance of the corresponding cost factor, wherein at least one segment-weighted cost factor includes an adverse weather risk factor based on future weather conditions along the specific potential road segment; and Based on minimizing the total cost function, a set of selected road segments and corresponding target speeds for use by vehicles traveling between at least two locations to avoid adverse weather conditions are selected, wherein the total cost function is the sum of partial cost functions associated with a set of road segments that commonly connect at least two locations, and wherein selecting at least one of the target speeds for the road segments includes selecting a target speed for at least one road segment to avoid adverse weather conditions in another upcoming road segment.