Gesture-Based Control for Semi-Autonomous Vehicles
By installing sensors and processors in the car, detecting and identifying passengers' vehicle control gestures, and standardizing and executing these gestures according to predefined passenger profiles, the problem of passengers' difficulty in operating semi-autonomous vehicles in the prior art is solved, and a safe and flexible operation mode is achieved.
Patent Information
- Application Number
- JP2022566696
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-06-04
- Filing Date
- 2021-05-05
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2041-05-05
AI Technical Summary
The prior art is difficult to safely and effectively allow passengers to operate semi-autonomous vehicles through vehicle control gestures, especially in the presence of traditional steering wheels.
The safety of operations is ensured by installing sensors and processors in the car, detecting and identifying passengers' vehicle control gestures and regulating and executing these gestures based on predefined passenger profiles.
Passengers can safely operate semi-autonomous cars through vehicle control gestures, avoiding the risk of using traditional steering wheels, and improving operational flexibility and safety.
Smart Images

Figure 0007654689000001 
Figure 0007654689000002 
Figure 0007654689000003
Abstract
Description
[Technical field]
[0001] Related Applications This application claims the benefit of priority to U.S. patent application Ser. No. 16 / 893,112, entitled "Gesture-Based Control For Semi-Autonomous Vehicle," filed Jun. 4, 2020, the entire contents of which are incorporated herein by reference for all purposes. [Background technology]
[0002] Cars and trucks are becoming more intelligent as the industry moves towards deploying autonomous and semi-autonomous vehicles. With the advent of fully autonomous and semi-autonomous vehicles, passengers may no longer need to use traditional steering wheels for vehicle control. In fact, traditional steering wheels are costly and pose a danger to passengers in the event of a collision. However, passengers may still occasionally wish to steer or otherwise control navigation. Summary of the Invention [Means for solving the problem]
[0003] Various aspects include a method and a vehicle, such as a semi-autonomous vehicle, implementing a method for safely operating a vehicle based on vehicle control gestures by a passenger. Various aspects may include determining a first vehicle action by applying a first passenger profile to a detected first vehicle control gesture performed by a first passenger, the first passenger profile being selected from a plurality of passenger profiles for normalizing the vehicle control gestures received from the first passenger, and operating the vehicle to implement the first vehicle action in response to determining that the first vehicle action is safe for the vehicle and occupants. In some aspects, the plurality of passenger profiles may include a second passenger profile designated for a second passenger, the second passenger profile normalizing the vehicle control gestures differently than the first passenger profile. Some aspects may further include identifying the first passenger based on at least one of a position of the first passenger in the vehicle, an input by the first passenger, or a recognition of the first passenger, and selecting the first passenger profile based on the identification of the first passenger. In some aspects, the first passenger profile may be customized to the first passenger from training inputs previously received from the first passenger. Some aspects may further include receiving the first passenger profile from a remote computing device for application to the vehicle control gestures.
[0004] Some aspects may further include determining whether a first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform, and in response to determining that the first vehicle action is not safe for the vehicle to perform, determining a second vehicle action that is a safer alternative to the first vehicle action, and operating the vehicle to perform the second vehicle action. Some aspects may further include determining whether the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform after a determined delay period, and in response to determining that the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform after the determined delay period, operating the vehicle to perform the first vehicle action after the determined delay period.
[0005] Some aspects may further include determining whether the first vehicle action includes abnormal vehicle operation, and in response to determining that the first vehicle action may include abnormal vehicle operation, determining whether the detected first vehicle control gesture may include an additional indication that abnormal vehicle operation is intended by the first passenger, and operating the vehicle to perform the first vehicle action is further responsive to determining that the detected first vehicle control gesture may include an additional indication that abnormal vehicle operation is intended by the first passenger. In some aspects, the additional indication may include at least one of an exaggerated gesture, a repeated gesture, a gesture performed more rapidly than normal, or a non-visual input received along with the detected first vehicle control gesture. Some aspects may further include determining whether the abnormal vehicle operation is safe for the vehicle or occupants, and in response to determining that the abnormal vehicle operation is not safe for the vehicle or occupants, operating the vehicle to perform a second vehicle action that is a safer alternative to the first vehicle action.
[0006] Further aspects include a vehicle control system having a processor configured to detect and implement vehicle control gestures and perform operations of any of the methods summarized above. Further aspects include a non-transitory processor-readable storage medium having stored thereon processor-executable software instructions configured to cause a processor to perform operations of any of the methods summarized above. Further aspects include a vehicle control system having means for performing functions of any of the methods summarized above. Further aspects include a vehicle control gesture system for use in a vehicle including a processor configured with processor-executable instructions to perform operations of any of the methods summarized above. Further aspects include a processing device for use in a vehicle control system and configured to perform operations of any of the methods summarized above.
[0007] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments and, together with the general description given above and the detailed description given below, serve to explain features of the various embodiments. [Brief description of the drawings]
[0008] [Figure 1A] FIG. 1 is a schematic diagram illustrating a vehicle gesture detection system suitable for implementing various embodiments. [Figure 1B] FIG. 1 is a schematic diagram illustrating a vehicle gesture detection system suitable for implementing various embodiments. [Figure 2A] FIG. 1 is a component block diagram illustrating a vehicle suitable for implementing various embodiments. [Figure 2B] FIG. 1 is a component block diagram illustrating a vehicle suitable for implementing various embodiments. [Diagram 3] FIG. 1 is a component block diagram illustrating components of a vehicle suitable for implementing various embodiments. [Figure 4A]FIG. 1 is a component block diagram illustrating components of an exemplary vehicle management system, in accordance with various embodiments. [Figure 4B] FIG. 2 is a component block diagram illustrating components of another exemplary vehicle management system, in accordance with various embodiments. [Diagram 5] FIG. 1 is a block diagram illustrating components of an exemplary system-on-chip for use in a vehicle that may be configured to operate based on vehicle control gestures by a passenger, in accordance with various embodiments. [Figure 6] FIG. 1 is a component block diagram of an exemplary vehicle computing system configured to operate a vehicle based on vehicle control gestures by a passenger, in accordance with various embodiments. [Figure 7A] 1 illustrates an example of a vehicle operating based on vehicle control gestures by a passenger, according to various embodiments. [Figure 7B] 1 illustrates an example of a vehicle operating based on vehicle control gestures by a passenger, according to various embodiments. [Figure 7C] 1 illustrates an example of a vehicle operating based on vehicle control gestures by a passenger, according to various embodiments. [Figure 8A] 1 illustrates an example of a vehicle operating based on vehicle control gestures, in accordance with various embodiments. [Figure 8B] 1 illustrates an example of a vehicle operating based on vehicle control gestures, in accordance with various embodiments. [Figure 9A] FIG. 2 is a process flow diagram of an exemplary method for operating a vehicle based on vehicle control gestures by a passenger, in accordance with various embodiments. [Figure 9B] FIG. 2 is a process flow diagram of an exemplary method for operating a vehicle based on vehicle control gestures by a passenger, in accordance with various embodiments. [Figure 9C] FIG. 2 is a process flow diagram of an exemplary method for operating a vehicle based on vehicle control gestures by a passenger, in accordance with various embodiments. [Figure 9D]FIG. 2 is a process flow diagram of an exemplary method for operating a vehicle based on vehicle control gestures by a passenger, in accordance with various embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Various aspects will be described in detail with reference to the accompanying drawings. Whenever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. References made to specific examples and embodiments are for illustrative purposes only and are not intended to limit the scope of the various aspects or the claims.
[0010] Various embodiments provide a method executed by a processor of a semi-autonomous vehicle to recognize vehicle control gestures by a passenger, the vehicle control gestures being directed to steering and speed control of the autonomous vehicle. The processor may select a passenger profile from a plurality of passenger profiles for normalizing vehicle control gestures received from the passenger. The processor may determine vehicle actions by applying the passenger profile to the detected vehicle control gestures performed by the passenger, or by using generalized parameters that may be applied to anyone, and may verify that the detected vehicle control gestures are safe for the vehicle to perform. The processor may execute safe vehicle commands in a safe manner, regardless of the emphasis used by the passenger when making the vehicle control gesture.
[0011] Various embodiments include a vehicle system configured to recognize gestures performed by a passenger to control a semi-autonomous vehicle. The vehicle system may include sensors, including one or more cameras, and sensor processing capabilities (e.g., motion processing and / or image processing) to recognize certain passenger actions (i.e., gestures) as vehicle control gestures performed by the passenger. For example, a vehicle occupant swiping his / her hand in the air from left to right, pretending to turn the wheels right, pointing toward the right side of the vehicle, and / or giving other predefined hand signals / movements may be designated and recognized as a vehicle control gesture to turn right. Once the sensor processing capabilities recognize a designated vehicle control gesture, a translation of the recognized vehicle control gesture representing a vehicle action may be processed by a vehicle control unit to control operation of the vehicle.
[0012] The process of recognizing vehicle control gestures may take into account historical records of passenger inputs. The historical records may serve as the basis for one or more passenger profiles that reflect characteristics of how a passenger actually performs a given vehicle control gesture, including consistent deviations from a model gesture. Each passenger profile may be specific to a particular passenger associated with one or more particular seats in the vehicle (e.g., a conventional driver's seat), or may be generalized for any passenger and / or any seating position. The passenger profile may be used to verify that the detected gestures match the passenger's typical or prior inputs. The passenger profile may also be used to better recognize valid inputs and reduce the likelihood of erroneous gesture detection.
[0013] As used herein, the term "passenger" refers to an occupant of a vehicle, particularly a semi-autonomous vehicle, which may include a driver or drivers and one or more other occupants of the vehicle.
[0014] As used herein, the term "passenger profile" refers to a set of data that reflects salient features of the manner in which one or more passengers perform a plurality of vehicle control gestures or one particular vehicle control gesture.
[0015] As used herein, the term "gesture" refers to a movement or pose using a part of the body, particularly the hand and / or arm, to express an idea or meaning. More specifically, the term "vehicle control gesture" refers to a movement or pose configured to control one or more actions of a semi-autonomous or autonomous vehicle.
[0016] As used herein, the terms "safe" or "safety" are used interchangeably and refer to conditions / environments that are protected from danger or not significantly exposed to danger. In various embodiments, a condition / environment may be deemed safe when damage or injury to one or more passengers, vehicles, and / or parts of a vehicle has a probability of occurrence that is less than a threshold. Although operating a vehicle may always involve a level of risk, a predetermined low level of risk (i.e., a safety threshold) may be deemed safe (i.e., acceptable). In addition, the processor may calculate separate probabilities of occurrence of damage or injury to two or more objects (e.g., passengers, vehicles, and / or parts of a vehicle) and two or more types of damage or injury to those objects. Also, the same or different safety thresholds may be applied to the calculation of risk for each of those objects.
[0017] The term "computing device" as used herein refers to an electronic device equipped with at least a processor, a communication system, and a memory configured with a contact database. For example, the computing device may include any one or all of the following: cellular telephones, smartphones, portable computing devices, personal or portable multimedia players, laptop computers, tablet computers, 2-in-1 laptop / table computers, smartbooks, ultrabooks, palmtop computers, wireless email receivers, multimedia Internet-enabled cellular telephones, wearable devices including smart watches, entertainment devices (e.g., wireless game controllers, music and video players, satellite radios, etc.), and similar electronic devices including memory, wireless communication components, and programmable processors. In various embodiments, the computing device may be configured with memory and / or storage devices. Additionally, the computing devices referenced in various exemplary embodiments may be coupled to or include wired or wireless communication capabilities to implement various embodiments, such as network transceivers and antennas configured to communicate with a wireless communication network.
[0018] The term "system on chip" (SOC) is used herein generally to refer to a set of interconnected electronic circuits including, but not limited to, one or more processors, memory, and communication interfaces. A SOC may include a variety of different types of processors and processor cores, such as general purpose processors, central processing units (CPUs), digital signal processors (DSPs), graphics processing units (GPUs), accelerated processing units (APUs), subsystem processors, auxiliary processors, single-core processors, and multi-core processors. A SOC may further embody other hardware and combinations of hardware, such as field programmable gate arrays (FPGAs), configuration and status registers (CSRs), application specific integrated circuits (ASICs), other programmable logic devices, discrete gate logic, transistor logic, registers, performance monitoring hardware, watchdog hardware, counters, and time bases. A SOC may be an integrated circuit (IC) configured such that the components of the IC reside on the same substrate, such as a single piece of semiconductor material (e.g., silicon).
[0019] Autonomous and semi-autonomous vehicles, such as cars, trucks, and buses, are becoming a reality on the roads. Autonomous and semi-autonomous vehicles also typically include multiple sensors, including cameras, radar, and lidar, that collect information about the environment surrounding the vehicle. For example, such collected information may enable the vehicle to recognize the road, identify objects to avoid, and track the movements and future positions of other vehicles, enabling partially or fully autonomous navigation. According to various embodiments, the use of such sensors may be extended inside the vehicle to detect vehicle control gestures for passengers to control the actions of the vehicle without the use of a traditional steering wheel, joystick, or similar direct mechanical controls.
[0020] Various embodiments may be implemented in various semi-autonomous vehicles that include gesture detection systems, of which an exemplary vehicle gesture detection system 50 is shown in Figures 1A and 1B. With reference to Figures 1A and 1B, the vehicle gesture detection system 50 may include one or more sensors 101, a profile database 142, and a gesture recognition engine 144 coupled to and / or functioning with a control unit 140 of the vehicle 100. The vehicle gesture detection system 50 may be configured to detect predefined gestures 61, 62 performed by passengers 11, 12 within the vehicle 100.
[0021] By using gestures, one or more passengers may provide control inputs to the processor of the vehicle 100 without having to physically touch a steering wheel or other machine controller. The sensors 101 may include motion sensors, proximity sensors, cameras, microphones, impact sensors, radar, lidar, satellite geographic positioning system receivers, tire pressure sensors, etc., that may be configured to capture images or other characteristics of the movements and / or poses performed by the passengers. The movements and / or poses may include all movements and / or poses, including both predefined gestures associated with one or more vehicle control gestures and other movements or poses not associated with vehicle control. In this manner, the sensors 101 do not need to distinguish between types of movements or poses, but may convey data regarding the captured images or other characteristics to the gesture recognition engine 144 for analysis therein.
[0022] The profile database 142 may maintain a number of passenger profiles customized to normalize vehicle control gestures for a particular passenger, a group of passengers, and / or a passenger in a particular seat within the vehicle 100. The profile database 142 may be configured to communicate data regarding one or more of the plurality of passenger profiles to the gesture recognition engine 144 for analysis therein.
[0023] A passenger profile may include data related to how a particular person performs a gesture and / or a particular gesture that the person has chosen to use. Thus, the profile database 142 may include different passenger profiles designated for different people. Each particular person may be identified based on input from the passenger or recognition of the passenger's identity through the sensor 101. In this manner, the input from the passenger may provide an identification and / or a personalized passenger profile, which may be added or updated in the profile database 142. The input from the passenger may be taken from a user interface associated with the vehicle 100, the passenger's personal computing device (e.g., a smartphone), and / or another input device. Thus, the passenger profile may be selected based on the passenger's identity and / or may be specific to a unique individual. The passenger profile may also be customized to an identified passenger from training input previously received from the passenger. Additionally, more than one passenger profile may be associated with a single unique individual. Thus, a person may select a particular passenger profile that should match their mood (eg, tired, agitated, excited, etc.), time of day, and / or other criteria.
[0024] Additionally or alternatively, multiple passenger profiles may be customized to normalize vehicle control gestures for passengers in one or more particular seats in the vehicle. For example, one passenger profile may be designated for any individual sitting in a designated "driver's seat" and one or more other passenger profiles may be designated for any individual sitting in any other seat. As a further alternative, one passenger profile may be designated for all passengers, regardless of who they are or where they sit. Similarly, the profile database 142 may maintain one or more default passenger profiles for use when a passenger is not identified or when a customized passenger profile has not been set up for that passenger.
[0025] In some implementations, the gesture recognition engine 144 may use neural network processing and / or artificial intelligence methods to determine whether the movements and / or poses captured by the sensor 101 match predefined gestures associated with vehicle control. Additionally, the gesture recognition engine 144 may use data from the passenger profile received from the profile database 142 to determine which vehicle action was intended by the movements and / or poses captured by the sensor 101. Thus, taking into account the movements or poses captured by the sensor 101 and the passenger profile communicated from the profile database 142, the gesture recognition engine 144 may communicate instructions or data to the control unit 140 for the control unit 140 to operate the vehicle 100 in a manner to perform the specified vehicle action. In various implementations, before initiating any vehicle action, the control unit 140 may ensure that the specified vehicle action is safe for the vehicle 100 and its occupants (e.g., passengers 11, 12).
[0026] Some vehicle actions may vary in amount or magnitude of change, such as acceleration, deceleration, and lane change. In some implementations, in addition to matching the captured movement and / or pose to a predefined gesture associated with vehicle control, the gesture recognition engine 144 may also assess measurable parameters of the captured movement (e.g., angle, distance, etc.) to interpret the intended vehicle control input. For ease of explanation, the angle or degree of rotation, the distance or range of the gesture, the speed of the gesture movement, the acceleration during the gesture, and other measurable parameters of the observed gesture are referred to herein as the "degree" of the captured movement. The gesture recognition engine 144 may interpret the degree of the captured movement to determine the magnitude of the vehicle movement intended by the person making the gesture. For example, a passenger may swipe their hand through the air in a 15 degree arch to convey a command to change lanes in the direction of the swipe, but only one lane. A similar swipe extending 45 degrees or more may mean a command to change two lanes in the direction of the swipe. In this manner, the degree of captured movement and / or pose may correspond to the amount or magnitude of the resulting vehicle action. In some embodiments, the degree of captured movement and / or pose taken into account by the gesture recognition engine 144 may vary depending on the type of action. For example, the degree (e.g., degree or amount of movement) in a gesture for turning a vehicle may be different from the degree or amount of movement for a gesture that causes the vehicle to stop or slow down.
[0027] In some embodiments, the interpretation of passenger actions as vehicle control gestures, and in particular the degree of a detected gesture to determine an intended vehicle action or command, may vary from passenger to passenger and may be saved in a passenger profile or historical data, reflected in training data, etc. For example, the degree of a gesture may vary with the size of an individual. The degree of a gesture may also vary with personality, as some people may be more expressive or exaggerate their gestures while others may perform smaller gestures.
[0028] In some embodiments, the amount of vehicle turning or speed change corresponding to a passenger gesture may depend linearly or non-linearly on the degree of the captured movement. For example, a 5 degree movement of a finger, hand, or arm may cause the vehicle to make a 1 lane change (i.e., may correspond to a 1 lane change), a 15 degree movement may correspond to a 2 lane change (i.e., because this is a more abrupt maneuver), and a 60 degree movement may correspond to a 3 lane change (i.e., even more abrupt).
[0029] In some embodiments, the determined extent of the captured movement may be capped (i.e., may not be interpreted to extend beyond a maximum degree, distance, or speed) for purposes of determining a corresponding command of a vehicle turn or speed change. In some embodiments, such caps or maximums are imposed on the interpretation always, in some circumstances, or only for some types of gestures. For example, 5 degree, 10 degree, and 15 degree movements may correspond to a 1 lane change, a 2 lane change, and a 3 lane change, respectively, but the gesture recognition engine 144 may not interpret a 20 degree turn as indicating a 4 lane change if the lane change gesture is capped at a 15 degree movement.
[0030] In some embodiments where the degree of the captured movement and / or pose is taken into account, the measured movement may be rounded (down / up) to a particular degree increment appropriate for the particular gesture. For example, if a 5 degree hand movement is associated with a 1 lane change and a 10 degree hand movement is associated with a 2 lane change, then a 7 degree hand movement may be associated with only a 1 lane change. In some embodiments, the safer option of a 1 lane change or a 2 lane change is selected. Alternatively or additionally, the passenger may provide some additional indication that a partial lane change (i.e., resulting in the vehicle straddling two lanes) is intended, such as indicating that a 7 degree hand movement should be interpreted as a 1.5 lane change.
[0031] In some embodiments, either alternatively or in addition to movement gestures, passenger inputs other than movements may be interpreted as vehicle control gestures by the gesture recognition engine 144. For example, the gesture recognition engine 144 may recognize (without being limited to) voice commands, touch control on any touch-sensitive surface (e.g., on a steering wheel, touch screen, armrest, seat belt, etc.), and / or remote controller inputs, such as inputs on a mobile device app, gamepad controller, detachable steering wheel, or other remote controller, which can be handed off to any passenger wishing to input commands.
[0032] In some embodiments, gestures or other commands may be received from a party outside the vehicle (e.g., via the wireless module 172). Thus, the gesture recognition engine 144 may recognize such remote commands to control the vehicle. Alternatively, a device (e.g., the wireless communication device 190) may be configured with the gesture recognition engine 144 to recognize gestures or commands to control the vehicle and then send the corresponding commands to the vehicle for execution. For example, a vehicle owner (remote from the vehicle) may provide gestures or commands to cause the vehicle to change lanes, change speed, etc. As another example, a passenger may exit a vehicle with a detachable steering wheel (or other input device) to control the vehicle from outside the vehicle (e.g., to provide a different view while parking in a tight space).
[0033] In some embodiments, the passenger may perform a sequence of vehicle control gestures that cause the vehicle to perform a corresponding sequence of maneuvers. In some embodiments, the gesture recognition engine 144 may indicate (e.g., with a sound, light, vibration, etc.) that the gestures are recognized, and the passenger may wait for one gesture to be recognized or performed before performing the next gesture. In some embodiments, the gesture recognition engine 144 or the control unit 140 may cause the vehicle to perform the sequence of maneuvers in the order in which they are presented. Alternatively, the gesture recognition engine 144 or the control unit 140 may cause the vehicle to perform each maneuver once it is safe to perform or after receiving further passenger input (e.g., following a prompt). Additionally or as a further alternative, the gesture recognition engine 144 may prompt the user before performing a vehicle action, such as one of the sequence of actions, if the vehicle action would become unsafe to perform before performing the vehicle action. For example, if a passenger performs a series of vehicle control gestures set to slow down and then make a turn, vehicle control unit 140 may not perform the turn if the vehicle is prevented from making the turn after slowing down.
[0034] 1A and 1B, a first passenger 11 is illustrated as performing a first vehicle control gesture 61 and a second passenger 12 is illustrated as performing a second vehicle control gesture 62, respectively. The first vehicle control gesture 61 involves the first passenger 11 moving or swiping an open palm hand in the air from left to right following an arcuate angle motion. In this instance, the sensor 101 detects a thirty degree (30°) swipe from left to right (i.e., a "30° right swipe"). The second vehicle control gesture 62 involves the second passenger 12 moving or swiping a pointing finger hand in the air from left to right following an arcuate angle motion. In contrast to the first vehicle control gesture 61, which uses an open hand and spans an angle of only 30 degrees, the second vehicle control gesture 62 uses a partially closed hand with a pointing finger spanned across an angle of 90 degrees. However, the gesture recognition engine 144 may determine that both passengers 11, 12 want the vehicle to change lanes to the right, after normalizing each of the first and second vehicle control gestures 61, 62 using the first and second passenger profiles A and B. Thus, in both cases, the gesture recognition engine 144 may output the same vehicle action to the control unit 140, such as to change lanes to the right lane.
[0035] The gesture recognition engine 144 may output many different types and degrees of vehicle actions to the control unit 140 to operate the vehicle 100 to perform the vehicle action associated with the recognized gesture 61, 62.
[0036] Various embodiments may be implemented in various vehicles, of which an exemplary vehicle 100 is shown in Figures 2A and 2B. With reference to Figures 2A and 2B, the vehicle 100 may include a control unit 140 and a number of sensors. In Figures 2A and 2B, the number of sensors generally described with respect to Figure 1 are separately described. In particular, the number of sensors may include occupancy sensors 102, 104, 106, 108, 110 (e.g., motion and / or proximity sensors), cameras 112, 114, microphones 116, 118, impact sensors 120, radar 122, lidar 124, satellite geographic positioning system receiver 126, and tire pressure sensors 128. The multiple sensors 102-128 disposed in or on the vehicle may be used for various purposes, such as vehicle gesture detection and / or autonomous and semi-autonomous navigation and control, collision avoidance, position determination, vehicle control gesture detection, as well as providing sensor data regarding objects and people in or near the vehicle 100. The sensors 102-128 may include one or more of a wide variety of sensors capable of receiving inputs about the environment inside and outside the vehicle 100, as well as detecting various information useful for navigation control and collision avoidance. Each of the sensors 102-128 may be in wired or wireless communication with the control unit 140 and with each other. In particular, the sensors 102-128 may include one or more cameras 112, 114, including or consisting of other light sensors, photo-sensitive sensors, and / or motion sensors. The sensors 102-128 may further include other types of object detection and ranging sensors, such as radar 122, lidar 124, IR sensors, and ultrasonic sensors. The sensors 102-128 may further include tire pressure sensors 128, humidity sensors, temperature sensors, satellite geographic positioning system receivers 126, accelerometers, vibration sensors, gyroscopes, gravity meters, shock sensors 120, force meters, stress meters, strain sensors, microphones 116, 118, occupancy sensors 102, 104, 106, 108, 110 which may include motion and / or proximity sensors, as well as various environmental sensors.
[0037] The vehicle control unit 140 may be configured to operate the vehicle 100 based on vehicle actions interpreted from vehicle control gestures by one or more passengers 11, 12, 13 and passenger profiles, according to various embodiments. Additionally, the control unit 140 may have default settings for one or more passenger profiles. For example, based on a currently loaded passenger profile, the default settings may operate the vehicle more or less smoothly, more or less efficiently, more or less quickly, more or less gently, etc. For example, when the control unit 140 does not recognize a passenger (i.e., passenger profiles do not match), the default settings may be followed. Alternatively, when the control unit 140 does not recognize a passenger, a new profile may be created for the unknown person, for example based on the person's actions (e.g., gestures / poses).
[0038] The vehicle control unit 140 may be configured with processor-executable instructions to execute various embodiments using information received from various sensors, particularly the cameras 112, 114, microphones 116, 118, and occupancy sensors 102, 104, 106, 108, 110. In some embodiments, the control unit 140 may supplement the processing of camera images using distance and relative position (e.g., relative azimuth), which may be obtained from radar 122, lidar 124, and / or other sensors. The control unit 140 may be further configured to control the direction, braking, speed, acceleration / deceleration, etc. of the vehicle 100 when operating in an autonomous or semi-autonomous mode using information regarding vehicle control gestures from other vehicles and / or passengers determined using the various embodiments.
[0039] 3 is a component block diagram illustrating a system 300 of components and support systems suitable for implementing various embodiments. With reference to FIGS. 1A-3, the vehicle 100 may include a control unit 140, which may include various circuits and devices used to control the operation of the vehicle 100. In the example shown in FIG. 3, the control unit 140 includes a processor 164, a memory 166, an input module 168, an output module 170, and a wireless module 172. The control unit 140 may be coupled to and configured to control the driving control component 154, the navigation component 156, and one or more sensors 101 of the vehicle 100.
[0040] As used herein, terms such as "component," "system," "unit," "module," and the like include computer-related entities, such as, but not limited to, hardware, firmware, a combination of hardware and software, software, or software in execution, configured to perform certain operations or functions. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of example, both an application running on a communications device and the communications device may be referred to as a component. One or more components may reside within a process and / or thread of execution, and a component may be localized on one processor or core and / or distributed among two or more processors or cores. Additionally, these components may execute from various non-transitory computer-readable media having various instructions and / or data structures stored thereon. Components may communicate by way of local and / or remote processes, function or procedure calls, electronic signals, data packets, memory reads / writes, and other computer, processor, and / or process related communication methods known in the art.
[0041] Control unit 140 may include a processor 164, which may be configured with processor-executable instructions to determine vehicle control gestures and / or alternatives thereof and to control steering, navigation, and / or other operations of vehicle 100, including operation of the various embodiments. Processor 164 may be coupled to memory 166. Control unit 140 may include an input module 168, an output module 170, and a wireless module 172.
[0042] The radio module 172 may be configured for wireless communication. The radio module 172 may exchange signals 182 (e.g., command signals for controlling steering, signals from navigation equipment, etc.) with the communication network 180. The radio module 172 may provide the signals 182 to the processor 164 and / or the navigation component 156. In some embodiments, the radio module 172 may enable the vehicle 100 to communicate with a wireless communication device 190 through a wireless communication link 187. The wireless communication link 187 may be a bidirectional or unidirectional communication link. The wireless communication link 187 may use one or more communication protocols. In some embodiments, the radio module 172 may enable the vehicle 100 to communicate with another vehicle through a wireless communication link 192. The wireless communication link 192 may be a bidirectional or unidirectional communication link, and the wireless communication link 192 may use one or more communication protocols.
[0043] The input module 168 may receive sensor data from one or more vehicle sensors 101 and electronic signals from other components, including the driving control component 154 and the navigation component 156. An output module 170 may be used to communicate with or activate various components of the vehicle 100, including the driving control component 154, the navigation component 156, and the sensors 101.
[0044] Control unit 140 may be coupled to driving control components 154 to control physical elements of vehicle 100 related to steering and navigation of the vehicle, such as (but not limited to) engines, motors, throttles, orientation elements, flight control elements, braking or deceleration elements, etc. Driving control components 154 may also or alternatively include components to control other devices of the vehicle, including (but not limited to) environmental controls (e.g., air conditioning and heating), exterior and / or interior lighting, interior and / or exterior information displays (which may include display screens or other devices for displaying information), safety devices (e.g., haptic devices, audible alarms, etc.), and other similar devices.
[0045] The control unit 140 may be coupled to the navigation component 156, may receive data from the navigation component 156, and may be configured to use such data to determine the current position and orientation of the vehicle 100. In various embodiments, the navigation component 156 may include or be coupled to a Global Navigation Satellite System (GNSS) receiver system (e.g., one or more Global Positioning System (GPS) receivers) that enables the vehicle 100 to determine its current position using GNSS signals. Alternatively or additionally, the navigation component 156 may include a wireless navigation receiver for receiving navigation beacons or other signals from wireless nodes, such as Wi-Fi access points, cellular network sites, radio stations, remote computing devices, other vehicles, etc. Through control of the driving control component 154, the processor 164 may control the vehicle 100 to navigate and steer. The processor 164 and / or navigation component 156 may be configured to communicate with a server 184 over a network 186 (e.g., the Internet) using a wireless connection signal 182 with a cellular data communications network 180 to receive commands for controlling navigation, receive data useful in navigation, provide real-time position reports, and assess other data. The control unit 140 may be coupled to one or more sensors 101 that may be configured to provide various data to the processor 164.
[0046] Although control unit 140 is described as including separate components, in some embodiments some or all of the components (e.g., processor 164, memory 166, input module 168, output module 170, and wireless module 172) may be integrated within a single device or module, such as a system-on-chip (SOC) processing device. Such a SOC processing device may be configured for use in a vehicle and may be configured, such as with processor-executable instructions executing in processor 164, to perform the operations of various embodiments when installed within the vehicle.
[0047] FIG. 4A illustrates an example of a subsystem, computational element, computing device, or computing unit in a vehicle management system 400 that may be utilized in a vehicle (e.g., 100). With reference to FIGS. 1A-4A, in some embodiments, the various computational elements, computing devices, or computing units in the vehicle management system 400 may be implemented in a system (i.e., subsystem) of interconnected computing devices that communicate data and commands with each other (e.g., as indicated by the arrows in FIG. 4A). In other embodiments, the various computational elements, computing devices, or computing units in the vehicle management system 400 may be implemented in a single computing device, such as separate threads, processes, algorithms, or computational elements. Thus, each subsystem / computational element illustrated in FIG. 4A is also generally referred to herein as a "layer" in the computational "stack" that makes up the vehicle management system 400. However, the use of the terms layer and stack in describing various embodiments does not imply or require that the corresponding functionality is implemented in a single autonomous (or semi-autonomous) vehicle management system computing device, although this is a possible embodiment. Rather, use of the term "layer" is intended to encompass subsystems having independent processors, computational elements (e.g., threads, algorithms, subroutines, etc.) that execute within one or more computing devices and combinations of subsystems and computational elements.
[0048] In various embodiments, vehicle management system 400 may include a radar perception layer 402, a camera perception layer 404, a positioning engine layer 406, a map fusion and arbitration layer 408, a route planning layer 410, a sensor fusion and road world model (RWM) management layer 412, a trip planning and control layer 414, and a behavior planning and prediction layer 416. Layers 402-416 are merely examples of some layers in one exemplary configuration of vehicle management system 400. In other configurations consistent with various embodiments, one or more other layers may be included, such as (without limitation) additional layers for other perception sensors (e.g., a camera perception layer, etc.), additional layers for planning and / or control, additional layers for modeling, and / or some of layers 402-416 may be excluded from vehicle management system 400.
[0049] Each of the layers 402-416 may exchange data, computations, and commands as illustrated by the arrows in FIG. 4A. Additionally, the vehicle management system 400 may receive and process data from sensors (e.g., radar, lidar, camera, inertial measurement unit (IMU), etc.), navigation systems (e.g., GPS receivers, IMU, etc.), vehicle networks (e.g., controller area network (CAN) bus), and databases (e.g., digital map data) in memory. The vehicle management system 400 may output vehicle control commands or signals to a drive-by-wire (DBW) system / control unit 420, which is a system, subsystem, or computing device that directly interfaces with the vehicle direction, throttle, and brake controls. The configuration of the vehicle management system 400 and DBW system / control unit 420 shown in FIG. 4A is merely an exemplary configuration, and other configurations of the vehicle management system and other vehicle components may be used in various embodiments. As an example, the vehicle management system 400 and DBW system / control unit 420 configuration shown in FIG. 4A may be used in a vehicle configured for autonomous or semi-autonomous operation, although a different configuration may be used in a non-autonomous vehicle.
[0050] The radar perception layer 402 may receive data from one or more detection and ranging sensors, such as radar (e.g., 122) and / or lidar (e.g., 124). The radar perception layer 402 may process that data to recognize and determine the location of other vehicles and objects within the vicinity of the vehicle 100. In some implementations, the radar perception layer 402 may include the use of neural network processing and artificial intelligence methods to recognize objects and vehicles. The radar perception layer 402 may pass such information to the sensor fusion and RWM management layer 412.
[0051] The camera perception layer 404 may receive data from one or more cameras, such as cameras (e.g., 112, 114), and may process that data to detect vehicle control gestures, as well as to recognize and determine the location of other vehicles and objects within the vicinity of the vehicle 100. In some implementations, the camera perception layer 404 may include the use of neural network processing and artificial intelligence methods to recognize objects and vehicles, and may pass such information to the sensor fusion and RWM management layer 412.
[0052] The positioning engine layer 406 may receive data from various sensors and process the data to determine a position of the vehicle 100. The various sensors may include, but are not limited to, GPS sensors, IMUs, and / or other sensors connected via a CAN bus. The positioning engine layer 406 may also utilize input from one or more cameras, such as cameras (e.g., 112, 114), and / or any other available sensors, such as radar (e.g., 122), lidar (e.g., 124), etc.
[0053] The map fusion and reconciliation layer 408 may access data in a high definition (HD) map database or may receive output received from the positioning engine layer 406 and may process the data to further determine the location of the vehicle within the map, such as location within travel lanes, location within a city map, etc. The HD map database may be stored in a memory (e.g., memory 166). For example, the map fusion and reconciliation layer 408 may convert latitude and longitude information from a GPS to locations within a ground map of roads contained within the HD map database. GPS position determinations include errors, so the map fusion and reconciliation layer 408 may function to determine a best guess location of the vehicle within the road based on reconciliation between the GPS coordinates and the HD map data. For example, the GPS coordinates may place the vehicle near the center of a two-lane road in the HD map, but the map fusion and reconciliation layer 408 may determine from the heading direction that the vehicle is most likely aligned in the heading lane that matches the heading direction. The map fusion and reconciliation layer 408 may pass the map-based location information to the sensor fusion and RWM management layer 412 .
[0054] The route planning layer 410 may utilize HD maps and input from an operator or dispatcher to plan a route to be followed by a vehicle to a particular destination. The route planning layer 410 may pass map-based location information to the sensor fusion and RWM management layer 412. However, the use of traditional maps by other layers, such as the sensor fusion and RWM management layer 412, is not required. For example, as perception data is received, other stacks may build lanes, boundaries, and notions of a local map to steer and / or control the vehicle based solely on the perception data without a provided map.
[0055] The sensor fusion and RWM management layer 412 may receive data and outputs produced by the radar perception layer 402, the camera perception layer 404, the map fusion and arbitration layer 408, and the route planning layer 410, and may use some or all of such inputs to estimate or improve the location and status of the vehicle relative to the road, other vehicles on the road, and other objects in the vehicle's vicinity. For example, the sensor fusion and RWM management layer 412 may combine imagery data from the camera perception layer 404 with arbitrated map location information from the map fusion and arbitration layer 408 to improve the vehicle's determined position within a traffic lane.
[0056] As another example, the sensor fusion and RWM management layer 412 may combine object recognition and imagery data from the camera perception layer 404 with object detection and ranging data from the radar perception layer 402 to determine and improve the relative position of other vehicles and objects in the vehicle's vicinity. As another example, the sensor fusion and RWM management layer 412 may receive information about other vehicle positions and headings from vehicle-to-vehicle (V2V) communications (such as via a CAN bus) and combine that information with information from the radar perception layer 402 and camera perception layer 404 to improve the location and operation of other vehicles. The sensor fusion and RWM management layer 412 may output improved location and status information of the vehicle, as well as improved location and status information of other vehicles and objects in the vehicle's vicinity, to the operation planning and control layer 414 and / or behavior planning and prediction layer 416.
[0057] As a further example, the sensor fusion and RWM management layer 412 may use dynamic traffic control commands to direct the vehicle to change speed, lane, heading, or other navigation elements, and may combine that information with other received information to determine improved location and state information. The sensor fusion and RWM management layer 412 may output the improved location and state information of the vehicle, as well as improved location and state information of other vehicles and objects in the vicinity of the vehicle, to the operation planning and control layer 414, the behavior planning and prediction layer 416, and / or to devices remote from the vehicle, such as data servers, other vehicles, etc., via wireless communications, such as through a C-V2X connection, other wireless connections, etc.
[0058] As yet a further example, the sensor fusion and RWM management layer 412 may monitor perception data from various sensors, such as perception data from the radar perception layer 402, the camera perception layer 404, other perception layers, etc., and / or data from one or more sensors themselves to analyze conditions in the vehicle sensor data. The sensor fusion and RWM management layer 412 may be configured to detect conditions in the sensor data, such as whether a sensor measurement is at, above, or below a threshold, that some type of sensor measurement has been made, etc., and may output the sensor data to the behavior planning and prediction layer 416 and / or as part of improved location and status information for the vehicle provided to devices remote from the vehicle, such as data servers, other vehicles, etc., via wireless communications, such as through a C-V2X connection, other wireless connections, etc.
[0059] Improved location and status information includes vehicle specifications (e.g., size, weight, color, on-board sensor types, etc.), vehicle position, speed, acceleration, heading, attitude, orientation, destination, fuel / power levels, and other status information, vehicle emergency status (e.g., whether the vehicle is an emergency vehicle or a private individual in an emergency), vehicle constraints (e.g., heavy / wide loads, turning constraints, high occupancy vehicle (HOV) The sensor data may include vehicle descriptors associated with the vehicle and the vehicle owner and / or vehicle operator, such as vehicle (vehicle) authorization, etc., vehicle capabilities (e.g., all wheel drive, four wheel drive, snow tires, chains, supported connection types, on-board sensor operational status, on-board sensor resolution level, etc.), equipment issues (e.g., low tire pressure, weak brakes, sensor outage, etc.), owner / operator travel preferences (e.g., preferred lanes, roads, routes, and / or destinations, preferences to avoid tolls or highways, preferences for fastest route, etc.), authorization to provide sensor data to a data authority server (e.g., 184), and / or owner / operator identification information.
[0060] The behavior planning and prediction layer 416 of the autonomous vehicle management system 400 may use the improved location and state information of the vehicle, and the location and state information of other vehicles and objects output from the sensor fusion and RWM management layer 412, to predict future behavior of other vehicles and / or objects. For example, the behavior planning and prediction layer 416 may use such information to predict the future relative positions of other vehicles in the vicinity of the vehicle based on its own vehicle position and speed and the positions and speeds of the other vehicles. Such predictions may take into account information from HD maps and route planning to anticipate changes in relative vehicle positions as the host and other vehicles follow the road. The behavior planning and prediction layer 416 may output behavior and location predictions of other vehicles and objects to the operation planning and control layer 414.
[0061] Additionally, the behavior planning and prediction layer 416 may use object behavior in combination with location prediction to plan and generate control signals to control the operation of the vehicle. For example, based on route planning information, improved location in road information, and relative locations and operations of other vehicles, the behavior planning and prediction layer 416 may determine that the vehicle needs to change lanes and accelerate, such as to maintain or achieve a minimum separation from other vehicles and / or prepare for a turn or exit. As a result, the behavior planning and prediction layer 416 may calculate or otherwise determine steering angles for the road wheels and changes in throttle settings to be commanded to the operation planning and control layer 414 and the DBW system / control unit 420, along with such various parameters necessary to achieve such lane changes and acceleration. One such parameter may be the calculated steering wheel command angle.
[0062] The trip planning and control layer 414 may receive data and information output from the sensor fusion and RWM management layer 412, as well as behavior and location predictions of other vehicles and objects from the behavior planning and prediction layer 416. The trip planning and control layer 414 may use (at least some of) this information to generate control signals for planning and controlling the operation of the vehicle, and to verify that such control signals meet safety requirements for the vehicle. For example, based on the route planning information, improved location in road information, and the relative locations and operations of other vehicles, the trip planning and control layer 414 may verify and pass various control commands or instructions to the DBW system / control unit 420.
[0063] The DBW system / control unit 420 may receive commands or instructions from the fleet planning and control layer 414 and may convert such information into mechanical control signals for controlling the vehicle's wheel angles, brakes, and throttle. For example, the DBW system / control unit 420 may respond to a calculated steering wheel command angle by sending a corresponding control signal to a steering wheel controller.
[0064] In various embodiments, the vehicle management system 400 may include functionality to perform safety inspection or oversight of various commands, planning or other decisions of various layers that may affect the safety of the vehicle and its occupants. Such safety inspection or oversight functionality may be implemented in a dedicated layer or may be distributed among the various layers and included as part of the functionality.
[0065] In some embodiments, various safety parameters may be stored in memory, and a safety inspection or supervision function may compare determined values (e.g., relative spacing to nearby vehicles, distance from a road centerline, etc.) with corresponding safety parameters and may issue an alert or command if a safety parameter is or will be violated. For example, a safety or supervision function in the behavior planning and prediction layer 416 (or in a separate layer) may determine (e.g., based on a world model improved by the sensor fusion and RWM management layer 412) a current or future separation distance between the vehicle and another vehicle (as defined by the sensor fusion and RWM management layer 412), compare the separation distance with safety separation distance parameters stored in memory, and issue commands to the trip planning and control layer 414 to accelerate, decelerate, or turn if the current or predicted separation distance violates the safety separation distance parameters. As another example, a safety or supervisory function in the mission planning and control layer 414 (or a separate layer) may compare the determined or commanded steering wheel command angle to safe wheel angle limits or parameters and may issue an override command and / or alert in response to the commanded angle exceeding the safe wheel angle limit.
[0066] According to various implementations, some safety parameters stored in the memory may be static (i.e., unchanged over time), such as the maximum vehicle speed. For example, operating the vehicle above 120 mph (or some other value, which may be set by the manufacturer, vehicle owner, etc.) may be considered dangerous, and thus the vehicle (e.g., the gesture recognition engine 144 and / or the control unit 140) will impose a maximum safety parameter related to speed. With an autonomous vehicle, it may still be safe to operate at speeds in excess of 120 mph, and thus a larger value may be used. Alternatively, some safety parameters (e.g., maximum speed) may be dynamic and change depending on location, driving conditions (e.g., traffic volume), and / or external inputs (e.g., signals from an intelligent transportation system). For example, the maximum speed may have one value for driving in congested areas or more restricted roads (i.e., driving in a city) and another value for driving in less congested areas or roads with many lanes (i.e., driving on a highway). Other safety parameters such as proximity to objects (e.g., other vehicles), humans, living things, or other elements may be used. Additionally, other safety parameters stored in memory may be dynamic in that the parameters are continuously or periodically determined or updated based on vehicle state information and / or environmental conditions. Non-limiting examples of safety parameters may include maximum speed, minimum speed, maximum deceleration (e.g., braking speed), maximum acceleration, and maximum wheel angle limits. Any or all of these may be correlated with occupant, road, and / or weather conditions. For example, if an occupant is asleep, intoxicated, or distracted (e.g., reading, not facing / looking ahead, etc.), the occupant may be less likely to give appropriate commands and / or may not be able to navigate the vehicle correctly, for example, compared to other times when the occupant is alert and not distracted.
[0067] FIG. 4B illustrates an example of a subsystem, computational element, computing device, or computing unit in a vehicle management system 450 that may be utilized in a vehicle (e.g., 100). With reference to FIGS. 1A-4B, in some embodiments, layers 402, 404, 406, 408, 410, 412, and 416 of the vehicle management system 400 may be similar to the layers described with reference to FIG. 4A. The vehicle management system 450 may operate similarly to the vehicle management system 400, except that the vehicle management system 450 may pass various data or instructions to the vehicle safety and collision avoidance system 452 instead of the DBW system / control unit 420. For example, the configuration of the vehicle management system 450 and the vehicle safety and collision avoidance system 452 illustrated in FIG. 4B may be used in a non-autonomous vehicle, a semi-autonomous vehicle, or a fully autonomous vehicle. Additionally, the functionality of the vehicle management system 450 and / or the vehicle safety and collision avoidance system 452 may be reduced or disabled (e.g., turned off).
[0068] In various embodiments, the behavior planning and prediction layer 416 and / or the sensor fusion and RWM management layer 412 may output data to the vehicle safety and collision avoidance system 452. For example, the sensor fusion and RWM management layer 412 may output sensor data as part of improved location and state information of the vehicle 100 provided to the vehicle safety and collision avoidance system 452. The vehicle safety and collision avoidance system 452 may use the improved location and state information of the vehicle 100 to make safety decisions for the vehicle 100 and / or the occupants of the vehicle 100. As another example, the behavior planning and prediction layer 416 may output behavior models and / or predictions related to the operation of other vehicles to the vehicle safety and collision avoidance system 452. The vehicle safety and collision avoidance system 452 may use the behavior models and / or predictions related to the operation of other vehicles to make safety decisions for the vehicle 100 and / or the occupants (e.g., 11, 12, 13) of the vehicle 100.
[0069] In various embodiments, vehicle safety and collision avoidance system 452 may include functionality to perform safety inspections or oversight of various commands, various layers of planning or other decisions, and human driver actions and / or vehicle control gestures that may affect vehicle and occupant safety. In some embodiments, various safety parameters may be stored in memory, and vehicle safety and collision avoidance system 452 may compare determined values (e.g., relative spacing to nearby vehicles, distance from road centerline, etc.) with corresponding safety parameters, and may issue alerts, commands, or safe alternative vehicle actions if a safety parameter is or will be violated.
[0070] For example, vehicle safety and collision avoidance system 452 may determine (e.g., based on a road world model improved by sensor fusion and RWM management layer 412) a current or future separation distance between its vehicle and another vehicle (as defined by sensor fusion and RWM management layer 412), compare the separation distance to safe separation distance parameters stored in memory, and issue commands to accelerate, decelerate, or turn and / or suggest safe alternative vehicle actions to the driver if the current or predicted separation distance violates the safe separation distance parameters. As another example, vehicle safety and collision avoidance system 452 may compare a first vehicle action determined (e.g., by applying a first passenger profile to a detected first vehicle control gesture performed by a first passenger) to safe vehicle action limits or parameters, and issue an override command and / or an alert in response to the proposed vehicle action exceeding a safe vehicle action limit or parameter.
[0071] FIG. 5 illustrates an exemplary SOC architecture of a processing device system-on-chip (SOC) 500 suitable for implementing various embodiments in a vehicle. With reference to FIGS. 1A-5, the processing device SOC 500 may include several heterogeneous processors, such as a digital signal processor (DSP) 503, a modem processor 504, an image and object recognition processor 506, a mobile display processor 507, an application processor 508, and a resource and power management (RPM) processor 517. The processing device SOC 500 may also include one or more co-processors 510 (e.g., vector co-processors) connected to one or more of the heterogeneous processors 503, 504, 506, 507, 508, 517. Each of the processors may include one or more cores and an independent / internal clock. Each processor / core may perform operations independent of the other processors / cores. For example, processing device SOC 500 may include a processor that executes a first type of operating system (e.g., FreeBSD, LINUX, OS X, etc.) and a processor that executes a second type of operating system (e.g., Microsoft Windows). In some embodiments, application processor 508 may be the main processor of SOC 500, a central processing unit (CPU), a microprocessor unit (MPU), an arithmetic logic unit (ALU), a graphics processing unit (GPU), etc.
[0072] The processing device SOC 500 may include analog and custom circuitry 514 for managing sensor data, analog-to-digital conversion, wireless data transmission, and for performing other specialized operations such as processing encoded audio and video signals for rendering in a web browser. The processing device SOC 500 may further include system components and resources 516, such as voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, memory controllers, system controllers, access ports, timers, and other similar components, used to support the processor and a software client (e.g., a web browser) running on the computing device.
[0073] The processing device SOC 500 also includes dedicated circuitry for camera actuation and management (CAM) 505, which includes, provides, controls, and / or manages the operation of one or more cameras (e.g., 101, 112, 114, primary camera, webcam, 3D camera, etc.), video display data from camera firmware, image processing, video pre-processing, video front-end (VFE), in-line JPEG, high definition video codec, etc. The CAM 505 may be a separate processing unit and / or may include separate or internal clocks.
[0074] In some embodiments, the image and object recognition processor 506 may be configured with processor-executable instructions and / or dedicated hardware configured to perform the image processing and object recognition analysis involved in various embodiments. For example, the image and object recognition processor 506 may be configured to perform operations to process images received from the camera (e.g., 136) via the CAM 505 to recognize and / or identify vehicle control gestures, other vehicles, and otherwise perform the functions of the camera perception layer 404 as described. In some embodiments, the processor 506 may be configured to process radar or lidar data and perform the functions of the radar perception layer 402 as described.
[0075] The system components and resources 516, analog and custom circuits 514, and / or CAM 505 may include circuitry for interfacing with peripheral devices such as the camera 136, radar 122, lidar 124, electronic displays, wireless communication devices, external memory chips, etc. The processors 503, 504, 506, 507, 508 may be interconnected to one or more memory elements 512, the system components and resources 516, analog and custom circuits 514, CAM 505, and RPM processor 517 via an interconnect / bus module 524, which may include an array of reconfigurable logic gates and / or implement a bus architecture (e.g., CoreConnect, AMBA, etc.). Communications may be provided by advanced interconnects such as high-performance networks on chips (NoCs).
[0076] The processing device SOC 500 may further include input / output modules (not shown) for communicating with resources external to the SOC, such as a clock 518 and a voltage regulator 520. The resources external to the SOC (e.g., clock 518, voltage regulator 520) may be shared by two or more of the internal SOC processors / cores (e.g., DSP 503, modem processor 504, image and object recognition processor 506, MDP, application processor 508, etc.).
[0077] In some embodiments, the processing device SOC 500 may be included in a control unit (e.g., 140) for use in a vehicle (e.g., 100). The control unit may include communications links for communication with a communications network (e.g., 180), the Internet, and / or a network server (e.g., 184), as described.
[0078] The processing device SOC 500 may also include additional hardware and / or software components suitable for collecting sensor data from sensors including motion sensors (e.g., accelerometers and gyroscopes of an IMU), user interface elements (e.g., input buttons, touch screen displays, etc.), microphone arrays, sensors for monitoring physical conditions (e.g., location, direction, navigation, orientation, vibration, pressure, etc.), cameras, compasses, GPS receivers, communication circuitry (e.g., Bluetooth, WLAN, WiFi, etc.), as well as other well-known components of modern electronic devices.
[0079] FIG. 6 illustrates a component block diagram illustrating a system 600 configured for collaboratively operating a vehicle (e.g., 100) based on vehicle control gestures by a passenger, according to various embodiments. In some embodiments, the system 600 may include one or more vehicle computing systems 602 and one or more other vehicle computing systems 604 that communicate via a wireless network. With reference to FIGS. 1A-6 , the vehicle computing system 602 may include a processor (e.g., 164), a processing device (e.g., 500), and / or a control unit (e.g., 140) (variously referred to as a “processor”) of the vehicle (e.g., 100). The other vehicle computing system 604 may include a processor (e.g., 164), a processing device (e.g., 500), and / or a control unit (e.g., 140) (variously referred to as a “processor”) of the vehicle (e.g., 100).
[0080] The vehicle computing system 602 may be configured with machine-executable instructions 606. The machine-executable instructions 606 may include one or more instruction modules. The instruction modules may include computer program modules. The instruction modules may include (but are not limited to) one or more of a passenger identification module 607, a passenger profile determination module 608, a vehicle control gesture determination module 610, a vehicle action determination module 612, a passenger profile receiving module 616, a vehicle action safety determination module 618, an alternative vehicle action determination module 620, a delay period assessment module 622, an abnormal operation determination module 624, an additional display determination module 626, an abnormal operation safety assessment module 628, a vehicle operation module 629, and / or other instruction modules.
[0081] The passenger identification module 607 may be configured to identify a passenger (i.e., one or more occupants of the vehicle). In some embodiments, the passenger identification module 607 may be configured to identify a passenger based on at least one of (but not limited to) the passenger's location in the vehicle, an input by the passenger, or an identification of the passenger. For example, the input by the passenger and / or the identification of the passenger may be determined from the occupants through their portable computing device (e.g., smartphone) or from an identification using a sensor (e.g., 101), such as (but not limited to) using a biosensor and / or a facial recognition system. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage device 635, other vehicle computing systems 604, external resources 630, one or more sensors (e.g., 101), and a profile database (e.g., 142) to identify the passenger or a location where the passenger is seated.
[0082] The passenger profile determination module 608 may be configured to determine one or more profiles to be applied to a recognized gesture performed by a passenger. Determining the appropriate passenger profile more effectively normalizes the passenger gesture for conversion to an actionable vehicle action. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage 635, the profile database (e.g., 142), and the passenger identification information to determine which passenger profile to use based on current conditions. The profile database and / or the passenger profile determination module 608 may maintain multiple passenger profiles, including a passenger profile for a specified individual. Some or all of the multiple passenger profiles may normalize the vehicle control gesture differently because individuals performing a given control gesture may move their fingers, hands, and / or arms at different speeds, through different angles, and with differences in motion. Thus, a second passenger profile may normalize the vehicle control gesture differently than the first passenger profile. Some implementations may not employ the passenger profile determination module 608 and may more directly apply a predefined passenger profile. Alternatively, use of the passenger profile determination module 608 may be selectively turned on or off as needed or desired, which may be determined manually or automatically based on the environment / conditions.
[0083] According to various embodiments, in an environment where more than one passenger occupies the vehicle, the passenger profile determination module 608 may also be configured to determine one or more passengers who are deemed to be designated as the driver, and therefore only accepts vehicle control gestures from the designated driver. In this manner, the passenger profile determination module 608 may ignore gestures from one or more passengers who are not designated as being the driver. In further embodiments, when more than one driver is designated as the driver (e.g., in an apprentice driver situation or driver education application), the passenger profile determination module 608 may have a method to determine a hierarchy between the drivers if conflicting vehicle control gestures are detected. Using sensors (e.g., 101), the passenger profile determination module 608 may determine that the vehicle has multiple occupants, as well as who or which occupant is in charge (i.e., the designated driver). In some embodiments, the passenger occupying what is traditionally the driver's seat (or other pre-configured location of the vehicle) may be selected by default as the designated driver unless an override is received. Alternatively, both front seat occupants may be designated drivers (as they tend to have good views of the road). In certain embodiments, in such cases, vehicle control gestures from the driver passenger may override vehicle control gestures from the other front seat passenger.
[0084] In some embodiments, the designated driver may be selected after input from the occupant (e.g., from an associated mobile device or direct input into the vehicle). In some embodiments, input about the designated driver may also be received automatically from the occupant, such as through the passenger identification module 607. In some embodiments, when determining the designated driver through identification, the passenger profile determination module 608 may automatically apply a hierarchy. For example, the owner, most common driver, or most recently designated driver may have the highest priority as the designated driver. Similarly, hierarchical lists may be programmatically or user-defined (e.g., father > mother > oldest child, or father and mother > oldest child). In other embodiments, there may be no hierarchy and vehicle control gestures are accepted from all or some occupants.
[0085] In some implementations where there is a designated driver or a hierarchy among occupants for receiving commands, non-designated drivers or lower hierarchical occupants may be allowed to input selected vehicle control gestures, such as, but not limited to, non-navigation commands and / or commands that do not compromise the safety of the vehicle or occupants (e.g., controlling cabin temperature, entertainment system volume). Alternatively, vehicle control gestures from non-designated drivers or lower hierarchical occupants may be accepted, but with greater safety parameters (e.g., a greater distance required between vehicles, a lower maximum speed, etc.) or with lesser values in the vehicle inputs (e.g., limited to only one lane change, speed up / down in 5 mph increments only, etc.). For example, the vehicle control gesture determination module 610 may recognize gestures from a "backseat driver" that are limited to slowing down the vehicle or increasing vehicle separation distance, since such commands may be safe and may make such occupant feel safer, but all other vehicle steering controls may not be recognized. Thus, non-designated drivers or lower hierarchical occupants may be allowed a lesser degree of control compared to designated drivers or designated drivers with higher priority.
[0086] In some embodiments, limitations on recognized gestures of non-designated drivers or lower tier passengers may be overridden in some circumstances. In some embodiments, the vehicle control gesture determination module 610 may recognize circumstances in which override gestures or gestures by non-designated drivers should be recognized and implemented, such as those corresponding to circumstances in which a designated driver would be disqualified. For example, if the vehicle control gesture determination module 610 detects that the designated driver is asleep or slouched (seemingly unconscious) and another passenger is performing a recognized vehicle control gesture, the vehicle may implement such gesture.
[0087] In some embodiments, the prioritization among the designated drivers, or the selection of a new designated driver, may occur in response to a triggering event, such as automatically. One non-limiting example of such a triggering event may be detection of a change in the behavior of the current designated driver (or the designated driver with the highest priority) by one or more sensors and / or by the vehicle control system, such as due to fatigue, distraction, intoxication, etc. For example, a camera system tracking the eyes of the designated driver may detect drooping eyelids from fatigue, i.e., the driver is not looking at the road due to distraction, or the designated driver's eyes are moving slowly due to intoxication. Another non-limiting example of such a triggering event may be detection of a command (e.g., a verbal command or a command gesture) by the current designated driver (or the designated driver with the highest priority), another occupant, or a remote party (e.g., the owner of the vehicle) received over a wireless communication link. Thus, the passenger profile determination module 608 may be configured to (e.g., automatically) assess and determine whether the current designated driver or other passengers providing vehicle control gestures are exhibiting changes in behavior that may deteriorate that individual's ability to provide vehicle control gestures appropriately or in a timely manner. The passenger profile determination module 608 may receive input from sensors (e.g., 101), such as cameras, alcohol sensors, motion detectors, etc., and may apply passenger behavior pattern recognition to determine the passenger's level of deterioration. In response to detection by the passenger profile determination module 608 that the designated driver (or the designated driver with the highest priority) is deteriorating, the passenger profile determination module 608 may be configured to select a new designated driver or change the priority of the designated driver.
[0088] In some embodiments, in response to detection by the passenger profile determination module 608 that a designated driver (or a designated driver with the highest priority) is deteriorated, the deteriorated designated driver may still be given some degree of control. For example, the deteriorated designated driver may be limited to only providing non-navigation commands and / or commands that do not compromise the safety of the vehicle or occupants (e.g., controlling cabin temperature, entertainment system volume). Alternatively, the deteriorated designated driver may be limited to less vehicle control or a lesser degree of vehicle control (e.g., limiting speed, speed changes, the number of lanes that may be changed in one continuous maneuver, etc.). Additionally or alternatively, deteriorated designated drivers may be allowed to provide navigation commands and / or control, but only if they meet a safety threshold that may be higher than the safety threshold used for drivers that are not considered deteriorated. For example, a deteriorated designated driver may be allowed to make a two-lane lane change on an open highway, but may not be allowed to lead the same maneuver on a busy highway.
[0089] The vehicle control gesture determination module 610 may be configured to determine when a passenger (e.g., 11, 12, 13) performs a vehicle control gesture in a manner recognizable to the vehicle gesture detection system (e.g., 50). As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage 635, one or more sensors (e.g., 101), and the gesture recognition engine (e.g., 144) to determine whether one or more passengers have performed a vehicle control gesture to operate the vehicle (e.g., 100). When the vehicle control gesture determination module 610 detects that a passenger has performed one or more vehicle control gestures, information about the one or more vehicle control gestures may be forwarded to the control unit (e.g., 140).
[0090] The vehicle action determination module 612 may be configured to determine which one or more vehicle actions are associated with a detected vehicle control gesture. The vehicle action determination module 612 may also be configured to determine an alternative vehicle action when a detected vehicle control gesture is associated with an action that is unsafe for the vehicle and / or passengers or that is abnormal in some respect. As a non-limiting example, the vehicle action determination module 612 may determine the vehicle action using a processor (e.g., 164) of a processing device (e.g., 500), electronic storage 635, and a vehicle management system (e.g., 400, 450).
[0091] The passenger profile receiving module 616 may be configured to receive and store passenger profiles. The passenger profile receiving module 616 may receive a passenger profile that is customized for a passenger from training input. Additionally or alternatively, the passenger profile receiving module 616 may receive the passenger profile as input data through a vehicle user interface or from another computing device that provides such data. For example, a passenger may follow a training protocol, where the passenger practices and / or performs gestures, and the passenger actions are recorded and analyzed to generate a passenger profile for that passenger. As a further example, a remote computing device may provide one or more passenger profiles to the passenger profile receiving module 616 for application to vehicle control gestures. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage device 635, one or more sensors (e.g., 101), and an input device to receive the passenger profile.
[0092] The vehicle action safety determination module 618 may be configured to determine whether a first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform. The safety determination may ensure that there is no damage or injury to the vehicle or passengers. Typically, what is safe for the vehicle is also safe for the passengers and vice versa (i.e., the level of risk to vehicle safety is equal to or approximates the level of risk to passenger safety), but perhaps this is not always the case. For example, extremely rapid deceleration may cause whiplash to a passenger, but the vehicle may remain unharmed. Thus, what is safe generally prioritizes passenger safety. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage device 635 and the vehicle management system (e.g., 400, 450) to determine or assess the safety of various vehicle actions.
[0093] In some implementations, the alternative vehicle action determination module 620 may be configured to determine one or more alternative vehicle actions (e.g., changing speed, changing to a different lane, etc.) associated with the received vehicle control gesture that may be a safer alternative to the first vehicle action. The alternative vehicle action determination module 620 may be used in response to a determination that the first vehicle action is unsafe for the vehicle to perform. In another embodiment, the determined alternative vehicle action may have a determined probability that results in damage to the vehicle and / or passengers that is lower by at least some threshold amount compared to the first vehicle action. For example, the first vehicle action may involve changing lanes into a lane in which the vehicle is traveling behind another vehicle. That first vehicle action may be relatively safe, but there may be a (i.e., relatively small) statistical likelihood that a vehicle in a leading position may apply its brakes shortly after the lane change (i.e., a first level of risk to safety). On the other hand, an alternative vehicle action may include first overtaking the vehicle in the lead position and then changing lanes, which may be associated with a lower statistical likelihood of the vehicle becoming involved in an accident due to the open road ahead of the lead vehicle (i.e., a second level of risk to safety that is lower than the first level of risk to safety).As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may determine the alternative vehicle action using the electronic storage 635 and the vehicle management system (e.g., 400, 450).
[0094] The delay period assessment module 622 may be configured to determine whether a reasonable delay period may make the vehicle safe enough to perform an otherwise unsafe vehicle action. For example, a first vehicle control gesture may lead the vehicle to make an unsafe lane change due to another vehicle traveling too close in its lane. The delay period assessment module 622 may determine that a delay of up to 5 seconds before initiating the lane change may change the otherwise unsafe maneuver into a safe maneuver because the other vehicle is traveling at a different speed. In a further embodiment, if at the end of the delay period the move is still unsafe, the delay period assessment module 622 may again determine whether an additional delay period may make the vehicle safe enough to perform an otherwise unsafe vehicle action. Alternatively, the vehicle may inform the user (driver) of the determination that the move should not be performed and / or further input from the user should be sought.
[0095] In various embodiments, a maximum delay threshold, such as (but not limited to) 5-10 seconds, may be used to limit the duration of a delay period that may be taken into account by the delay period assessment module 622. The maximum delay threshold may be set and / or changed by the passenger, the vehicle owner, and / or the manufacturer. In addition, the maximum delay threshold may be different for each passenger (i.e., associated with a passenger profile). Alternatively, the maximum delay threshold may be universal for all passengers. As a further alternative, individual passengers may have different maximum delay thresholds, but the vehicle may also have an ultimate maximum delay threshold that individual maximum delay thresholds may not exceed. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage device 635 and the vehicle management system (e.g., 400, 450) to determine or assess delay periods for performing various vehicle actions.
[0096] The abnormal operation determination module 624 may be configured to determine whether a vehicle action associated with a vehicle control gesture includes an abnormal vehicle operation. An abnormal operation may include a vehicle operation that is not customarily or typically performed by a vehicle (e.g., compared to past behavior of the same vehicle, other vehicles or similar vehicles, vehicles under similar circumstances (e.g., location, time / year, weather conditions, etc.)), such as one or more abrupt actions that are significantly more extreme than actions typically performed by the vehicle. Whether a vehicle action is considered abnormal may depend on whether the vehicle action has been performed before, as well as the speed, acceleration / deceleration, degree, and extent of the vehicle action. In the case of a vehicle action that has been performed before, but not at exactly the same speed, degree, and / or extent, the processor may use a previously exceeded threshold that makes the vehicle action abnormal.
[0097] In addition, whether a vehicle action is considered anomalous may depend on the current environment. For example, a one lane change to the right on a highway may not be anomalous from the center lane, but from a right-hand land (i.e., leading the vehicle onto the shoulder of the highway) may be evaluated as anomalous by the abnormal maneuver determination module 624. Similarly, other environments such as (but not limited to) location, weather conditions, time of day / year, lighting, etc. may be taken into account by the abnormal maneuver determination module 624.
[0098] The determination by the abnormal maneuver determination module 624 may be based on historical records from passenger profiles and / or a knowledge base (i.e., expected norms) of normal / abnormal vehicle actions under specified conditions. In some cases, a determination by the abnormal maneuver determination module 624 that a vehicle action associated with a vehicle control gesture is an abnormal maneuver may indicate an erroneous input. An erroneous input may result, for example, from a passenger gesture that was not performed correctly or was not intended to be a vehicle control gesture (such as, for example, gesturing or sneezing). Similarly, a passenger who is under the influence of a controlled substance or distracted may perform a vehicle control gesture incorrectly, improperly, and / or carelessly. A determination that a vehicle control gesture is anomalous (i.e., erroneous input or otherwise) may be conveyed to the vehicle action determination module 612 when assessing whether the vehicle control gesture should be followed or whether an alternative vehicle action should be determined. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage 635 and the vehicle management system (e.g., 400, 450) to determine or assess whether a vehicle action is considered anomalous.
[0099] In various embodiments, the additional indication determination module 626 may be configured to detect whether the passenger has performed an additional indication in conjunction with the anomalous operation. In some embodiments, the additional indication may have been performed by the passenger in conjunction with a vehicle control gesture associated with the anomalous operation (e.g., before, during, or after the anomalous operation). The additional indication may be performed within some window of the anomalous operation (e.g., within 2-3 seconds before / after the anomalous operation). In some embodiments, the additional indication may be performed in response to a prompt associated with the anomalous operation (e.g., the vehicle notifying the driver of the anomalous operation requesting confirmation or clarification).
[0100] The additional indications may suggest that a passenger who has performed an abnormal vehicle control gesture did indeed intend to perform an abnormal operation. For example, the additional indications may include at least one of an exaggerated gesture, a repeated gesture, a gesture performed more rapidly than normal, or a non-visual input (e.g., audio) received together with (e.g., simultaneously with) the detected vehicle control gesture.
[0101] In some embodiments, in response to a determination by the abnormal operation determination module 624 that a received vehicle control gesture is abnormal, the system may prompt the passenger for confirmation or clarification, and a response by the user (e.g., a voice command gesture) received as an additional indication may confirm or clarify the vehicle control gesture. The prompt to the passenger may be simple (e.g., a chime or a short series of sounds) or may include more detailed feedback (e.g., verbal feedback) informing the passenger that an additional indication is required. The verbal feedback or a separate series of sounds may so inform the passenger that the received vehicle control gesture results in an abnormal vehicle operation and thus, confirmation is required. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage device 635, one or more sensors (e.g., 101), and the gesture recognition engine (e.g., 144) to determine whether the passenger has performed an additional indication associated with the vehicle control gesture.
[0102] In some embodiments, even when the user confirms that an abnormal maneuver is intended, the vehicle operation module 629 may operate the vehicle to perform a less extreme version of the abnormal maneuver (e.g., if performing the abnormal maneuver would exceed a safety threshold). A less extreme version of the abnormal maneuver may involve a lesser degree of maneuver (e.g., one lane change instead of two or three, speeding up by 5 mph instead of 25 mph, etc.). In some embodiments, if the abnormal maneuver is too extreme (i.e., exceeds a safety threshold), the abnormal maneuver may be ignored and the passengers may be informed that the abnormal maneuver is unsafe. For example, the vehicle control system may verbally explain that the abnormal maneuver is being ignored.
[0103] The abnormal operation safety assessment module 628 may be configured to determine whether any abnormal vehicle operation detected by the abnormal operation determination module 624 is safe for the vehicle or occupants. As a non-limiting example, the processor (e.g., 164) of the processing device (e.g., 500) may use the electronic storage 635 and the vehicle management system (e.g., 400, 450) to determine or assess whether a vehicle action is considered abnormal.
[0104] The vehicle operation module 629 may be configured to operate the vehicle to perform a vehicle action, such as in response to a determination that a particular vehicle action is safe for the vehicle and occupants. The vehicle operation module 629 may also operate the vehicle to perform alternative and / or other vehicle actions as needed. For example, the vehicle operation module 629 may operate the vehicle to perform a second vehicle action in response to a determination that a second vehicle action is available. Similarly, the vehicle operation module 629 may operate the vehicle to perform the first vehicle action after a determined delay period in response to a determination that a first vehicle action associated with a detected first vehicle control gesture is safe for the vehicle to perform after a determined delay period. Additionally, the vehicle operation module 629 may operate the vehicle to perform a second vehicle action that is a safer alternative to the first vehicle action in response to a determination that the abnormal vehicle operation is not safe (i.e., unsafe) for the vehicle or occupants. In this manner, the vehicle operation module 629 may perform an alternative vehicle action determined by the alternative vehicle action determination module 620. As a non-limiting example, the vehicle operation module 629 may operate the vehicle (e.g., perform vehicle actions) using the processor (e.g., 164) of the processing device (e.g., 500), the electronic storage 635, and the vehicle management system (e.g., 400, 450).
[0105] According to various embodiments, vehicle operation module 629 may autonomously implement vehicle actions. Thus, while the implemented vehicle actions result from passenger input (i.e., from the received vehicle control gestures), vehicle operation module 629 may perform the necessary functions to safely operate the vehicle without the vehicle coming out of an autonomous mode. Under some circumstances, vehicle operation module 629 may implement one or more alternative vehicle actions that are determined to be safer than a vehicle action more closely related to the received vehicle control gesture or gestures.
[0106] In some embodiments, the vehicle computing system 602, the other vehicle computing systems 604 may communicate with each other via a wireless network (e.g., 180), such as a V2V wireless communications link. Additionally, the vehicle computing system 602 and the other vehicle computing systems 604 may be connected to a wireless communications network that provides access to the external resources 630. For example, such electronic communications links may be established, at least in part, via a network, such as the Internet and / or other networks. It will be appreciated that this is not intended to be limiting, and that the scope of the present disclosure includes embodiments in which the vehicle computing system 602, the other vehicle computing systems 604, and / or the external resources 630 may be operatively linked via some other communications medium.
[0107] The other vehicle computing system 604 may also include one or more processors configured to execute computer program modules configured by machine-executable instructions 606. The machine-executable instructions 606 may include one or more instruction modules, which may include one or more of a passenger profile determination module 608, a vehicle control gesture determination module 610, a vehicle action determination module 612, a passenger identification module 607, a passenger profile receiving module 616, a vehicle action safety determination module 618, an alternative vehicle action determination module 620, a delay period assessment module 622, an abnormal operation determination module 624, an additional display determination module 626, an abnormal operation safety assessment module 628, a vehicle operation module 629, and / or other instruction modules similar to the vehicle computing system 602 of the first vehicle as described.
[0108] External resources 630 may include sources of information outside of system 600, external entities participating in system 600, and / or other resources. For example, external resources 630 may include map data resources, highway information (e.g., traffic, construction, etc.) systems, weather forecast services, etc. In some embodiments, some or all of the functionality identified herein as being in external resources 630 may be provided by resources included within system 600.
[0109] Vehicle computing system 602 may include electronic storage 635, one or more processors 164, and / or other components. Vehicle computing system 602 may include communication lines or ports to enable exchange of information with a network and / or other vehicle computing systems. The illustration of vehicle computing system 602 in FIG. 6 is not intended to be limiting. Vehicle computing system 602 may include multiple hardware, software, and / or firmware components that operate together to provide the functionality attributed to vehicle computing system 602 herein. For example, vehicle computing system 602 may be implemented by a cloud of vehicle computing systems that operate together as vehicle computing system 602.
[0110] The electronic storage 635 may comprise a non-transitory storage medium that electronically stores information. The electronic storage medium of the electronic storage 635 may include one or both of system storage that is integral with the vehicle computing system 602 (i.e., substantially non-removable) and / or removable storage that is removably connectable to the vehicle computing system 602, for example, via a port (e.g., a Universal Serial Bus (USB) port, a Firewire port, etc.) or a drive (e.g., a disk drive, etc.). The electronic storage 635 may include one or more of an optically readable storage medium (e.g., an optical disk, etc.), a magnetically readable storage medium (e.g., a magnetic tape, a magnetic hard drive, a floppy drive, etc.), a charge-based storage medium (e.g., an EEPROM, a RAM, etc.), a solid-state storage medium (e.g., a flash drive, etc.), and / or other electronically readable storage medium. The electronic storage 635 may store software algorithms, information determined by the processor 164, information received from the vehicle computing system 602, information received from other vehicle computing systems 604, and / or other information that enables the vehicle computing system 602 to function as described herein.
[0111] The processor 164 may be configured to provide information processing capabilities within the vehicle computing system 602. Thus, the processor 164 may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and / or other mechanisms for electronically processing information. Although the processor 164 is shown in FIG. 6 as a single entity, this is for illustrative purposes only. In some embodiments, the processor 164 may include multiple processing units. These processing units may be physically located within the same device, or the processor 164 may represent the processing functionality of multiple devices operating in concert. The processor 164 may be configured to execute modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629, and / or other modules. Processor 164 may be configured to execute modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629, and / or other modules, by software, hardware, firmware, some combination of software, hardware, and / or firmware, and / or other mechanisms for configuring processing power on processor 164. As used herein, the term "module" may refer to any component or set of components that performs the functionality attributed to the module. This may include one or more physical processors in execution of processor-readable instructions, processor-readable instructions, circuitry, hardware, storage media, or any other component.
[0112] Although modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629 are illustrated in FIG. 6 as being implemented within a single processing unit, it should be appreciated that in embodiments in which processor 164 includes multiple processing units, one or more of modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629 may be implemented remotely from the other modules. The descriptions of functionality provided by the various modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629 described below are for illustrative purposes and are not intended to be limiting, as any of the modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629 may provide more or less functionality than described. For example, one or more of modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629 may be eliminated and some or all of its functionality may be provided by other of modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629. As another example, processor 164 may be configured to execute one or more additional modules, which may perform some or all of the functionality identified below as being in one of modules 608, 607, 610, 612, 616, 618, 620, 622, 624, 626, 628, and / or 629.
[0113] 7A, 7B, and / or 7C illustrate operation of methods 700, 703, and 705, respectively, for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments. With reference to FIGS. 1A-7C, methods 700, 703, and 705 may be implemented within a processor (e.g., 164), processing device (e.g., 500), and / or control unit (e.g., 140) (variously referred to as a "processor") of a vehicle (e.g., 100). In some embodiments, methods 700, 703, and 705 may be performed by one or more layers in a vehicle management system stack, such as a vehicle management system (e.g., 400, 450). In some embodiments, methods 700, 703, and 705 may be performed by a processor independent of, but in conjunction with, a vehicle control system stack, such as a vehicle management system. For example, methods 700, 703, and 705 may be implemented as a stand-alone software module or in dedicated hardware configured to monitor data and commands from / in the vehicle management system and take actions and store data as described.
[0114] FIG. 7A illustrates a method 700 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0115] In block 702, the vehicle processor may determine a first vehicle action by applying a first passenger profile to a detected first vehicle control gesture performed by a first passenger. The first passenger profile may be selected from a plurality of passenger profiles for normalizing the vehicle control gesture received from the first passenger. For example, the processor may detect a vehicle control gesture in the form of a passenger holding an open palm forward (i.e., an indication to stop). After applying the passenger profile assigned to the current passenger, the processor may determine that the gesture means that the passenger wants the vehicle to move to a stop. In some embodiments, the means for performing the operations of block 702 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101) and an electronic storage device (e.g., 635). To make the determination in block 702, the processor may use a vehicle action determination module (e.g., 612).
[0116] In block 704, the vehicle processor may operate the vehicle to perform the first vehicle action in response to determining that the first vehicle action is safe for the vehicle and occupants. For example, the processor may bring the vehicle to a stop. In some embodiments, the means for performing the operations of block 704 may include a processor (e.g., 164) coupled to the electronic storage (e.g., 635) and the vehicle management system (e.g., 400, 450). To make the determination in block 704, the processor may use a vehicle operation module (e.g., 629).
[0117] In some embodiments, the processor may repeat the operations at blocks 702 and 704 to periodically or continuously operate the vehicle based on vehicle control gestures by the passenger.
[0118] FIG. 7B illustrates a method 703 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0119] In block 706, the processor of the first vehicle may identify the first passenger based on at least one of the location of the first passenger in the vehicle, an input by the first passenger, or a recognition of the first passenger. For example, the processor may recognize the passenger as sitting in the front left seat, may receive a passenger profile or at least identification information from the passenger, or facial recognition software may recognize the passenger using on-board imaging. In some embodiments, the means for performing the operations of block 706 may include a processor (e.g., 164) coupled to the electronic storage (e.g., 635) and the passenger identification module (e.g., 607).
[0120] In block 708, the processor may select a first passenger profile based on an identification of the first passenger. For example, the processor may select a passenger profile specific to the current occupant based on an identification card presented by the passenger when the vehicle departs. In some embodiments, the means for performing the operations of block 708 may include a processor (e.g., 164) coupled to the electronic storage (e.g., 635) and the passenger profile determination module (e.g., 608). Following the operations at block 708 in method 703, the processor may perform the operations of block 702 of method 700 as described.
[0121] In some embodiments, the processor may repeat any or all of the operations in blocks 706 and 708 to select passenger profiles repeatedly or continuously as needed.
[0122] FIG. 7C illustrates a method 705 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0123] At block 710, the processor may perform operations including receiving a first passenger profile from a remote computing device for application to the vehicle control gestures. For example, the processor may receive the first passenger profile as data received through a wireless module (e.g., 172) or an input module (e.g., 168). In some embodiments, the means for performing the operations of block 710 may include a processor (e.g., 164) coupled to an electronic storage device (e.g., 635) and a passenger profile receiving module (e.g., 616). Following the operations at block 710 in method 705, the processor may perform the operations of block 702 of method 700 as described.
[0124] In some embodiments, the processor may repeat the operations at block 710 to repeatedly or continually receive the passenger profile or updates to the passenger profile.
[0125] Further embodiments include methods and devices including determining whether a first vehicle action associated with a detected and recognized first vehicle control gesture is safe for the vehicle to perform, and in response to determining that the first vehicle action is not safe for the vehicle to perform, determining whether a second vehicle action that is a safer alternative to the first vehicle action is available for the vehicle to perform, and in response to determining that the second vehicle action is available, operating the vehicle to perform the second vehicle action.
[0126] In some embodiments, a processor of the vehicle may determine whether a first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform after the determined delay period, and in response to determining that the first vehicle action or the alternative second vehicle action is safe for the vehicle to perform after the determined delay period, the processor may operate the vehicle to perform the first vehicle action or the alternative second vehicle action after the determined delay period.
[0127] In some embodiments, the processor of the vehicle may determine whether the first vehicle action includes abnormal vehicle operation. In some embodiments, the processor may determine whether the detected first vehicle control gesture includes an additional indication that abnormal vehicle operation is intended by the first passenger in response to determining that the first vehicle action includes abnormal vehicle operation, and operating the vehicle to perform the first vehicle action is further responsive to determining that the detected first vehicle control gesture includes an additional indication that abnormal vehicle operation is intended by the first passenger. In some embodiments, the additional indication may include at least one of an exaggerated gesture, a repeated gesture, a gesture performed more rapidly than normal, or a non-visual input (e.g., audio) received together (e.g., simultaneously) with the detected first vehicle control gesture. In some embodiments, the processor may operate the vehicle to perform the first vehicle action in response to a determination that the first vehicle action is unsafe for the vehicle or occupants and a determination that the detected first vehicle control gesture includes an additional indication that an abrupt vehicle operation is intended by the first passenger.
[0128] 8A and 8B show an example situation 800, 801 in which a processor of a vehicle 100 is approaching two other vehicles 804, 806, and the processor overrides the passenger's vehicle control gestures, according to various embodiments. With reference to FIGS. 1A-8B, the three vehicles 804, 806, 100 are all traveling in the same direction on a road 802. The road 802 happens to be a three-lane road. The third vehicle 100 may be a semi-autonomous vehicle, according to various embodiments. The methods and systems of various embodiments may be applied to any route, whether or not it is a paved and clearly marked road.
[0129] Referring to FIG. 8A, two leading vehicles 804, 806 are colliding and blocking the center and right lanes (i.e., the middle and right-most lanes in the orientation shown in FIG. 8) as a third vehicle 100 approaches the collision in the center lane. According to various embodiments, a processor of the third vehicle 100 detects a vehicle control gesture 808 performed by a passenger 13 (e.g., rear seat passenger 13 in FIG. 2B). Although the passenger 13 is in the rear seat, in some embodiments, the processor may recognize and accept vehicle control gestures from passengers in any seat within the vehicle 100. For example, a (but not necessarily) generic rear seated passenger profile may be applied by the processor to determine a first vehicle action 810 corresponding to the vehicle control gesture 808 performed by the passenger 13. For example, because the rear seat passenger 13 may have limited visibility and may even partially obstruct visibility, a generic rear seated passenger profile may more unbiasedly override commands from that type of passenger. In this case, the first vehicle action 810 would be to steer the third vehicle 100 into the right lane that is blocked by the collision.
[0130] In the illustrated situation in FIG. 8A , the processor of the third vehicle 100 may determine whether a first vehicle action 810 associated with the detected first vehicle control gesture 808 is safe for the vehicle 100 to perform. Taking into account that the first vehicle action 810 would either result in the third vehicle 100 also being involved in a collision or would cause the third vehicle 100 to have to come to a very abrupt stop to avoid an impact. In this situation, the processor may conclude that the first vehicle action 810 indicated by the passenger 13 is unsafe for the vehicle 100 and / or the passenger. In response to determining that the first vehicle action 810 is unsafe for the vehicle 100 to perform, the processor may determine a second vehicle action 820 that is a safer alternative to the first vehicle action 810. In the illustrated example, the second vehicle action 820 involves the third vehicle 100 steering into the left lane, which avoids the accident.
[0131] According to some embodiments, the processor of the third vehicle 100 may determine whether the first vehicle action 810 includes an abnormal vehicle maneuver. In the illustrated example, the first vehicle action 810 would require the vehicle to decelerate to a very abrupt stop (i.e., an abnormal maneuver), but the processor may do so if it is safe to perform that vehicle action. For example, in addition to changing to the right-most lane, the vehicle may need to move slightly or entirely to the right shoulder, but still move to a stop behind the second lead vehicle 806. Alternatively, the vehicle may automatically perform the second vehicle action 820 and then move to a stop in the right land ahead of the two lead vehicles 804, 806. Thus, regardless of whether the passenger 13 provides an additional indication that the passenger 13 intended to perform the first vehicle control gesture 808 that would result in a sudden and dangerous stop, the processor may operate the third vehicle 100 to perform a second vehicle action 820 that is a safer alternative to the first vehicle action 810 in response to determining that the abnormal vehicle maneuver is unsafe for the vehicle 100 or passenger 13. Additionally, the processor may determine that such a hard braking type maneuver requires additional vehicle actions, such as turning on hazard lights, locking seat belts, changing headlight settings, lowering entertainment system volume, etc., and the processor may automatically perform such actions.
[0132] 8B illustrates a situation in which the two lead vehicles 804, 806 are both proceeding in the rightmost lane, with the second lead vehicle 806 driving closely behind the first lead vehicle 804 (i.e., driving at a dangerously close proximity P, considering the speeds of the two lead vehicles 804, 806). Meanwhile, the third vehicle 100 is approaching the two lead vehicles in the center lane, and the processor of the third vehicle 100 detects a vehicle control gesture 808 performed by a passenger 13 (e.g., the rear seat passenger 13 in FIG. 2B). In some embodiments, the processor executing the vehicle control gesture determination module 610 may not use a passenger profile (e.g., if a passenger profile is not available for the designated driver and / or other passengers), but rather uses a global setting for normalizing the vehicle control gesture to determine a third vehicle action 830 corresponding to the vehicle control gesture 808 performed by the passenger 13. Alternatively, the processor executing the vehicle control gesture determination module 610 may use a default passenger profile or a preselected profile for a designated driver or other passenger providing vehicle control gestures. In this case, the third vehicle action 830 would be to steer the third vehicle 100 closely behind the second lead vehicle 806 into the right lane.
[0133] In the situation shown in FIG. 8B , the processor of the third vehicle 100 may determine whether the third vehicle action 830 associated with the detected first vehicle control gesture 808 is safe for the third vehicle 100 to perform. Taking into account that the third vehicle action 830 would result in the third vehicle 100 following closely behind the second lead vehicle 806, such that the third vehicle 100 may not be able to avoid a collision if the first lead vehicle 804 or the second lead vehicle 806 were to suddenly stop. In this situation, the processor may conclude that the third vehicle action 830 indicated by the passenger 13 is unsafe for the third vehicle 100 and / or the passengers. In response to determining that the third vehicle action 830 is unsafe for the third vehicle 100 to perform, the processor may determine a fourth vehicle action 840 that is a safer alternative to the third vehicle action 830. In the illustrated example, the fourth vehicle action 840 involves the third vehicle 100 delaying the lane change maneuver associated with the third vehicle action 830 (e.g., a 10 second delay) until after the vehicle 100 has safely passed the two leading vehicles 804, 806. In this manner, the processor of the third vehicle 100 may determine a first level of safety associated with the third vehicle action 830, which may be below a safety threshold in this regard. In response, the processor of the third vehicle 100 may determine whether an additional delay before executing the lane change maneuver would not only be safer than the third vehicle action, but would also be associated with a second level of safety that exceeds the safety threshold. In the illustrated example, the processor may determine a fourth vehicle action 840 similar to the third vehicle action 830, but may include a delay for the third vehicle 100 to pass the two leading vehicles 804, 806.
[0134] In some implementations, after the processor determines that the third vehicle action 830 in FIG. 8B may be unsafe, the processor may prompt the passenger 13 for input (e.g., a verbal query to the passenger saying, "It would be safer to let go of the vehicle ahead in the right lane and then change lanes. Would you prefer to let go of the vehicle ahead and then change lanes?"). In response, the passenger 13 may provide an input (e.g., a verbal response or another vehicle control gesture), which may be interpreted by the processor (e.g., using the additional indication determination module 626). Thus, the passenger 13 may provide an input that either agrees with the proposed fourth vehicle action 840, or disagrees and provides an additional indication that the third vehicle action 830 is desired (e.g., by adamantly repeating the vehicle control gesture 808), or provides another input (e.g., a new vehicle control gesture, or simply canceling the third vehicle action 830).
[0135] In some implementations, in addition to determining that the third vehicle action 830 in FIG. 8B is unsafe, the vehicle may perform a different maneuver (than simply adding a delay) that accomplishes what the original vehicle control gesture 808 was intended to accomplish. For example, the processor may detect that one or both of the lead vehicles 804, 806 are driving erratically (e.g., swerving in their lanes) or some other condition that makes continued progress in an uncertainly safe center land. Thus, in addition to suggesting a delay action such as the fourth vehicle action 840, the processor may prompt the passenger 13 for input regarding a fifth vehicle action 850 (i.e., an alternative vehicle action) or may automatically perform the fifth vehicle action 850. For example, the fifth vehicle action 850 may involve changing lanes into the leftmost lane (and possibly temporarily increasing speed) before passing the two lead vehicles, and then changing lanes into the rightmost lane (and possibly returning to the original or other speed before passing the other vehicles), thus still performing a maneuver that accomplishes what the original vehicle control gesture 808 intended, but in a safer manner. Again, the passenger 13 may confirm the fifth vehicle action 850 and provide input (e.g., a verbal response or another vehicle control gesture) that may be interpreted by the processor (e.g., using the additional indication determination module 626) to cancel the original control gesture 808, provide another input, etc. As a further alternative, the processor may, after determining that the initial vehicle control gesture is unsafe, perform the safest vehicle action available that comes close to conforming to the original control gesture 808 and safely operating the vehicle, without having to wait for passenger input (e.g., additional indications).
[0136] 9A, 9B, 9C, and 9D illustrate the operation of methods 900, 903, 905, and 907, respectively, for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments. With reference to FIGS. 1A-9D, methods 900, 903, 905, and 907 may be implemented within a processor (e.g., 164), processing device (e.g., 500), and / or control unit (e.g., 140) (variously referred to as a "processor") of a vehicle (e.g., 100). In some embodiments, methods 900, 903, 905, and 907 may be performed by one or more layers within a vehicle management system stack, such as a vehicle management system (e.g., 400, 450). In some embodiments, methods 900, 903, 905, and 907 may be performed by a processor independent of, but in conjunction with, a vehicle control system stack, such as a vehicle management system. For example, methods 900, 903, 905, and 907 may be implemented as standalone software modules or in dedicated hardware configured to monitor data and commands from / in the vehicle management system and take actions and store data as described.
[0137] FIG. 9A illustrates a method 900 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0138] In some implementations of method 900, the decision at decision block 902 may follow the action at block 702 (as described with respect to method 700). However, in alternative implementations of method 900, the decision at decision block 902 may follow the action at alternative block 901.
[0139] In alternative block 901, the vehicle processor may determine a first vehicle action from a detected first vehicle control gesture performed by a first passenger. For example, the processor may detect a vehicle control gesture (i.e., an indication to accelerate) in which the passenger repeatedly twirls their finger / hand over their face, up and back down again, or other gesture or input. Using a knowledge base for recognizing such movements, the processor may determine that this gesture means that the passenger wants the vehicle to accelerate. In some embodiments, the means for performing the operations of alternative block 901 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101) and electronic storage (e.g., 635). To make the determination in alternative block 901, the processor may use a vehicle action determination module (e.g., 612).
[0140] In decision block 902, following the operations in block 702 (as described with respect to method 700), the vehicle processor may determine whether a first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform. For example, as described above with respect to FIG. 8, the processor may detect an unsafe, unsafe, and / or highly abnormal vehicle control gesture. After applying a passenger profile assigned to the rear seat in which the passenger is seated, the processor may determine that the gesture means that the passenger wants the vehicle to move to a sudden stop. In some embodiments, the means for performing the operations of decision block 902 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), electronic storage (e.g., 635), and a vehicle management system (e.g., 400, 450). To make the determination in decision block 902, the processor may use a vehicle action safety determination module (e.g., 618).
[0141] In response to a determination by the processor that the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform (i.e., decision block 902="Yes"), the processor may continue with operations at block 704 as described above with respect to method 700.
[0142] In response to a determination by the processor that the first vehicle action associated with the detected first vehicle control gesture is not safe for the vehicle to perform (i.e., decision block 902="No"), the processor may determine a second vehicle action to be performed by the vehicle in block 908 that is a safer alternative to the first vehicle action. In some embodiments, the means for performing the operations of decision block 902 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), electronic storage (e.g., 635), a vehicle management system (e.g., 400, 450), and a vehicle action safety determination module (e.g., 618).
[0143] In block 908, the vehicle processor may determine a second vehicle action that the vehicle should perform that is a safer alternative to the first vehicle action. For example, the processor may determine the alternative vehicle action. In some embodiments, the means for performing the operations of block 908 may include a processor (e.g., 164) coupled to the electronic storage (e.g., 635) and the vehicle management system (e.g., 400, 450). To make the determination in block 908, the processor may use an alternative vehicle action determination module (e.g., 620).
[0144] In block 910, the vehicle processor may operate the vehicle to perform the second vehicle action in response to determining that the second vehicle action is a safer alternative to the first vehicle action. For example, the processor may determine that the first vehicle action is dangerous and / or likely to cause a collision. In some embodiments, the means for performing the operations of block 910 may include a processor (e.g., 164) coupled to the electronic storage (e.g., 635) and the vehicle management system (e.g., 400, 450). To make the determination in block 910, the processor may use a vehicle operation module (e.g., 629).
[0145] In some embodiments, the processor may repeat the operations at decision block 902 and blocks 908 and 910 to periodically or continuously operate the vehicle based on vehicle control gestures by the passenger.
[0146] FIG. 9B illustrates a method 903 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0147] In response to a determination by the processor that the first vehicle action associated with the detected first vehicle control gesture is not safe for the vehicle to perform (i.e., decision block 902="No"), in decision block 904, the vehicle processor may determine whether the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform after a determined delay period. For example, as described above with respect to FIG. 8, if the vehicle were to immediately steer into the right lane, it would be unsafe, but if two leading vehicles (804, 806) reposition into the two left lanes or the leftmost lane, steering into the right lane after a short delay (e.g., 1 or 2 seconds to pump the brakes) may be the safest route. Thus, the processor may determine whether a delay period would change the decision made in decision block 902 of method 900. In some embodiments, the means for performing the operations of decision block 904 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), electronic storage (e.g., 635), and the vehicle management system (e.g., 400, 450). To make the determination at decision block 904, the processor may use a delay period assessment module (e.g., 622).
[0148] In response to a determination by the processor that a first vehicle action associated with a detected first vehicle control gesture (e.g., 63) is safe for the vehicle to perform after the determined delay period (i.e., decision block 904="Yes"), in block 906, the processor may operate the vehicle to perform the first vehicle action after the determined delay period.
[0149] In response to a determination by the processor that the first vehicle action associated with the detected first vehicle control gesture is not safe for the vehicle to perform (i.e., decision block 902="No"), the processor may continue to the operations at block 908 of method 900 as described. In some embodiments, the means for performing the operations of decision block 904 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), electronic storage (e.g., 635), vehicle management system (e.g., 400, 450), vehicle action safety determination module (e.g., 618), and delay period assessment module 622.
[0150] In some embodiments, the processor may repeat any or all of the actions in decision blocks 904 and 906 to repeatedly or continually determine how to operate the vehicle as needed.
[0151] FIG. 9C illustrates a method 905 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0152] Following the operations at block 702 of method 700 or alternative block 901 of method 900 as described, in decision block 912, the vehicle processor may determine whether the first vehicle action includes abnormal vehicle operation. For example, if the first vehicle action includes a maneuver that has never been performed before and is erratic and / or dangerous, the processor may conclude that the maneuver is abnormal. Thus, the processor may assess and determine that the first vehicle action includes abnormal vehicle operation in decision block 912 of method 905. In some embodiments, the means for performing the operations of decision block 912 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), electronic storage (e.g., 635), and a vehicle management system (e.g., 400, 450). To make the determination in decision block 912, the processor may use an abnormal operation safety assessment module (e.g., 628).
[0153] In response to a determination by the processor that the first vehicle action does not include abnormal vehicle operation (i.e., decision block 912="No"), in block 704 of method 700 as described, the processor may operate the vehicle to perform the first vehicle action.
[0154] In response to a determination by the processor that the first vehicle action includes abnormal vehicle operation (i.e., decision block 912="Yes"), in decision block 914, the processor may determine whether the detected first vehicle control gesture includes an additional indication that abnormal vehicle operation is intended by the first passenger.
[0155] In some embodiments, the means for performing the operations of decision block 912 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), an electronic storage device (e.g., 635), a vehicle management system (e.g., 400, 450), and an additional display determination module (e.g., 626).
[0156] At decision block 914, the vehicle processor may determine whether the detected first vehicle control gesture includes additional indications that an abnormal vehicle operation is intended by the first passenger. For example, the passenger may exaggerate the gesture, repeat the gesture, perform the gesture more rapidly than normal, or provide non-visual input (e.g., voice input) that is received along with the detected first vehicle control gesture.
[0157] In response to a determination by the processor that the detected first vehicle control gesture includes a further indication that an abnormal vehicle operation is intended by the first passenger (i.e., decision block 914="Yes"), in block 704 of method 700 as described, the processor may operate the vehicle to perform a first vehicle action.
[0158] In response to a determination by the processor that the detected first vehicle control gesture does not include an additional indication that an abnormal vehicle operation is intended by the first passenger (i.e., decision block 914="No"), in block 916, the processor may prompt the passenger (e.g., the first passenger) for an additional indication.
[0159] In block 916, one or more passengers may be prompted with an additional indication that the detected first vehicle control gesture was or is currently intended (e.g., sound, light, vibration, etc.). As described with respect to the additional indication determination module 626, the prompt to the passenger may include details informing the passenger of or otherwise corresponding to the type of additional indication required. In some implementations, the processor may only process a response from the passenger who made the detected first vehicle control gesture. Alternatively, the processor may accept a response from any designated driver or from any passenger. To give the passenger time to respond, in block 908, the prompt for the additional indication may give the passenger, or at least the passenger who is making the detected first vehicle control gesture, an allotted time to respond before the processor proceeds and determines an alternative action. For example, the allotted time may be 3-5 seconds. In some embodiments, the amount of time may depend on the current environment. For example, when the vehicle is traveling at a high speed, the processor may wait a shorter amount of time before taking action without an additional indication than when the vehicle is traveling at a low speed. Similarly, other circumstances such as location, weather conditions, time of year / year, lighting, etc. may be taken into account in determining how long the processor should wait for an additional indication from one or more passengers. Means for prompting passengers to perform the operation of block 916 may include a processor (e.g., 164), a speaker (e.g., through a vehicle entertainment system), other vehicle computing systems 604, external resources (e.g., 630), electronic storage (e.g., 635), a vehicle management system (e.g., 400, 450), and an additional indication determination module (e.g., 626).
[0160] During the allotted time (i.e., prior to expiration of the allotted time), the processor may determine whether an additional indication is received at decision block 918. Means for performing the operations of decision block 918 may include a processor (e.g., 164), an electronic storage device (e.g., 635), a vehicle management system (e.g., 400, 450), and an additional indication determination module (e.g., 626).
[0161] In response to receiving an additional indication during the allotted time (i.e., decision block 918="Yes"), the processor may operate the vehicle to perform the first vehicle action at block 704 of method 700 as described.
[0162] In response to not receiving an additional indication during the allotted time (ie, decision block 918="No"), the processor may continue with the operations at block 908 of method 900 as described.
[0163] In some embodiments, the means for performing the operations of decision block 914 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), an electronic storage device (e.g., 635), a vehicle management system (e.g., 400, 450), and an abnormal operation safety assessment module (e.g., 628).
[0164] In some embodiments, the processor may repeat any or all of the operations in decision blocks 912 and 914 to repeatedly or continually determine how to operate the vehicle as needed.
[0165] FIG. 9D illustrates a method 907 for operating a vehicle based on vehicle control gestures by a passenger, according to various embodiments.
[0166] In response to determining that the detected first vehicle control gesture includes an additional indication that an abnormal vehicle operation is intended by the first passenger (i.e., decision block 914="Yes"), in decision block 920, the vehicle processor may determine whether the abnormal vehicle operation is safe for the vehicle or occupants. For example, if the abnormal vehicle operation is unsafe despite the passenger giving an indication that the abnormal vehicle operation was intended, the processor may refuse or prevent the vehicle from performing the operation. Thus, the processor may assess and determine how safe the abnormal vehicle operation is for the vehicle and occupants in decision block 920 of method 907. In some embodiments, the means for performing the operations of decision block 920 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), electronic storage (e.g., 635), and a vehicle management system (e.g., 400, 450). To make the determination in decision block 920, the processor may use an abnormal operation safety assessment module (e.g., 628).
[0167] In response to a determination by the processor that the abnormal vehicle operation is unsafe (i.e., decision block 920="No"), as described above with respect to method 700, in block 908, the processor may determine a second vehicle action that the vehicle should perform that is a safer alternative to the first vehicle action.
[0168] In response to a determination by the processor that the abnormal vehicle operation is safe (ie, decision block 920="Yes"), at block 922, the processor may operate the vehicle to perform a first vehicle action.
[0169] In some embodiments, the means for performing the operations of decision block 922 may include a processor (e.g., 164) coupled to one or more sensors (e.g., 101), an electronic storage device (e.g., 635), a vehicle management system (e.g., 400, 450), and an abnormal operation safety assessment module (e.g., 628).
[0170] In some embodiments, the processor may repeat any or all of the operations in decision block 920 and block 922 to repeatedly or continually determine how to operate the vehicle as needed.
[0171] The above method descriptions and process flow diagrams are provided only as illustrative examples and do not require or imply that the blocks of the various embodiments must be performed in the order presented. As will be appreciated by one of ordinary skill in the art, the order of the blocks in the above embodiments may be performed in any order. Terms such as "then," "then," and "next" do not limit the order of the blocks; these terms are merely used to guide the reader through the method description. Additionally, any reference to a claim element in the singular, for example using the articles "a," "an," or "the," should not be construed as limiting the element to the singular.
[0172] Various exemplary logic blocks, modules, circuits, and algorithm blocks described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, various exemplary components, blocks, modules, circuits, and blocks are described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the various embodiments.
[0173] The hardware used to implement the various example logic, logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed using general purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of communication devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some blocks or methods may be performed by circuitry specific to a given function.
[0174] In various embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on a non-transitory computer-readable medium or a non-transitory processor-readable medium. The operations of the methods or algorithms disclosed herein may be embodied in a processor-executable software module that may reside on a non-transitory computer-readable storage medium or a non-transitory processor-readable storage medium. A non-transitory computer-readable storage medium or a non-transitory processor-readable storage medium may be any storage medium that may be accessed by a computer or a processor. By way of example and not limitation, such a non-transitory computer-readable medium or a non-transitory processor-readable medium may include RAM, ROM, EEPROM, FLASH memory, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. As used herein, disk and disc include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above are also included within the scope of non-transitory computer-readable media and non-transitory processor-readable media. Additionally, operations of a method or algorithm may reside as one or any combination or set of code and / or instructions on a non-transitory processor-readable medium and / or a non-transitory computer-readable medium that may be incorporated into a computer program product.
[0175] The foregoing description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present embodiments. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the present embodiments. Thus, the various embodiments are not intended to be limited to the embodiments shown herein, but are to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein. [Explanation of symbols]
[0176] 11, 12, 13 passengers 50 Vehicle Gesture Detection System 61, 62 Gestures 100 vehicles 101 Sensors 102, 104, 106, 108, 110 Occupancy sensors 112, 114 Camera 116, 118 Microphones 120 Shock Sensor 122 Radar 124 Rider 126 Satellite Geographic Positioning System Receiver 128 Tire Pressure Sensor 140 Control Unit 142 Profile Database 144 Gesture Recognition Engine 154 Driving Control Components 156 Navigation Component 164 processors 166 Memory 168 Input Module 170 Output Module 172 Wireless Module 180 Communication networks, cellular data communication networks 182 Signal 184 Server 186 Network 187 Wireless Communication Links 190 Wireless communication devices 192 Wireless Communication Links 300 Systems 400 Vehicle Management System 402 Radar Perception Layer 404 Camera Perception Layer 406 Positioning Engine Layer 408 Map Fusion and Mediation Layer 410 Route Planning Layer 412 Sensor Fusion and Road World Model (RWM) Management Layer 414 Operational Planning and Control Layer 416 Behavior Planning and Prediction Layer 420 Drive-by-wire (DBW) system / control unit 450 Vehicle Management System 452 Vehicle Safety and Collision Avoidance Systems 500 Processing Devices System on Chip (SOC) 503 Digital Signal Processor (DSP) 504 modem processor 505 Camera Operation and Management (CAM) 506 Image and Object Recognition Processor 507 Mobile Display Processor 508 Application Processor 510 Coprocessor 512 Memory elements 514 Analog and Custom Circuits 516 System Components and Resources 517 Resource and Power Management (RPM) Processor 518 Clock 520 Voltage Regulator 524 Interconnect / Bus Modules 600 System 602 Vehicle Computing System 604 Other Vehicle Computing Systems 606 Machine Executable Instructions 607 Passenger Identification Module 608 Passenger Profile Determination Module 610 Vehicle control gesture determination module 612 Vehicle Action Decision Module 616 Passenger Profile Receiving Module 618 Vehicle Action Safety Decision Module 620 Alternative Vehicle Action Decision Module 622 Delay Period Assessment Module 624 Abnormal Operation Decision Module 626 Additional Display Decision Module 628 Abnormal Operation Safety Assessment Module 629 Vehicle Operation Module 630 External Resources 635 Electronic storage device 802 Road 804, 806 Other vehicles, Lead vehicle 808 Vehicle Control Gestures 810 First Vehicle Action 820 Second Vehicle Action 830 Third Vehicle Action 840 4th Vehicle Action 850 5th Vehicle Action
Claims
1. 1. A method executed by a processor of a vehicle for operating a vehicle in response to vehicle control gestures by a passenger, the method comprising: determining a first vehicle action by applying a first passenger profile to a detected first vehicle control gesture performed by a first passenger, the first passenger profile being selected from a plurality of passenger profiles for normalizing vehicle control gestures received from the first passenger; determining whether the first vehicle action includes an abnormal vehicle maneuver, where the abnormal vehicle maneuver has not been previously performed by the vehicle or has not been previously performed by the vehicle at the current speed, degree, or extent; responsive to determining that the first vehicle action includes the abnormal vehicle operation, determining whether the detected first vehicle control gesture includes an additional indication that the abnormal vehicle operation is intended by the first passenger; in response to determining that the detected first vehicle control gesture includes the additional indication that the abnormal vehicle operation is intended by the first passenger, operating the vehicle to perform the first vehicle action. A method comprising:
2. The method of claim 1 , wherein the plurality of passenger profiles includes a second passenger profile designated for a second passenger, the second passenger profile normalizing vehicle control gestures differently than the first passenger profile.
3. identifying the first passenger based on at least one of a location of the first passenger in the vehicle, an input by the first passenger, or an identification of the first passenger; selecting the first passenger profile based on the identification of the first passenger; The method of claim 2 , further comprising:
4. The method of claim 1 , wherein the first passenger profile is customized to the first passenger from training inputs previously received from the first passenger.
5. receiving the first passenger profile from a remote computing device for application to vehicle control gestures; The method of claim 1 , further comprising:
6. determining whether the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform; determining a second vehicle action, in response to determining that the first vehicle action is unsafe for the vehicle to perform, the second vehicle action being a safer alternative to the first vehicle action; operating the vehicle to perform the second vehicle action; The method of claim 1 , further comprising:
7. determining whether the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform after a determined delay period; in response to determining that the first vehicle action associated with the detected first vehicle control gesture is safe for the vehicle to perform after the determined delay period, operating the vehicle to perform the first vehicle action after the determined delay period. The method of claim 1 , further comprising:
8. 2. The method of claim 1, wherein the additional indication includes at least one of an exaggerated gesture, a repeated gesture, a gesture performed more rapidly than normal, or a non-visual input received along with the detected first vehicle control gesture.
9. determining whether the abnormal vehicle operation is safe for the vehicle or an occupant; in response to determining that the abnormal vehicle operation is unsafe for the vehicle or occupants, operating the vehicle to perform a second vehicle action that is a safer alternative to the first vehicle action. The method of claim 1 , further comprising:
10. A non-transitory processor-readable storage medium having stored thereon processor-executable instructions, the stored processor-executable instructions comprising: determining a first vehicle action by applying a first passenger profile to a detected first vehicle control gesture performed by a first passenger, the first passenger profile being selected from a plurality of passenger profiles for normalizing vehicle control gestures received from the first passenger; determining whether the first vehicle action includes an abnormal vehicle operation, the abnormal vehicle operation having not been previously performed by a vehicle or having not been previously performed by the vehicle at the current speed, degree, or extent; responsive to determining that the first vehicle action includes the abnormal vehicle operation, determining whether the detected first vehicle control gesture includes an additional indication that the abnormal vehicle operation is intended by the first passenger; operating the vehicle to perform the first vehicle action in response to determining that the detected first vehicle control gesture includes the additional indication; and 11. A non-transitory processor-readable storage medium configured to cause a processor of a vehicle control system to operate the vehicle in response to a vehicle control gesture by a passenger by performing operations comprising:
11. 11. The non-transitory processor readable storage medium of claim 10, wherein the stored processor executable instructions are configured to cause a processor of the vehicle control system to perform the method of any one of claims 2 to 9.
12. A vehicle control system, comprising: means for determining a first vehicle action by applying a first passenger profile to a detected first vehicle control gesture performed by a first passenger, the first passenger profile being selected from a plurality of passenger profiles for normalizing vehicle control gestures received from the first passenger; means for determining whether the first vehicle action includes abnormal vehicle maneuvering, the abnormal vehicle maneuvering having not been previously performed by a vehicle or having not been previously performed by the vehicle at the current speed, degree, or extent; means for determining, in response to determining that the first vehicle action includes the abnormal vehicle operation, whether the detected first vehicle control gesture includes an additional indication that the abnormal vehicle operation is intended by the first passenger; means for operating the vehicle to perform the first vehicle action in response to determining that the first vehicle action is safe for the vehicle and occupants; A vehicle control system comprising:
13. Configured for use in a vehicle; a sensor configured to detect a vehicle control gesture performed by a passenger; a processor coupled to the sensor and configured with processor-executable instructions for operating the vehicle in response to vehicle control gestures by a passenger, determining the first vehicle action by applying the first passenger profile to the detected first vehicle control gesture performed by the first passenger, the first passenger profile being selected from a plurality of passenger profiles for normalizing vehicle control gestures received from the first passenger; determining whether the first vehicle action includes the abnormal vehicle operation, where the abnormal vehicle operation has not been previously performed by the vehicle or has not been previously performed by the vehicle at the current speed, degree, or extent; responsive to determining that the first vehicle action includes the abnormal vehicle operation, determining whether the detected first vehicle control gesture includes the additional indication that the abnormal vehicle operation is intended by the first passenger; operating the vehicle to perform the first vehicle action in response to determining that the detected first vehicle control gesture includes the further indication that the abnormal vehicle operation is intended by the first passenger; and For the processor and The vehicle control system of claim 12, comprising:
14. The vehicle control system of claim 13, wherein the processor is further configured with processor executable instructions for carrying out the method of any one of claims 2 to 9.
Citation Information
Patent Citations
Attention attracting device to vehicle driver
JP2016179813A
System for information transmission in motor vehicle
JP2018150043A
Vehicle control system, vehicle control method, and vehicle control program
JP2018172028A