Computing system and method for generating user-specific automated vehicle actions

The calculation system generates automated transportation actions, which solves the problems of delay and resource waste caused by frequent manual operations by users, and realizes efficient personalized control and resource optimization of transportation tools.

CN120359138APending Publication Date: 2025-07-22MERCEDES BENZ GRP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380085466.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-14
Filing Date
2023-11-28
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

Functional control of existing vehicles requires frequent manual operation by users, resulting in delays and waste of resources. Different vehicles require repeated configuration of user preferences, which lacks personalization and efficiency.

Method used

Automatic transportation action is generated through the computing system, and the transportation function is automatically controlled based on user input, storing and synchronizing user preferences, reducing conflicts and passing across multiple transportation tools.

Benefits of technology

Improves the responsiveness and computing resource efficiency of transportation tools, reduces user interaction frequency, provides personalized user experience and reduces resource waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120359138A_ABST
    Figure CN120359138A_ABST
Patent Text Reader

Abstract

Methods, computing systems, and techniques for automated vehicle action generation are presented. For example, a computing system may generate content for presentation to a user via a user interface of a display device. The content may include a user interface element for inputting one or more trigger conditions associated with a vehicle function of the vehicle and one or more settings of the vehicle function. The computing system may receive, via the user interface, data indicative of a user input specifying the trigger condition and data indicative of a user input specifying the setting of the vehicle function. The computing system may determine an automated vehicle action defining a relationship between the trigger condition and the setting of the vehicle function. The computing system may output command instructions for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function based on whether the vehicle detects the trigger condition.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to generating vehicle actions that will be automatically performed by a vehicle and customized specifically for a user of the vehicle. Background Art

[0002] Vehicles (such as cars) have on-vehicle control systems that operate certain functions of the vehicle in response to inputs from an operator of the vehicle. This includes control functions (such as braking, accelerating, and steering) and comfort-related functions (such as air conditioning and seat position). The operator can physically manipulate devices or touch screen elements to control these functions as the operator deems appropriate. Summary of the Invention

[0003] Specific aspects and advantages of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the specific embodiments.

[0004] Example aspects of the present disclosure relate to a computing system that can (such as when control circuitry of the computing system executes instructions on one or more computer-readable media) perform a computer-implemented method. The method can include: generating content for presentation to a user via a user interface of a display device. The content can include one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of a vehicle and one or more settings of the vehicle function. The method can include: receiving, via the user interface, data indicative of user input specifying the one or more trigger conditions. The method can include: receiving, via the user interface, data indicative of user input specifying the one or more settings of the vehicle function. The method can include: determining an automated vehicle action that defines a relationship between the one or more trigger conditions and the one or more settings of the vehicle function. The method can include: outputting, based on whether the vehicle detects the one or more trigger conditions, a command instruction for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function.

[0005] In an embodiment, the automated vehicle action can indicate at least one of the following: (i) a time, (ii) a location, or (iii) a temperature condition at which the vehicle will automatically control the vehicle function according to the one or more settings.

[0006] In an embodiment, the method can further include: determining whether there is a conflict between the automated vehicle action and a pre-existing automated vehicle action.

[0007] In an embodiment, the method may include: in response to determining that the conflict does exist, generating a prompt for presentation to the user via the user interface of the display device, where the prompt requests the user to indicate whether to replace the pre - existing automated vehicle action with the automated vehicle action or discard the automated vehicle action.

[0008] In an embodiment, the method may include: providing the command instruction to be stored in an accessible memory on the vehicle for execution at a later time.

[0009] In an embodiment, the command instruction may be stored in the accessible memory together with a plurality of other command instructions for a plurality of other automated vehicle actions associated with the user.

[0010] In an embodiment, the method may include: detecting the occurrence of the one or more trigger conditions; and based on the one or more trigger conditions, sending a signal to effect the one or more settings of the vehicle function.

[0011] In an embodiment, the method may include: sending a communication indicating the command instruction to a server system via a network for storage in a manner associated with the user profile of the user.

[0012] In an embodiment, the display device may be the display screen of a mobile user device.

[0013] In an embodiment, the display device may be the display screen of the vehicle.

[0014] In an embodiment, the vehicle function may include: (i) window function; (ii) seat function; (iii) temperature function; or (iv) music function.

[0015] In an embodiment, the seat function may include: seat temperature function, seat ventilation function or seat massage function.

[0016] In an embodiment, the one or more settings of the vehicle function may indicate at least one of the following: (i) on / off state; (ii) open / closed state; (iii) temperature level; (iv) massage level; or (v) music selection.

[0017] In an embodiment, the user can be a first user, where the command instruction for the automated vehicle action is associated with the first user profile of the first user. The method can include: receiving data indicating a second user profile of a second user of the vehicle; and providing a command instruction for a second automated vehicle action associated with the second user profile to be stored in an accessible memory of the vehicle. The second automated vehicle action can be based on user input provided by the second user to a second user interface on a second display device.

[0018] In an embodiment, the second display device can be a display screen of a mobile user device or a display screen of another vehicle.

[0019] In an embodiment, the method can include: determining whether there is a conflict between the automated vehicle action and a pre - existing automated vehicle action; and in response to determining that there is indeed such a conflict, generating a prompt for presentation to the user via the user interface of the display device. The prompt can indicate the conflict between the automated vehicle action and the pre - existing automated vehicle action.

[0020] Other example aspects of the present disclosure relate to other systems, methods, vehicles, devices, tangible non - transitory computer - readable media, and apparatuses for improving the operation of a vehicle and the computational efficiency associated with the vehicle.

[0021] With reference to the following description and the appended claims, these and other features, aspects, and advantages of the various embodiments will become better understood. The accompanying drawings, which are incorporated into and form a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the related principles. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] A detailed discussion of embodiments involving those of ordinary skill in the art is set forth in the specification, which refers to the accompanying drawings, in which:

[0023] Figure 1 An example computing ecosystem in accordance with an embodiment of the present disclosure is illustrated.

[0024] Figure 2 A diagram illustrating an example computing architecture in accordance with an embodiment of the present disclosure is shown.

[0025] Figure 3 A diagram illustrating an example data flow in accordance with an embodiment of the present disclosure is shown.

[0026] Figures 4 to 8 A diagram illustrating an example user interface on an example display device in accordance with an embodiment of the present disclosure is shown.

[0027] Figures 9A to 9B An example data structure including data associated with automated vehicle actions according to an embodiment of the present disclosure is illustrated.

[0028] Figures 10A to 10B A flowchart diagram illustrating an example method for generating an automated vehicle action for a user according to an embodiment of the present disclosure is shown.

[0029] Figure 11A A flowchart diagram illustrating an example method for synchronizing automated vehicle actions according to an embodiment of the present disclosure is shown.

[0030] Figure 11B A flowchart diagram illustrating an example method for implementing an automated vehicle action for a second user according to an embodiment of the present disclosure is shown.

[0031] Figure 12 A block diagram of an example computing system according to an embodiment of the present disclosure is illustrated. DETAILED DESCRIPTION

[0032] One aspect of the present disclosure relates to collecting user input from a user of a vehicle and generating, based on the user input, actions to be automatically performed by the vehicle for that particular user. The actions can be intelligently aggregated from various sources and wirelessly distributed to multiple vehicles of the user. For example, a vehicle (e.g., an automobile) can include multiple vehicle functions. A vehicle function can refer to the functionality or operation that the vehicle is configured to perform based on an input. For example, a user (e.g., the driver of the vehicle) can interact with a vehicle function to activate or adjust the temperature setting of the user's seat. To automate the vehicle functions according to the user's preferences, the user can provide, for example, to an in-vehicle display device, user input that indicates the user's preferred settings for the vehicle functions and the conditions under which the vehicle should automatically trigger the vehicle functions. Based on this data, the vehicle can create a skill (also referred to as a routine) for the vehicle. The skill / routine can be associated with one or more vehicle-specific functions or non-vehicle-specific functions. For example, in an embodiment, the skill / routine can include an "automated vehicle action" that automatically implements vehicle functionality according to the user's preferences. The vehicle can also send data indicating the automated vehicle action to a remote computing system (e.g., a cloud-based server system) that is configured to aggregate the user's automated vehicle actions.

[0033] For example, a user may expect certain vehicle functions to be automatically activated during the user's morning commute. In one example, the vehicle functions may include a seat heating function and a seat massage function. In the case of using the techniques of the present disclosure, the user may define the conditions (″trigger conditions″) under which the vehicle will activate the user's preferred settings for the seat heating and massage functions.

[0034] To help facilitate the collection of such user input, one or more user interfaces may be presented to the user. For example, a computing system may generate content for presentation to the user via a user interface of a display device. In an embodiment, the computing system may include an in-vehicle computing system of the vehicle, and the display device may include a display screen (e.g., a touch screen) of an infotainment system display in the vehicle. Additionally or alternatively, the computing system may include the user's mobile user device, and the display device may include the display screen of the mobile user device. The content may include one or more user interface elements (e.g., soft buttons, drop-down menus) for inputting the trigger conditions and settings of the vehicle functions.

[0035] The computing system may receive, via the user interface, data indicative of user input specifying the trigger conditions and settings of a vehicle function. For example, the computing system may receive data indicative of a time condition and a temperature condition. The user input may specify the time condition as being between 7:50 a.m. and 8:25 a.m. from Monday to Friday (e.g., the user's morning commute), and the temperature condition as being below 70 degrees Fahrenheit. The user input may specify the ″high″ setting for the seat heating function and the ″classic massage″ setting for the seat massage function.

[0036] Based on the user input, the computing system may determine an automated vehicle action that defines the relationship between the trigger condition and the settings. The automated vehicle action may indicate the time, location, or trigger conditions under which the vehicle will automatically control the vehicle function according to the user's preferred settings. For example, based on the above user input, the computing system may generate an automated vehicle action for the user's morning commute that indicates that when the user starts driving the vehicle between 7:50 a.m. and 8:25 a.m. from Monday to Friday and the temperature is below 70 degrees Fahrenheit, the vehicle will activate the ″high″ setting for the seat heating function and the ″classic massage″ setting for the seat massage function.

[0037] To confirm that the automated vehicle action is appropriate, the computing system may determine whether the new automated vehicle action conflicts with another automated vehicle action. For example, the computing system may compare the automated settings and trigger conditions of the new automated vehicle action with the automated settings and trigger conditions of a pre-existing automated vehicle action. Based on this comparison, the computing system may confirm that the vehicle is capable of performing both automated vehicle actions without modifying either of them.

[0038] In an embodiment, the computing system may request user approval of an automated vehicle action before storing the automated vehicle action in the vehicle's memory for execution. To this end, the computing system may generate content for presentation to the user via the vehicle's on-board display device. The content may be a prompt that requests the user to approve by selecting an element on a touch screen, providing a verbal confirmation, etc. Upon approval, the computing system may output command instructions for the vehicle to implement the automated vehicle action according to the user-selected settings (e.g., high-grade heating, classic massage) for automatically controlling vehicle functions (e.g., seat heating function, massage function) based on whether the vehicle detects a trigger condition. The command instructions may instruct the vehicle to monitor the trigger condition and, when the trigger condition occurs, activate the "high-grade" heating setting of the seat and the "classic massage" setting of the seat massage function. The library may store the command instructions to maintain the automated vehicle action in a manner associated with a particular user or the user's profile.

[0039] In an embodiment, the computing system may send data indicating an automated vehicle action to another computing system remote from the vehicle. The remote computing system (e.g., a cloud platform) may be configured to: aggregate automated vehicle actions for the user. Aggregating automated vehicle actions may include storing the actions in a remote library in a manner associated with the user's user profile. In an embodiment, the remote computing system may aggregate automated vehicle actions generated by the user through multiple different computing sources. For example, the remote computing system may aggregate automated vehicle actions generated on a first vehicle, automated vehicle actions generated on a second vehicle, and automated vehicle actions generated via the user's mobile phone. As will be further described herein, in an embodiment, the remote computing system may aggregate automated vehicle actions generated based on user input and automated vehicle actions generated via artificial intelligence running on the vehicle.

[0040] The remote computing system may aggregate and store the automated vehicle actions in a remote library such that the user's automated vehicle actions may be automatically downloaded to another vehicle operable by the user. In this way, the systems and methods of the present disclosure can personalize the user and automate the user's actions in a manner that can be transferred across multiple vehicles.

[0041] The technology of the present disclosure provides many technical effects and improvements to transportation and computing technologies. For example, in a single instance, a computing system can obtain user input to create automated vehicle actions for the vehicle to repeat and automate across multiple future instances. Thus, the technology of the present disclosure can reduce or replace frequent manual instructions or configuration inputs from the user, which otherwise may cause delays in implementing user preferences. In this way, the technology of the present disclosure can also increase the responsiveness of the vehicle when implementing vehicle functions (e.g., reduce latency).

[0042] The automated vehicle actions generated by the systems and methods of the present disclosure can also improve the efficiency of the vehicle's on-board computing resources. For example, automating vehicle actions based on a user's preferred routines can reduce the number of user interactions that the user would have with a particular vehicle function. By reducing the frequency of user interactions, the vehicle can reduce the amount of processing and memory resources spent each time the user manually adjusts a vehicle function. Additionally, this can reduce wear on the physical interfaces associated with the vehicle functions.

[0043] The technology of the present disclosure can also help reduce unnecessary use of computing resources across multiple vehicles. For example, as further described herein, an automated vehicle action created by a first vehicle can be transferred (e.g., via a cloud platform that maintains a user's profile) to a second vehicle. In this way, the second vehicle can avoid using its computing resources to recreate an automated vehicle action that has already been determined by the first vehicle.

[0044] Ultimately, the systems and methods of the present disclosure improve the computing efficiency and configurability of the vehicle while also providing a personalized user experience that can be wirelessly transferred to another vehicle.

[0045] Reference will now be made in detail to the embodiments, one or more examples of which are illustrated in the accompanying drawings. Each example is provided by way of explanation of the embodiments and not limitation of the disclosure. In fact, it will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments without departing from the scope or spirit of the disclosure. For example, the functions illustrated or described as part of one embodiment can be used with another embodiment to produce yet another embodiment. Accordingly, aspects of the disclosure are intended to cover such modifications and variations.

[0046] The technology of the present disclosure may include such collection in cases where the user explicitly authorizes the collection of data associated with the user. Such authorization may be provided by the user via explicit user input to a user interface in response to a prompt that explicitly requests such authorization. The data collected may be anonymized, pseudonymized, encrypted, obfuscated, securely stored, or otherwise protected. The user may opt out of such data collection at any time.

[0047] Figure 1 An example computing ecosystem 100 in accordance with an embodiment of the present disclosure is illustrated. Ecosystem 100 may include a vehicle 105, a remote computing platform 110 (also referred to herein as computing platform 110), and a user device 115 associated with a user 120. User 120 may be a driver of the vehicle. In some particular implementations, user 120 may be a passenger of the vehicle. Vehicle 105, computing platform 110, and user device 115 may be configured to communicate with each other via one or more networks 125.

[0048] The systems / devices of ecosystem 100 may communicate using one or more application programming interfaces (APIs). This may include external-facing APIs to communicate data from one system / device to another. The external-facing APIs may allow systems / devices to establish secure communication channels via a secure access channel on network 125 by any number of methods such as web-based forms, programmatic access via RESTful APIs, Simple Object Access Protocol (SOAP), Remote Procedure Call (RPC), script access, etc.

[0049] Computing platform 110 may include a computing system remote from vehicle 105. In an embodiment, computing platform 110 may include a cloud-based server system. Computing platform 110 may include one or more backend services for supporting vehicle 105. Each service may include, for example, remote assistance services, navigation / routing services, performance monitoring services, etc. Computing platform 110 may host or otherwise include one or more APIs for communicating to / from computing system 130 of vehicle 105 or user device 115.

[0050] Computing platform 110 may include one or more computing devices. For example, computing platform 110 may include control circuitry 185 and a non-transitory computer-readable medium 190 (e.g., memory). The control circuitry 185 of computing platform 110 may be configured to perform the various operations and functions described herein.

[0051] In an embodiment, the control circuit 185 may include one or more processors (e.g., microprocessors), one or more processing cores, programmable logic circuitry (PLC) or programmable logic / gate arrays (PLA / PGA), field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), or any other control circuit.

[0052] In an embodiment, the control circuit 185 may be programmed by one or more computer-readable instructions or computer-executable instructions stored on a non-transitory computer-readable medium 190.

[0053] In an embodiment, the non-transitory computer-readable medium 190 may be a memory device (also referred to as a data storage device), which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-transitory computer-readable medium 190 may form, for example, a hard disk drive (HDD), a solid state drive (SDD), or a solid state integrated memory, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read only memory (CD-ROM), digital versatile disc (DVD), and / or memory stick. In some cases, the non-transitory computer-readable medium 190 may store computer-executable instructions or computer-readable instructions, such as instructions for performing the operations and methods described herein.

[0054] In various embodiments, the terms "computer-readable instructions" and "computer-executable instructions" are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, if computer-readable instructions or computer-executable instructions form a module, the term "module" broadly refers to a collection of software instructions or code configured to cause the control circuit 185 to perform one or more functional tasks. When the control circuit or other hardware components are executing a module or computer-readable instructions, the module and the computer-readable / executable instructions may be described as performing various operations or tasks.

[0055] The user device 115 may include a computing device owned or otherwise accessible by the user 120. For example, the user device 115 may include a telephone, a laptop computer, a tablet computer, a wearable device (e.g., a smartwatch, smart glasses, headphones), a personal digital assistant, a gaming system, a personal desktop device, other handheld devices, or other types of mobile or non-mobile user devices. As further described herein, the user device 115 may include one or more input components, such as buttons, touchscreens, joysticks or other cursor controls, styli, microphones, cameras or other imaging devices, motion sensors, etc. The user device 115 may include one or more output components, such as display devices (e.g., display screens), speakers, etc. In an embodiment, the user device 115 may include a component (such as, for example, a touchscreen, etc.) that is configured to perform input and output functionality to receive user input and present information to the user 120. The user device 115 may execute one or more instructions to run an instance of a software application and present a user interface associated therewith. The software application that launches the corresponding transport platform may initiate a user network session with the computing platform 110.

[0056] The network 125 may be any type of network or combination of networks that enables communication between devices. In some embodiments, the network 125 may include one or more of a local area network, a wide area network, the Internet, a secure network, a cellular network, a mesh network, a peer-to-peer communication link, or some combination thereof, and may include any number of wired or wireless links. Communication over the network 125 may be accomplished, for example, via a network interface using any type of protocol, protection scheme, encoding, format, encapsulation, etc. Communication between the computing system 130 and the user device 115 may be facilitated by near-field communication technology or short-range communication technology (e.g., Bluetooth Low Energy protocol, radio frequency signaling, NFC protocol).

[0057] The vehicle 105 may be a vehicle operable by the user 120. In an embodiment, the vehicle 105 may be an automobile or another type of land-based vehicle manually driven by the user 120. For example, the vehicle 105 may be a sedan or a van. In some embodiments, the vehicle 105 may be an aircraft (e.g., a personal aircraft) or a water-based vehicle (e.g., a boat). The vehicle 105 may include operator assistance functionality, such as cruise control, advanced driver assistance systems, etc. In some embodiments, the vehicle 105 may be a fully autonomous vehicle or a semi-autonomous vehicle.

[0058] The vehicle 105 may include a powertrain and one or more power sources. The powertrain may include a motor, an electric motor, a transmission, a drive shaft, an axle, a differential, electronic components, a sending device, etc. The power source may include one or more types of power sources. For example, the vehicle 105 may be a fully electric vehicle (EV) that is capable of using a battery to operate the powertrain of the vehicle 105 (e.g., for propulsion) and the on-vehicle functions of the vehicle. In an embodiment, the vehicle 105 may use a combustible fuel. In an embodiment, the vehicle 105 may include a hybrid power source, such as a combination of, for example, combustible fuel and electricity.

[0059] The vehicle 105 may include an interior of the vehicle. The interior of the vehicle may include the area inside the body of the vehicle 105, including, for example, the passenger compartment for the users of the vehicle 105. The interior of the vehicle 105 may include seats for the users, a steering mechanism, an accelerator interface, a brake interface, etc. The interior of the vehicle 105 may include a display device, such as a display screen associated with an infotainment system. Such a component may be referred to as a display device of the infotainment system or may be considered as a device for implementing embodiments including using the infotainment system. For illustrative and exemplary purposes, such a component may be referred to herein as a host unit display device (e.g., located in the front area / dashboard area of the interior of the vehicle), a rear unit display device (e.g., located in the rear passenger area of the interior of the vehicle), an infotainment host unit, or a rear unit, etc.

[0060] The display device may display various contents to the user 120, including information about the vehicle 105, prompts for user input, etc. The display device may include a touch screen through which the user 120 may provide user input to the user interface. The display device may be associated with an audio input device (e.g., a microphone) for receiving audio input from the user 120. In some specific implementations, the display device may be used as the dashboard of the vehicle 105.

[0061] The interior of the vehicle 105 may include one or more lighting elements. The lighting elements may be configured to emit light in various colors, brightness levels, etc.

[0062] The vehicle 105 may include an exterior of the vehicle. The exterior of the vehicle may include the outer surface of the vehicle 105. The exterior of the vehicle may include one or more lighting elements (e.g., headlights, brake lights, spotlights). The vehicle 105 may include one or more doors for entering the interior of the vehicle by, for example, manipulating a door handle on the exterior of the vehicle. The vehicle 105 may include one or more windows, which may include a windshield, a door window, a passenger window, a rear window, a sunroof, etc.

[0063] For the sake of brevity, certain routines and conventional components of vehicle 105 (e.g., the engine) are not illustrated and / or discussed herein. Those of ordinary skill in the art will understand the operation of conventional vehicle components in vehicle 105.

[0064] Vehicle 105 may include a computing system 130 on the vehicle 105. Computing system 130 may be on vehicle 105 as it is included on or within the vehicle 105. Computing system 130 may include one or more computing devices, and the one or more computing devices may include various computing hardware components. For example, computing system 130 may include control circuitry 135 and a non-transitory computer-readable medium 140 (e.g., a memory). Control circuitry 135 may be configured to: perform various operations and functions for implementing the techniques described herein.

[0065] In an embodiment, control circuitry 135 may include one or more processors (e.g., microprocessors), one or more processing cores, programmable logic circuitry (PLC) or programmable logic / gate arrays (PLA / PGA), field-programmable gate arrays (FPGA), application-specific integrated circuits (ASIC), or any other control circuitry. In some particular implementations, control circuitry 135 and / or computing system 130 may be part of or may form a vehicle control unit (also referred to as a vehicle controller) that is embedded or otherwise disposed in vehicle 105 (e.g., a Mercedes- sedan or van). For example, the vehicle controller may be or may include an infotainment system controller (e.g., an infotainment head unit), a telematics control unit (TCU), an electronic control unit (ECU), a central powertrain controller (CPC), a charging controller, a central external and internal controller (CEIC), a zone controller, or any other controller (the terms “or” and “and / or” may be used interchangeably herein).

[0066] In an embodiment, control circuitry 135 may be programmed by one or more computer-readable instructions or computer-executable instructions stored on non-transitory computer-readable medium 140.

[0067] In an embodiment, the non-transitory computer-readable medium 140 may be a memory device (also referred to as a data storage device), which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-transitory computer-readable medium 140 may form, for example, a hard disk drive (HDD), a solid state drive (SDD), or a solid state integrated memory, a random access memory (RAM), a read only memory (ROM), an erasable programmable read only memory (EPROM or flash memory), a static random access memory (SRAM), a dynamic random access memory (DRAM), a portable compact disc read only memory (CD-ROM), a digital versatile disc (DVD), and / or a memory stick. In some cases, the non-transitory computer-readable medium 140 may store computer-executable instructions or computer-readable instructions, such as instructions for performing Figures 10A to 10B and the method of FIG. 11. Additionally or alternatively, similar such instructions may be stored in the computing platform 110 (e.g., the non-transitory computer-readable medium 190) and provided via the network 125.

[0068] The computing system 130 (e.g., the control circuit 135) may be configured to communicate with other components of the vehicle 105 via a communication channel. The communication channel may include one or more data buses (e.g., controller area network (CAN)), an on-board diagnostic connector (e.g., OBD-II), or a combination of wired or wireless communication links. The vehicle systems may transmit or receive data, messages, signals, etc. from each other via the communication channel.

[0069] In an embodiment, the communication channel may include a direct connection, such as a connection provided via a dedicated wired communication interface (such as an RS-232 interface, a universal serial bus (USB) interface) or via a local computer bus (such as a peripheral component interconnect (PCI) bus). In an embodiment, the communication channel may be provided via a network. The network may be any type or form of network, such as a personal area network (PAN), a local area network (LAN) (e.g., an intranet), a metropolitan area network (MAN), a wide area network (WAN), or the Internet. The network may utilize different technology and protocol layers or protocol stacks, including, for example, Ethernet protocol, Internet protocol suite (TCP / IP), ATM (asynchronous transfer mode) technology, SONET (synchronous optical network) protocol, or SDH (synchronous digital hierarchy) protocol.

[0070] In an implementation, the systems / devices of vehicle 105 may communicate via an intermediate storage device or more generally via an intermediate non-transitory computer-readable medium. For example, a non-transitory computer-readable medium 140 that may be located external to computing system 130 may act as an external buffer or repository for storing information. In such examples, computing system 130 may retrieve or otherwise receive information from non-transitory computer-readable medium 140.

[0071] Vehicle 105 may include one or more human-machine interfaces (HMIs) 145. The human-machine interface 145 may include a display device as described herein. The display device (e.g., touchscreen) may be viewable by a user (e.g., user 120, second user 175) of vehicle 105 at the front of vehicle 105 (e.g., driver's seat, front passenger seat). Additionally or alternatively, the display device (e.g., rear unit) may be viewable by a user at the rear of vehicle 105 (e.g., rear passenger seat).

[0072] Vehicle 105 may include one or more sensors 150. The sensors 150 may be configured to: obtain sensor data. This may include sensor data associated with the surrounding environment of vehicle 105, sensor data associated with the interior of vehicle 105, or sensor data associated with a particular vehicle function. The sensor data may indicate a condition observed within the vehicle, outside the vehicle, or in the surrounding environment. For example, the sensor data may obtain image data, internal / external temperature data, weather data, data indicating the position of a user / object within vehicle 105, weight data, motion / gesture data, audio data, or other types of data. The sensors 150 may include one or more of the following: cameras (e.g., visible spectrum cameras, infrared cameras), motion sensors, audio sensors (e.g., microphones), weight sensors (e.g., for vehicle seats), temperature sensors, humidity sensors, light detection and ranging (LIDAR) systems, radio detection and ranging (RADAR) systems, or other types of sensors. Vehicle 105 may also include other sensors configured to obtain data associated with vehicle 105. For example, vehicle 105 may include an inertial measurement unit, a tire odometer device, or other sensors.

[0073] The vehicle 105 may include a positioning system 155. The positioning system 155 may be configured to: generate position data (also referred to as location data) indicating the position (also referred to as location) of the vehicle 105. For example, the positioning system 155 may determine the position in one or more of the following ways: using inertial sensors (such as, inertial measurement units, etc.), satellite positioning systems; based on IP addresses; using triangulation and / or proximity to network access points or other network components (such as, cellular towers, WiFi access points, etc.); or other suitable techniques. The positioning system 155 may determine the current location of the vehicle 105. The location may be represented as a set of coordinates (such as, latitude, longitude), an address, a semantic location (such as, "at work"), etc.

[0074] In an embodiment, the positioning system 155 may be configured to: locate the vehicle 105 within the environment of the positioning system. For example, the vehicle 105 may access map data that provides detailed information about the surrounding environment of the vehicle 105. The map data may provide information about: the identification and location of different roads, road segments, buildings, or other items; the location and direction of traffic lanes (such as, the location and direction of parking lanes, turning lanes, bicycle lanes, or other lanes within a particular road); traffic control data (such as, the location, timing, or instructions of signs (such as, stop signs, yield signs), traffic lights (such as, stop lights), or other traffic signals or control devices / markers (such as, crosswalks)); or any other data. The positioning system 155 may locate the vehicle 105 within the environment (such as, across multiple axes) based on the map data. For example, the positioning system 155 may process sensor data (such as, LIDAR data, camera data, etc.) to match it with a map of the surrounding environment to understand the position of the vehicle within the environment. The determined position of the vehicle 105 may be used by various systems of the computing system 130 or provided to the computing platform 110.

[0075] The vehicle 105 may include a communication system 160, which is configured to allow the vehicle 105 (and its computing system 130) to communicate with other computing devices. The computing system 130 may use the communication system 160 to communicate with the computing platform 110 or one or more other remote computing devices via the network 125 (such as, via one or more wireless signal connections). In some specific implementations, the communication system 160 may allow communication between one or more systems on the vehicle 105.

[0076] In an embodiment, the communication system 160 may be configured to: allow the vehicle 105 to communicate with or otherwise receive data from the user device 115. The communication system 160 may utilize various communication technologies, such as, for example, the Bluetooth Low Energy protocol, radio frequency signaling, or other short-range communication technologies or near-field communication technologies. The communication system 160 may include any suitable components for docking with one or more networks, including, for example, a transmitter, a receiver, a port, a controller, an antenna, or other suitable components that may help facilitate communication.

[0077] The vehicle 105 may include a plurality of vehicle functions 165A-165C. The vehicle functions 165A-165C may be functions that the vehicle 105 is configured to perform based on detected inputs. The vehicle functions 165A-165C may include one or more of the following: (i) vehicle comfort functions; (ii) vehicle preparation functions; (iii) vehicle climate functions; (vi) vehicle navigation functions; (v) drive mode functions; (v) vehicle parking functions; or (vi) vehicle entertainment functions.

[0078] Vehicle comfort functions may include window functions (e.g., of doors, windows, sunroofs), seat functions, wall functions, steering wheel functions, pedal functions, or other comfort functions. In an embodiment, the seat function may include, for example, a seat temperature function for controlling the temperature of the seat. This may include a specific temperature (e.g., in degrees Celsius / Fahrenheit) or a temperature level (e.g., low, medium, high). In an embodiment, the seat function may include a seat ventilation function for controlling the ventilation system of the seat. In an embodiment, the seat function may include a seat massage function for controlling a massager device within the seat. The seat massage function may have one or more levels, each level reflecting the intensity of the massage. In an embodiment, the seat massage function may have one or more programs / settings, each program / setting reflecting a different type or combination of massage. In an embodiment, the seat function may include a seat position function for controlling the position of the seat in one or more directions (e.g., forward / backward or up / down). The pedal function may control the position of one or more pedal controls (e.g., brake pedal, accelerator pedal) relative to the user's foot. The wall function may control the temperature of the interior walls or doors of the vehicle. The steering wheel function may control the temperature, position, or vibration of the steering wheel.

[0079] The vehicle preparation function can control the interior lighting of vehicle 105. In an embodiment, the vehicle preparation function can include an interior lighting function. For example, the interior lighting function can control the color, brightness, intensity, etc. of the interior lights (e.g., ambient lighting) of vehicle 105. In an embodiment, the vehicle preparation function can include one or more predefined lighting programs or combinations. Each program can be set by the user or pre-programmed into the default settings of vehicle 105. In some specific implementations, the vehicle preparation function can include an exterior lighting function. For example, the exterior lighting function can control the ambient lighting located below or otherwise along the exterior of vehicle 105.

[0080] The vehicle climate function can control the interior climate of vehicle 105. In an embodiment, the vehicle climate function can include an air conditioning / heating function for controlling the air conditioning / heating system or other systems associated with setting the temperature inside the passenger compartment of vehicle 105. In an embodiment, the vehicle climate function can include a defrost or fan function for controlling the level, type, and / or location of the air flow inside the passenger compartment of vehicle 105. In an embodiment, the vehicle climate function can include an air fragrance function for controlling the fragrance inside vehicle 105.

[0081] The vehicle navigation function can control the vehicle's systems to provide a route to a specific destination. For example, vehicle 105 can include an in-vehicle navigation system that provides a route for the user 120 to travel to the destination. The navigation system can utilize map data and a Global Positioning System (GPS)-based signal to provide guidance to the user 120 via a display device inside vehicle 105.

[0082] The vehicle parking function can control the parking-related functions of the vehicle. In an embodiment, the vehicle parking function can include a parking camera function that controls side cameras, rear cameras, or 360-degree cameras to assist the user 120 when parking vehicle 105. Additionally or alternatively, the vehicle parking function can include a parking assist function that helps maneuver vehicle 105 into a parking area.

[0083] The vehicle entertainment function can control one or more entertainment-related functions of vehicle 105. For example, the vehicle entertainment function can include a music function for controlling the radio or controlling another audio media source or visual media source. The vehicle entertainment function can control sound parameters (e.g., volume, bass, treble, speaker distribution) or select radio stations or media content types / sources.

[0084] Each vehicle function may include controllers 170A - 170C associated with that particular vehicle function 165A - 165C. The controllers 170A - 170C for a particular vehicle function may include control circuitry configured to operate its associated vehicle function 165A - 165C. For example, the controller may include circuitry configured to turn on a seat heating function, turn off a seat heating function, set a particular temperature or temperature level, etc.

[0085] In an embodiment, the controllers 170A - 170C for a particular vehicle function may include a sensor or otherwise be associated with a sensor that collects data indicating whether the vehicle function is on or off, the settings of the vehicle function, etc. For example, the sensor may be an audio sensor or a motion sensor. The audio sensor may be a microphone configured to collect audio input from the user 120. For example, the user 120 may provide a voice command to activate the radio function of the vehicle 105 and request a particular station. The motion sensor may be a vision sensor (e.g., a camera), an infrared sensor, a RADAR sensor, etc., configured to collect gesture input from the user 120. For example, the user 120 may provide a gesture movement to adjust the temperature function of the vehicle 105, thereby reducing the temperature inside the vehicle.

[0086] The controllers 170A - 170C may be configured to: transmit a signal to the control circuitry 135 or another in - vehicle system. The signal may encode data associated with the corresponding vehicle function. The encoded data may indicate, for example, function settings, timing, etc.

[0087] The user 120 may interact with the vehicle functions 165A - 165C via user input. The user input may specify the settings of the vehicle functions 165A - 165C selected by the user (″user - selected settings″). In an embodiment, the vehicle functions 165A - 165C may be associated with a physical interface, such as, for example, a button, a knob, a switch, a lever, a touch - screen interface element, or other physical mechanism. The physical interface may be physically manipulated to control the vehicle functions 165A - 165C according to the user - selected settings. For example, the user 120 may physically manipulate a button associated with the seat massage function to set the seat massage function to a five - level massage intensity. In an embodiment, the user 120 may interact with the vehicle functions 165A - 165C via user interface elements presented on the user interface of a display device (e.g., user interface elements of an infotainment system in the vehicle dashboard).

[0088] The technology of the present disclosure can collect data from user 120 indicating specific vehicle functions to be automatically controlled by vehicle 105, and generate a database of actions / skills / routines that can be automatically executed by vehicle 105 for a specific user 120. These automatically executable actions / skills / routines can be referred to as "automated vehicle actions". User 120 can authorize and activate computing system 130 to collect data and generate these automated vehicle actions. Such authorization / activation can be provided via a user input to a user interface of a display device (e.g., the infotainment system of vehicle 105). The technology for generating automated vehicle actions will now be described in more detail.

[0089] Figure 2 FIG. illustrates an example computing architecture 200 for generating automated vehicle actions according to an embodiment of the present disclosure. Architecture 200 can include: (i) various databases for storing information; (ii) services that perform automated tasks, respond to hardware events, provide data, listen for data requests from other software, etc.; and (iii) software clients. In an embodiment, the services and clients can be implemented as modules within their respective computing systems. For example, the services and clients can be implemented as modules on vehicle 105 (e.g., within computing system 130) or away from vehicle 105 (e.g., within computing platform 110). In an embodiment, one or more components of computing architecture 200 can be implemented on user device 115.

[0090] Computing system 130 can include various services and databases that can be implemented on vehicle 105 for generating automated vehicle actions based on user input provided by user 120. In an embodiment, computing system 130 can include: vehicle function services 205A - 205C, one or more user interfaces 210, automated vehicle action database 215, vehicle action manager 220, and vehicle embedded service 225.

[0091] Vehicle function services 205A - 205C can be configured to: listen for data associated with vehicle functions 165A - 165C. In an embodiment, computing system 130 can include one vehicle function service 205A - 205C for each vehicle function 165A - 165C. Vehicle function services 205A - 205C can listen for context data associated with the respective vehicle functions (e.g., via controllers 170A - 170C, associated sensors, etc.). The context data can indicate the conditions observed by computing system 130. Vehicle function services 205A - 205C can be configured to communicate the context data to vehicle embedded service 225.

[0092] One or more user interfaces 210 may be configured to: present information to user 120 and allow computing system 130 to obtain information from the user. For example, user interface 210 may be presented via a display device associated with computing system 130. For example, user interface 210 may be presented by using rendering techniques for processing code to generate interactive content that can be visualized on the display device. The display device may include a display screen (e.g., a touch screen) of an infotainment system or other user computing device on vehicle 105. User interface 210 may include text, symbols, graphics, images, etc. to convey information to user 120. In an embodiment, such information may be provided to user 120 via a prompt. User interface 210 may include one or more user interface elements that are programmed for user 120 to interact with to provide user input. User interface elements may include menus (e.g., drop-down lists), hyperlinks, text fields, toggle keys, soft buttons, virtual keyboards, selection elements, check boxes, or other types of user interface elements. User 120 may interact with user interface elements via various types of user input, including touch input, cursor input, audio input (e.g., voice commands), gesture input, or other types of user input).

[0093] User 120 may interact with user interface elements of user interface 210 to provide user input associated with vehicle functions 165A - 165C of vehicle 105. For example, as will be further described herein Figures 3 to 7 User 120 may interact with user interface elements to indicate preferred settings of vehicle functions 165A - 165C (e.g., seat temperature function, seat massage function, entertainment function) and trigger conditions (e.g., time, temperature, location) that will cause vehicle 105 to automatically control the vehicle functions 165A - 165C to achieve the preferred settings.

[0094] Still referring to Figure 2 , vehicle action manager 220 may be configured to: manage automated vehicle actions. In an embodiment, vehicle action manager 220 may include services for performing its management responsibilities. The management of automated vehicle actions may include coordinating, for example, the creation and modification of automated vehicle actions, conflict analysis, automated vehicle action persistence, situation observation, or automated vehicle action scheduling. Vehicle action manager 220 may be programmed to implement a collection of components and libraries for managing the generation of automated vehicle actions. In some embodiments, vehicle action manager 220 may include a framework that utilizes one or more software factories to return one or more objects for use by vehicle action manager 220.

[0095] In an embodiment, the vehicle action manager 220 may provide one or more software development kits (SDKs) that help enable a vehicle (e.g., its clients and services) to generate and execute automated vehicle actions. For example, the SDK may include: a standardized object library based on interface definitions, client objects for establishing communication to another client or device (e.g., IPC communication to the cloud platform 110), a client authentication mechanism, standardized logging and metrics (analytics) hooks and tools, and / or other components.

[0096] In an embodiment, the vehicle action manager 220 may include a client interface to the services of the vehicle action manager 220. For example, the vehicle action manager 220 may include a client interface configured to establish a client connection to the in-vehicle services of the vehicle action manager 220. This may include, for example, using inter-process communication (IPC) such as Unix domain sockets (IDS) or message queues (mqueue) to establish a connection to the service. In an embodiment, the manager client may not utilize client authentication on the vehicle 105. For example, the client-service relationship may be established at software build time such that client processes linked to the SDK are provided the ability to interact with the services of the vehicle action manager 220.

[0097] In an embodiment, the vehicle action manager 220 (or the vehicle embedded service 225) may maintain an automated vehicle action database 215. As will be further described herein, the automated vehicle action database 215 may store data structures that include command instructions for automated vehicle actions associated with a particular user 120 or user profile 230. In an embodiment, the automated vehicle action database 215 may concurrently store the automated vehicle actions of more than one user (or user profile).

[0098] The vehicle embedded service 225 may be a service for synchronizing, maintaining, and managing the execution of automated vehicle actions. The vehicle embedded service 225 may provide various client APIs and bridges to the vehicle 105 to infer context data (e.g., as data points) and execute automated vehicle actions.

[0099] The vehicle embedded service 225 may be configured to: receive data from the vehicle function services 205A - 205C and determine whether any trigger conditions for stored automated vehicle actions exist. The vehicle embedded service 225 may be configured to: in the presence of a trigger condition, send a signal to control the vehicle functions 165A - 165C according to the automated vehicle action, as will be further described herein.

[0100] The vehicle embedded service 225 can be configured to synchronize automated vehicle actions with a computing system remote from the vehicle 105. For example, the vehicle embedded service 225 can be configured to send data indicative of automated vehicle actions generated on the vehicle 105 to the computing platform 110 (e.g., a cloud-based server system).

[0101] The computing platform 110 can include various services and databases that can be implemented on the servers of the computing platform to support the management and generation of automated vehicle actions. In an embodiment, the computing platform 110 can include: a cloud embedded service 235 and a cloud database 240.

[0102] The cloud embedded service 235 can be a service for synchronizing, aggregating, maintaining, and managing automated vehicle actions in a system remote from the vehicle 105. In an embodiment, the cloud embedded service 235 can provide APIs for various clients to manage automated vehicle actions. Possible clients can include, for example, services running on the vehicle 105, mobile software applications (e.g., iOS, Android), or web applications.

[0103] In an embodiment, the cloud embedded service 235 can include or otherwise be associated with a cloud manager (outside the vehicle) that is configured to perform operations and functions similar to those of the vehicle action manager 220. For example, the cloud manager can include a client that is configured to establish a client connection to the cloud manager service (e.g., connect to the service using a TCP-based protocol such as HTTP). In some implementations, client authentication may be required to establish the connection. This can include, for example, using a token-based authentication scheme.

[0104] The cloud embedded service 235 can be configured to aggregate the automated vehicle actions of the user 120. Aggregation of automated vehicle actions can include storing the automated vehicle actions of a particular user in a memory in a manner associated with the user profile 230 of the user 120. The cloud embedded service 235 can be configured to aggregate automated vehicle actions created via multiple different sources. This can include, for example, automated vehicle actions created on different vehicles or via the user device 115. In some implementations, as will be further described herein, the cloud embedded service 235 can aggregate one or more automated vehicle actions created based on user input with one or more automated vehicle actions created via machine learning techniques.

[0105] The cloud - embedded service 235 can be configured to: maintain a data structure that identifies automated vehicle actions of a particular user 120. This can include, for example, receiving data indicating an automated vehicle action generated on vehicle 105, identifying a particular user profile 230 of user 120 of the vehicle 105 on which the automated vehicle action was generated, and providing the data indicating the automated vehicle action to be stored in the cloud database 240 in a manner associated with the user profile 230. The cloud - embedded service 235 can identify the user profile 230 from multiple user profiles based on data provided from the vehicle 105. This can include encrypted and pseudonymized data (e.g., an encrypted user ID) associated with user 120, which can be decrypted and used with a lookup function to access the appropriate user profile 230. The cloud - embedded service 235 can be configured to: update the cloud database 240 to include new automated vehicle actions or remove automated vehicle actions (e.g., when a user disables or deletes an action).

[0106] The cloud database 240 can store information of multiple users. For example, the cloud database 240 can store multiple data structures including automated vehicle actions. The corresponding data structures can include a table or list of automated vehicle actions associated with a particular user profile. The table / list can index the automated vehicle actions according to vehicle functions 165A - 165C. The corresponding data structures can be adjusted (e.g., when a new action is generated, a previous action is removed, etc.) to reflect an updated representation of the automated vehicle actions associated with a particular user profile. The cloud database 240 can store different data structures associated with different users. In an embodiment, the cloud database 240 can store multiple user profiles, each user profile being respectively associated with a different corresponding user.

[0107] In an embodiment, the cloud - embedded service 235 can be configured to: provide data indicating a user profile and its associated vehicle actions to the vehicle 105. For example, when the user 120 enters the vehicle 105, the user 120 can be identified by the vehicle - embedded service 225 (e.g., based on the user's key or a handshake between the user device and the vehicle 105, user profile selection on the host unit display). The user 120 may be different from the previous user operating the vehicle 105. The vehicle - embedded service 225 can send pseudonymized data indicating the user 120 and request data indicating the user profile 230 of the user 120 (and the automated vehicle actions associated with that user profile). The cloud - embedded service 235 can receive the request, access the cloud database 240 to retrieve the requested data, and send data indicating the requested user profile 230 (and the automated vehicle actions associated with that user profile) to the vehicle - embedded service 225. The vehicle - embedded service 225 can store data indicating the automated vehicle actions associated with the user 120 in the automated vehicle action database 215 (e.g., as the active user of the vehicle 105).

[0108] In an embodiment, the vehicle - embedded service 225 can request more than one user profile from the cloud - embedded service 235. For example, two users can enter the vehicle 105: a first user 120 as the driver and a second user 175 as the passenger (as Figure 1 shown). The computing system 130 can detect the presence of the first user based on a handshake between the first user's key (or mobile device) and the vehicle 105, or the first user 120 can provide user input to the display device of the vehicle 105 to select the first user's user profile. The computing system 130 can detect the presence of the second user 175 based on a handshake between the second user's key (or mobile device) and the vehicle 105, or the second user 175 can provide user input to the display device of the vehicle 105 to select the second user 175's profile. In response, the computing system 130 can send a request for the first user profile 230 of the first user 120 and the second user profile 260 of the second user 175 to the cloud - embedded service 235. The cloud - embedded service 235 can retrieve data indicating the first user profile 230 and the second user profile 260 from the cloud database 240 and send the profile data to the computing system 130.

[0109] In an embodiment, the user device 115 may be configured to: determine an automated vehicle action associated with the user 120. For example, the user device 115 may include a software application 245 that can be downloaded to the user device 115. The software application 245 may be associated with the vehicle 105, the computing platform 110, the manufacturer of the vehicle 105, the administrator of the vehicle 105, the distributor of the vehicle 105, the supplier of the vehicle 105, and the like.

[0110] The software application 245 may be programmed to present one or more user interfaces 250 via a display device of the user device 115. The user interface 250 may be similar to or provide functionality similar to the user interface 210. For example, the user interface 250 may include user interface elements that allow the user 120 to provide user input specifying preferred settings for the vehicle functions 165A - 165C and one or more trigger conditions for automatically activating the vehicle functions 165A - 165C. The user input may be provided to the user device 115, for example, via touch input. In an embodiment, the user input may be provided via audio input to an input device (e.g., a microphone) of the user device 115.

[0111] In an embodiment, the user device 115 may include an automated vehicle database 255. The automated vehicle database 255 may provide functionality similar to that of the automated vehicle database 215. For example, the automated vehicle database 255 may store automated vehicle actions generated via the user device 115 in a manner associated with the user profile 230 of the user 120.

[0112] The user device 115 may be configured to: send data indicating the automated vehicle action to the cloud platform 110. For example, the cloud - embedded service 235 may receive data indicating the automated vehicle action (or command instructions associated with the automated vehicle action) created by the user 120 via the software application 245 running on the user device 115. The cloud - embedded service 235 may store the data indicating the automated vehicle action in the cloud database 240. In an embodiment, the cloud - embedded service 235 may aggregate the automated vehicle actions generated via the user device 115 with one or more automated vehicle actions generated via another source (e.g., the computing system 130 of the vehicle 105).

[0113] Figure 3FIG. illustrates an example data stream 300 for generating automated vehicle actions based on user input in accordance with an embodiment of the present disclosure. The following description of data stream 300 is described using an example implementation in which computing system 130 is used to generate automated vehicle actions on vehicle 105. Additionally or alternatively, one or more portions of the pipeline of data represented by data stream 300 may be implemented via computing platform 110 or user device 115.

[0114] At (305), computing system 130 may receive a request to create an automated vehicle action (referred to as “AVA” in Figure 3 ). For example, user 120 may select a user interface element displayed on a display device of vehicle 105. The user interface element may include, for example, a “Create AVA” soft button that launches a software application or program for generating automated vehicle actions.

[0115] In response to the request, computing system 130 may generate content for presentation to the user via a user interface of the display device. The content may include one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of the vehicle and one or more settings of the vehicle function. As described herein, the settings may indicate a preferred setting of the user for the vehicle function. The trigger condition may indicate a situation in which the setting is to be activated. In an embodiment, the content may include a user interface that includes one or more user interface elements. The user interface elements may be presented via the user interface to prompt user 120 to input information.

[0116] In one example, Figure 4 FIG. illustrates an example user interface 400 on an example display device 405 in accordance with an embodiment of the present disclosure. Display device 405 may be a display device on vehicle 105 and may be included in (or otherwise communicatively coupled to) computing system 130 of vehicle 105.

[0117] The computing system 130 may receive data of a user input indicating one or more trigger conditions via the user interface 400. For example, the user interface 400 may include one or more user interface elements 410 that allow the user 120 to provide a user input to select one or more trigger conditions. The user interface element 410 may include soft buttons or other interactive user interface elements to allow the user 120 to provide a user input associated with the trigger condition. The trigger condition may be one or more conditions that will be detected by the computing system 130 to trigger the activation or adjustment of a user-selected setting for a particular vehicle function. This may include date, time, location, temperature, weather, traffic, noise, or other types of trigger conditions.

[0118] In an embodiment, the user 120 may interact with the element by touching a display device, scrolling on the user interface element 410, etc. to display instructions or guidance associated with the user interface element 410. For example, the user 120 may provide a touch input to at least one of the user interface elements 410 to display Figure 5 the information element 500 (e.g., a text box) shown. The information element 500 may include text providing guidance to the user 120 about the type of input that can be provided via the user interface element 410. This may include, for example, an explanation about the type, quantity, etc. of trigger conditions that can be provided by the user 120 for a particular automated vehicle action.

[0119] In an embodiment, the user 120 may interact with the element by touching a display device, clicking on the user interface element 410, etc. to display another user interface element that allows the user 120 to provide a user input. For example, as Figure 6 shown, the user interface 400 may include a virtual keyboard 600 configured to allow the user 120 to input one or more characters to qualify the trigger condition. Additionally or alternatively, the user interface 400 may include a drop-down list, a toggle key, a range input field, etc.

[0120] When using the user interface 400, the user 120 can provide user input to specify one or more trigger conditions for an automated vehicle action. For example, the user 120 can interact with the user interface element 410 (or the virtual keyboard 600) to indicate location conditions, time conditions, temperature conditions, or other types of trigger conditions (e.g., humidity, weather, traffic, external noise level). Location conditions can include a distance range / threshold from a specific point of interest (e.g., represented as a latitude / longitude pair), a known location, a known navigation route, etc. Time conditions can include a time range, time of day, phase of the day (e.g., dawn, morning, noon, afternoon, evening, night, late night), day of the week, week, month, a certain date, etc. Temperature conditions can include a temperature range, a minimum temperature threshold, a maximum temperature threshold, etc.

[0121] In one example, the user 120 may desire to set a location trigger condition for an automated vehicle action associated with the user's daily work commute. The user 120 can (e.g., via the user interface 400) provide user input to indicate that the vehicle 105 will be at the user's home or on the way to the user's workplace as a trigger condition for implementing an automated vehicle action.

[0122] Additionally or alternatively, the user may desire to set a time trigger condition for an automated vehicle action associated with the user's daily work commute. The time trigger condition can indicate that an automated vehicle action will be implemented when the user 120 starts driving the vehicle between 7:50 am and 8:25 am on each day from Monday to Friday.

[0123] Additionally or alternatively, the user may desire to set a temperature trigger condition for an automated vehicle action associated with the user's daily work commute. The user 120 can (e.g., via the user interface 400) provide user input to indicate that the external temperature will be below 70 degrees Fahrenheit to implement an automated vehicle action. In Figure 7 which, example trigger conditions 700A - 700C provided by the user 120 are shown in the user interface 400.

[0124] Referring again to Figure 4, the computing system 130 may receive, via the user interface 400, data of user input indicating one or more settings that specify vehicle functions 165A - 165C. The settings may indicate the level, program, or status of the vehicle functions 165A - 165C, which may be implemented when a trigger condition is met. For example, the user interface 400 may include one or more user interface elements 415 that allow the user 120 to provide user input to select one or more settings of one or more vehicle functions 165A - 165C. The user interface elements 415 may include soft buttons or other interactive user interface elements to allow the user 120 to provide user input associated with the settings. As described herein, vehicle functions may include: window functions, seat functions, temperature functions, entertainment / music functions, or another type of function. Seat functions may include, for example, seat temperature functions, seat ventilation functions, or seat massage functions. In one example, one or more settings of a vehicle function may indicate: on / off status, open / close status, temperature level, massage level, music selection, contact point (e.g., phone number), navigation route, or another type of setting.

[0125] In an embodiment, the user 120 may interact with the element by touching a display device, scrolling on the user interface element 415, etc., to display instructions or guidance associated with the user interface element 415. For example, the user 120 may provide a touch input to at least one of the user interface elements 415 to display Figure 5 the information element 505 shown. The information element 505 may include text providing guidance to the user 120 about the type of input that may be provided via the user interface element 415. This may include, for example, an explanation of the type, quantity, etc. of settings that may be provided by the user 120 for a particular automated vehicle action.

[0126] In an embodiment, the user 120 may interact with the element by touching a display device, clicking on the user interface element 415, etc., to display another user interface element that allows the user 120 to provide user input to specify a setting. For example, as Figure 6 shown, the user interface 400 may include a virtual keyboard 600I configured to allow the user 120 to input one or more characters to define a setting. Additionally or alternatively, the user interface 400 may include a drop-down list, a toggle key, a range input field, etc.

[0127] When using the user interface 400, the user 120 may provide user input to specify one or more settings of an automated vehicle action. For example, the user 120 may interact with the user interface element 410 (or the virtual keyboard 600) to indicate one or more settings of one or more vehicle functions. For example, as Figure 7As shown, user 120 may provide user input to indicate settings 705A - 705C. The first setting 705A may indicate that when one or more of the trigger conditions 700A - 700B are met, the seat temperature function will be set to "high gear". The second setting 705B may indicate that when one or more of the trigger conditions 700A - 700C are met, the seat massage function will be set to "classic massage". The third setting 705C may indicate that when one or more of the trigger conditions 700A - 700C are met, the music function will be set to play a radio station (or other music source) that plays "soft jazz".

[0128] In an embodiment, the respective settings 705A - 705C may be associated with one or more of the trigger conditions 700A - 700C. For example, the first setting 705A may be associated with trigger conditions 700A, 700B, and 700C such that when all three trigger conditions are met, the seat temperature function is set to "high gear" during the user's morning commute. In another example, the second setting 705B may be associated with trigger conditions 700A and 700B (but not 700C) respectively such that when the location and time conditions are met, the seat massage function is set to "classic massage" during the user's morning commute regardless of the external temperature.

[0129] Referring again to Figure 4 , in an embodiment, the computing system 130 may receive data indicating an identifier of a user selection of an automated vehicle action. For example, the user interface 400 may include a user interface element 420 that is configured to allow user 120 to provide an identifier of a user selection of an automated vehicle action. The identifier of the user selection may include, for example, a name that may be associated with a particular automated vehicle action.

[0130] In an embodiment, user 120 may interact with the element by touching a display device, scrolling on the user interface element 420, etc. to display instructions or guidance associated with the user interface element 420. For example, user 120 may provide a touch input to the user interface element 420 to display Figure 5 the information element 510 shown. The information element 510 may include text providing guidance to user 120 about the type of input that may be provided via the user interface element 420. This may include, for example, suggestions for naming particular automated vehicle actions in a way that user 120 can remember.

[0131] In an implementation, user 120 may interact with the element, such as by touching a display device, clicking on user interface element 420, etc., to display another user interface element that allows user 120 to provide user input to enter a user-selected identifier for an automated vehicle action. For example, as Figure 6 shown, user interface 400 may include a virtual keyboard 600 that is configured to allow user 120 to enter the name of an automated vehicle action.

[0132] When using user interface 400, user 120 may provide user input to specify a user-selected identifier for an automated vehicle action. For example, as Figure 7 shown, user 120 may provide user input to user interface element 420 (or virtual keyboard 600) to indicate that the automated vehicle action will be associated with a user-selected identifier 710 corresponding to the name "Morning Commute Action".

[0133] In an implementation, user interface 400 may include a user interface element 715 (also shown as Figure 4 user interface element 425 in ) that allows user 120 to submit an automated vehicle action. In one example, after viewing trigger conditions 700A - 700C and settings 705A - 705C, user 120 may interact with user interface element 715 (e.g., a soft button) to submit the automated vehicle action for further analysis by computing system 130.

[0134] Return Figure 3 , at (310), computing system 130 may determine an automated vehicle action that defines the relationship between one or more trigger conditions 700A - 700C and one or more settings 705A - 705C of one or more vehicle functions 165A - 165C. The automated vehicle action may be considered a skill (or routine) of vehicle 105 that describes the automated execution of vehicle functions 165A - 165C based on the situation. The automated vehicle action may indicate one or more settings 705A - 705C of one or more vehicle functions 165A - 165C specified by user 120, and one or more trigger conditions 700A - 700C for automatically implementing settings 705A - 705C.

[0135] As described herein, an automated vehicle action may indicate at least one of the following: The vehicle 105 will automatically control the timing, location, or conditions of vehicle functions 165A - 165C according to one or more settings 705A - 705C. In an implementation, an automated vehicle action may include a logical statement (e.g., an if / then statement) that indicates that if a trigger condition 700A - 700C is detected, then the vehicle 105 will automatically control one or more of the vehicle functions 165A - 165C according to one or more settings 705A - 705C (e.g., to activate the corresponding setting).

[0136] In one example, an automated vehicle action designated as a "morning commute action" may indicate that if the vehicle 105: (i) is at or near the user's home or en route to the user's workplace; (ii) the time is between 7:50 a.m. and 8:25 a.m. on Monday, Tuesday, Wednesday, Thursday, or Friday; and (iii) the temperature is below 70 degrees Fahrenheit, then the vehicle 105 will automatically activate the "high" setting of the seat temperature function. Additionally or alternatively, an automated vehicle action designated as a "morning commute action" may indicate that if the vehicle 105: (i) is at or near the user's home or en route to the user's workplace; and (ii) the time is between 7:50 a.m. and 8:25 a.m. on Monday, Tuesday, Wednesday, Thursday, or Friday, then the vehicle 105 will automatically activate the "classic massage" setting of the seat massage function and control the vehicle's entertainment system to play "soft jazz".

[0137] Referring again to Figure 3 , at (315), the computing system 130 may determine whether there is a conflict between the newly generated automated vehicle action and a pre - existing automated vehicle action. Such conflict resolution may occur before presenting the automated vehicle action to the user 120 (e.g., for confirmation); or storing the automated vehicle action in the database 215 for the vehicle 105 to execute.

[0138] To perform the conflict resolution analysis, the computing system 130 may utilize a conflict analyzer 370. The conflict analyzer 370 may be implemented as a module of the computing system 130. The conflict analyzer 370 may be configured to: determine whether an automated vehicle action conflicts with another pre - existing automated vehicle action (e.g., stored in the database 215). If it is not possible for the vehicle 105 to execute both automated vehicle actions without modifying one of them, then a conflict may be determined.

[0139] The conflict analyzer 370 can determine whether there is a conflict between automated vehicle actions in various ways. In an implementation, the conflict analyzer 370 can determine that there is a conflict when two automated vehicle actions are assigned the same name. The conflict analyzer 370 can be configured to detect name conflicts using string comparison or substring check analysis.

[0140] In an implementation, the conflict analyzer 370 can determine that there is a conflict between automated vehicle actions based on the domain associated with the context of the automated vehicle action or the vehicle functions 165A - 165C to be controlled. The conflict domain can be identified by the association of the controller 170A - 170C (or ECU) with the execution of the automated vehicle action. In the case where the vehicle actions involve the same controller 170A - 170C (or ECU) and the controller 170A - 170C cannot concurrently implement two settings of a specific vehicle function, the computing system 130 can determine that there is a conflict. For example, automated vehicle actions based on climate cannot simultaneously set the climate control temperature to maximum heating and maximum cooling.

[0141] In an implementation, the conflict analyzer 370 can determine whether there is a conflict between an automated vehicle action and an action taken by the vehicle 105 due to an explicit command from the user. For example, the user 120 can provide audio input (e.g., a verbal voice command) to the vehicle 105 to perform navigation guidance to a place of interest (e.g., a restaurant). The trigger condition of the automated vehicle action can indicate that the automatic navigation setting for guiding the user to work will be executed simultaneously. Therefore, the conflict analyzer 370 can determine that there is a conflict between the voice - activated navigation and the automated vehicle action.

[0142] The computing system 130 can resolve conflicts based on one or more conflict resolution strategies. The strategies can be programmed to automatically resolve which automated vehicle actions are enabled and which are disabled. An example strategy can include enabling the most recently determined automated vehicle action and disabling another automated vehicle action. Another example strategy can include enabling automated vehicle actions that are more likely to occur at a higher frequency (e.g., during a morning commute) and disabling another (e.g., one that is only activated during a specific season). Additionally or alternatively, another example strategy can include enabling or disabling automated vehicle actions based on a hierarchy of automated vehicle actions. Additionally or alternatively, another example strategy can include supporting the setting of vehicle functions based on an explicit command from the user, rather than performing an automated vehicle action. Additionally or alternatively, another example strategy can include supporting automated vehicle actions created on the vehicle 105 (e.g., via the computing system 130), rather than automated vehicle actions created outside of the vehicle 105 (e.g., via the user device 115).

[0143] Additionally or alternatively, an example strategy can be configured to: help resolve conflicts based on the context of the vehicle 105. For example, the strategy can be configured to: prevent the activation of a certain function given the weather, traffic conditions, noise level, or other current or future conditions of the vehicle 105. For example, if it is (or is predicted to be) raining, the noise is too high, etc., an automated vehicle action associated with opening a window (e.g., a sunroof) may not be activated. The prediction of rain, elevated noise levels, etc. can be determined based on data indicating future operating conditions of the vehicle 105 (e.g., weather data predicting rain, route data showing a route through a noisier area). This can help resolve conflicts between automated vehicle actions by supporting more context-appropriate automated vehicle actions for the vehicle.

[0144] In an embodiment, if none of the strategies implemented by the conflict analyzer 370 automatically resolve the conflict, content can be presented to the user 120 on the user interface to manually resolve the conflict. For example, in response to determining that a conflict does exist, the computing system 130 can generate a prompt for presentation to the user 120 via the user interface 400 of the display device 405. The prompt can request that the user 120 indicate whether to replace a pre-existing automated vehicle action with a new automated vehicle action (e.g., a "morning commute action") or discard the new automated vehicle action. A disabled automated vehicle action can remain disabled until, for example, it is manually adjusted by the user 120.

[0145] In an implementation, user 120 may select to edit at least a portion of a newly determined automated vehicle action and / or a pre-existing automated vehicle action. For example, user 120 may select to edit the "morning commute action" to remove a music function setting to resolve a conflict with a pre-existing automated vehicle action that includes a conflicting music function setting.

[0146] At (320), once conflict analyzer 370 determines that there are no conflicts or any conflicts are resolved, conflict analyzer 370 may notify vehicle action manager 220 that there are no conflicts with the automated vehicle action (e.g., the "morning commute action").

[0147] In an implementation, after conflict analysis, computing system 130 may confirm the automated vehicle action with user 120. To do so, computing system 130 may generate content for presentation to user 120 via user interface 400 of display device 405. The content may request user 120 to approve the automated vehicle action. The content may indicate a user-selected identifier 710 of the automated vehicle action, one or more associated vehicle functions 165A - 165C, one or more settings 705A - 705C, and one or more trigger conditions 700A - 700C associated with the automated vehicle action. The content may be provided via a display device on vehicle 105 and / or a display device of user device 115. User 120 may interact with user interface 400 to confirm that user 120 desires computing system 130 to create the automated vehicle action.

[0148] At (325), computing system 130 may persist the automated vehicle action. To do so, computing system 130 may output command instructions based on the automated vehicle action. Computing system 130 may output command instructions for vehicle 105 to implement the automated vehicle action (e.g., the "morning commute action") for automatically controlling vehicle functions 165A - 165C based on whether vehicle 105 detects one or more trigger conditions 700A - 700C. The command instructions may be computer-executable instructions for vehicle 105 to implement the automated vehicle action for automatically controlling one or more vehicle functions 165A - 165C according to one or more settings 705A - 705C based on whether vehicle 105 detects one or more trigger conditions 700A - 700C.

[0149] In an embodiment, the computing system 130 may store command instructions in an accessible memory on the vehicle 105 for execution at a later time. For example, the command instructions may be stored in the automated vehicle actions database 215 along with command instructions associated with other automated vehicle actions. The database 215 may be updated when a new automated vehicle action is created, an existing automated vehicle action is changed, disabled, enabled, etc.

[0150] In an embodiment, various components of the computing system 130 may be notified of the persistence of an automated vehicle action. For example, at (330), the vehicle action manager 220 may be notified that a "morning commute action" has been created, such that the vehicle action manager 220 may manage the implementation of the automated vehicle action. Additionally or alternatively, at (335), the vehicle embedded service 225 may be notified of the creation of the "morning commute action".

[0151] In an embodiment, at (340), the user 120 may be notified of the creation of the "morning commute action". For example, the computing system 130 may generate content for presentation to the user 120 via a user interface of a display device. The content may include a notification indicating: "A morning commute action has been created". The notification may be presented via the display device 405 of the vehicle 105 or the user device 115.

[0152] At (345), the computing system 130 may begin monitoring for trigger conditions 700A - 700C. To do so, the computing system 130 may use the context observer 375. The context observer 375 may be implemented as a module of the computing system 130 (e.g., of the vehicle embedded service 225). The context observer 375 may be configured to: monitor signals from the vehicle 105 to detect the occurrence of one or more trigger conditions 700A - 700C. Data indicating the trigger conditions 700A - 700C may be provided to (or accessed by) the context observer 375 to refresh the context observer 375. In this way, the context observer 375 may stay up-to-date on which trigger conditions the context observer 375 will monitor.

[0153] The computing system 130 (e.g., the context observer 375) can detect the occurrence of one or more trigger conditions 700A - 700C. The detection can be based on signals generated by vehicle functions services 205A - 205C, one or more sensors (e.g., a thermometer), or one or more other components of the vehicle 105 (e.g., an internal clock, the positioning system 155). The signals can encode data indicating the trigger conditions 700A - 700C. In one example, the signal can indicate that the vehicle 105 is at the user 120's home or along the route to the user's workplace. The route can be a route requested by the user 120 (e.g., via the vehicle's navigation function) or a route that the vehicle computing system 130 identifies as a route that the vehicle 105 frequently travels to reach the user's workplace. In another example, the signal can indicate that the time is 8:05 am and the day is Monday. In another example, the signal can indicate that the external temperature is 62 degrees Fahrenheit.

[0154] Based on these signals, the computing system 130 can determine the occurrence of the trigger conditions 700A - 700C. For example, the computing system 130 can analyze the information encoded in the signal to determine that the location trigger condition 700A has occurred because the vehicle 105 may be going to the user's workplace. The computing system 130 can determine that the time trigger condition 700B has occurred because the time 8:05 am is between 7:50 am and 8:25 am and the day is Monday. The computing system 130 can determine that the temperature trigger condition 700C has occurred because the temperature 62 degrees Fahrenheit is below the 70 - degree Fahrenheit threshold.

[0155] Based on the trigger conditions 700A - 700C, the computing system 130 can send one or more signals to implement automated vehicle actions. More specifically, the computing system 130 (e.g., the vehicle - embedded service 225) can send one or more signals to implement one or more settings 705A - 705C of one or more vehicle functions 165A - 165C associated with the "morning commute actions". The signals can be sent to controllers 170A - 170C that are configured to activate / adjust the vehicle functions 165A - 165C to the settings 705A - 705C. In one example, the computing system 130 can send a signal to the seat - temperature function to activate the "high - grade" heating setting, send a signal to the controller of the seat - massage function to activate the "classic massage" setting, and send a signal to the controller of the entertainment function to play "soft jazz".

[0156] In an implementation, the computing system 130 can generate content (e.g., a notification) indicating that the vehicle 105 is implementing or has implemented an automated vehicle action. The content can be presented to the user 120 via a user interface of a display device (e.g., of the vehicle's infotainment system).

[0157] Figure 8 FIG. illustrates an example user interface 800 on an example display device 405 in accordance with an embodiment of the present disclosure. The user interface 800 may include a user interface element 805 that notifies a user 120 of an automated vehicle action automatically activated by a vehicle 105. In an embodiment, the user interface 800 may include a user interface element 810 (e.g., a soft button) with which the user 120 may interact to stop, pause, or delay (e.g., to effect at another time) or cancel the implementation of the automated vehicle action. Additionally or alternatively, the user interface 800 may include one or more user interface elements 815, 820 configured to allow the user 120 to edit the automated vehicle action or disable or delete the automated vehicle action. Editing the automated vehicle action may include changing one or more of the trigger conditions, one or more of the settings, or one or more of the associated vehicle functions.

[0158] In an embodiment, the user interface 800 may include one or more user interface elements 825A-825D indicating the vehicle functions that are activated. In an embodiment, the user interface elements 825A-825C may indicate the vehicle functions that are activated or controlled for an automated vehicle action (e.g., a "morning commute action"). In an embodiment, the user interface 800 may include a user interface element 825D that indicates a vehicle function that is activated (e.g., a navigation function) but may not be a vehicle function designated for automatic control associated with the automated vehicle action. In an embodiment, the user interface elements 825A-825D may allow the user 120 to provide user input to change the settings of the associated vehicle functions. This may include, for example, increasing or decreasing the seat temperature setting.

[0159] Return Figure 3 , at (350), the computing system 130 may facilitate the synchronization of the automated vehicle action. This may occur before, during, or after the automated vehicle action is implemented on the vehicle 105. To assist in synchronizing the automated vehicle action, the computing system 130 may communicate with a computing platform 110 (e.g., a cloud-embedded service 235). For example, the computing system 130 (e.g., a vehicle action manager 220) may send a communication indicating command instructions associated with the automated vehicle action over a network to a server system for storage in a manner associated with the user profile 230 of the user 120.

[0160] The computing platform 110 can be configured to: aggregate multiple automated vehicle actions for a specific user 120. In an implementation, the computing platform 110 can store command instructions for each automated vehicle action in one or more sets for indexing the automated vehicle actions. The corresponding sets can include sets of user-selected settings, trigger conditions, and the like.

[0161] For example, Figures 9A to 9B Data structures 900A - 900B are illustrated that include multiple automated vehicle actions. Data structure 900A can be, for example, a table, list, etc. that indexes the corresponding automated vehicle actions 905A - 905C. The automated vehicle actions 905A - 905C can be represented as objects that store setting objects and trigger condition objects. Each object can also maintain a set of metadata (such as a serial number, unique identifier, assigned name, etc.) for uniquely identifying the automated vehicle action. In an implementation, the automated vehicle actions 905A - 905C can be stored or indexed according to the type of action (e.g., ClimateControlAction, NavigationRouteAction). In an implementation, the automated vehicle actions 905A - 905C can be associated with an action affinity that defines the responsibility of the computing system 130 (e.g., vehicle - embedded service 225), the computing platform 110 (e.g., cloud - embedded service 235), or the user device 115 for a particular automated vehicle action 905A - 905C.

[0162] The automated vehicle actions 905A - 905C (e.g., the command instructions associated therewith) can be stored in a manner associated with the user's user profile. For example, data structure 900A can store the automated vehicle actions 905A - 905C and can be associated with a first user profile 230 associated with a first user 120. The automated vehicle actions 905A - 905C can be those actions created based on user input provided by the first user 120 (e.g., using the techniques described herein). Data structure 900B can store the automated vehicle actions 950A - 950C and can be associated with a second user profile 260 associated with a second user 175 ( Figure 1 as shown). The automated vehicle actions 950A - 950C can be those actions created based on user input provided by the second user 175 (e.g., using the techniques described herein). In this way, the automated vehicle actions 905A - 905C, 950A - 950C can be aggregated in a manner that indicates which automated vehicle actions 905A - 905C, 950A - 950C are associated with which corresponding users 120, 175.

[0163] In an implementation, automated vehicle actions 905A - 905C associated with a particular user 120 can be aggregated from multiple different computing sources. For example, computing platform 110 can be configured to: aggregate automated vehicle actions 950A - 950C generated by one or more vehicles, one or more user devices, cloud platform 110, or another computing source. In one example, a first automated vehicle action 905A can be generated by the computing system 130 of a first vehicle 105 based on user input provided via a user interface 400 presented on a display device on the first vehicle 105. A second automated vehicle action 905B can be generated by user device 115 based on user input provided via a user interface 250 presented on a display device of user device 115. A third automated vehicle action 905C can be generated by the computing system of a second vehicle 180 ( Figure 1 as shown) based on user input provided via a user interface presented on a display device on the second vehicle 180. Computing platform 110 can aggregate the first automated vehicle action 905A, the second automated vehicle action 905B, and the third automated vehicle action 905C from these three separate sources in a data structure 900A of the first user 120. The aggregated automated vehicle actions 905A - 905C can be associated with the user profile 230 of the first user 120. This can allow computing platform 110 to more efficiently retrieve the automated vehicle actions 905A - 905C of the first user 120.

[0164] In an implementation, computing platform 110 can aggregate automated vehicle actions generated based on user input and automated vehicle actions generated via artificial intelligence running on a vehicle. For example, a first automated vehicle action 905A can be generated by the computing system 130 of a vehicle 105 based on user input from user 120, as described herein. A third automated vehicle action 905C can be generated by the computing system of the vehicle or cloud platform 110 using one or more machine learning models according to the systems and methods disclosed in U.S. Patent Application No. 18 / 081,318, filed December 14, 2022, the entire disclosure of which is incorporated herein by reference. The first automated vehicle action 905A generated based on user input can be aggregated and stored (e.g., in data structure 900A) with the third automated vehicle action 905C generated based on a machine learning model.

[0165] In an embodiment, the automated vehicle actions 905A - 905C of user 120 may be capable of being transferred to multiple different vehicles. In one example, user 120 may enter a second vehicle 180. The computing system of the second vehicle 180 may provide data indicating that user 120 has entered the second vehicle 180 to computing platform 110. In an embodiment, this may include a request for automated vehicle actions associated with user 120. Computing platform 110 may receive the data indicating user 120 and retrieve the aggregated automated vehicle actions 905A - 905C associated with user 120. Computing platform 110 may provide data to the second vehicle 180 that indicates command instructions for the automated vehicle actions 905A - 905C associated with user profile 230 of user 120. Thus, user 120 may experience the automated vehicle actions generated via the first vehicle 105 (or user device 115) while in the second vehicle 180.

[0166] Figures 10A to 10B A flowchart illustrating an example method 1000 for generating automated vehicle actions according to an embodiment of the present disclosure is shown. Method 1000 may be executed by a computing system described with reference to other figures. In an embodiment, method 1000 may be executed by Figure 1 control circuit 135 of computing system 130. One or more portions of method 1000 may be implemented as algorithms on hardware components of the devices described herein (e.g., as in Figures 1 to 8 and Figure 12 ), for example, to generate automated vehicle actions as described herein. For example, the steps of method 1000 may be implemented as operations / instructions capable of being executed by computing hardware.

[0167] Figures 10A to 10B Elements are illustrated and discussed in a particular order for purposes of illustration. Those of ordinary skill in the art will understand that, in the context of using the disclosure provided herein, the elements of any of the methods discussed herein may be adapted, rearranged, extended, omitted, combined, or modified in various ways without departing from the scope of the present disclosure. Figures 10A to 10B is described with reference to elements / terms described with respect to other systems and figures for purposes of example illustration and is not meant to be limiting. One or more portions of method 1000 may additionally or alternatively be executed by other systems. For example, one or more portions of method 1000 may also or alternatively be executed by Figure 1 user device 115 (e.g., the control circuit of the user device) or control circuit 185 of computing platform 110.

[0168] In an embodiment, method 1000 may begin with or otherwise include step 1005, in which computing system 130 generates content for presentation to user 120 via user interface 400 of display device 405. User 120 may be a user of vehicle 105, such as, for example, a driver or a passenger. The content may include one or more user interface elements 410, 415 for inputting one or more trigger conditions 700A - 700C associated with vehicle functions 165A - 165C of vehicle 105 and one or more settings 705A - 705C of vehicle functions 165A - 165C. In an embodiment, display device 405 may be a display screen of vehicle 105. This may include an interactive dashboard or a touch screen of an in - vehicle infotainment system. In an embodiment, display device 405 may be a display screen of a mobile user device. This may include, for example, a touch screen of a mobile phone.

[0169] As described herein, user 120 may provide user input associated with various vehicle functions 165A - 165C on vehicle 105. This includes, for example, window functions, seat functions, temperature functions, or entertainment functions (e.g., music functions). This may also include communication functions (e.g., in - vehicle phone functions), personal assistance functions, navigation functions, or other vehicle functions. In an embodiment, the seat function may include multiple seat - related functions. For example, the seat function may include a seat temperature function, a seat ventilation function, or a seat massage function.

[0170] In an embodiment, method 1000 may include step 1010, in which computing system 130 receives, via user interface 400, data indicative of user input specifying one or more trigger conditions 700A - 700C. As described herein, trigger conditions 700A - 700C may indicate situations in which vehicle functions 165A - 165C will be automatically controlled by vehicle 105. Trigger conditions 700A - 700C may include location trigger conditions, time trigger conditions, temperature trigger conditions, weather trigger conditions (e.g., rain, humidity level, snow), traffic trigger conditions (e.g., traffic density, traffic level), noise trigger conditions (e.g., noise level in the surroundings of vehicle 105), or other types of trigger conditions.

[0171] User 120 may interact with user interface 400 to provide user input indicating trigger conditions 700A - 700C. For example, user 120 may provide a touch input to at least one user interface element 410 of user interface 400 to cause a display device to present an input element (e.g., a virtual keyboard). User 120 may provide a touch input to the input element to indicate trigger conditions 700A - 700C. This may include specifying a threshold distance from the user's home (e.g., represented as a latitude / longitude coordinate pair) or a location trigger condition 700A where the vehicle 102 will travel to a specific location (e.g., the user's workplace). Additionally or alternatively, trigger conditions 700A - 700C may include a time trigger condition 700B indicating a time range. Additionally or alternatively, trigger conditions 700A - 700C may include a temperature trigger condition 700C indicating a temperature threshold, range, etc.

[0172] In an embodiment, method 1000 may include step 1015 in which computing system 130 receives, via user interface 400, data of user input indicating one or more settings 705A - 705C specifying vehicle functions 165A - 165C. Settings 705A - 705C may indicate user - preferred settings, programs, levels, etc. of vehicle functions 165A - 165C to be activated based on the context (e.g., occurrence of trigger conditions 700A - 700C). As described herein, settings 705A - 705C may indicate at least one of the following: (i) on / off state; (ii) open / close state; (iii) temperature level; (iv) massage level; or (v) music selection. In one example, user 120 may provide user input (e.g., a touch input to user interface 400, a voice input) that specifies a "high - grade" heating setting for a seat - temperature function, a "classic massage" setting for a seat - massage function, and a "soft jazz" setting for an entertainment / music function.

[0173] In an embodiment, method 1000 may include step 1020, in which computing system 130 determines an automated vehicle action that defines a relationship between one or more trigger conditions 700A - 700C and one or more settings 705A - 705C of vehicle functions 165A - 165C. The automated vehicle action may indicate at least one of the following: (i) the time, (ii) the location, or (iii) the temperature conditions (e.g., temperature, traffic, weather, noise, other conditions) under which vehicle 105 will automatically control vehicle functions 165A - 165C according to one or more settings 705A - 705C. As described herein, the automated vehicle action may include an if / then statement that indicates that if a location, time, and trigger conditions 700A - 700C are detected, then vehicle 105 will automatically control the seat heating function, the seat massage function, and the entertainment function to achieve a "high - grade" heating setting for the seat temperature, a "classic massage" setting for the seat massager, and adjust the vehicle radio (or other source) to play "soft jazz", respectively. In an embodiment, user 120 may provide a name for the automated vehicle action (e.g., "morning commute action").

[0174] In an embodiment, method 1000 may include step 1025, in which computing system 130 determines whether there is a conflict between the automated vehicle action and a pre - existing automated vehicle action. In an embodiment, computing system 130 may compare the trigger conditions 700A - 700C of the new automated vehicle action (e.g., "morning commute action") and the pre - existing automated vehicle action to determine whether these actions can be triggered concurrently. If so, computing system 130 may compare the settings of the newer automated vehicle action with the settings of the pre - existing automated vehicle action to determine whether these settings can be implemented concurrently. For example, if the associated controller (or ECU) cannot activate the settings during an overlapping time period, then these settings may not be able to be implemented concurrently. For example, the controller 170B for the seat massage function of the driver's seat may be programmed to activate only one massage setting at a time. Thus, controller 170B may not be able to activate the "classic massage" setting of the new automated vehicle action and the "gentle massage" setting of the pre - existing automated vehicle action (if these actions can be triggered by the same conditions).

[0175] In an embodiment, method 1000 may include step 1030, in which computing system 130 generates content for presentation to user 120 via user interface 400 of display device 405 based on an automated vehicle action. In an embodiment, in response to determining that a conflict does in fact exist, computing system 130 may generate a prompt for presentation to user 120 via user interface 400 of display device 405. The prompt may indicate that the automated vehicle action conflicts with a pre-existing automated vehicle action and request that user 120 adjust at least one of trigger conditions 700A - 700C or settings 705A - 705C. Additionally or alternatively, the prompt may request that user 120 indicate whether to replace the pre-existing automated vehicle action with the new automated vehicle action or discard the new automated vehicle action.

[0176] In an embodiment, the content may present a prompt requesting user 120 to approve or confirm the automated vehicle action. The prompt may indicate one or more vehicle functions 165A - 165C, settings 705A - 705C, trigger conditions 700A - 700C, and / or names associated with the automated vehicle action. In an embodiment, user 120 may interact with user interface elements 400 to confirm trigger conditions 700A - 700C, settings 705A - 705C, or names.

[0177] Now referring Figure 10B , in an embodiment, method 1000 may include step 1035, in which computing system 130 receives user input indicating approval by user 120 of the automated vehicle action. As described herein, the user input may include a touch input to a user interface element, a voice command, etc. In an embodiment, user 120 may reject or choose to discard the automated vehicle action. In the case of rejection, method 1000 may return to step 1005.

[0178] In an embodiment, method 1000 may include step 1040, in which computing system 130 outputs command instructions for vehicle 105 to implement the automated vehicle action for automatically controlling one or more vehicle functions 165A - 165C based on whether vehicle 105 detects one or more of trigger conditions 700A - 700C. The command instructions may include computer-executable instructions that cause computing system 130 to monitor trigger conditions 700A - 700C (e.g., time, location, temperature, etc.) specified by user 120 and, if those trigger conditions are detected, implement one or more of settings 705A - 705C (e.g., activate "high-grade" heated seat setting, activate "classic massage" setting, play "soft jazz") specified by user 120.

[0179] In an embodiment, method 1000 may include step 1045, in which the computing system 130 provides command instructions to be stored in an accessible memory on the vehicle 105 for execution at a later time. For example, the command instructions may be stored in a memory on the vehicle 105 (e.g., the automated vehicle action database 215). The command instructions may be executed at a later time (e.g., when a trigger condition 700A - 700C is detected) (e.g., to activate settings 705A - 705C).

[0180] In an embodiment, method 1000 may include step 1050, in which the computing system 130 sends a communication indicating the command instructions over a network to a server system for storage in a manner associated with the user profile 230 of the user 120. As described herein, the command instructions may be provided to a computing platform 110 (e.g., a cloud - based server system). The computing platform 110 may store the command instructions in a memory external to the vehicle 105 (e.g., the cloud database 240). The command instructions may be stored in a manner associated with the user profile 230 of the user 120 such that, if needed, the automated vehicle actions of the user (aggregated from multiple sources) may be transferred from the computing platform 110 to one or more other vehicles. For example, the computing platform 110 may send data indicating an automated vehicle action to another vehicle (different from vehicle 105) such that the other vehicle may implement the automated vehicle action even if they were created via another vehicle (e.g., vehicle 105).

[0181] In an embodiment, method 1000 may include step 1055, in which the computing system 130 detects the occurrence of one or more trigger conditions 700A - 700C. For example, the computing system 130 may collect data from sensors 150 (e.g., a thermometer) on the vehicle 105 or other systems / devices on the vehicle 105 (e.g., a clock, the positioning system 155) to determine whether a trigger condition 700A - 700C for an automated vehicle action has occurred.

[0182] In an embodiment, method 1000 may include step 1060, in which computing system 130 sends one or more signals based on one or more trigger conditions 700A - 700C to effectuate one or more settings 705A - 705C of one or more vehicle functions 165A - 165C. In one example, if computing system 130 detects the occurrence of a defined set of time, temperature, and location conditions, computing system 130 may automatically send a signal to a controller to indicate that the seat massage function will be set to "classic massage". Computing system 130 may automatically send a signal to the controller to indicate that the seat temperature function will be set to "high", and send a signal to the controller to tune the radio or access another music source to play "soft jazz".

[0183] Figure 11A A flowchart illustration of an example method 1100 for aggregating automated vehicle actions for a user in accordance with an embodiment of the present disclosure is shown. Method 1100 may be executed by a computing system described with reference to other figures. In an embodiment, method 1100 may be executed by Figure 1 control circuitry 185 of computing platform 110. One or more portions of method 1100 may be implemented as algorithms on hardware components of the devices described herein (e.g., as in Figures 1 to 8 and Figure 12 ). For example, the steps of method 1100 may be implemented as operations / instructions executable by computing hardware.

[0184] Figure 11A Elements are illustrated and discussed as being performed in a particular order for purposes of illustration. In using the disclosure provided herein, one of ordinary skill in the art will understand that, without departing from the scope of the present disclosure, the elements of any of the methods discussed herein may be adapted, rearranged, extended, omitted, combined, or modified in various ways. Figure 11A is described with reference to elements / terms described with respect to other systems and figures for purposes of example illustration and is not meant to be limiting. One or more portions of method 1100 may additionally or alternatively be executed by other systems. For example, one or more portions of method 1100 may also or alternatively be executed by Figure 1 control circuitry 135 of computing system 130.

[0185] In an embodiment, method 1100 may begin with or otherwise include step 1105, in which computing platform 110 receives data indicating a first automated vehicle action 905A associated with a first user 120 of a first vehicle 105. After computing system 130 generates first automated vehicle action 905A based on user input from user 120, data indicating first automated vehicle action 905A may be sent from computing system 130 of first vehicle 105. The data indicating first automated vehicle action 905A may include the name of the automated vehicle action, one or more associated vehicle functions, one or more trigger conditions, and one or more user-specific settings. The data indicating first automated vehicle action 905A may further include encrypted pseudonymized data, which may be decrypted by computing platform 110 to identify first user 120 by, for example, a series of random characters assigned to first user 120 while also protecting the user's information.

[0186] In an embodiment, method 1100 may include step 1110, in which computing system 130 generates an aggregated data structure 900A based on first automated vehicle action 905A for storage in a memory remote from first vehicle 105. Aggregated data structure 900A may be associated with a first user profile 230 of first user 120.

[0187] In one example, computing platform 110 may generate a table or list data structure including multiple rows, each row including multiple data fields. Information associated with first automated vehicle action 905A may be stored in the data fields of an assigned row. As Figure 9A illustrated, this may include an identifier, name, vehicle function, trigger condition, and settings associated with the first automated vehicle action for first automated vehicle action 905A. Computing platform 110 may generate a link or other data connection to first user profile 230 of first user 120 to associate aggregated data structure 900A with first user profile 230. In an embodiment, aggregated data structure 900A (or a copy thereof) may be stored within first user profile 230. Aggregated data structure 900A may be configured to store multiple automated vehicle actions 905A - 905C associated with first user 120.

[0188] In an embodiment, method 1100 may include step 1115, in which computing system 130 receives data indicating a second automated vehicle action 905B associated with a first user 120. The data indicating the second automated vehicle action 905B may include the name of the second automated vehicle action 905B, one or more associated vehicle functions, one or more trigger conditions, and one or more user-specified settings. The data indicating the second automated vehicle action 905B may also include encrypted and pseudonymized data, which may be decrypted by computing platform 110 to associate the second automated vehicle action 905B with the first user 120.

[0189] The second automated vehicle action 905B may have been generated based on user input provided to a computing source that is different from the first automated vehicle action 905A. In an embodiment, the second automated vehicle action 905B may be generated by a computing system of a second vehicle 180 based on user input provided by the first user 120 to a display device of the second vehicle 180. Additionally or alternatively, the second automated vehicle action 905B may be generated by user device 115 based on user input provided by the first user 120 to user device 115.

[0190] In an embodiment, the first automated vehicle action 905A or the second automated vehicle action 905B may be generated by one or more machine learning models. For example, the second automated vehicle action 905B may be generated by computing system 130 of the first vehicle 105. Thus, the trigger conditions and settings for the second automated vehicle action 905B may have been automatically determined by computing system 130 rather than specified via user input from the first user 120.

[0191] In an embodiment, method 1100 may include step 1120, in which computing system 130 updates the aggregated data structure 900A based on the second automated vehicle action 905B. For example, computing platform 110 may adjust the aggregated data structure 900A to include the second automated vehicle action 905B. In an embodiment, this may include adding a row for the second automated vehicle action 905B in the aggregated data structure 900A and entering data in the data fields of that row to reflect the identifier, name, vehicle function, trigger condition, settings, etc. of the second automated vehicle action 905B.

[0192] In an embodiment, the aggregated data structure 900A may allow the computing platform 110 to aggregate automated vehicle actions of a first user 120 from multiple different sources. In one example, as described herein, a second automated vehicle action 905B may be from a different source than the first automated vehicle action 905A (e.g., another vehicle, a user device, etc.). In another example, the second automated vehicle action 905B may be automatically generated using one or more models, and the first automated vehicle action 905A may be generated based on specific user input from the first user 120. In this way, the computing platform 110 may generate and utilize the aggregated data structure 900A to aggregate the automated vehicle actions of the first user 120, regardless of the computing source or technology used to create these automated vehicle actions.

[0193] In an embodiment, method 1100 may include step 1125, in which the computing platform 110 outputs data indicating the automated vehicle actions of the aggregated data structure 900A. In one example, the first user 120 may enter a second vehicle 180. As described herein, the computing system of the second vehicle 180 may request automated vehicle actions associated with the first user 120 from the computing platform 110. The computing platform 110 may access the aggregated data structure 900A and retrieve data indicating the aggregated automated vehicle actions stored in the computing platform. For example, the computing platform 110 may retrieve data indicating the first automated vehicle action 905A and the second automated vehicle action 905B, and send such data to the computing system of the second vehicle 180. The first automated vehicle action 905A and the second automated vehicle action 905B (or the command instructions associated with them) may be locally stored on the second vehicle 180 such that the second vehicle 180 may implement the actions (e.g., when a trigger condition is detected).

[0194] Figure 11B A flowchart illustration of an example method 1150 for implementing automated vehicle actions for a second user in accordance with embodiments of the present disclosure is shown. Method 1150 may be executed by a computing system described with reference to other figures. In an embodiment, method 1100 may be executed by Figure 1 the control circuit 135 of the computing system 130. One or more portions of method 1100 may be implemented as algorithms on hardware components of the devices described herein (e.g., as in Figures 1 to 8 and Figure 12 etc.). For example, the steps of method 1100 may be implemented as operations / instructions executable by computing hardware.

[0195] Figure 11BElements are illustrated and discussed as being performed in a particular order for purposes of illustration and discussion. In the context of using the disclosure provided herein, one of ordinary skill in the art will understand that, without departing from the scope of the present disclosure, the elements of any one of the methods discussed herein may be adapted, rearranged, extended, omitted, combined, or modified in various ways. Figure 11B is described with reference to elements / terms described with respect to other systems and figures for illustrative purposes and is not meant to be limiting. One or more parts of method 1150 may additionally or alternatively be performed by other systems. For example, one or more parts of method 1150 may be performed by control circuitry 185 of computing platform 110 or by user device 115.

[0196] In an embodiment, method 1150 may begin with or otherwise include step 1155, in which computing system 130 receives data indicative of a second user profile of a second user 175 of vehicle 105. In one example, second user 175 may enter vehicle 105 to become the driver of vehicle 105, and another user (e.g., first user 120) may not be located in vehicle 105 with second user 175. In another example, second user 175 may be located in vehicle 105 with another user (e.g., first user 120). Second user 175 may be a driver or a passenger.

[0197] In an embodiment, computing system 130 may receive data indicative of second user profile 260 due to detecting that second user 175 is located within vehicle 105. For example, as described herein, computing system 130 may identify the key or user device of the user of second user 175 (e.g., via a handshake process), or second user 175 may provide user input (e.g., voice input, touch input) to indicate that second user 175 has entered vehicle 105. In an embodiment, computing platform 110 may receive data indicative of the presence of a user in vehicle 105 and respond by sending data indicative of an automated vehicle action associated with the second user profile to computing system 130 on vehicle 105. The automated vehicle action associated with second user profile 260 / second user 175 may be an action determined by a vehicle different from vehicle 105 (e.g., now used by second user 175).

[0198] In an embodiment, method 1150 may include step 1160, in which computing system 130 stores command instructions for a second automated vehicle action associated with second user profile 260 in an accessible memory of vehicle 105. For example, computing system 130 may store command instructions for the second automated vehicle action in automated vehicle action database 215 on vehicle 105.

[0199] Command instructions for the second automated vehicle action may be based on user input of second user 175 with another vehicle (e.g., second vehicle 180). For example, second user 175 may provide user input to a display device of second vehicle 180 to indicate trigger conditions and settings to be automatically implemented for the second automated vehicle action. A computing system (e.g., its control circuitry) of second vehicle 180 may output command instructions for the second automated vehicle action and send data indicating the second automated vehicle action (e.g., associated command instructions) to computing platform 110. As described herein, computing platform 110 may store such information and send the information to another vehicle (e.g., vehicle 105) in a manner associated with second user profile 260.

[0200] In an embodiment, computing system 130 may not store command instructions for automated vehicle actions other than those associated with automated vehicle actions of second user 175. This may occur, for example, when second user 175 is the only user in vehicle 105. Additionally or alternatively, this may occur when second user 175 is the only user detected in vehicle 105. Additionally or alternatively, this may occur when second user 175 is the driver of vehicle 105. Computing system 130 may execute the command instructions to activate automated settings of vehicle functions 165A - 165C of second user 175 when a trigger condition is later detected.

[0201] In an embodiment, computing system 130 may be configured to: concurrently store command instructions for automated vehicle actions associated with first user 120 and second user 175. For example, this may occur when first user 120 and second user 175 are in vehicle 105 during a concurrent time period. Additionally or alternatively, this may occur when first user 120 and second user 175 are regular users of vehicle 105.

[0202] In an embodiment, the computing system 130 may execute the automated vehicle actions of the first user 120 and the automated vehicle actions of the second user 175 at concurrent / overlapping time periods, causing the vehicle 105 to perform two automated settings (for two different users) simultaneously. For example, the first automated vehicle action of the first user 120 may instruct the vehicle 105 to set the seat heating function to "high" when the external temperature is below 70 degrees Fahrenheit. The second automated vehicle action of the second user 175 may instruct the vehicle 105 to set the seat heating function to "low" when the external temperature is below 65 degrees Fahrenheit.

[0203] In a similar manner as described herein, the computing system 130 may compare the vehicle functions, trigger conditions, and settings of the first automated vehicle action and the second automated vehicle action to determine whether the first automated vehicle action and the second automated vehicle action conflict with each other. In a situation where the vehicle 105 (e.g., the relevant vehicle function) may not be able to concurrently implement the automated settings of the first automated vehicle action and the second automated vehicle action, the two actions may be considered to conflict. In the above example, the first automated vehicle action and the second automated vehicle action may be concurrently implemented because the seat of the first user 120 (e.g., sitting in the driver's seat) has a different seat temperature function from the seat of the second user 175 (e.g., sitting in the passenger seat). Thus, in a situation where the computing system 130 detects that the external temperature is 60 degrees Fahrenheit, the computing system 130 may send a first signal to set the seat temperature function of the first user to "high" and a second signal to set the seat temperature function of the second user to "low". In an embodiment, the computing system 130 may generate content to notify the first user and the second user (e.g., via a user interface on a display device of the infotainment system) of the activation of the automated settings.

[0204] In the presence of a conflict, the computing system 130 may attempt to resolve the conflict according to one or more policies. In an embodiment, the policy may include one or more policies for resolving conflicts between the automated vehicle actions of different users in the vehicle 105. For example, the policy may include a hierarchy that indicates that the automated vehicle actions of the user who is the driver, regardless of which user that is, will take precedence over the automated vehicle actions of other users. In another example, the hierarchy may indicate that the automated vehicle actions of the user who first enters the vehicle 105 will take precedence over the automated vehicle actions of other users. In an embodiment, the computing system 130 may generate content to notify the first user 120 or the second user 175 that a particular automated vehicle action was not implemented due to a conflict.

[0205] In an embodiment, method 1150 may include step 1165, in which computing system 130 generates another automated vehicle action for second user 175 based on user input from second user 175. For example, computing system 130 may utilize data stream 300 described with reference to Figure 3 to generate an automated vehicle action for second user 175 of vehicle 105. Such vehicle actions may be stored in a manner associated with second user profile 260 of second user 175. In this way, a user / user profile may be associated with multiple automated vehicle actions, where at least one automated vehicle action (e.g., its associated command instruction) is determined via first vehicle 105 and at least one automated vehicle action (e.g., its associated command instruction) is determined via second vehicle 180.

[0206] In some embodiments, computing system 130 may utilize data stream 300 to concurrently generate automated vehicle actions for first user 120 and second user 175. This may include collecting user input, determining automated vehicle actions, outputting command instructions, performing conflict resolution analysis, etc. for first user 120 and second user 175 simultaneously.

[0207] Figure 12 FIG. illustrates a block diagram of an example computing system 1200 according to an embodiment of the present disclosure. System 1200 includes a computing system 1205 (e.g., a computing system on a vehicle), a server computing system 1305 (e.g., a remote computing system, a cloud computing platform), a training computing system 1405, and a user device 1505 (e.g., corresponding to user device 115 of a user) communicatively coupled via one or more networks 1255.

[0208] Computing system 1205 may include one or more computing devices 1210 or circuits. For example, computing system 1205 may include control circuit 1215 and a non-transitory computer-readable medium 1220 (also referred to herein as a memory). In an embodiment, control circuit 1215 may include one or more processors (e.g., microprocessors), one or more processing cores, a programmable logic circuit (PLC) or programmable logic / gate array (PLA / PGA), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any other control circuit. In some embodiments, control circuit 1215 may be part of or may form a vehicle control unit, which is embedded or otherwise disposed in a vehicle (e.g., in a car or a truck). For example, the vehicle controller can be or can include an infotainment system controller (e.g., an infotainment host unit), a telematics control unit (TCU), an electronic control unit (ECU), a central power train controller (CPC), a charging controller, a central external and internal controller (CEIC), a zone controller, or any other controller. In an embodiment, the control circuit 1215 can be programmed by one or more computer-readable instructions or computer-executable instructions stored on a non-transitory computer-readable medium 1220.

[0209] In an embodiment, the non-transitory computer-readable medium 1220 can be a memory device (also referred to as a data storage device), which can include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-transitory computer-readable medium 1220 can form, for example, a hard disk drive (HDD), a solid state drive (SDD), or a solid state integrated memory, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a dynamic random access memory (DRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), and / or a memory stick.

[0210] The non-transitory computer-readable medium 1220 can store information accessible by the control circuit 1215. For example, the non-transitory computer-readable medium 1220 (e.g., the memory device) can store data 1225 that can be obtained, received, accessed, written, manipulated, created, and / or stored. The data 1225 can include, for example, any of the data or information described herein. In some specific implementations, the computing system 1205 can obtain data from one or more memories remote from the computing system 1205.

[0211] The non-transitory computer-readable medium 1220 may also store computer-readable instructions 1230 executable by the control circuit 1215. The instructions 1230 may be software written in any suitable programming language or may be implemented in hardware. The instructions may include computer-readable instructions, computer-executable instructions, and the like. As described herein, in various embodiments, the terms "computer-readable instructions" and "computer-executable instructions" are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, if the computer-readable instructions or computer-executable instructions form a module, the term "module" broadly refers to a collection of software instructions or code configured to cause the control circuit 1215 to perform one or more functional tasks. When the control circuit 1215 or other hardware components are executing a module or computer-readable instructions, the module and the computer-readable / executable instructions may be described as performing various operations or tasks.

[0212] The instructions 1230 may be executed in logical and / or virtual separate threads on the control circuit 1215. For example, the non-transitory computer-readable medium 1220 may store the instructions 1230 that, when executed by the control circuit 1215, cause the control circuit 1215 to perform any of the operations, methods, and / or processes described herein. In some cases, the non-transitory computer-readable medium 1220 may store computer-executable instructions or computer-readable instructions, such as instructions for performing Figures 10A to 10B or Figures 11A to 11B at least a portion of the method of.

[0213] In an embodiment, the computing system 1205 may store or include one or more machine learning models 1235. For example, the machine learning model 1235 may be or may otherwise include various machine learning models. In an embodiment, the machine learning model 1235 may include a neural network (e.g., a deep neural network) or other types of machine learning models (including non-linear models and / or linear models). The neural network may include a feed-forward neural network, a recurrent neural network (e.g., a long short-term memory recurrent neural network), a convolutional neural network, or other forms of neural networks. Some example machine learning models may utilize attention mechanisms such as self-attention. For example, some example machine learning models may include a multi-head self-attention model (e.g., a transformer model).

[0214] In one aspect of the present disclosure, the model 1235 may be used to generate automated vehicle actions according to the systems and methods described in U.S. Patent Application No. 18 / 081,318.

[0215] In an embodiment, one or more machine learning models 1235 may be received from a server computing system 1305 via a network 1255, stored in a computing system 1205 (e.g., non-transitory computer-readable medium 1220), and then used or otherwise implemented by a control circuit 1215. In an embodiment, the computing system 1205 may implement multiple parallel instances of a single model.

[0216] Additionally or alternatively, one or more machine learning models 1235 may be included in or otherwise stored and implemented by the server computing system 1305, which communicates with the computing system according to a client-server relationship. For example, the machine learning model 1235 may be implemented by the server computing system 1305 as part of a web service. Thus, one or more models 1235 may be stored and implemented at the computing system 1205, and / or one or more models 1235 may be stored and implemented at the server computing system 1305.

[0217] The computing system 1205 may include one or more communication interfaces 1240. The communication interface 1240 may be used to communicate with one or more other systems. The communication interface 1240 may include any circuitry, components, software, etc. for communicating via one or more networks (e.g., network 1255). In some specific implementations, the communication interface 1240 may include, for example, one or more of a communication controller, receiver, transceiver, transmitter, port, conductor, software, and / or hardware for conveying data / information.

[0218] The computing system 1205 may further include one or more user input components 1245 for receiving user input. For example, the user input component 1245 may be a touch-sensitive component (e.g., a touch-sensitive display screen or touchpad) that is sensitive to a user input object (e.g., a finger or a stylus). The touch-sensitive component may be used to implement a virtual keyboard. Other example user input components include a microphone, a traditional keyboard, a cursor device, a joystick, or other devices through which a user may provide user input.

[0219] The computing system 1205 may include one or more output components 1250. The output component 1250 may include hardware and / or software for audibly or visually generating content. For example, the output component 1250 may include one or more speakers, earpieces, headphones, handsets, etc. The output component 1250 may include a display device, which may include hardware for displaying a user interface and / or a message for a user. For example, the output component 1250 may include a display screen, a CRT, an LCD, a plasma screen, a touch screen, a TV, a projector, a tablet computer, and / or other suitable display components.

[0220] The server computing system 1305 may include one or more computing devices 1310. In an implementation, the server computing system 1305 may include or otherwise be implemented by one or more server computing devices. In instances where the server computing system 1305 includes multiple server computing devices, such server computing devices may operate according to a sequential computing architecture, a parallel computing architecture, or some combination thereof.

[0221] The server computing system 1305 may include control circuitry 1315 and a non-transitory computer-readable medium 1320 (also referred to herein as memory 1320). In an implementation, the control circuitry 1315 may include one or more processors (e.g., microprocessors), one or more processing cores, programmable logic circuitry (PLC) or programmable logic / gate arrays (PLA / PGA), field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), or any other control circuitry. In an implementation, the control circuitry 1315 may be programmed by one or more computer-readable instructions or computer-executable instructions stored on the non-transitory computer-readable medium 1320.

[0222] In an implementation, the non-transitory computer-readable medium 1320 may be a memory device (also referred to as a data storage device), which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-transitory computer-readable medium may form, for example, a hard disk drive (HDD), a solid state drive (SDD), or a solid state integrated memory, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), a portable compact disc read only memory (CD-ROM), a digital versatile disc (DVD), and / or a memory stick.

[0223] The non-transitory computer-readable medium 1320 may store information accessible by the control circuitry 1315. For example, the non-transitory computer-readable medium 1320 (e.g., the memory device) may store data 1325 that can be obtained, received, accessed, written, manipulated, created, and / or stored. The data 1325 may include, for example, any of the data or information described herein. In some particular implementations, the server computing system 1305 may obtain data from one or more memories remote from the server computing system 1305.

[0224] The non-transitory computer-readable medium 1320 may also store computer-readable instructions 1330 executable by the control circuit 1315. The instructions 1330 may be software written in any suitable programming language or may be implemented in hardware. The instructions may include computer-readable instructions, computer-executable instructions, etc. As described herein, in various embodiments, the terms "computer-readable instructions" and "computer-executable instructions" are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, if the computer-readable instructions or computer-executable instructions form a module, the term "module" broadly refers to a collection of software instructions or code configured to cause the control circuit 1315 to perform one or more functional tasks. When the control circuit 1315 or other hardware components are executing a module or computer-readable instructions, the module and the computer-readable / executable instructions may be described as performing various operations or tasks.

[0225] The instructions 1330 may be executed in logical and / or virtual separated threads on the control circuit 1315. For example, the non-transitory computer-readable medium 1320 may store the instructions 1330 that, when executed by the control circuit 1315, cause the control circuit 1315 to perform any of the operations, methods, and / or processes described herein. In some cases, the non-transitory computer-readable medium 1320 may store computer-executable instructions or computer-readable instructions, such as instructions for performing Figures 10A to 10B or Figures 11A to 11B at least a portion of the method of.

[0226] The server computing system 1305 may store or otherwise include one or more machine learning models 1335. The machine learning model 1335 may include or be the same as the model 1235 stored in the computing system 1205. In an embodiment, the machine learning model 1335 may include an unsupervised learning model. In an embodiment, the machine learning model 1335 may include a neural network (e.g., a deep neural network) or other types of machine learning models (including non-linear models and / or linear models). The neural network may include a feedforward neural network, a recurrent neural network (e.g., a long short-term memory recurrent neural network), a convolutional neural network, or other forms of neural networks. Some example machine learning models may utilize attention mechanisms such as self-attention. For example, some example machine learning models may include a multi-head self-attention model (e.g., a transformer model). In an embodiment, the machine learning model 1335 may be configured to assist in creating automated vehicle actions according to the systems and methods of U.S. Patent Application No. 18 / 081,318.

[0227] The machine learning models described in this specification can have various types of input data and / or combinations thereof, representing data that can be used in sensors and / or other systems on a vehicle. The input data can include, for example, latent encoded data (e.g., input latent space representations, etc.), statistical data (e.g., data calculated and / or operated on from some other data source), sensor data (e.g., raw data and / or processed data collected by the vehicle's sensors), or other types of data.

[0228] The server computing system 1305 can include one or more communication interfaces 1340. The communication interface 1340 can be used to communicate with one or more other systems. The communication interface 1340 can include any circuitry, components, software, etc. for communicating via one or more networks (e.g., network 1255). In some specific implementations, the communication interface 1340 can include, for example, one or more of a communication controller, receiver, transceiver, transmitter, port, conductor, software, and / or hardware for conveying data / information.

[0229] The computing system 1205 and / or the server computing system 1305 can train the models 1235, 1335 by interacting with a training computing system 1405 communicatively coupled via the network 1255. The training computing system 1405 can be separate from the server computing system 1305 or can be a part of the server computing system 1305.

[0230] The training computing system 1405 can include one or more computing devices 1410. In an implementation, the training computing system 1405 can include or otherwise be implemented by one or more server computing devices. In instances where the training computing system 1405 includes multiple server computing devices, such server computing devices can operate according to a sequential computing architecture, a parallel computing architecture, or some combination thereof.

[0231] The training computing system 1405 can include control circuitry 1415 and a non-transitory computer-readable medium 1420 (also referred to herein as memory 1420). In an implementation, the control circuitry 1415 can include one or more processors (e.g., microprocessors), one or more processing cores, programmable logic circuitry (PLC) or programmable logic / gate arrays (PLA / PGA), field-programmable gate arrays (FPGA), application-specific integrated circuits (ASIC), or any other control circuitry. In an implementation, the control circuitry 1415 can be programmed by one or more computer-readable instructions or computer-executable instructions stored on the non-transitory computer-readable medium 1420.

[0232] In an embodiment, the non-transitory computer-readable medium 1420 can be a memory device (also referred to as a data storage device), which can include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-transitory computer-readable medium can form, for example, a hard disk drive (HDD), a solid state drive (SDD), or a solid state integrated memory, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a dynamic random access memory (DRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), and / or a memory stick.

[0233] The non-transitory computer-readable medium 1420 can store information accessible by the control circuit 1415. For example, the non-transitory computer-readable medium 1420 (e.g., a memory device) can store data 1425 that can be obtained, received, accessed, written, manipulated, created, and / or stored. The data 1425 can include, for example, any of the data or information described herein. In some specific implementations, the training computing system 1405 can obtain data from one or more memories remote from the training computing system 1405.

[0234] The non-transitory computer-readable medium 1420 can also store computer-readable instructions 1430 executable by the control circuit 1415. The instructions 1430 can be software written in any suitable programming language, or can be implemented in hardware. The instructions can include computer-readable instructions, computer-executable instructions, etc. As described herein, in various embodiments, the terms "computer-readable instructions" and "computer-executable instructions" are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, if the computer-readable instructions or computer-executable instructions form a module, the term "module" broadly refers to a collection of software instructions or code configured to cause the control circuit 1415 to perform one or more functional tasks. When the control circuit 1415 or other hardware components are executing a module or computer-readable instructions, the module and the computer-readable / executable instructions can be described as performing various operations or tasks.

[0235] The instructions 1430 can be executed in a logically or virtually separated thread on the control circuit 1415. For example, the non-transitory computer-readable medium 1420 can store instructions 1430 that, when executed by the control circuit 1415, cause the control circuit 1415 to perform any of the operations, methods, and / or processes described herein. In some cases, the non-transitory computer-readable medium 1420 can store computer-executable instructions or computer-readable instructions, such as for performing Figures 10A to 10B or Figures 11A to 11BInstructions for at least a portion of the method.

[0236] The training computing system 1405 may include a model trainer 1435 that trains machine learning models 1235, 1335 stored at the computing system 1205 and / or the server computing system 1305 using various training techniques or learning techniques. For example, a loss function may be used to train the models 1235, 1335. For example, to train a machine learning clustering model, the model trainer 1435 may use a clustering loss function. The clustering loss function may be configured to balance two competing objectives. First, the clustering loss function may be configured to seek to produce a confident assignment of input data elements to clusters. The clustering loss function may balance this first objective with a second objective of preventing trivial solutions in which all elements of the input data are mapped to a single cluster. Thus, the clustering loss function may encourage each input to be confidently assigned to one of the clusters, but also encourage the mapping of input data points across multiple clusters.

[0237] The model trainer may train the models 1235, 1335 (e.g., machine learning clustering models) in an unsupervised manner. Thus, unlabeled data for a particular application or problem domain may be used to effectively train the models, which improves the performance and adaptability of the models.

[0238] The training computing system 1405 may modify the parameters of the models 1235, 1335 (e.g., machine learning clustering model 320) based on a loss function (e.g., clustering loss function) such that the models 1235, 1335 can be effectively trained in an unsupervised manner for a particular application without labeled data. This may be particularly useful for effectively training models to cluster complex and unlabeled data sets.

[0239] The model trainer 1435 may utilize training techniques such as backpropagation of error. For example, the loss function may be backpropagated through the model to update one or more parameters of the model (e.g., based on the gradient of the loss function). Various loss functions may be used, such as mean squared error, likelihood loss, cross-entropy loss, hinge loss, and / or various other loss functions. Gradient descent techniques may be used to iteratively update the parameters through multiple training iterations.

[0240] In an embodiment, performing backpropagation of error may include performing truncated backpropagation over time. The model trainer 1435 may perform various generalization techniques (e.g., weight decay, dropout, etc.) to improve the generalization ability of the trained models. In particular, the model trainer 1435 may train the machine learning models 1235, 1335 based on a set of training data 1440.

[0241] The training data 1440 may include unlabeled training data for training in an unsupervised manner. In one example, the training data 1440 may include an unlabeled data set indicating settings selected by a training user for a specific vehicle function and data indicating conditions observed during training. The training data 1440 may be specific to a particular vehicle function to help focus the models 1235, 1335 on that particular vehicle function.

[0242] In an implementation, if the user has provided consent / authorization, training examples may be provided by a computing system 1205 (e.g., of the user's vehicle). Thus, in such implementations, the model 1235 provided to the computing system 1205 may be trained by the training computing system 1405 in a manner that personalizes the model 1235.

[0243] The model trainer 1435 may include computer logic for providing desired functionality. The model trainer 1435 may be implemented in hardware, firmware, and / or software that controls a general-purpose processor. For example, in an implementation, the model trainer 1435 may include program files stored on a storage device, loaded into memory, and executed by one or more processors. In other implementations, the model trainer 1435 may include one or more sets of computer-executable instructions stored on a tangible computer-readable storage medium (such as RAM, a hard disk, or an optical or magnetic medium).

[0244] The training computing system 1405 may include one or more communication interfaces 1445. The communication interface 1445 may be used to communicate with one or more other systems. The communication interface 1445 may include any circuitry, components, software, etc. for communicating via one or more networks (e.g., network 1255). In some implementations, the communication interface 1445 may include, for example, one or more of a communication controller, a receiver, a transceiver, a transmitter, a port, a conductor, software, and / or hardware for conveying data / information.

[0245] The user device 1505 may include a mobile user device, a telephone, a laptop computer, a tablet computer, a wearable device (e.g., a smartwatch, smart glasses, headphones), a personal digital assistant, a gaming system, or other types of user devices. The user device 1505 may include one or more computing devices 1510 or circuits. For example, the user device 1505 may include control circuitry 1515 and a non-transitory computer-readable medium 1520 (also referred to herein as a memory). In an embodiment, the control circuitry 1515 may include one or more processors (e.g., microprocessors), one or more processing cores, programmable logic circuitry (PLC) or programmable logic / gate arrays (PLA / PGA), field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), or any other control circuitry. In an embodiment, the control circuitry 1515 may be programmed by one or more computer-readable instructions or computer-executable instructions stored on the non-transitory computer-readable medium 1520.

[0246] In an embodiment, the non-transitory computer-readable medium 1520 may be a memory device (also referred to as a data storage device), which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-transitory computer-readable medium 1520 may form, for example, a hard disk drive (HDD), a solid state drive (SDD), or a solid state integrated memory, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read only memory (CD-ROM), digital versatile disc (DVD), and / or a memory stick.

[0247] The non-transitory computer-readable medium 1520 may store information accessible by the control circuitry 1515. For example, the non-transitory computer-readable medium 1520 (e.g., a memory device) may store data 1525 that can be obtained, received, accessed, written, manipulated, created, and / or stored. The data 1525 may include, for example, any of the data or information described herein. In some particular implementations, the user device 1505 may obtain data from one or more memories remote from the user device 1505.

[0248] The non-transitory computer-readable medium 1520 may also store computer-readable instructions 1530 executable by the control circuit 1515. The instructions 1530 may be software written in any suitable programming language or may be implemented in hardware. The instructions may include computer-readable instructions, computer-executable instructions, and the like. As described herein, in various embodiments, the terms "computer-readable instructions" and "computer-executable instructions" are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, if the computer-readable instructions or computer-executable instructions form a module, the term "module" broadly refers to a collection of software instructions or code configured to cause the control circuit 1515 to perform one or more functional tasks. When the control circuit 1515 or other hardware components are executing a module or computer-readable instructions, the module and the computer-readable / executable instructions may be described as performing various operations or tasks.

[0249] The instructions 1530 may be executed in logical and / or virtual separated threads on the control circuit 1515. For example, the non-transitory computer-readable medium 1520 may store instructions 1530 that, when executed by the control circuit 1515, cause the control circuit 1515 to perform any of the operations, methods, and / or processes described herein. In some cases, the non-transitory computer-readable medium 1520 may store computer-executable instructions or computer-readable instructions, such as instructions for performing Figures 10A to 10B or Figures 11A to 11B at least a portion of the method.

[0250] The user device 1505 may include one or more communication interfaces 1535. The communication interfaces 1535 may be used to communicate with one or more other systems. The communication interfaces 1535 may include any circuitry, components, software, etc. for communicating via one or more networks (e.g., network 1255). In some specific implementations, the communication interfaces 1535 may include, for example, one or more of a communication controller, a receiver, a transceiver, a transmitter, a port, a conductor, software, and / or hardware for conveying data / information.

[0251] The user device 1505 may also include one or more user input components 1540 for receiving user input. For example, the user input component 1540 may be a touch-sensitive component (e.g., a touch-sensitive display screen or a touchpad) sensitive to a user input object (e.g., a finger or a stylus). The touch-sensitive component may be used to implement a virtual keyboard. Other example user input components include a microphone, a traditional keyboard, a cursor device, a joystick, or other devices through which a user may provide user input.

[0252] The user device 1505 may include one or more output components 1545. The output components 1545 may include hardware and / or software for audibly or visually generating content. For example, the output components 1545 may include one or more speakers, earpieces, headphones, handsets, etc. The output components 1545 may include a display device, which may include hardware for displaying a user interface and / or messages for the user. For example, the output components 1545 may include a display screen, CRT, LCD, plasma screen, touch screen, TV, projector, tablet computer, and / or other suitable display components.

[0253] One or more networks 1255 may be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof, and may include any number of wired or wireless links. Generally, communication over the network 1255 may be carried via any type of wired and / or wireless connection using various communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and / or security schemes (e.g., VPN, secure HTTP, SSL).

[0254] Figure 12 An example computing system that may be used to implement the present disclosure is illustrated. Other computing systems may also be used. For example, in an embodiment, the computing system 1205 may include a model trainer 1435 and training data 1440. In such an implementation, the models 1235, 1335 may be locally trained and used at the computing system 1205. In some implementations of such implementations, the computing system 1205 may implement the model trainer 1435 to personalize the models 1235, 1335.

[0255] Additional discussion of various embodiments

[0256] Embodiment 1 relates to a computing system. The computing system may include control circuitry. The control circuitry may be configured to: generate content for presentation to a user via a user interface of a display device. The content may include one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of a vehicle and one or more settings of the vehicle function. The control circuitry may be configured to: receive, via the user interface, data indicative of user input specifying the one or more trigger conditions. The control circuitry may be configured to: receive, via the user interface, data indicative of user input specifying the one or more settings of the vehicle function. The control circuitry may be configured to: determine an automated vehicle action that defines a relationship between the one or more trigger conditions and the one or more settings of the vehicle function. The control circuitry may be configured to: output, based on whether the vehicle detects the one or more trigger conditions, a command instruction for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function.

[0257] Embodiment 2 includes the computing system according to Embodiment 1. In this embodiment, the automated vehicle action may indicate at least one of the following: (i) a time, (ii) a location, or (iii) a temperature condition at which the vehicle will automatically control the vehicle function according to the one or more settings.

[0258] Embodiment 3 includes the computing system according to any one of Embodiments 1 or 2. In this embodiment, the control circuitry may be further configured to: determine whether there is a conflict between the automated vehicle action and a pre - existing automated vehicle action.

[0259] Embodiment 4 includes the computing system according to any one of Embodiments 1 to 3. In this embodiment, the control circuitry may be further configured to: in response to determining that there is indeed such a conflict, generate a prompt for presentation to the user via the user interface of the display device. The prompt may request the user to indicate whether to replace the pre - existing automated vehicle action with the automated vehicle action or discard the automated vehicle action.

[0260] Embodiment 5 includes the computing system according to any one of Embodiments 1 to 4. In this embodiment, the control circuitry may be further configured to: provide the command instruction for storage in an accessible memory on the vehicle for execution at a subsequent time.

[0261] Embodiment 6 includes the computing system according to any one of Embodiments 1 to 5. In this embodiment, the command instructions may be stored in the accessible memory together with a plurality of other command instructions for a plurality of other automated vehicle actions associated with the user.

[0262] Embodiment 7 includes the computing system according to any one of Embodiments 1 to 6. In this embodiment, the control circuit may be further configured to: detect the occurrence of the one or more trigger conditions; and based on the one or more trigger conditions, send a signal to implement the one or more settings of the vehicle function.

[0263] Embodiment 8 includes the computing system according to any one of Embodiments 1 to 7. In this embodiment, the control circuit may be further configured to: send a communication indicating the command instructions to a server system via a network for storage in a manner associated with the user profile of the user.

[0264] Embodiment 9 includes the computing system according to any one of Embodiments 1 to 8. In this embodiment, the display device may be a display screen of a mobile user device.

[0265] Embodiment 10 includes the computing system according to any one of Embodiments 1 to 9. In this embodiment, the display device may be a display screen of the vehicle.

[0266] Embodiment 11 includes the computing system according to any one of Embodiments 1 to 10. In this embodiment, the vehicle function may include: (i) window function; (ii) seat function; (iii) temperature function; or (iv) music function.

[0267] Embodiment 12 includes the computing system according to any one of Embodiments 1 to 11. In this embodiment, the seat function may include: seat temperature function, seat ventilation function or seat massage function.

[0268] Embodiment 13 includes the computing system according to any one of Embodiments 1 to 12. In this embodiment, the one or more settings of the vehicle function may indicate at least one of the following: (i) on / off state; (ii) open / close state; (iii) temperature level; (iv) massage level; or (v) music selection.

[0269] Embodiment 14 includes the computing system according to any one of Embodiments 1 to 13. In this embodiment, the user may be a first user, and the command instruction for the automated vehicle action may be associated with the first user profile of the first user. The control circuit may be further configured to: receive data indicating a second user profile of a second user of the vehicle; and provide a command instruction for a second automated vehicle action associated with the second user profile to be stored in an accessible memory of the vehicle. The second automated vehicle action may be based on user input provided by the second user to a second user interface on a second display device.

[0270] Embodiment 15 includes the computing system according to any one of Embodiments 1 to 14. In this embodiment, the second display device may be a display screen of a mobile user device or a display screen of another vehicle.

[0271] Embodiment 16 relates to a computer-implemented method. The method may include: generating content for presentation to a user via a user interface of a display device. The content may include one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of a vehicle and one or more settings of the vehicle function. The method may include: receiving, via the user interface, data indicating user input specifying the one or more trigger conditions. The method may include: receiving, via the user interface, data indicating user input specifying the one or more settings of the vehicle function. The method may include: determining an automated vehicle action that defines a relationship between the one or more trigger conditions and the one or more settings of the vehicle function. The method may include: outputting, based on whether the vehicle detects the one or more trigger conditions, a command instruction for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function.

[0272] Embodiment 17 includes the computer-implemented method according to Embodiment 16. In this embodiment, the method may further include: determining whether there is a conflict between the automated vehicle action and a pre-existing automated vehicle action; and in response to determining that there is indeed such a conflict, generating a prompt for presentation to the user via the user interface of the display device. The prompt may indicate the conflict between the automated vehicle action and the pre-existing automated vehicle action.

[0273] Embodiment 18 includes the computer-implemented method according to any one of Embodiments 16 or 17. In this embodiment, the method may further include: providing the command instructions to be stored in an accessible memory on the vehicle for execution at a subsequent time.

[0274] Embodiment 19 includes the computer-implemented method according to any one of Embodiments 16 to 18. In this embodiment, the command instructions may be stored in the accessible memory together with a plurality of other command instructions for a plurality of other automated vehicle actions associated with the user.

[0275] Embodiment 20 relates to one or more non-transitory computer-readable media that store instructions executable by a control circuit to perform operations. The control circuit may generate content for presentation to a user via a user interface of a display device.

[0276] The content may include one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of the vehicle and one or more settings of the vehicle function. The control circuit may receive, via the user interface, data indicating user input specifying the one or more trigger conditions. The control circuit may receive, via the user interface, data indicating user input specifying the one or more settings of the vehicle function. The control circuit may determine an automated vehicle action defining a relationship between the one or more trigger conditions and the one or more settings of the vehicle function. The control circuit may output, based on whether the vehicle detects the one or more trigger conditions, command instructions for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function.

[0277] Additional disclosure

[0278] As used herein, adjectives and their possessive forms are intended to be used interchangeably unless the context clearly dictates otherwise and / or expressly indicates otherwise. For example, in appropriate cases, "components of the vehicle" and "vehicle components" may be used interchangeably. Similarly, words, phrases, and other disclosures herein are intended to cover obvious variations and synonyms, even if such variations and synonyms are not expressly listed.

[0279] The technologies discussed herein refer to servers, databases, software applications, and other computer-based systems, as well as the actions taken and the information sent to and from these systems. The inherent flexibility of computer-based systems allows for a wide variety of possibilities in terms of configuration, combination, and task and functionality partitioning among components. For example, the processes discussed herein can be implemented using a single device or component, or a combination of multiple devices or components working together. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.

[0280] Although the subject matter has been described in detail with respect to various specific example embodiments thereof, each example is provided by way of explanation and not limitation of the disclosure. Those skilled in the art will readily make changes, variations, or equivalents to such embodiments after understanding the foregoing. Accordingly, the disclosure does not exclude including such modifications, variations, and / or additions to the disclosure that would be obvious to a person of ordinary skill in the art. For example, functions illustrated or described as part of one embodiment can be used with another embodiment to yield yet another embodiment. Accordingly, the disclosure is intended to cover such changes, variations, and equivalents.

[0281] Aspects of the disclosure have been described in accordance with illustrative specific implementations of the disclosure. Many other specific implementations, modifications, or variations within the scope and spirit of the appended claims will occur to those of ordinary skill in the art upon viewing the disclosure. Any and all of the functions in the following claims can be combined or rearranged in any possible way. Accordingly, the scope of the disclosure is by way of example and not limitation, and the disclosure does not exclude including such modifications, variations, or additions to the disclosure that would be obvious to a person of ordinary skill in the art. Additionally, the terms are described herein using lists of example elements joined by conjunctions such as "and", "or", "but", etc. It should be understood that such conjunctions are provided for explanatory purposes only. The terms "or" and "and / or" can be used interchangeably herein. A list joined by a specific conjunction such as "or", for example, can refer to "at least one" or "any combination" of the example elements listed in the list, where "or" is understood as "and / or" unless otherwise indicated. Additionally, terms such as "based on" should be understood as "at least partially based on".

[0282] In using the disclosure provided herein, those of ordinary skill in the art will understand that the elements of any claim, operation, or process discussed herein may be adapted, rearranged, extended, omitted, combined, or modified in various ways without departing from the scope of the disclosure. Sometimes, for purposes of exemplary illustration, alphabetical labels may be used to list elements in the specification or claims and are not meant to be limiting. If alphabetical labels are used, the alphabetical label does not imply a particular order of operations or a particular importance of the listed elements. For example, alphabetical identifiers (such as (a), (b), (c), ……-, (i), (ii), (iii), ……-) may be used to illustrate different elements in an operation or list. The provision of such identifiers is for the convenience of the reader and does not denote a particular order, importance, or priority of steps, operations, or elements. For example, the operations illustrated by list identifiers such as (a), (i), etc. may be performed before, after, or in parallel with another operation illustrated by list identifiers such as (b), (ii), etc.

Claims

1. A computing system, the computing system comprising: a control circuit configured to: generate content for presentation to a user via a user interface of a display device, the content including one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of a vehicle and one or more settings of the vehicle function; receive, via the user interface, data indicative of user input specifying the one or more trigger conditions; receive, via the user interface, data indicative of user input specifying the one or more settings of the vehicle function; determine an automated vehicle action that defines a relationship between the one or more trigger conditions and the one or more settings of the vehicle function; and output, based on whether the vehicle detects the one or more trigger conditions, a command instruction for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function.

2. The computing system according to claim 1, wherein, The automated vehicle action indicates at least one of: (i) a time, (ii) a location, or (iii) a temperature condition at which the vehicle will automatically control the vehicle function according to the one or more settings.

3. The computing system according to claim 1, wherein, The control circuit is further configured to: determine whether there is a conflict between the automated vehicle action and a pre - existing automated vehicle action.

4. The computing system according to claim 3, wherein, The control circuit is further configured to: in response to determining that there is indeed such a conflict, generate a prompt for presentation to the user via the user interface of the display device, wherein the prompt requests the user to indicate whether to replace the pre - existing automated vehicle action with the automated vehicle action or discard the automated vehicle action.

5. The computing system according to claim 1, wherein, The control circuit is further configured to: provide the command instruction to be stored in an accessible memory on the vehicle for execution at a subsequent time.

6. The computing system according to claim 5, wherein, The command instruction is stored in the accessible memory together with a plurality of other command instructions for a plurality of other automated vehicle actions associated with the user.

7. The computing system according to claim 1, wherein, The control circuit is further configured to: detect the occurrence of the one or more trigger conditions; and based on the one or more trigger conditions, send a signal to implement the one or more settings of the vehicle function.

8. The computing system according to claim 1, wherein, The control circuit is further configured to: send, via a network, a communication indicative of the command instruction to a server system for storage in a manner associated with the user profile of the user.

9. The computing system according to claim 1, wherein, The display device is a display screen of a mobile user device.

10. The computing system according to claim 1, wherein, The display device is a display screen of the vehicle.

11. The computing system according to claim 1, wherein, The vehicle function includes: (i) a window function; (ii) a seat function; (iii) a temperature function; or (iv) a music function.

12. The computing system according to claim 11, wherein, The seat function includes: a seat temperature function, a seat ventilation function, or a seat massage function.

13. The computing system according to claim 1, wherein, The one or more settings of the vehicle function indicate at least one of the following: (i) on / off state; (ii) open / close state; (iii) temperature level; (iv) massage level; or (v) music selection.

14. The computing system according to claim 1, wherein, The user is a first user, wherein the command instruction for the automated vehicle action is associated with a first user profile of the first user, and wherein the control circuit is further configured to: Receive data indicating a second user profile of a second user of the vehicle; and Provide a command instruction for a second automated vehicle action associated with the second user profile to be stored in an accessible memory of the vehicle, wherein the second automated vehicle action is based on user input provided by the second user to a second user interface on a second display device.

15. The computing system according to claim 14, wherein, The second display device is a display screen of a mobile user device or a display screen of another vehicle.

16. A computer-implemented method, the method comprising: Generating content for presentation to a user via a user interface of a display device, the content including one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of a vehicle and one or more settings of the vehicle function; Receiving, via the user interface, data indicating user input specifying the one or more trigger conditions; Receiving, via the user interface, data indicating user input specifying the one or more settings of the vehicle function; Determining an automated vehicle action that defines a relationship between the one or more trigger conditions and the one or more settings of the vehicle function; And Based on whether the vehicle detects the one or more trigger conditions, outputting a command instruction for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function.

17. The computer-implemented method according to claim 16, the method further comprising: Determining whether there is a conflict between the automated vehicle action and a pre-existing automated vehicle action; And In response to determining that there is indeed such a conflict, generating a prompt for presentation to the user via the user interface of the display device, the prompt indicating the conflict between the automated vehicle action and the pre-existing automated vehicle action.

18. The computer-implemented method according to claim 16, the method further comprising: Providing the command instruction to be stored in an accessible memory on the vehicle for execution at a later time.

19. The computer-implemented method according to claim 18, wherein, The command instruction is stored in the accessible memory together with a plurality of other command instructions for a plurality of other automated vehicle actions associated with the user.

20. One or more non-transitory computer-readable media storing instructions that can be executed by a control circuit to: Generate content for presentation to a user via a user interface of a display device, the content including one or more user interface elements for inputting one or more trigger conditions associated with a vehicle function of a vehicle and one or more settings of the vehicle function; Receive, via the user interface, data indicative of user input specifying the one or more trigger conditions; Receive, via the user interface, data indicative of user input specifying the one or more settings of the vehicle function; Determine an automated vehicle action that defines a relationship between the one or more trigger conditions and the one or more settings of the vehicle function; And Output a command instruction for the vehicle to implement the automated vehicle action for automatically controlling the vehicle function based on whether the vehicle detects the one or more trigger conditions.

Citation Information

Patent Citations

  • Computing Systems And Methods For Generating User-Specific Automated Vehicle Actions Using Artificial Intelligence

    US20240198937A1