Vehicle Software Deployment System
Through the automated coordination of the dashboard system and the update system, wireless scheduling and instant update of independent vehicle software updates are achieved, the problem of inefficient traditional manual updates is solved, and the update efficiency and management convenience are improved.
Patent Information
- Application Number
- CN201980103251.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-23
- Filing Date
- 2019-12-29
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2039-12-29
AI Technical Summary
In the prior art, the software update process of autonomous vehicles requires manual physical connection of equipment, resulting in inefficiency and inconvenient management.
Through the combination of the dashboard system and the update system, the software update needs are automatically identified, and the location and time of the transportation entering the update system are scheduled to realize wireless software updates.
It improves the efficiency and management convenience of autonomous transportation software updates, reduces manual intervention, and ensures automation and immediacy of the update process.
Smart Images

Figure CN114830081B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application claims the benefit of and priority from a U.S. patent application filed on December 23, 2019, with the title "VEHICLE SOFTWARE DEPLOYMENT SYSTEM" and serial number 16 / 725,039, which is incorporated herein by reference in its entirety. Technical Field
[0003] This disclosure generally relates to vehicles, and more particularly, to systems and methods for providing automatic software updates for autonomous vehicles. Background Art
[0004] As more vehicle systems have started to rely on computers, software has become a large part of the operation of vehicles. In particular, autonomous vehicles rely on software for route planning, maneuvering planning, and motion planning, among other operations. Sometimes, software can be updated for various reasons. In traditional embodiments, updating software involves a technician physically connecting a device to the vehicle's computer, where the device will cause the vehicle's software to be updated. Brief Description of the Drawings
[0005] The following drawings are provided with accompanying descriptions to provide some examples for understanding the subject matter disclosed herein. Throughout the drawings, like reference numerals may be used to label components to indicate that the component is the same component or includes features that are the same as those of other components labeled with the same reference numeral throughout the drawings in which the same reference numeral is used.
[0006] Figure 1 Illustrates an example software update system arrangement according to an embodiment described herein.
[0007] Figure 2 Illustrates an example process for scheduling a software update for a vehicle according to an embodiment described herein.
[0008] Figure 3 Illustrates an example process for a vehicle with updated software according to an embodiment described herein.
[0009] Figure 4 Illustrates an example process for updating a vehicle by an update system according to an embodiment described herein.
[0010] Figure 5 Illustrates an example arrangement for an update system to detect a vehicle entering within the vicinity of the update system according to an embodiment described herein.
[0011] Figure 6Illustrates an example user interface indicating the progress of a software update according to an embodiment described herein.
[0012] Figure 7 Illustrates an example autonomous vehicle according to an embodiment described herein.
[0013] Figure 8 Illustrates an example component that can be implemented within an autonomous vehicle according to an embodiment described herein. Detailed Description
[0014] As described herein, one aspect of the present technology is to collect and use data available from various sources to improve quality and experience. The present disclosure contemplates that in some instances, the data collected may include personal information. The present disclosure contemplates that entities are involved in aspects of such personal information and value privacy policies and practices.
[0015] The following description and drawings provide some examples illustrating features of the subject matter described herein. The present disclosure generally relates to vehicles, and more particularly, to systems and methods for providing automatic software updates for autonomous vehicles.
[0016] Software has become an integral part of many vehicles. Software is used to control and implement many operations in a vehicle. For example, an autonomous vehicle can rely on software that identifies the surrounding environment of the autonomous vehicle, and the software can be developed over time to be implemented in the vehicle for various reasons, such as to improve the operation of the vehicle. Software updates can be performed on the vehicle to update the software utilized by the vehicle.
[0017] The systems and processes described herein can facilitate the deployment of software updates for vehicles. Information related to a vehicle can be used to determine the time and location of a software update for the vehicle. It can be determined when the vehicle enters the service area of the update system at that location and a software update can be initiated in response to the vehicle entering the service area. Information related to the software update can be provided to a dashboard system for monitoring the software update across the update system.
[0018] As will be appreciated by those skilled in the art, the features described herein can be embodied in various ways - for example, as a method, apparatus, system, computer program product, computer-readable medium, and / or other means. Accordingly, the features described herein can take the form of an entirely hardware embodiment, an entirely software embodiment (such as being implemented as one or more of firmware, resident software, microcode, or other software implementation means), or an embodiment combining software and hardware aspects. The features of the subject matter described in this disclosure can take the form of a computer program product. For example, the features can be implemented as instructions (such as program code) stored on one or more computer-readable media (such as non-transitory computer-readable media) or one or more computer-readable media having instructions stored thereon, where the instructions, in response to execution by a device (such as a computer), cause the device to perform one or more operations. In various embodiments, the instructions can be stored on the computer-readable media during the manufacture of the computer-readable media, or can be stored on the computer-readable media after the manufacture of the computer-readable media, including when the computer-readable media has been implemented within a device after the manufacture of the computer-readable media.
[0019] As used throughout this disclosure, the term "operation assignment" can refer to service operations to be performed to which a vehicle can be assigned. For example, some examples of operation assignments to which a vehicle can be assigned include commuter rides and package deliveries, where the vehicle will operate as a commuter ride vehicle or a package delivery vehicle based on the operation assignment. As used throughout this disclosure, the term "shift" can refer to the time that a vehicle is on the road (i.e., not being charged, updated, and / or serviced) during an operation assignment. For example, the shift for a vehicle operating as a commuter ride vehicle can refer to the time when the vehicle is available to be requested for commuter ride service and the time when the vehicle is providing commuter ride service to commuters.
[0020] Figure 1 An example software update system arrangement 100 according to embodiments described herein is illustrated. In particular, the software update system arrangement 100 shows an example system and arrangement for updating the software of a vehicle according to some embodiments.
[0021] The software update system arrangement 100 may include a dashboard system 102. The dashboard system 102 may include a computer system that can manage the operation of one or more vehicles. The dashboard system 102 may include: a radio circuit 116 that allows the dashboard system 102 to communicate wirelessly with other components of the software update system arrangement 100. For example, the radio circuit 116 may allow the dashboard system 102 to communicate wirelessly with one or more vehicles, such as via a mobile network. The dashboard system 102 may retrieve information from the vehicle and provide communication to the vehicle.
[0022] The dashboard system 102 may include one or more input devices 104 (such as a keyboard, mouse, touch screen, microphone, or other input device for a computer) and a display 106 (such as a computer screen, touch screen, or other display device for a computer) that allow a user to interact with the dashboard system 102. The dashboard system 102 may utilize the display 106 to display information related to software updates for one or more vehicles to the user, such as the progress of a software update being performed, the status of a software update being performed, the location of the vehicle on which the software update is being performed, the vehicle on which the software update is to be performed, scheduling information for software updates for the vehicle, or some combination thereof. The dashboard system 102 may further display information related to the vehicle on the display 106, such as the configuration of components of the vehicle, information related to the operation assignment of the vehicle (such as the scheduled charging time, the location of the vehicle, the operation assignment to which the vehicle is assigned, or other information related to the operation assignment), information related to the status of the vehicle (such as the previous software version being utilized by the vehicle), or some combination thereof. In some embodiments, the dashboard system 102 may display to the user a confirmation of when a software update has been initiated, the estimated time and / or progress of the software update, whether the software version for the software update is still being built in the data storage, and an indication of the queue after the software version for the software update has been built, error messages, the reason for bottlenecks in the software update process, the stage of software deployment (i.e., whether the software is binary or mapped), the progress of updating the vehicle for the software update (e.g., the percentage of vehicles for which the software update has been completed), a recommended upgrade route based on an error or problem (i.e., how to address the error or problem to avoid errors or problems in the software update), or some combination thereof.
[0023] A user may interact with the instrument panel system 102 via the input device 104 to retrieve data and / or facilitate scheduling of a software update for a vehicle. For example, the user may request that the instrument panel system 102 display certain information related to the software update. In some instances, the user may indicate the time and / or location at which the vehicle has a software update. For example, the user may indicate that the vehicle should proceed to an update system for a software update at the current time or at some future time. Based on the user indication, an indication of the time and / or location for the software update may be transmitted by the instrument panel system 102 to the vehicle and the corresponding update system.
[0024] The instrument panel system 102 may manage software updates for vehicles within the software update system arrangement 100. For example, the instrument panel system 102 may identify software updates to be implemented in one or more of the vehicles. Further, the instrument panel system 102 may determine the vehicles for which to perform a software update based on the component systems being updated by the software update, the component arrangement of the vehicle, the prior software version implemented by the vehicle, or some combination thereof. The instrument panel system 102 may facilitate scheduling of a software update for a vehicle based on the software update and / or information related to the vehicle, such as information related to the operational assignment of the vehicle. Based on the software version, update system, and / or vehicle for the software update, the instrument panel system 102 may estimate the amount of time that the software update may take and may consider that amount of time when scheduling the software update for the vehicle.
[0025] The instrument panel system 102 may further include one or more computer-readable media 114. In some embodiments, the computer-readable media 114 may include non-transitory computer-readable media. The computer-readable media 114 may have instructions stored thereon that, when executed by the instrument panel system 102, cause the instrument panel system 102 to perform one or more of the operations described throughout the present disclosure.
[0026] The software update system arrangement 100 may further include a data storage 108 coupled to the instrument panel system 102. The data storage 108 may include one or more data storage elements, such as memory devices, servers, or some combination thereof. The data storage 108 may store software versions to be used for updating the software of the vehicle. In some embodiments, the software versions for updating the software of the vehicle may include binaries and / or maps. The data storage 108 may further store information related to the vehicle, such as the configuration of the components of the vehicle, information related to the operational assignment for the vehicle, or some combination thereof. The instrument panel system 102 may retrieve data from the data storage 108 and use the data for scheduling and performing software updates for the vehicle.
[0027] The software update system arrangement 100 may further include one or more update systems. In the illustrated embodiment, for simplicity, the update system 110 is illustrated and described, although it should be understood that the one or more update systems may include one or more features of the update system 110. The update system 110 may include a computer system having wireless communication capabilities to establish a wireless connection in the vicinity of the update system 110 and provide software updates via the wireless connection. In some embodiments, the vicinity where the update system 110 establishes the wireless connection may be limited to a building or a portion thereof that houses the update system 110. For example, the update system 110 may be housed within a facility, where the vicinity includes the facility or a portion thereof. In other embodiments, the vicinity where the update system 110 establishes the wireless connection may extend to the distance provided by the wireless communication circuitry of the update system 110.
[0028] Each of the update systems may be located at a position remote from the instrument panel system 102 and may perform a software update of the vehicle. The update system 110 may be coupled to the instrument panel system 102 and may receive an indication of the software version to be utilized for the update, the vehicle to be updated, and / or the scheduled time to update the vehicle from the instrument panel system 102. The indication corresponding to the vehicle may be provided by the instrument panel system 102 to the update system 110, where each of the update systems may receive the indication for the vehicle for which they are scheduled to perform an update. In response to receiving the indication corresponding to the vehicle, the update system 110 may prepare to perform a software update of the vehicle. For example, the update system 110 may download the software version for the software update from the instrument panel system 102 and / or the data storage 108 and search for vehicles entering the vicinity of the update system 110 around the scheduled time for the software update to prepare to perform the software update. In other instances, the update system 110 may download the software version for the software update after detecting that a vehicle has entered the vicinity of the update system 110, or may download a portion of the software version for the software update, while other portions of the software version for the software update may be used to update the software of the vehicle.
[0029] The update system 110 may include a wireless circuit 120. The wireless circuit 120 may allow the update system 110 to wirelessly communicate with one or more of the other components of the software update system arrangement 100. For example, the wireless circuit 120 may allow the update system 110 to wirelessly communicate with one or more vehicles, where the update system 110 may utilize a wireless connection to update the software of the vehicle. The wireless circuit 120 may provide a short-range wireless communication network, such as Wi-Fi, Bluetooth, and / or other wireless local area networks. When the vehicle is within the vicinity of the update system 110, the wireless circuit 120 may provide a wireless connection to be established with the vehicle.
[0030] The update system 110 may further include one or more computer-readable media 118. In some embodiments, the computer-readable media 118 may include non-transitory computer-readable media. The computer-readable media 118 may have instructions stored thereon that, when executed by the update system 110, cause the update system 110 to perform one or more of the operations described throughout this disclosure.
[0031] The software update system arrangement 100 may further include one or more vehicles. In some embodiments, the vehicle may include one or more autonomous vehicles (such as, autonomous vehicle 700 ( Figure 7 ))). In the illustrated embodiment, for simplicity, vehicle 112 is illustrated and described, although it should be understood that the one or more vehicles may include one or more features of vehicle 112.
[0032] Vehicle 112 may include a computer 122. The computer 122 may control one or more operations of vehicle 112. For example, in an embodiment where vehicle 112 is an autonomous vehicle, the computer 122 may control the movement of vehicle 112. The computer 122 may have software stored thereon that facilitates the control of the one or more operations of vehicle 112. The software of the computer 122 may be updated by the update system 110. The software update may make changes to how the computer 122 controls the one or more operations of vehicle 112.
[0033] The computer 122 may include a wireless circuit 124. The wireless circuit 124 may allow the computer 122 to communicate with one or more of the other components of the software update system arrangement 100. For example, the wireless circuit 124 may provide communication with the dashboard system 102 via a mobile network. Further, the wireless circuit 124 may provide short-range wireless communication with the update system 110 via a short-range wireless communication network, such as Wi-Fi, Bluetooth, and / or other wireless local area networks.
[0034] The computer 122 can provide information related to the status of the vehicle 112 to the dashboard system 102 via a mobile network, such as the charging status of the vehicle, the operation assignment of the vehicle, any current services being performed by the vehicle (such as, current item delivery and / or current ride-hailing), or some combination thereof. Further, the computer 122 can receive instructions from the dashboard system 102, where the instructions can cause the computer 122 to perform operations related to the operation of the vehicle 112. For example, instructions from the dashboard system 102 can provide the computer 122 with instructions on when and where to perform a software update for the computer 122. The dashboard system 102 can determine the time and location for the software update based on the information received from the computer 122, the information retrieved from the data storage 108, the software update to be performed, or some combination thereof. Based on the instructions received from the dashboard system 102, the computer 122 can cause the vehicle 112 to proceed to the location for the software update at the scheduled time of the software update. For example, the vehicle 112 can proceed to the location of the update system 110 at the scheduled time. In some embodiments, in addition to or instead of the vehicle 112 proceeding to the location for the software update at the scheduled time, the computer 122 can cause an indication of the time and location for the software update to be displayed within the vehicle 112.
[0035] The computer 122 can further transmit one or more identifiers of the vehicle 112 via the wireless circuitry 124. For example, the identifiers can include one or more Wi-Fi signals and / or Internet Protocol (IP) addresses associated with the vehicle 112. When the vehicle 112 has entered within the vicinity of the update system 110, the update system 110 can detect the identifiers. In response to the update system 110 detecting that the vehicle 112 has entered the vicinity of the update system 110, the update system 110 can initiate a software update for the vehicle 112. The update system 110 can receive an indication of the scheduled time for the software update from the dashboard system 102 and can monitor the identifiers of the vehicle 112 within a time period of the scheduled time for the software update.
[0036] The computer 122 can further include one or more computer-readable media 126. In some embodiments, the computer-readable media 126 can include non-transitory computer-readable media. The computer-readable media 126 can have instructions stored thereon, which when executed by the computer 122, cause the computer 122 to perform one or more of the operations described throughout this disclosure.
[0037] Figure 2 An example process 200 for scheduling a software update for a vehicle is illustrated in accordance with embodiments described herein. For example, the dashboard system 102 (Figure 1 ) can execute process 200 for scheduling software updates for one or more vehicles, such as vehicle 112 ( Figure 1 ).
[0038] In stage 202, a software version for the update can be identified. For example, a software version for one or more vehicles can be identified in a data storage, such as data storage 108 ( Figure 1 ). In some embodiments, a user can indicate the software version to be utilized for the update. The storage location of the software version can be further identified when identifying the software version. For example, a Uniform Resource Locator (URL) indicating where the software version is stored on the data storage can be identified.
[0039] In stage 204, one or more vehicles to receive the software update can be identified. In some instances, the software version can be applicable to all vehicles coupled to the dashboard system and / or all vehicles within a vehicle fleet. In other instances, the software version can be applicable to a specific component of a vehicle. For example, the software version can be applicable to a specific camera, where the specific camera can be included in some of the vehicles and can be omitted from other vehicles in the vehicle fleet. In instances where the software version is applicable to a specific component of a vehicle, information related to the component of the vehicle (which can be retrieved from data storage 108 and / or received from the vehicle) can be utilized to determine which vehicles in the vehicle fleet the software update is applicable to based on which of the vehicles include the specific component. The dashboard system can utilize information related to the software version received from the user or retrieved from the data storage to determine whether the software version is applicable to all vehicles, is applicable to a specific component, the component to which the software version is applicable, or some combination thereof.
[0040] Once the vehicles to which the software update is applicable are identified, the vehicles to be updated can be identified based on the software version of the vehicles. For example, the software version loaded on the vehicles to which the software update is applicable can be determined. The software version loaded on the vehicle can be determined based on information retrieved from the data storage or received from the vehicle. If the software version loaded on the vehicle is the software version to which the vehicle is to be updated or the software version on the vehicle does not require an update to the software, it is determined that the vehicle does not require an update to the software. If the software version loaded on the vehicle is to be updated to the software version for the software update, the vehicle can be identified for update.
[0041] In stage 206, a time for updating software of a vehicle identified for updating can be determined. The time for updating the software can be determined based on an immediacy rating of the software, a schedule of the vehicle, and / or a current service the vehicle is performing. For example, the time for updating the vehicle can be determined based on the following: the charging of the vehicle, the shift of the operation assignment of the vehicle, the distance from a facility housing the update system, the location and / or time of the vehicle's last journey, the vehicle state of the vehicle, which of the vehicles has the lowest charge, which of the vehicles has an operation assignment shift that is ending soon, which of the vehicles has a vehicle driver indicating that the vehicle should be charged soon, or some combination thereof. The schedule of the vehicle and / or the current service the vehicle is performing can be received from the vehicle and / or a data storage. The software can be associated with an immediacy rating of the update. The immediacy rating for the software can be determined based on information for the software retrieved from the data storage. In some embodiments, the immediacy rating can include multiple different immediacy ratings, where each of the immediacy ratings can indicate when the update of the vehicle should be scheduled based on the schedule of the vehicle. For example, one of the immediacy ratings can indicate that once the vehicle is not performing a service (such as, item delivery and / or ride hailing), the vehicle should return to a location with an update system (such as, update system 110 ( Figure 1 ))). Another of the immediacy ratings can indicate that when the vehicle is currently scheduled to be at a location with an update system for the amount of time it should take to perform a software update of the software version, the vehicle should be scheduled for the software update. Based on the immediacy rating of the software, the schedule of the vehicle, and / or the current service the vehicle is performing, the time when the vehicle should be scheduled for the software update.
[0042] In stage 208, the location for the vehicle to be updated can be determined. The location of the facility with the update system, the schedule for the facility, and the resources of the facility (such as several spaces for parking the vehicle during software update and / or the wireless bandwidth for performing software update) can be retrieved from the data storage and / or the update system, and can be used to determine the location for each of the vehicles to be updated. For example, the location where the vehicle can be located at the scheduled time can be determined based on the schedule of the vehicle and / or the service that the vehicle is performing. The location with the update system that is closest to the location of the vehicle at the scheduled time can be identified as the location for the software update of the vehicle. The available resources (i.e., the available number of spaces for parking the vehicle and / or the available wireless bandwidth) of the location with the update system that is closest to the location for the software update at the determined time are analyzed to determine whether there are sufficient resources for updating the vehicle at the determined time. If there are sufficient resources available for the vehicle at the location with the update system at the determined time, it can be determined as the location for the vehicle to be updated. If there are insufficient resources available for the vehicle at the location with the update system at the determined time, the next closest location with the update system can be checked for availability, and / or a different time for the vehicle to be updated can be determined, until a location with sufficient resources for the vehicle at the determined time is identified, and the identified location can be determined as the location for the vehicle to be updated.
[0043] In stage 210, the vehicle can be scheduled for update. The scheduling of the vehicle can include: providing an indication of the determined time and location for the software update for each of the vehicles to each of the vehicles. The indication provided to the vehicle can cause the vehicle to display the scheduled time and the scheduled location of the software update and / or cause the vehicle to proceed to the scheduled location at the scheduled time. The scheduling of the vehicle can further include: providing an indication to the update system of the vehicle for scheduling an update at the location of the update system and at the scheduled time when the vehicle is scheduled to reach the location. In some embodiments, the indication can further include an indication of the storage location where the software version for the software update is stored, and the software version can be retrieved by the update system. For example, the indication of the storage location where the software version is stored can include a URL for accessing the software version. In some embodiments, the dashboard system can provide the software version for the software update of the update system. The indication provided to the update system can cause the update system to monitor the vicinity of the corresponding vehicle entering the update system at the scheduled time, and the update system can initiate the software update for the vehicle in response to detecting the vehicle entering the vicinity of the update system.
[0044] Figure 3 Illustrates an example process 300 for a vehicle with updated software according to embodiments described herein. Process 300 may be performed by one or more vehicles such as vehicle 112 ( Figure 1 ).
[0045] In stage 302, an indication of a scheduled update may be identified. For example, a vehicle may identify an indication received from an instrument panel system such as instrument panel system 102 ( Figure 1 ) that indicates a scheduled time and a scheduled location for a software update to be completed. The indication may be received via a mobile network.
[0046] In stage 304, the time and location of the scheduled update may be determined. For example, a vehicle may determine the scheduled time and the scheduled location based on the indication received from the instrument panel system. In some embodiments, a vehicle may display the scheduled time and / or the scheduled location in response to receiving the indication. The vehicle may continue to operate as assigned until the scheduled time.
[0047] In stage 306, the vehicle may proceed to the determined location of the scheduled update at the determined time. For example, the vehicle may proceed to the location determined in stage 304 at the time determined in stage 304. In some embodiments, a user of the vehicle may cause the vehicle to proceed to the determined location at the determined time.
[0048] In stage 308, a connection may be established with an update system at the determined location. In some embodiments, the connection may be a wireless connection. The vehicle may transmit an identification of the vehicle. For example, the vehicle may transmit a Wi-Fi signal and / or an IP address that identifies the vehicle. The update system may identify the vehicle's Wi-Fi signal and / or IP address and may perform a handshake with the vehicle. The vehicle may complete the handshake with the update system to establish a connection with the update system.
[0049] In stage 310, an update process may be performed. For example, the update system with which the vehicle has established a connection may cause the software of the vehicle to be updated. The vehicle may receive a software version for the software update from the update system and may update the software of the vehicle with the software version received from the update system.
[0050] In some embodiments, the vehicle can further monitor the progress of the update and provide an indication of the progress of the update to the update system. In some embodiments, when the software is being updated, the vehicle can also run test software to verify that the software update is being properly completed. In response to detecting an error in the software update, the vehicle can provide an indication of the error to the update system. The indication of the error can include an indication that an error has occurred, an indication of which error has occurred, or some combination thereof. The indication of the error can cause an indication that an error has occurred to be displayed on the update system and / or the dashboard system. After the update process has been completed, the vehicle can utilize the software version of the software update. If an error occurs, the vehicle can utilize the prior software version that was on the vehicle prior to the software until the software update has a chance to complete successfully. In some embodiments, based on the information received from the vehicle, the update system and / or the dashboard system can identify bottlenecks and / or failures in the software update and / or the software update system arrangement (such as the software update system arrangement 100 ( Figure 1 ))).
[0051] Figure 4 FIG. 400 illustrates an example process for updating a vehicle by an update system in accordance with embodiments described herein. For example, an update system (such as the update system 110 ( Figure 1 )) can perform a process of updating the software of a vehicle (such as the vehicle 112 ( Figure 1 ))).
[0052] In stage 402, the update system can determine that the vehicle to be updated has entered the service range of the update system. In particular, the update system can determine that the vehicle has entered the vicinity of the update system, where the vicinity can define the service range in which the software update of the vehicle can be performed. In some embodiments, the vicinity can be defined to include the facility that houses the update system or a portion thereof. In other embodiments, the vicinity can be defined by the range of a short-range wireless communication network (such as Wi-Fi, Bluetooth, and / or other wireless local area networks) in which the update system is included. The update system can determine that the vehicle has entered the vicinity based on the identifier of the wireless transmission of the vehicle detected by the update system. The identifier of the wireless transmission can include a Wi-Fi signal and / or an IP address associated with the vehicle. In some embodiments, the update system can monitor the entry of the vehicle within a time period of the scheduled time for the software update of the vehicle.
[0053] Figure 5 FIG. 500 illustrates an example arrangement for an update system 502 to detect a vehicle 504 entering the vicinity 506 of the update system in accordance with embodiments described herein. For example, the update system 502 can be in stage 402 ( Figure 4) During the period, it is detected that the vehicle 504 has entered the vicinity 506.
[0054] In the illustrated embodiment, the vehicle 504 can start at the first position 508. The first position 508 can be located outside the vicinity 506 of the update system 502. The vehicle 504 can advance to the second position 510 within the vicinity 506 of the update system 502. For example, the vehicle 504 can advance to the second position 510 at the scheduled time for the software update of the vehicle 504 based on the indication of the scheduled time and the scheduled location for the software update received from the instrument panel system (such as the instrument panel system 102 ( Figure 1 ))). The update system 502 can detect when the vehicle 504 has entered the vicinity 506 of the update system 502 based on the identifier of the vehicle 504 being transmitted by the vehicle 504. The identifier can include a Wi-Fi signal and / or an IP address associated with the vehicle 504.
[0055] In stage 404, the update system can establish a connection with the vehicle. The connection can include a wireless connection. For example, the connection can include a short-range wireless connection, such as a Wi-Fi connection, a Bluetooth connection, and / or other wireless local area network connections. The update system can initiate a handshake with the vehicle in response to determining in stage 402 that the vehicle has entered the service range. The update system and the vehicle can complete the handshake to establish a connection, such as connection 512.
[0056] In stage 406, the update system can retrieve the software version for updating the vehicle. In particular, stage 406 can be executed when the software version has not been retrieved and stored by the update system previously. If the software version has been retrieved and stored by the update system previously, stage 406 can be omitted. The update system can retrieve the software version from the instrument panel system or the data storage (such as the data storage 108 ( Figure 1 ))). The indication of the scheduled time and the scheduled location for the software update can further include the storage location where the software version for the software update is stored. For example, the indication can include a URL corresponding to the storage location where the software version is stored, and the software version can be accessed via the URL. The update system can identify the location where the software version is stored from the indication and retrieve the software version from that location.
[0057] In stage 408, a software update of a vehicle may be initiated. For example, an update system may upload a software version for the software update to the vehicle and cause the vehicle to initiate the software update. In some embodiments, the software update of the vehicle may be initiated in response to detecting in stage 402 that the vehicle has entered the vicinity of the update system. In other embodiments, in response to determining in stage 402 that the vehicle has entered the vicinity of the update system, an indication that the vehicle has arrived within the vicinity of the update system may be displayed on the update system and / or the instrument panel system. In these embodiments, a user of the update system and / or the instrument panel system may indicate that the software update should be initiated, and the update of the vehicle by the update system may be initiated in response to the indication that the software update should be initiated.
[0058] As the software update is being executed, the update system may monitor its progress. If the update system detects that an error has occurred during the software update, the update system may perform actions to address the error. In some embodiments, the actions to address the error may include troubleshooting the error and taking corrective actions based on the troubleshooting, restarting the software update or a portion thereof, causing an indication of the error to be displayed on the update system, providing an indication of the error that has occurred to the instrument panel system, causing the indication of the error to be stored (such as, stored on the data storage 108), causing an indication of the type of the error (e.g., error code) to be displayed on the update system, providing the indication of the type of the error to the instrument panel system, causing the indication of the type of the error to be stored (such as, stored on the data storage 108), or some combination. Depending on the error, the software update may continue or may be stopped until the error can be corrected. In some instances where the software update is stopped, the vehicle may continue to utilize the prior software version on the vehicle for operating the vehicle until the software update. The update system may further provide an indication of the error to the instrument panel system, and the instrument panel system may schedule the vehicle to remain at the location of the update system until the update is completed. Once the software update has been completed, the process may proceed to stage 410.
[0059] In stage 410, the software update can be verified. For example, the update system can verify that the software has been updated properly. The update system can implement a test process to verify that the software of the vehicle has been updated properly. In some embodiments, the update system can instruct a user of the update system, who can be a vehicle technician, to perform one or more checks on one or more vehicles on which the software update has been performed. For example, in some embodiments, checks to be performed on the vehicle can be displayed on the update system for a first vehicle on which the software update has been performed, along with an indication requesting user interaction to verify that the checks have been performed. In some embodiments, a user of the instrument panel system can define a quality gate for each software update, where the quality gate can define the checks to be performed on the vehicle, the number of vehicles to be updated by each update in the update system for which the checks are to be performed, and / or for which vehicles in the update system the checks are to be performed. In some embodiments, the instrument panel system can remotely run tests on the vehicle to verify that the software update was successful, and / or can monitor the operation of the software version from the software update on the vehicle. The instrument panel system can detect whether the software version from the software update is operating properly or whether an error has occurred. If the test process indicates that an error has occurred with respect to the software version, an indication of the error can be displayed on the update system, an indication of the error can be displayed on the instrument panel system, the indication of the error can be stored (such as on data storage 108), an indication of the type of error (e.g., an error code) can be displayed on the update system, an indication of the type of error can be displayed on the instrument panel system, the indication of the type of error can be stored (such as stored on data storage 108), or some combination. If the test process indicates that the software version is operating properly, process 400 can be completed.
[0060] Figure 6 An example user interface 600 indicating the progress of a software update in accordance with embodiments described herein is illustrated. For example, the user interface 600 can be displayed on an instrument panel system (such as instrument panel system 102 ( Figure 1 )) and / or can be displayed on an update system (such as update system 110 ( Figure 1 ))). The user interface 600 can display information related to a software update of a vehicle in accordance with embodiments described herein.
[0061] The user interface 600 may include a vehicle identifier 602. The vehicle identifier 602 may include a string that identifies the vehicle for which a software update is to be performed. Each of the vehicle identifiers 602 may identify a specific vehicle. In the illustrated example, the vehicle identifier 602 includes numbers (i.e., 1, 2, 3, and 4) that identify the specific vehicles for which software updates are being performed. It should be understood that although numbers are shown in the illustrated embodiment, the vehicle identifier 602 may include any other indicator that can be used to identify a vehicle and that can be displayed within the user interface. Further, although the user interface 600 shows information for vehicles for a single software update, it should be understood that in other embodiments, the user interface 600 shows information for vehicles for multiple software updates, where the user interface 600 may further include an indication that software updates are being performed for each of the vehicles.
[0062] The user interface 600 may further include an update location identifier 604. The update location identifier 604 may include a string that identifies a location where a software update may be performed for a vehicle and / or an update system (such as update system 110) that can perform a software update for a vehicle. Each of the vehicles indicated by the vehicle identifier 602 may have a corresponding update location identifier, where the corresponding update location identifier indicates where the vehicle is being updated or is to be updated. For example, in the illustrated embodiment, the vehicle identified by the vehicle identifier '1' may have a corresponding update location identifier of 'Location 1', and the vehicle identified by the vehicle identifier '4' may have a corresponding update location identifier of 'Location 2'. Based on the update location identifier 604, the location where a vehicle is to be updated can be determined.
[0063] The user interface 600 may further include an update status indicator 606. The update status indicator 606 may include a string indicating the update status of the vehicle. Each of the vehicles indicated by the vehicle identifier 602 may have a corresponding update status indicator, where the update status indicator may indicate the status of the software update of the vehicle. The update status indicator 606 may indicate whether the software version for the software update has been downloaded by the update system, whether the software update has been initiated, whether the software update has been completed, the process of the software update currently being executed for the vehicle, whether the software update has failed, and / or an indication of the failure of the software update (e.g., an error code). For example, in the illustrated embodiment, the vehicle identified by the vehicle identifier '1' may have a corresponding update status indicator 'Update acquired - Download initiated', which indicates that the software version from the software update has been downloaded by the update system and the software update is being initiated. Further, the vehicle identified by the vehicle identifier '4' may have a corresponding status update indicator 'Download: Module 1', which indicates that the process of downloading Module 1 to the vehicle is being executed. Based on the update status indicator 606, it can be determined whether the software update has been initiated, whether the software update is in progress, whether an error has occurred, whether the software update has been completed, or some combination thereof.
[0064] The user interface 600 may further include an update progress indicator 608. The update progress indicator 608 may include a string indicating the progress of the software update of the vehicle. Each of the vehicles indicated by the vehicle identifier 602 may have a corresponding update progress indicator, where the update process indicator may indicate the amount of progress of the software update of the vehicle. For example, in the illustrated embodiment, the vehicle identified by the vehicle identifier '1' may have a corresponding update progress indicator '0%', and the vehicle identified by the vehicle identifier '4' may have a corresponding update progress indicator '24%'. In the illustrated embodiment, the update progress indicator 608 includes a percentage indicating the update progress of the software update, although it should be understood that in other embodiments, any other indicator of the update progress that can be displayed in the user interface may be included. Based on the update progress indicator 608, the amount of progress made in updating the software of the vehicle can be determined.
[0065] It should be understood that in other embodiments, the user interface 600 may include one or more of the vehicle identifier 602, the update location identifier 604, the update status indicator 606, or the update progress indicator 608. Further, in addition to the vehicle identifier 602, the update location identifier 604, the update status indicator 606, and / or the update progress indicator 608, other elements may be included in the user interface 600.
[0066] Figure 7 FIG. illustrates an example autonomous vehicle 700 in accordance with an embodiment described herein. Autonomous vehicle 700 is an example of an autonomous vehicle as described throughout this disclosure. In some embodiments, vehicle 112 ( Figure 1 ) may include autonomous vehicle 700. For example, autonomous vehicle 700 may have software that may be updated via one or more of the systems described throughout this disclosure, such as dashboard system 102 ( Figure 1 ) and / or update system 110 ( Figure 1 ), and / or processes such as process 200 ( Figure 2 ), process 300 ( Figure 3 ), and / or process 400 ( Figure 4 ).
[0067] Autonomous vehicle 700 may include car 704. Autonomous vehicle 700 may include one or more sensors 702 mounted to car 704. Sensors 702 may be mounted at various locations on car 704. For example, sensors 702 may be mounted to the roof of car 704, the side mirrors of car 704, the front of car 704, the rear of car 704, the sides of car 704, or some combination thereof.
[0068] Sensors 702 may include one or more cameras, one or more light detection and ranging (LIDAR) sensors, one or more radar sensors, or some combination thereof. In some embodiments, the radar sensors may include articulated radar sensors, long range radar sensors, short range radar sensors, or some combination thereof. Sensors 702 may detect the surrounding environment of autonomous vehicle 700. For example, sensors 702 may detect one or more objects surrounding autonomous vehicle 700, such as other cars, pedestrians, trees, bicycles, objects within the road on which autonomous vehicle 700 is traveling (such as structures and / or other objects that may impede vehicle movement), and / or indications surrounding autonomous vehicle 700 (such as construction signs, stop indicators, and other street signs).
[0069] The autonomous vehicle 700 may further include a computer coupled to the sensors 702. The computer may receive data captured by the sensors 702 and use the data for the localization, perception, prediction, route planning, maneuver planning, motion planning, path following, and low-level control of the autonomous vehicle 700. Further, the computer may be communicatively coupled to a server, a dashboard system (such as the dashboard system 102), and / or an update system (such as the update system 110), and may exchange communications with the server, the dashboard system, and / or the update system. The computer may be further coupled to one or more of the systems of the autonomous vehicle 700 and may control the operation of the throttle, brakes, steering, and / or indicators of the autonomous vehicle 700.
[0070] Figure 8 An example component 800 that may be implemented within an autonomous vehicle is illustrated in accordance with an embodiment described herein. In particular, the component 800 may be implemented within the autonomous vehicle described throughout (such as the autonomous vehicle 700 ( Figure 7 ))).
[0071] The component 800 may include a computer 802. The computer 802 may incorporate and / or include one or more of the features of the computer 122 ( Figure 1 ). For example, the computer 802 may execute the process 300 for updating software within the autonomous vehicle in which the computer 802 is implemented. The computer 802 may include one or more of the features of the computer described with respect to Figure 7 The computer 802 may coordinate one or more operations of the autonomous vehicle and may analyze data captured by the autonomous vehicle. In some embodiments, the computer 802 may have software stored therein, where the software may be updated via one or more of the systems and / or processes described throughout this disclosure.
[0072] The component 800 may further include one or more sensors 804. The sensors 804 may include one or more of the features of the sensors 702. The sensors 804 may be coupled to the computer 802 and may provide data captured by the sensors 804 to the computer 802.
[0073] Component 800 may further include one or more memory devices 806. The memory device 806 may be coupled to the computer 802. In some embodiments, the memory device 806 may also be coupled to the sensor 804. The memory device 806 may include a computer-readable medium. In some embodiments, the computer-readable medium may be a non-transitory computer-readable medium. The memory device 806 may store one or more instructions that, when executed by the computer 802, cause the computer 802 to perform one or more operations performed by a computer implemented in an autonomous vehicle as described throughout this disclosure. The instructions may include software, where the software may be updated via one or more of the systems and / or processes described throughout this disclosure. Further, the memory device 806 may be used to store data of the autonomous vehicle. For example, the computer 802 may provide the data received from the sensor 804 to the memory device 806 for storage on the memory device 806. Further, the memory device 806 may store a route associated with a routing plan of the autonomous vehicle, a maneuver associated with a maneuvering plan of the autonomous vehicle, or some combination thereof.
[0074] Component 800 may further include one or more vehicle systems 808. The vehicle system 808 may be coupled to the computer 802, and the computer 802 may control the operation of the vehicle system 808. The vehicle system 808 may include a motion system of the autonomous vehicle, an indicator system of the autonomous vehicle, or some combination thereof. The motion system may include a throttle system of the autonomous vehicle, a braking system of the autonomous vehicle, a steering system of the autonomous vehicle, or some combination thereof.
[0075] Component 800 may further include a communication system 810. The communication system 810 may be coupled to the computer 802. The communication system 810 may include a wireless communication system and may allow the computer 802 to wirelessly communicate with other devices (such as an update system (such as update system 110 ( Figure 1 ))) and / or an instrument panel system (such as instrument panel system 102 ( Figure 1 )))). The communication system 810 may implement one or more wireless communication standards, such as a mobile communication standard, a radar communication standard, a satellite communication standard, a global positioning system communication standard, a Wi-Fi communication standard, and / or a Bluetooth communication standard.
[0076] Selection example
[0077] Some examples in accordance with embodiments of the subject matter provided in this disclosure are provided below. It should be understood that the examples are merely examples, and embodiments in accordance with the disclosed subject matter are not limited to the examples provided.
[0078] Example 1 may include one or more computer-readable media having instructions stored thereon, wherein the instructions, when executed by a dashboard system, cause the dashboard system to perform the following operations: retrieve information related to a vehicle; based on the information related to the vehicle, determine a time for a software update of software for the vehicle and a location for the software update of the software for the vehicle; generate an indication for the time for the software update and the location for the software update; and provide the indication to the vehicle to schedule the software update.
[0079] Example 2 may include one or more computer-readable media of Example 1, wherein the instructions, when executed by the dashboard system, further cause the dashboard system to perform the following operations: determine a component associated with the software update; determine that the vehicle includes the component; and based on the determination that the vehicle includes the component, determine to perform the software update for the vehicle.
[0080] Example 3 may include one or more computer-readable media of Example 1, wherein determining the location for the software update includes: determining a location of the vehicle based on the information related to the vehicle; and identifying the location for the software update from a plurality of locations for the software update based on the location for the software update being the closest to the location of the vehicle among the plurality of locations for the software update.
[0081] Example 4 may include one or more computer-readable media of Example 1, wherein determining the time for the software update includes: determining a time when the vehicle is scheduled to be at the location; and determining the time for the software update as the time when the vehicle is scheduled to be at the location.
[0082] Example 5 may include one or more computer-readable media of Example 1, wherein the instructions, when executed by the dashboard system, further cause the dashboard system to perform the following operations: determine an immediacy rating associated with the software update, and wherein the time for the software update is determined based on the immediacy rating.
[0083] Example 6 may include one or more computer-readable media of Example 1, wherein the information related to the vehicle includes information related to an operation assignment of the vehicle.
[0084] Example 7 may include one or more computer-readable media of Example 1, wherein the instructions, when executed by the dashboard system, further cause the dashboard system to perform the following operations: provide the indication to an update system at the location for the software update, and wherein the indication further includes an indication of a storage location for the software update.
[0085] Example 8 may include one or more computer-readable media of Example 1, wherein the information related to the vehicle includes the charging state of the vehicle, the current service being performed by the vehicle, the operation assignment of the vehicle, or the current location of the vehicle.
[0086] Example 9 may include one or more computer-readable media of Example 1, wherein the vehicle is an autonomous vehicle, and wherein the indication of the time for the software update and the location for the software update causes the autonomous vehicle to perform the following operation: advance to the location for the software update at the time for the software update.
[0087] Example 10 may include a process for software update of a vehicle, including: determining, by a dashboard system, to schedule the vehicle for the software update based on information related to the vehicle; determining, by the dashboard system, the time for the software update and the location for the software update based on information related to the vehicle; generating, by the dashboard system, an indication of the time for the software update and the location for the software update; and providing, by the dashboard system, the indication to the vehicle.
[0088] Example 11 may include the process of Example 10, wherein determining to schedule the vehicle for the software update includes: identifying, by the dashboard system, the software version to which the vehicle is to be updated for the software update; identifying, by the dashboard system, the prior software version being utilized by the vehicle; and determining, by the dashboard system, that the prior software version is to be updated to the software version.
[0089] Example 12 may include the process of Example 10, wherein determining to schedule the vehicle for the software update includes: identifying, by the dashboard system, the component associated with the software update; and determining, by the dashboard system, that the vehicle includes the component based on information related to the vehicle.
[0090] Example 13 may include the process of Example 10, further including: receiving, by the dashboard system, an indication of the progress of the software update for the vehicle; and displaying, by the dashboard system, the progress of the software update.
[0091] Example 14 may include the process of Example 13, wherein the indication of the progress of the software update includes an indication that an error has occurred regarding the software update, and wherein displaying the progress of the software update includes displaying the indication of the error.
[0092] Example 15 may include the process of Example 10, where determining the time for the software update and the location for the software update includes: identifying, by the dashboard system, the location for the software update; and verifying, by the dashboard system, that the location for the software update has sufficient resources for the software update at the time for the software update.
[0093] Example 16 may include the process of Example 10, where determining the time for the software update and the location for the software update includes: determining, by the dashboard system, the time when the vehicle is scheduled for a service, where the time for the software update is determined as the time when the vehicle is scheduled for the service; and determining, by the dashboard system, that the location for the software update has sufficient resources for the software update at the time when the vehicle is scheduled for the service, where the location for the software update is selected based on having sufficient resources for the software update at the time when the vehicle is scheduled for the service.
[0094] Example 17 may include the process of Example 10, further including: providing, by the dashboard system, the indication to the update system to perform the software update, where the indication includes an indication of the storage location for the software update.
[0095] Example 18 may include one or more computer-readable media having instructions stored thereon, where the instructions, when executed by an update system, cause the update system to perform the following operations: identify an indication of a scheduled software update for a vehicle; determine that the vehicle has entered the service area of the update system; and perform the scheduled software update for the vehicle in response to the determination that the vehicle has entered the service area.
[0096] Example 19 may include the one or more computer-readable media of Example 18, where the indication of the scheduled software update includes an indication of the time for the scheduled software update, and where the instructions, when executed by the update system, further cause the update system to perform the following operations: identify, from the indication of the scheduled software update, the time for the scheduled software update, and where determining that the vehicle has entered the service area of the update system includes: determining that the vehicle has entered the service area of the update system at the time for the scheduled software update.
[0097] Example 20 may include the one or more computer-readable media of Example 18, where performing the scheduled software update includes: establishing a wireless connection with the vehicle in response to the determination that the vehicle has entered the service area; and using the wireless connection to update the software of the vehicle.
[0098] Example 21 may include a process for performing a software update of a vehicle, including: determining, by an update system for the software update, that the vehicle has entered the service area of the update system; establishing, by the update system in response to determining that the vehicle has entered the service area of the update system, a wireless connection with the vehicle; and performing a software update of the vehicle via the wireless connection.
[0099] Example 22 may include the process of Example 21, wherein determining that the vehicle has entered the service area includes: detecting a Wi-Fi signal or an Internet protocol address associated with the vehicle.
[0100] Example 23 may include the process of Example 21, further including: retrieving, by the update system, a software version for the software update; and utilizing, by the update system, the software version for the software update.
[0101] Example 24 may include one or more computer-readable media having instructions stored thereon, wherein the instructions, when executed by a vehicle, cause the vehicle to perform the following operations: transmitting a Wi-Fi signal or an Internet protocol address associated with the vehicle, the Wi-Fi signal or the Internet protocol address being used to determine that the vehicle has entered the service area of an update system; establishing a wireless connection with the update system; and performing a software update process via the wireless connection with the update system.
[0102] Example 25 may include the one or more computer-readable media of Example 24, wherein the instructions, when executed by the vehicle, further cause the vehicle to perform the following operations: identifying an indication of a scheduled software update for the vehicle; determining a time for the software update and a location for the software update, wherein the location for the software update is associated with the update system; and advancing to the location for the software update at the time for the software update.
[0103] Other implementation notes, variations, and applications
[0104] It should be understood that not all objects or advantages may be achieved according to any particular embodiment described herein. Thus, for example, those skilled in the art will recognize that some embodiments may be configured to operate in a manner that achieves or optimizes one advantage or a group of advantages as taught herein, without necessarily achieving other purposes or advantages as may be taught or implied herein.
[0105] In some embodiments, one or more of the components described throughout this disclosure may be implemented as one or more circuits. The circuits may be implemented on a board of an associated electronic device. The board may be a general-purpose circuit board that can hold various components of the internal electronic system of the electronic device and further provide connectors for other peripherals. More specifically, the board may provide electrical connections by which other components of the system can communicate electrically. Any suitable processor (including digital signal processors, microprocessors, support chip sets, etc.), computer-readable non-transitory memory elements, etc. may be suitably coupled to the board based on specific configuration requirements, processing needs, computer design, etc. Other components (such as external storage, additional sensors, controllers for audio / video display, and peripherals) may be implemented as plug-in cards, attached to the board via cables, or integrated into the board itself. In various embodiments, the functions described herein may be implemented in emulation as software or firmware running within one or more configurable (e.g., programmable) elements arranged in a structure that supports those functions. The software or firmware providing the emulation may be provided on a non-transitory computer-readable storage medium including instructions that allow a processor to implement those functions.
[0106] In some embodiments, the circuits may be implemented as stand-alone modules (e.g., devices having associated components and circuits configured to perform specific applications or functions) or as plug-in modules into the dedicated hardware of an electronic device. Note that specific embodiments of this disclosure may be easily included, in part or in whole, in a system-on-chip (SOC) package. An SOC represents an integrated circuit (IC) that integrates the components of a computer or other electronic system onto a single chip. It may contain digital, analog, mixed-signal, and often includes radio frequency functions: all may be provided on a single chip substrate. Other embodiments may include multi-chip modules (MCMs), having multiple separate ICs located within a single electronic package and configured to interact closely with each other through the electronic package. In various other embodiments, digital filters may be implemented in one or more silicon cores of application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and other semiconductor chips.
[0107] Note that, regarding many of the examples provided herein, interactions may be described in terms of two, three, four, or more electrical components. However, this has been done solely for clarity and example purposes. It should be understood that the system may be integrated in any suitable manner. In various embodiments, any of the disclosed components, modules, and elements may be combined in various possible configurations, all within the scope of this disclosure.
[0108] Note that in this specification, references to various features (e.g., elements, structures, modules, components, steps, operations, characteristics, etc.) included in "one embodiment", "example embodiment", "embodiment", "another embodiment", "some embodiments", "various embodiments", "other embodiments", "alternative embodiments", etc. are intended to mean that any such feature is included in one or more embodiments of the present disclosure, but may or may not necessarily be combined in the same embodiment.
[0109] Many changes, substitutions, variations, alterations, and modifications may be ascertained by those skilled in the art, and it should be understood that the present disclosure encompasses all such changes, substitutions, variations, alterations, and modifications that may be ascertained by those skilled in the art. Further, it should be understood that any protection that may be granted based on the present disclosure should not be limited by the description. Rather, the protection should be defined by the appended claims as would be understood by those skilled in the art when read in view of the description.
Claims
1. One or more computer-readable media having instructions stored thereon, wherein the instructions, when executed by a dashboard system for managing a fleet of autonomous vehicles for performing operation assignments including package delivery or ridesharing, cause the dashboard system to perform the following operations: Determine an immediacy rating of a software update for an autonomous vehicle in the fleet, wherein the immediacy rating indicates that the software update is to be performed once the autonomous vehicle is not performing an operation assignment; Retrieve information related to the autonomous vehicle, wherein the information includes the schedule of the autonomous vehicle and the shift of the operation assignment being performed by the autonomous vehicle; Determine a scheduled time based on the shift; Determine the location of the autonomous vehicle at the scheduled time based on the schedule of the autonomous vehicle; Determine a facility for the software update of the software for the autonomous vehicle based on the information related to the autonomous vehicle, wherein determining the facility includes; Identifying, from a plurality of facilities, the facility closest to the location of the autonomous vehicle at the scheduled time; Verifying that the closest facility has a sufficient number of parking spaces and sufficient wireless bandwidth at the scheduled time; And If the closest facility does not have a sufficient number of parking spaces and sufficient wireless bandwidth, verifying that the next-closest facility to the location of the autonomous vehicle at the scheduled time among the plurality of facilities has a sufficient number of parking spaces and sufficient wireless bandwidth at the scheduled time; Generate an indication of the facility and the scheduled time for the software update based on the determination; Provide the indication to the autonomous vehicle to cause the autonomous vehicle to proceed to the facility at the scheduled time; And After an update system at the facility detects that the autonomous vehicle has entered the service range of the update system, cause the update system to download the software update.
2. The one or more computer-readable media of claim 1, wherein the instructions, when executed by the dashboard system, further cause the dashboard system to perform the following operations: Determine components associated with the software update; Determine that the autonomous vehicle includes the components; and Determine that the software update is to be performed for the autonomous vehicle based on the determination that the autonomous vehicle includes the components.
3. The one or more computer-readable media of claim 1, wherein determining the facility for the software update further includes: Retrieving the locations of the plurality of facilities, the schedules for the plurality of facilities, and the resources of the plurality of facilities.
4. The one or more computer-readable media of claim 1, wherein the instructions, when executed by the dashboard system, further cause the dashboard system to perform the following operations: Provide an indication to an update system of the determined facility, the indication including the autonomous vehicle, the scheduled time, and the storage location of the software update.
5. The one or more computer-readable media of claim 4, wherein the indication to the update system for the identified facility causes the update system to monitor the autonomous vehicle entering the service range at the scheduled time.
6. The one or more computer-readable media of claim 1, wherein the shift of the operation assignment refers to the time when the autonomous vehicle is available to be requested for a ride service and the time when the autonomous vehicle is providing a ride service for commuters.
7. The one or more computer-readable media of claim 4, wherein the storage location for the software update includes a URL for accessing the software update.
8. A computer-implemented method for software updates of an autonomous vehicle, comprising: Determining an immediacy rating of the software update of the autonomous vehicle in the autonomous vehicle fleet, wherein the immediacy rating indicates that the software update is to be performed once the autonomous vehicle is not performing an operation assignment; Retrieving information related to the autonomous vehicle, wherein the information includes a schedule of the autonomous vehicle and a shift of an operation assignment being performed by the autonomous vehicle; Determining a scheduled time based on the shift; Determining the location of the autonomous vehicle at the scheduled time based on the schedule of the autonomous vehicle; Determining a facility for the software update of the software of the autonomous vehicle based on the information related to the autonomous vehicle, wherein determining the facility includes; Identifying, from a plurality of facilities, the facility closest to the location of the autonomous vehicle at the scheduled time; Verifying that the closest facility has a sufficient number of parking spaces and sufficient wireless bandwidth at the scheduled time; And If the closest facility does not have a sufficient number of parking spaces and sufficient wireless bandwidth, verifying that the next closest facility to the location of the autonomous vehicle at the scheduled time among the plurality of facilities has a sufficient number of parking spaces and sufficient wireless bandwidth at the scheduled time; Generating an indication of the facility and the scheduled time for the software update based on the determination; Providing the indication to the autonomous vehicle to cause the autonomous vehicle to proceed to the facility at the scheduled time; And After an update system at the facility detects that the autonomous vehicle has entered the service range of the update system, causing the update system to download the software update.
9. The computer-implemented method of claim 8, wherein determining the facility for the software update further includes: Retrieving the locations of the plurality of facilities, schedules for the plurality of facilities, and resources of the plurality of facilities.
10. The computer-implemented method of claim 8, further comprising: Determining components associated with the software update; Determining that the autonomous vehicle includes the components; And Determining that the software update is to be performed for the autonomous vehicle based on the determination that the autonomous vehicle includes the components.
11. The computer-implemented method according to claim 8, further comprising: Providing an indication to an update system for a determined facility, the indication including the autonomous vehicle, the scheduled time, and the storage location of the software update.
12. The computer-implemented method according to claim 11, wherein the storage location for the software update includes a URL for accessing the software update.
13. The computer-implemented method according to claim 11, wherein the indication to the update system for the determined facility causes the update system to monitor for the autonomous vehicle to enter the service range at the scheduled time.
14. The computer-implemented method according to claim 8, wherein the shift assigned by the operation refers to the time when the autonomous vehicle is available to be requested for a ride service and the time when the autonomous vehicle is providing a ride service for commuters.
15. A dashboard system for managing a fleet of autonomous vehicles and coupled to a data storage, the fleet of autonomous vehicles being used to perform operation assignments including item delivery or rides, the dashboard system comprising: One or more processors; And One or more computer-readable media having instructions stored thereon, wherein the instructions are for causing the one or more processors to: Determine an immediacy rating of a software update for an autonomous vehicle in the fleet, wherein the immediacy rating indicates that the software update is to be performed once the autonomous vehicle is not performing an operation assignment; Retrieve information related to the autonomous vehicle from the data storage, wherein the information includes the schedule of the autonomous vehicle and the shift of the operation assignment being performed by the autonomous vehicle; Determine the scheduled time based on the shift; Determine the location of the autonomous vehicle at the scheduled time based on the schedule of the autonomous vehicle; Determine a facility for a software update of the software for the autonomous vehicle based on the information related to the autonomous vehicle, wherein determining the facility includes; Identifying, by the dashboard system, the facility closest to the location of the autonomous vehicle at the scheduled time from a plurality of facilities; Verifying, by the dashboard system, that the closest facility has a sufficient number of parking spaces and sufficient wireless bandwidth at the scheduled time; And If the closest facility does not have a sufficient number of parking spaces and sufficient wireless bandwidth, verifying that the next closest facility to the location of the autonomous vehicle at the scheduled time among the plurality of facilities has a sufficient number of parking spaces and sufficient wireless bandwidth at the scheduled time; Generating an indication for the facility and the scheduled time for the software update based on the determination; Providing the indication to the autonomous vehicle to cause the autonomous vehicle to proceed to the facility at the scheduled time; And Causing the update system at the facility to download the software update after the update system at the facility detects that the autonomous vehicle has entered the service range of the update system.
16. The dashboard system according to claim 15, wherein the instructions further cause the one or more processors to: Determine components associated with the software update; Determine that the autonomous vehicle includes the components based on information retrieved from the data storage; and Determine to perform the software update for the autonomous vehicle based on the determination that the autonomous vehicle includes the components.
17. The dashboard system according to claim 15, wherein the instructions further cause the one or more processors to: Provide an indication to an update system of a determined facility, the indication including the autonomous vehicle, the scheduled time, and the storage location of the software update.
18. The dashboard system according to claim 17, wherein the storage location for the software update includes a URL for accessing the software update.
19. The dashboard system according to claim 17, wherein the indication to the update system of the determined facility causes the update system to monitor for the autonomous vehicle to enter the service area at the scheduled time.
20. The dashboard system according to claim 15, wherein determining the facility for the software update further includes: Retrieving the locations of the plurality of facilities, the schedules for the plurality of facilities, and the resources of the plurality of facilities.
Citation Information
Patent Citations
Automated Software Update Scheduling
US20150169311A1
Fleet Maintenance Management for Autonomous Vehicles
US20190197798A1