Semi-autonomous or pseudo-autonomous driving

By mounting a computer system on the vehicle and establishing a remote control link, the existing autonomous driving technology solves the safety problem when it does not match driving conditions, and achieves safe driving under any conditions and reduces functional limitations.

CN120135207APending Publication Date: 2025-06-13VOLVO CAR CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411825827.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-12
Filing Date
2024-12-12
Publication Date
2025-06-13

AI Technical Summary

Technical Problem

Existing autonomous driving technologies perform poorly in handling real-time driving conditions that do not match training data, resulting in safety concerns and functional limitations.

Method used

By carrying non-transitory computer-readable memory and processors on the vehicle, a remote control link is established with a remote computing device, allowing remote operation of the vehicle to ensure safe driving under any driving conditions.

Benefits of technology

It can drive safely under any driving conditions, reduce the safety risks and functional limitations of autonomous driving technology, and provide a more reliable transportation operation experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120135207A_ABST
    Figure CN120135207A_ABST
Patent Text Reader

Abstract

Systems / techniques for assisting semi-autonomous or pseudo-autonomous driving are provided herein. In various embodiments, an in-vehicle system may discover one or more computing devices that are physically remote from the vehicle but within the electronic communication range of the vehicle. In various aspects, the system may establish a first remote control link between the vehicle and a first computing device of the one or more computing devices such that steering, acceleration, or braking of the vehicle is operated autonomously or by an actual driver prior to establishment of the first remote control link, and causing steering, acceleration, or braking of the vehicle to be remotely operated by the first computing device after the first remote control link is established.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The subject matter of the present disclosure generally relates to a vehicle, and more particularly to semi-autonomous or pseudo-autonomous driving. Background Art

[0002] Many modern vehicles have autonomous driving capabilities. Unfortunately, the current autonomous driving capabilities provide limited functionality.

[0003] Therefore, a system or technology that can solve one or more of these technical problems is desirable. Summary of the Invention

[0004] One or more embodiments of the present invention are outlined below to provide a basic understanding of the present invention. This summary is not intended to identify key or critical elements, or to delineate any scope of a particular embodiment or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that follows. In one or more embodiments described herein, devices, systems, computer-implemented methods, apparatuses, or computer program products for assisting semi-autonomous or pseudo-autonomous driving are described.

[0005] According to one or more embodiments, a system is provided. The system may include a vehicle. In various aspects, the system may further include a non-transitory computer-readable memory mounted on the vehicle, and the non-transitory computer-readable memory may store computer-executable components. The system may further include a processor mounted on the vehicle, the processor being operably coupled to the non-transitory computer-readable memory and configured to execute the computer-executable components stored in the non-transitory computer-readable memory. In various embodiments, the computer-executable components may include a search component that can discover one or more computing devices that are physically remote from the vehicle but within the electronic communication range of the vehicle. In various aspects, the computer-executable components may include a control component that can establish a first remote control link between the vehicle and a first computing device among the one or more computing devices, such that the steering, acceleration, or braking of the vehicle is autonomously operated or operated by an actual driver before the establishment of the first remote control link, and such that the steering, acceleration, or braking of the vehicle is remotely operated by the first computing device after the establishment of the first remote control link.

[0006] According to one or more embodiments, the above system may be implemented as a computer-implemented method or a computer program product. Brief Description of the Drawings

[0007] Figure 1 A block diagram showing an example, and not a limitation, of a system that assists semi-autonomous or pseudo-autonomous driving in accordance with one or more embodiments described herein.

[0008] Figure 2 A block diagram showing examples and not limitations, which shows various vehicle sensors and various drive actuators according to one or more embodiments described herein.

[0009] Figure 3 A block diagram of a system showing examples and not limitations, the system including a wireless device discovery procedure for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0010] Figure 4 A block diagram of a system showing examples and not limitations, the system including a remote control link for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0011] Figure 5 A block diagram of a system showing examples and not limitations, the system including a link trigger for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0012] Figures 6 - 10 A flowchart of a computer-implemented method showing examples and not limitations, the method assisting in triggering or initiating semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0013] Figure 11 A block diagram of a system showing examples and not limitations, the system including a link monitoring procedure for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0014] Figures 12 - 13 A flowchart of a computer-implemented method showing examples and not limitations, the method assisting in monitoring semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0015] Figure 14 A block diagram of a system showing examples and not limitations, the system including a backup remote control link for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0016] Figure 15 A flowchart of a computer-implemented method showing examples and not limitations, the method assisting in the backup of semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0017] Figure 16 A block diagram of a system showing examples and not limitations, the system including one or more device bids or one or more device profiles for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0018] Figure 17A flow chart showing an example, non-limiting, computer-implemented method for assisting semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein.

[0019] Figure 18 Block diagram showing an example, non-limiting operating environment that can facilitate one or more embodiments described herein.

[0020] Figure 19 An example network environment is presented that is operable to perform various embodiments described herein. DETAILED DESCRIPTION

[0021] The following detailed description is illustrative only and is not intended to limit the embodiments or the application / use of the embodiments. In addition, the present invention is not intended to be bound by any explicit or implicit information in the previous "background technology" or "invention summary" section or "specific implementation" section.

[0022] One or more embodiments are now described with reference to the accompanying drawings, wherein the same reference numerals are used to refer to the same elements. In the following description, for the purpose of explanation, many specific details are listed to provide a more thorough understanding of the one or more embodiments. However, in various cases, the one or more embodiments can obviously be implemented without these specific details.

[0023] Many modern vehicles (e.g., cars, trucks, buses, motorcycles, watercraft, airplanes) have autonomous driving capabilities. In particular, such vehicles often capture real-time driving conditions via vehicle sensors (e.g., vehicle cameras, vehicle lidar sensors, vehicle microphones) and determine how the vehicle should respond to these real-time driving conditions (e.g., accelerate, decelerate, turn) via machine learning.

[0024] Unfortunately, the existing autonomous driving technologies provide limited functionality. In fact, as described above, the existing autonomous driving technologies typically rely on machine learning models to analyze real-time driving conditions measured by vehicle sensors. Although machine learning models have shown impressive accuracy in determining how a vehicle should respond to real-time driving conditions, such machine learning models can only reliably or confidently handle real-time driving conditions related to the conditions on which the machine learning models are trained. It is simply not feasible to include or represent every possible real-time driving condition in the training data of such machine learning models. If the real-time driving conditions encountered by such machine learning models are not similar to any of the conditions on which it is trained (e.g., such real-time driving conditions may be highly unique traffic patterns caused by unusual road designs or ongoing road renovations), then any autonomous driving judgments produced by such machine learning models may not be an appropriate response to the real-time driving conditions. Given the extremely serious consequences (such as vehicle collisions, injuries, deaths) that may occur when such machine learning models make inaccurate autonomous driving judgments, this inability to generalize beyond the training data raises serious safety concerns about the existing autonomous driving technologies.

[0025] Accordingly, a system or technology that can address one or more of the above technical problems is desirable.

[0026] The various embodiments described herein can address one or more of these technical problems. One or more embodiments described herein include systems, computer-implemented methods, devices, or computer program products that can assist with semi-autonomous or pseudo-autonomous driving. In particular, when given a vehicle that desires to be in an autonomous driving mode, the various embodiments described herein can involve establishing a remote control link between the vehicle and a computing device, where the computing device is operated by an operator and is physically remote from the vehicle. After establishing the remote control link, the vehicle can share any real-time driving state data captured via its vehicle sensors with the computing device. The computing device can render (e.g., in the case of capturing an image or video feed), play (e.g., in the case of capturing sound or an audio feed), or convey such real-time driving state data in a human-readable format so that the operator of the computing device can consider (e.g., read, view, or listen to) such real-time driving state data. Then, in response to an operator input (e.g., keyboard input, joystick input, touchscreen input, remote control steering wheel input, remote control pedal input), the computing device can transmit any suitable driving instructions (e.g., acceleration instructions, turning instructions, headlight instructions) to the vehicle so that the vehicle can respond appropriately to the real-time driving state data. In other words, from the perspective of any passengers physically present in the vehicle, the vehicle can appear or seem to be acting autonomously, but in reality, the vehicle can be remotely controlled by the operator of the computing device, and thus is referred to as "semi-autonomous" or "pseudo-autonomous". Note that the operator can be considered capable of handling unexpected, abnormal, unique, or other unforeseen driving conditions. In stark contrast, as described above, the machine learning models powering existing autonomous driving technologies cannot confidently handle any driving conditions that they did not encounter during training. Therefore, the various embodiments described herein can be considered a safer alternative to existing autonomous driving technologies.

[0027] The various embodiments described herein can be considered computerized tools (e.g., any suitable combination of computer-executable hardware or computer-executable software) that are carried on a vehicle and can assist with the semi-autonomous or pseudo-autonomous driving of the vehicle. In various aspects, the computerized tool can include a search component or a control component.

[0028] In various embodiments, a vehicle may include one or more vehicle sensors. In various aspects, the one or more vehicle sensors may electronically record, measure, or otherwise capture real-time driving condition data associated with any physical area in which the vehicle is currently traveling or otherwise currently located. More specifically, the one or more vehicle sensors may include one or more cameras of the vehicle, one or more microphones of the vehicle, one or more thermometers of the vehicle, one or more hygrometers of the vehicle, one or more proximity sensors (e.g., radar, sonar, lidar, etc.), one or more motion sensors of the vehicle (e.g., speedometer, accelerometer, gyroscope sensor), one or more global positioning sensors of the vehicle, or one or more biometric sensors of the vehicle (e.g., heart rate sensor, blood pressure sensor, body temperature sensor). In various aspects, the one or more cameras may capture one or more images of the vehicle's current or current surrounding environment (e.g., an image of the road in front of the vehicle, an image of the road behind the vehicle, an image of the road beside the vehicle). In various cases, the one or more microphones may record one or more noises currently occurring or occurring near the vehicle. In various cases, the one or more thermometers may measure one or more temperatures associated with the vehicle's current or current surrounding environment (e.g., air or surface temperature associated with the road on which the vehicle is traveling). In various aspects, the one or more hygrometers may measure one or more humidities associated with the vehicle's current or current surrounding environment (e.g., air or surface humidity associated with the road on which the vehicle is traveling). In various cases, the one or more proximity sensors may measure one or more proximity detections associated with the vehicle's current or current surrounding environment (e.g., can detect when a physical object enters within a threshold distance of the front, side, or rear of the vehicle). In various cases, the one or more motion sensors may record one or more physical motions (e.g., accelerating, braking, turning, rolling). In various aspects, the one or more global positioning sensors may calculate or triangulate the vehicle's current or current location (e.g., latitude, longitude, altitude). In various cases, the one or more biometric sensors may record one or more health metrics currently exhibited by any passengers actually riding in the vehicle. In various cases, such one or more images, such one or more noises, such one or more temperatures, such one or more humidities, such one or more proximity detections, such one or more physical motions, such location, or such one or more health metrics may be collectively referred to as real-time driving state data.

[0029] In various embodiments, a vehicle may include one or more drive actuators. In various aspects, the one or more drive actuators may be any suitable hardware or software that can electronically control, adjust, or otherwise assist with any suitable autonomous driving capabilities of the vehicle. More specifically, the one or more drive actuators may include one or more steering actuators, one or more throttle actuators, one or more brake actuators, one or more camera actuators, one or more lighting actuators, or one or more speaker actuators. In various aspects, the one or more steering actuators may be any suitable electric motor or electronic command that can controllably adjust the way the vehicle steers (e.g., can control the vehicle's steering wheel). In various cases, the one or more throttle actuators may be any suitable electric motor or electronic command that can controllably adjust the way the vehicle accelerates (e.g., can control the vehicle's throttle or accelerator pedal). In various cases, the one or more brake actuators may be any suitable electric motor or electronic command that can controllably adjust the way the vehicle brakes (e.g., can control the vehicle's brake pedal or brake calipers). In various aspects, the one or more camera actuators may be any suitable electric motor or electronic command that can control how the one or more cameras of the vehicle capture images or video (e.g., can control the direction, zoom level, or night vision mode of the one or more cameras). In various cases, the one or more lighting actuators may be any suitable electric motor or electronic command that can controllably adjust the vehicle's lights (e.g., can control the direction or brightness of the vehicle's headlights). In various cases, the one or more speaker actuators may be any suitable electric motor or electronic command that can controllably adjust the vehicle's audio speakers (e.g., can control the direction, loudness, or noise generated by the audio speakers). In various aspects, any one of the one or more drive actuators may be controlled or operated by any suitable autonomous driving function of the vehicle. In various other aspects, any one of the one or more drive actuators may be manually controlled or operated by an actual passenger present in the vehicle (e.g., the actual driver of the vehicle).

[0030] In various embodiments, a search component of a computerized tool may perform wireless device discovery. In various aspects, wireless device discovery may be any suitable electronic procedure that can discover, identify, or otherwise locate one or more remote computing devices, where such one or more remote computing devices are physically remote from or physically distant from a vehicle (e.g., sometimes tens or hundreds of miles apart), but still within the electronic communication range of the vehicle. In various cases, wireless device discovery may include any suitable discovery protocol, such as a Wi-Fi-based protocol, a protocol based on or a radio-based protocol or a protocol based on any other suitable type of electronic signal or electronic connection.

[0031] In various cases, each of the one or more remote computing devices may be any suitable computing device, including any suitable electronic display, any suitable electronic speaker, and any suitable human-machine interface tool (e.g., keyboard, keypad, touch screen). In some aspects, the remote computing device may be a fixed, functional replica or simulation of a vehicle cockpit, control panel, or dashboard (e.g., the vehicle may be a car with a driver's seat, steering wheel, accelerator pedal, and brake pedal; in this case, the remote computing device may be a computer workstation with a seat, an operable steering wheel simulator as a first human-machine interface device, an operable accelerator pedal simulator as a second human-machine interface device, and an operable brake pedal simulator as a third human-machine interface device). However, this is only a non-limiting example. In other aspects, the remote computing device may adopt any other suitable structure (e.g., it may be a desktop computer, a laptop computer, or a smartphone). In various cases, any of the one or more remote computing devices may be located at the same or different physical locations from each other. In any case, each of the one or more remote computing devices may be operated by an operator.

[0032] In various embodiments, a control component of a computerized tool can establish a remote control link with any given one of the one or more remote computing devices in response to the discovery of the one or more remote computing devices. In various aspects, the remote control link can be any suitable radio electronic communication channel through which electronic data can be transmitted from a given remote computing device to a vehicle, or from the vehicle to a given remote computing device. In various aspects, after establishing the remote control link, real-time driving state data captured or measured by the one or more vehicle sensors can be electronically transmitted from the vehicle to a given remote computing device through the remote control link. It should be noted that in some cases, the real-time driving state data can be regarded as a real-time feed or electronic data stream continuously or persistently transmitted to a given remote computing device through the remote control link. In response to receiving the real-time driving state data, a given remote computing device can electronically present, play, or otherwise communicate the real-time driving state data to an operator. As some non-limiting examples, this can involve: visually displaying any images, videos, texts, or digital measurements included in the real-time driving state data on a computer screen of a given remote computing device; or audibly playing any sounds or audio recordings included in the real-time driving state data on a speaker of a given remote computing device. Such presentation, playing, or communication can enable the operator of a given remote computing device to manually inspect the real-time driving state data (e.g., visually see any images, videos, texts, or digital measurements included in the real-time driving state data; audibly hear any sounds or audio recordings included in the real-time driving state data). Thus, in various aspects, the operator can determine one or more appropriate actions for the vehicle to take (e.g., decelerate, turn, honk) based on the real-time driving state data. In various cases, a given remote computing device can transmit electronic instructions to the vehicle through the remote control link in response to a corresponding input from the operator, where such electronic instructions can command or otherwise cause the one or more drive actuators to perform the one or more appropriate operations. In this way, the vehicle can be regarded as being remotely controlled by a given remote computing device. In other words, the operator of a given remote computing device can be regarded as remotely driving the vehicle. In other words, before establishing the remote control link, the vehicle can be autonomously or manually operated by an actually present passenger, while after establishing the remote control link, the vehicle can be regarded as being remotely operated by a given remote computing device.

[0033] In some aspects, when establishing a remote control link, a given remote computing device can have full control of the vehicle (e.g., all of the one or more drive actuators can follow instructions or commands received from the given remote computing device). But in other aspects, when establishing a remote control link, a given remote computing device can have only partial control of the vehicle (e.g., some of the one or more drive actuators can follow instructions or commands received from the given remote computing device, while other of the one or more drive actuators can operate autonomously or be manually operated by a physically present passenger). In other aspects, a given remote computing device can be considered to be on standby in an emergency situation (e.g., a given remote computing device can allow the one or more drive actuators to be operated autonomously or manually by a physically present passenger until the operator of the given remote computing device determines that real-time driving status data requires his or her intervention).

[0034] In various embodiments, the control component can establish a remote control link between the vehicle and a given remote computing device in response to any suitable triggering event.

[0035] In some aspects, before establishing a remote control link, the vehicle can be manually operated by a physically present passenger, and the triggering event can be the physically present passenger selecting, invoking, or activating the autonomous driving function of the vehicle. In other words, the vehicle can initially be in a manual driving mode, and the physically present passenger can attempt (e.g., via pressing any suitable button of the vehicle) to switch the manual driving mode to the autonomous driving mode, and the control component can establish a remote control link in response to the attempt to enter the autonomous driving mode. In other words, the physically present passenger can choose to have the vehicle drive autonomously, and the vehicle can be remotely driven by the operator of the given remote computing device instead of driving autonomously, and there will be no difference from the perspective of the physically present passenger (e.g., the physically present passenger no longer manually operates the vehicle, which is consistent with the purpose they are trying to achieve by switching to the autonomous driving mode).

[0036] In other aspects, before establishing a remote control link, the vehicle can be manually operated by a physically present passenger, and the triggering event can be the vehicle deviating from any suitable electronic marker or marked driving route. In other words, the vehicle can initially be in a manual driving mode and there can be an electronic driving route that the vehicle should or intends to follow (e.g., the electronic driving route can be any suitable sequence of driving routes indicated by the vehicle's electronic navigation system). In various situations, the physically present passenger may deviate from or fail to follow the electronic driving route (e.g., a wrong turn determined via the one or more global positioning sensors of the vehicle). In response to such a deviation, the control component can establish a remote control link, thereby allowing the operator of a given remote computing device to correct the deviation (e.g., remotely drive the vehicle back onto the electronic driving route).

[0037] In other aspects, before establishing a remote control link, the vehicle can be manually operated by a physically present passenger, and the triggering event can be a medical emergency experienced by the physically present passenger. In other words, the vehicle can initially be in a manual driving mode, where the vehicle is manually controlled by a physically present passenger. In various situations, the physically present passenger may suddenly experience a medical or health emergency (such as a heart attack, fainting, stroke), which may adversely affect the physically present passenger's ability to drive the vehicle correctly or safely. In response to such a medical or health emergency (e.g., detectable by the one or more biometric sensors of the vehicle), a given remote computing device can establish a remote control link, which can allow the operator of the given remote computing device to drive the vehicle safely to prevent a catastrophic vehicle accident or collision due to the medical or health emergency.

[0038] In other aspects, the vehicle can be manually operated by a physically present passenger before establishing a remote control link, and the triggering event can be the vehicle violating any applicable traffic regulations. In other words, the vehicle can initially be in a manual driving mode, and there can be traffic regulations that the vehicle is legally required to comply with (e.g., the traffic regulations can be the posted speed limit applicable to the current location of the vehicle, which can be determined via the one or more global positioning sensors of the vehicle). In various situations, the physically present passenger may cause the vehicle to violate traffic regulations (e.g., whether the current movement of the vehicle violates traffic regulations can be determined via the one or more motion sensors of the vehicle). In response to such a violation, the control component can establish a remote control link, thereby allowing the operator of a given remote computing device to correct the violation (e.g., remotely drive the vehicle to comply with the traffic regulations).

[0039] Even in other aspects, before establishing a remote control link, the vehicle can operate autonomously, and the triggering event can be the occurrence of an unexpected driving state. In various cases, the autonomous driving function of the vehicle can be powered by any suitable machine learning model that has been trained to infer driving operations based on input driving condition data. In various cases, as described above, the one or more vehicle sensors can capture or measure real-time driving state data. If the real-time driving state data is not similar enough to the driving state data on which the machine learning model was trained, the real-time driving state data can be considered to indicate the occurrence of an unexpected driving state (e.g., a highly unique driving state that the machine learning model was not trained to handle). In various aspects, any suitable deep learning encoder (e.g., an encoder trained in an unsupervised encoder-decoder pipeline) can be utilized to determine whether the real-time driving state data indicates the occurrence of an unexpected driving state (e.g., the deep learning encoder can be configured to transform high-dimensional driving state data into low-dimensional latent vectors; accordingly, the deep learning encoder can generate a specific latent vector for the real-time driving state data captured by the one or more vehicle sensors, the deep learning encoder can be used to generate a latent vector distribution from various driving state data, the latent vector distribution is used to train the machine learning model, and the degree of match between the specific latent vector and the latent vector distribution can indicate whether the real-time driving state data represents an unexpected driving state). In any case, in response to such an unexpected driving state, the control component can establish a remote control link, which can allow an operator of a given remote computing device to handle the unexpected driving state (e.g., remotely drive the vehicle to safely navigate through the unexpected driving state).

[0040] In various embodiments, after establishing a remote control link between the vehicle and a given remote computing device, the control component can continuously, persistently, or periodically monitor the remote control link. More specifically, the control component can regularly measure the signal strength or latency of the remote control link, and the control component can compare the measured signal strength or latency with any suitable threshold. In various cases, the control component can take any appropriate electronic measures to address the situation where the measured signal strength or latency does not meet the threshold (e.g., to address the situation where the remote control link becomes too weak or has too much time delay).

[0041] As a non-limiting example, if the measured signal strength or latency fails to meet the threshold, the control component can electronically present an alert or warning message on any suitable electronic display screen of the vehicle (e.g., a computer screen), where such an alert or warning message can notify the passengers actually present that the remote control link may be lost soon. Thus, the passengers actually present can be aware that the manual driving mode of the vehicle may soon be restarted.

[0042] As another non - limiting example, if the measured signal strength or latency does not meet a threshold, the control component can electronically place the vehicle in a vigilant mode. In various cases, the vigilant mode can include: causing one or more drive actuators to reduce the vehicle speed; causing one or more drive actuators to increase the vehicle's following distance; or diverting power from non - critical components of the vehicle (e.g., seat heaters, CD players) to the remote control link in an attempt to increase the strength or reduce the latency of the remote control link.

[0043] In some embodiments, the control component can continuously, persistently, or periodically monitor the remote control link and can electronically assist in establishing a fallback remote control link with another of one or more remote computing devices based on such monitoring. As a non - limiting example, for a situation where the strength or latency of the remote control link fails to meet a moderate threshold but has not yet met a severe threshold, the control component can prepare another remote control link between the vehicle and another remote computing device, called a fallback remote control link. In response to the strength or latency of the remote control link subsequently deteriorating such that it fails to meet the severe threshold, the control component can replace the remote control link with the fallback remote control link. In other words, when it is determined that there has been some moderate degradation in the strength or latency of the remote control link, the control component can create or establish a fallback remote control link with another remote computing device, but the control component may not grant driving rights to the other remote computing device. Thus, when only a moderate attenuation of the remote control link has been detected so far, the vehicle can still be remotely driven by a given remote computing device while the fallback remote control link is established as a redundant safety net. If the remote control link subsequently experiences severe degradation, the control component can switch driving rights from the given remote computing device to another remote computing device (e.g., this may include terminating the remote control link). In this way, the control component can proactively monitor the quality of the remote control link and replace it with another link when needed.

[0044] In various embodiments, wireless device discovery performed by a search component can include accessing one or more bids or one or more profiles associated with the one or more remote computing devices. In various aspects, a bid can be any suitable electronic data transmitted from a remote computing device that indicates the financial cost that would be incurred or charged if the remote computing device remotely operates a vehicle. In various cases, a profile can be any suitable electronic data associated with a remote computing device that indicates how well the operator of the remote computing device has performed remote driving historically (e.g., can indicate the operator's passenger ratings, the operator's traffic violation records, the operator's criminal records). In various cases, a control component can select or choose a given remote computing device (e.g., can select or choose which remote computing device to link to) based on the one or more bids (e.g., which device is associated with the lowest bid) or based on the one or more profiles (e.g., which device is associated with the safest or highest-rated operator).

[0045] The various embodiments described herein can be used to solve highly technical problems (e.g., assist semi-autonomous or pseudo-autonomous driving) using hardware or software, which are not abstract and cannot be performed as a series of mental acts of a human. Additionally, certain processes performed can be by a specialized computer (e.g., an autonomous vehicle having executable steering, throttle, and braking mechanisms; vehicle sensors such as speedometers, accelerometers, gyroscopic sensors, global positioning sensors, or biometric sensors; a deep learning encoder having internal parameters such as convolutional kernels) to perform prescribed tasks related to semi-autonomous or pseudo-autonomous driving.

[0046] For example, such defined tasks can include: discovering, via a device operably coupled to a processor and carried on a vehicle, one or more computing devices that are physically remote from the vehicle but within the electronic communication range of the vehicle; and establishing a first remote control link between the vehicle and a first computing device of the one or more computing devices such that the steering, acceleration, or braking of the vehicle is autonomously operated or operated by an actual driver before the first remote control link is established, and such that the steering, acceleration, or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established. Additionally, these determined tasks can further include: triggering a remote control link in response to selecting an autonomous driving mode; triggering a remote control link in response to deviating from a defined driving route; triggering a remote control link in response to detecting a passenger health emergency; or triggering a remote control link in response to detecting an unexpected driving state.

[0047] Such specified tasks are not performed manually by humans. In fact, neither the human brain nor a person with pen and paper can electronically establish a wireless communication channel between a vehicle and a remote computing device in response to the automatic detection of various triggering criteria, such that the vehicle is operated, controlled, or driven by the remote computing device rather than the physically present passengers. In fact, a vehicle with autonomous driving capabilities is itself a hardware-based computerized device, and without a computer, humans simply cannot achieve autonomous driving in any way. Additionally, remotely controlling such a vehicle via a wireless communication link is itself a computerized process that humans simply cannot achieve without a computer. Therefore, a computerized tool capable of establishing a remote control link between a vehicle and a remote computing device based on the automatic detection of various triggering criteria is also inherently computerized and hardware-based and cannot be achieved in any sensible, practical, or reasonable way without a computer.

[0048] In addition, the various embodiments described herein can integrate various teachings related to semi-autonomous or pseudo-autonomous driving into practical applications. As mentioned above, existing autonomous driving technologies do not generalize well beyond their training data. That is, existing autonomous driving technologies use machine learning models to determine which driving operations an autonomous driving vehicle should perform. However, these machine learning models cannot reliably or confidently determine appropriate or safe driving operations under driving conditions different from any driving conditions they encountered during training. Since the training data cannot represent all possible driving conditions that may be encountered, and making inappropriate or unsafe driving behaviors can have serious consequences, existing autonomous driving technologies cannot be generalized beyond the training data, which significantly limits them in practice.

[0049] The various embodiments described herein can solve or ameliorate the various technical problems described above. Specifically, for a vehicle that carries passengers and has an autonomous driving function, the various embodiments described herein can relate to establishing a dedicated communication channel between the vehicle and a remote computing device that is physically isolated from the vehicle. In various aspects, the remote computing device can transmit electronic instructions or commands to the vehicle through the dedicated communication channel, and these electronic instructions or commands can indicate driving operations (e.g., turning, accelerating, decelerating, turning on the headlights, activating the flashers) that the vehicle can follow or obey. In other words, before the dedicated communication channel is established, the vehicle can be driven autonomously or manually, and after the dedicated communication channel is established, the vehicle can be remotely driven by an operator of the remote computing device. From the perspective of the passenger, the vehicle appears to be driving autonomously. But in fact, the vehicle can be remotely driven by an operator of the remote computing device. It should be noted that although the operator is not in the vehicle, they are able to safely drive the vehicle through unexpected driving conditions, which is different from existing autonomous driving technologies. In this way, from the perspective of the passenger, the vehicle appears to be driving autonomously without being troubled by the generality limitations of existing autonomous driving technologies. That is to say, the various embodiments described herein can solve the various disadvantages of the prior art. Therefore, the various embodiments described herein undoubtedly constitute a concrete and visible technical improvement in the field of vehicles. Therefore, the various embodiments described herein clearly meet the conditions of useful and practical applications of computers.

[0050] In addition, the various embodiments described herein can control tangible devices in the real world according to the disclosed teachings. For example, the various embodiments described herein can electronically control (e.g., cause turning, cause accelerating, cause decelerating) vehicles in the real world.

[0051] It should be understood that the figures and descriptions herein provide non-limiting examples of the various embodiments and are not necessarily drawn to scale.

[0052] Figure 1 A block diagram showing an example, and not a limitation, of a system 100 that can assist semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein. As shown, a semi-autonomous driving system 108 can be carried on a vehicle 102.

[0053] In various embodiments, vehicle 102 may include a set of vehicle sensors 104 and a set of drive actuators 106. In various aspects, vehicle sensors 104 may include any suitable number and any suitable type of electronic sensors that may collectively measure, capture, record, or otherwise generate real-time driving state data associated with vehicle 102. In various cases, drive actuators 106 may include any suitable number and any suitable type of electronically controllable mechanisms that may controllably change, affect, or otherwise influence the way vehicle 102 is driven. For non-limiting aspects, see Figure 2 .

[0054] Figure 2 FIG. 200 is a block diagram showing, by way of example and not limitation, a set of vehicle sensors 104 and a set of drive actuators 106 in accordance with one or more embodiments described herein.

[0055] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle cameras 202. In various aspects, the set of vehicle cameras 202 can include any suitable number and any suitable type of cameras (e.g., image capture devices). In various cases, the set of vehicle cameras 202 can be integrated into or on the vehicle 102. In various cases, one or more of the cameras in the set of vehicle cameras 202 can face forward. For example, one or more such cameras can be integrated on any suitable forward-facing surface inside or outside the vehicle 102 (e.g., can be mounted on the dashboard of the vehicle 102 to view through the front windshield of the vehicle 102, can be mounted around the front windshield of the vehicle 102, can be mounted on the front bumper of the vehicle 102, can be mounted around the headlights of the vehicle 102, can be mounted on the hood of the vehicle 102). Since one or more such cameras can face forward, one or more such cameras can be configured to capture or otherwise record images or video frames of any environment in front of the vehicle 102. In various aspects, one or more of the cameras in the set of vehicle cameras 202 can face backward. For example, one or more such cameras can be integrated on any suitable rear-facing surface inside or outside the vehicle 102 (e.g., can be integrated into the rearview mirror of the vehicle 102, can be integrated into the side mirror of the vehicle 102, can be integrated around the rear windshield of the vehicle 102, can be integrated on the rear bumper of the vehicle 102, can be integrated around the taillights of the vehicle 102, can be integrated on the trunk lid of the vehicle 102). Since one or more such cameras can face backward, one or more such cameras can be configured to capture or otherwise record images or video frames of any environment behind the vehicle 102. In various cases, one or more of the cameras in the set of vehicle cameras 202 can face sideways. For example, one or more such cameras can be integrated on any suitable side-facing surface inside or outside the vehicle 102 (e.g., can be built into or around the door or door handle of the vehicle 102, can be built into or around the fender of the vehicle 102). Since one or more such cameras can face sideways, one or more such cameras can be configured to capture or otherwise record images or video frames of any part beside the vehicle 102.

[0056] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle microphones 204. In various aspects, the set of vehicle microphones 204 can include any suitable number of any suitable type of microphone (e.g., a sound capture device). In various cases, the set of in-vehicle microphones 204 can be integrated into or on the vehicle 102. In various cases, one or more of the set of in-vehicle microphones 204 can face forward. For example, one or more such microphones can be integrated onto any suitable forward-facing surface (whether internal or external) of the vehicle 102 to capture or otherwise record sounds or noises present in any environment in front of the vehicle 102. In various aspects, one or more of the set of in-vehicle microphones 204 can face rearward. For example, one or more such microphones can be integrated onto any suitable rearward-facing surface (whether internal or external) of the vehicle 102 to capture or otherwise record sounds or noises present in any environment behind the vehicle 102. In various cases, one or more of the set of in-vehicle microphones 204 can face sideways. For example, one or more such microphones can be integrated onto any suitable side-facing surface (whether internal or external) of the vehicle 102 to capture or otherwise record any sounds or noises occurring around the vehicle 102.

[0057] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle thermometers 206. In various aspects, the set of vehicle thermometers 206 can include any suitable number of any suitable type of thermometer (e.g., a temperature sensor). In various cases, this set of vehicle thermometers 206 can be integrated into or on the vehicle 102. In various cases, one or more of the set of vehicle thermometers 206 can face forward. For example, one or more such thermometers can be integrated onto any suitable forward-facing surface (whether internal or external) of the vehicle 102 to capture or otherwise record the air temperature or road surface temperature associated with any environment in front of the vehicle 102. In various aspects, one or more of the set of vehicle thermometers 206 can face rearward. For example, one or more such thermometers can be integrated onto any suitable rearward-facing surface, whether internal or external, of the vehicle 102 to capture or otherwise record the air temperature or road surface temperature associated with any environment behind the vehicle 102. In various cases, one or more of the set of vehicle thermometers 206 can face sideways. For example, one or more such thermometers can be integrated onto any suitable side-facing surface (whether internal or external) of the vehicle 102 to capture or otherwise record the air temperature or road surface temperature associated with any environment around the vehicle 102.

[0058] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle hygrometers 208. In various aspects, the set of vehicle hygrometers 208 can include any suitable number and any suitable type of hygrometer (e.g., humidity or moisture sensors). In various cases, the set of vehicle hygrometers 208 can be integrated into or onto the vehicle 102. In various cases, one or more of the set of vehicle hygrometers 208 can face forward. For example, one or more such hygrometers can be integrated onto any suitable forward-facing surface, either inside or outside the vehicle 102, to capture or otherwise record the air humidity or road surface humidity level associated with any environment in front of the vehicle 102. In various aspects, one or more of the set of vehicle hygrometers 208 can face backward. For example, one or more such hygrometers can be integrated onto any suitable rearward-facing surface (either inside or outside) of the vehicle 102 to capture or otherwise record the air humidity or road surface humidity level associated with any environment behind the vehicle 102. In various cases, one or more of the set of vehicle hygrometers 208 can face sideways. For example, one or more such hygrometers can be integrated onto any suitable lateral surface of the vehicle 102, either inside or outside, to capture or otherwise record the air humidity or road surface humidity level associated with any environment beside the vehicle 102.

[0059] In various embodiments, as shown, the vehicle sensors 104 can include a set of vehicle proximity sensors 210. In various aspects, the set of vehicle proximity sensors 210 can include any suitable number of any suitable type of proximity sensors (e.g., radar, sonar, or lidar sensors). In various cases, the set of vehicle proximity sensors 210 can be integrated into or onto the vehicle 102. In various cases, one or more of the set of vehicle proximity sensors 210 can face forward. For example, one or more such proximity sensors can be integrated onto any suitable forward surface (whether internal or external) of the vehicle 102 to capture or otherwise record the distance to a tangible object in any surrounding environment in front of the vehicle 102. In various aspects, one or more of the set of vehicle proximity sensors 210 can face backward. For example, one or more such proximity sensors can be integrated onto any suitable rearward surface (whether internal or external) of the vehicle 102 to capture or otherwise record the distance to a tangible object in any environment behind the vehicle 102. In various cases, one or more of the set of vehicle proximity sensors 210 can face sideways. For example, one or more such proximity sensors can be integrated onto any suitable lateral surface (whether internal or external) of the vehicle 102 to capture or otherwise record the proximity to a tangible object in any surrounding environment beside the vehicle 102.

[0060] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle motion sensors 212. In various aspects, the set of vehicle motion sensors 212 can include any suitable number of any suitable type of motion sensors (e.g., speedometers, accelerometers, gyroscopic sensors). In various cases, the set of vehicle motion sensors 212 can be integrated into or onto the vehicle 102. Accordingly, the set of vehicle motion sensors 212 can record the motion exhibited or performed by the vehicle 102 at any given time. For example, the set of vehicle motion sensors 212 can record the linear speed at which the vehicle 102 is currently traveling or is in motion. As another example, the set of vehicle motion sensors 212 can record the angular speed at which the vehicle 102 is currently traveling or is in motion. As another example, the set of vehicle motion sensors 212 can record the linear acceleration that the vehicle 102 is currently experiencing or is undergoing. As another example, the set of vehicle motion sensors 212 can record the angular acceleration that the vehicle 102 is currently experiencing or is undergoing. As another example, the set of vehicle motion sensors 212 can record the direction (e.g., roll, yaw, or pitch) that the vehicle 102 is currently exhibiting or currently has.

[0061] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle global positioning sensors 214. In various aspects, the set of vehicle global positioning sensors 214 can include any suitable number and any suitable type of global positioning sensors. In various cases, the set of vehicle global positioning sensors 214 can be integrated into or on the vehicle 102. Thus, the set of vehicle global positioning sensors 214 can record the geographical locations actually visited by the vehicle 102 at any given time. For example, the set of vehicle global positioning sensors 214 can record the latitude at which the vehicle 102 is currently located. As another example, the set of vehicle global positioning sensors 214 can record the longitude at which the vehicle 102 is currently located. As another example, the set of vehicle global positioning sensors 214 can record the altitude at which the vehicle 102 is currently located. As another example, the set of vehicle global positioning sensors 214 can record the country in which the vehicle 102 is currently located. As another example, the set of vehicle global positioning sensors 214 can record the state or province in which the vehicle 102 is currently located. As another example, the set of vehicle global positioning sensors 214 can record the city in which the vehicle 102 is currently located. As another example, the set of vehicle global positioning sensors 214 can record the address at which the vehicle 102 is currently located.

[0062] In various embodiments, as shown, the set of vehicle sensors 104 can include a set of vehicle biometric sensors 216. In various aspects, the set of vehicle biometric sensors 216 can include any suitable number and any suitable type of biometric sensors (e.g., heartbeat sensor, respiration sensor, pulse oximeter, thermometer, blood pressure sensor). In various cases, the set of vehicle biometric sensors 216 can be integrated into or on the vehicle 102. Thus, the set of vehicle biometric sensors 216 can record biometric information, health information, or vital sign information of any passenger actually riding in the vehicle 102. For example, the set of vehicle biometric sensors 216 can record or monitor the current or present pulse of the passenger. As another example, the set of vehicle biometric sensors 216 can record or monitor the current or present respiration rate of the passenger. As another example, the set of vehicle biometric sensors 216 can record or monitor the current or present blood oxygen level of the passenger. As another example, the set of vehicle biometric sensors 216 can record or monitor the current or present body temperature of the passenger. As another example, the set of vehicle biometric sensors 216 can record or monitor the current or present blood pressure of the passenger.

[0063] These are merely non - limiting examples for ease of illustration and explanation. In various cases, the vehicle sensor 104 can include any other suitable type of sensor that can collect or record any suitable data that may be related to the vehicle 102 or the passengers of the vehicle 102.

[0064] In various embodiments, as shown, the drive actuator 106 can include a set of steering actuators 218. In various aspects, the set of steering actuators 218 can include any suitable number of steering actuators, where the steering actuator can be any suitable electronically controllable mechanism (e.g., such as a servo motor or an electric - drive piston) that can steer the vehicle 102. As a non - limiting example, the steering actuator can, in response to an electronic instruction or indication, controllably cause one or more wheels of the vehicle 102 to rotate, revolve, or swing about their steering axes (at any suitable angular direction and any suitable angular distance), thereby changing the travel trajectory of the vehicle 102.

[0065] In various embodiments, as shown, the drive actuator 106 can include a set of throttle actuators 220. In various aspects, the set of throttle actuators 220 can include any suitable number of throttle actuators, where the throttle actuator can be any suitable electronically controllable mechanism (e.g., such as a servo motor or an electric - drive piston) that can apply throttle to the vehicle 102, thereby applying acceleration. As a non - limiting example, the throttle actuator can, in response to an electronic instruction or indication, controllably cause one or more wheels of the vehicle 102 to rotate (forward or backward and at a suitable speed) about their main shaft or driven shaft, thereby increasing the travel speed of the vehicle 102.

[0066] In various embodiments, as shown, the drive actuator 106 can include a set of brake actuators 222. In various aspects, the set of brake actuators 222 can include any suitable number of brake actuators, where the brake actuator can be any suitable electronically controllable mechanism (e.g., a servo motor or an electric - drive piston) that can apply brakes to the vehicle 102, thereby decelerating. As a non - limiting example, the brake actuator can, in response to an electronic instruction or indication, controllably cause one or more brake calipers of the vehicle 102 to compress their brake pads against one or more wheels of the vehicle 102 (with any suitable pressure), thereby reducing the travel speed of the vehicle 102.

[0067] In various embodiments, as shown, the drive actuator 106 may include a set of camera actuators 224. In various aspects, the set of camera actuators 224 may include any suitable number of camera actuators, where a camera actuator may be any suitable electronically controllable mechanism (e.g., such as a servo motor or an electrically driven piston) that can alter the operation of any one of the set of vehicle cameras 202. As a non-limiting example, a camera actuator may, in response to an electronic command or instruction, controllably change the optical zoom level of any one of the set of vehicle cameras 202, controllably change the physical orientation of any one of the set of vehicle cameras 202, or controllably change the visual mode (e.g., daylight vision, night vision, thermal vision) of any one of the set of vehicle cameras 202.

[0068] In various embodiments, as shown, the drive actuator 106 may include a set of lighting actuators 226. In various aspects, the set of lighting actuators 226 may include any suitable number of lighting actuators, where a lighting actuator may be any suitable electronically controllable mechanism (e.g., such as a servo motor or an electrically driven piston) that can alter the operation of any vehicle light (e.g., the vehicle light may be one or more). As a non-limiting example, a lighting actuator may, in response to an electronic instruction or indication, controllably change the brightness level of any light of the vehicle 102, controllably change the physical orientation of any light of the vehicle 102, or controllably change the color emitted by any light of the vehicle 102.

[0069] In various embodiments, as shown, the drive actuator 106 may include a set of speaker actuators 228. In various aspects, the set of speaker actuators 228 may include any suitable number of speaker actuators, where a speaker actuator may be any suitable electronically controllable mechanism (e.g., a servo motor or an electrically driven piston) that can alter the operation of any audio speaker of the vehicle 102. As a non-limiting example, a speaker actuator may, in response to an electronic command or instruction, controllably change the volume of any audio speaker of the vehicle 102, controllably change the physical orientation of any audio speaker of the vehicle 102, or controllably cause any audio speaker of the vehicle 102 to play or audibly reproduce any suitable noise or sound.

[0070] The above are only non-limiting examples for ease of illustration and explanation. In various cases, the set of drive actuators 106 may include any other suitable type of actuator that can control, affect, or otherwise influence the way the vehicle 102 is driven or operates.

[0071] In various situations, the drive actuator group 106 can be controlled or otherwise operated by any suitable autonomous driving function of the vehicle 102. However, in other situations, the drive actuator group 106 can be in an idle or sleep state, in which case the vehicle 102 can be manually driven by a passenger actually sitting inside the vehicle 102.

[0072] Look back Figure 1 , it is desirable for the vehicle 102 to be driven in a seemingly autonomous manner (from the perspective of a passenger actually sitting in the vehicle 102) without subjecting the vehicle 102 to the disadvantages caused by the limited generality of autonomous driving. As described herein, the semi-autonomous driving system 108 can assist in achieving this goal.

[0073] In various embodiments, the semi-autonomous driving system 108 can include a processor 110 (e.g., a computer processing unit, a microprocessor) and a non-transitory computer-readable memory 112 operably or communicatively connected or coupled to the processor 110. The non-transitory computer-readable memory 112 can store computer-executable instructions that, when executed by the processor 110, can cause the processor 110 or other components of the semi-autonomous driving system 108 (e.g., the search component 114, the control component 116) to perform one or more operations. In various embodiments, the non-transitory computer-readable memory 112 can store computer-executable components (e.g., the search component 114, the control component 116), and the processor 110 can execute the computer-executable components.

[0074] In various embodiments, the semi-autonomous driving system 108 can include a search component 114. In various aspects, as described herein, the search component 114 can electronically identify remote computing devices capable of communicating with the vehicle 102.

[0075] In various embodiments, the semi-autonomous driving system 108 can include a control component 116. In various embodiments, as described herein, the control component 116 can electronically establish a remote control link between the vehicle 102 and a remote computing device, such that the vehicle 102 can be remotely driven by the remote computing device.

[0076] Figure 3 A block diagram showing an example and non-limiting system 300 that includes a wireless device discovery program that can assist in semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein. As shown, the system 300 can include the same components as the system 100 in some cases, and can further include a wireless device discovery 302 and a group of remote computing devices 304.

[0077] In various embodiments, the search component 114 may perform wireless device discovery 302 electronically. In various aspects, wireless device discovery 302 may be any suitable electronic discovery process, procedure, or protocol that is capable of electronically identifying, locating, or otherwise discovering any suitable device that is capable of wirelessly communicating with the vehicle 102. As a non-limiting example, wireless device discovery 302 may be or otherwise utilize Service Discovery Protocol (SDP). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Domain Name Service Service Discovery (DNS-SD). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Dynamic Host Configuration Protocol (DHCP). Even as another non-limiting example, wireless device discovery 302 may be or otherwise utilize Internet Storage Name Service (iSNS). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Lightweight Service Discovery (LSD). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Link Layer Discovery Protocol (LLDP). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Local Peer Discovery. Even in another non-limiting example, wireless device discovery 302 may be or otherwise utilize Multicast Source Discovery Protocol. As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Service Location Protocol (SLP). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Session Announcement Protocol (SAP). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Simple Service Discovery Protocol (SSDP). Even in another non-limiting example, wireless device discovery 302 may be or otherwise utilize Universal Description Discovery and Integration (UDDI). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Web Proxy Auto-Discovery Protocol (WPAD). As another non-limiting example, wireless device discovery 302 may be or otherwise utilize Web Services Dynamic Discovery. In various cases, wireless device discovery 302 may use any suitable combination of the above protocols or any other suitable discovery protocol.

[0078] In any case, the execution of wireless device discovery 302 causes the search component 114 to discover the set of remote computing devices 304. In various aspects, the set of remote computing devices 304 can include n devices, for any suitable positive integer n: remote computing device 304(1) through remote computing device 304(n). In various cases, each device in the set of remote computing devices 304 can be physically remote from the vehicle 102. In fact, in some cases, any one of the set of remote computing devices 304 can be many miles (e.g., dozens of miles, hundreds of miles) from the vehicle 102. Although physically remote or isolated from the vehicle 102, each of the set of remote computing devices 304 can be within the electronic communication range of the vehicle 102. In other words, each remote computing device 304 is capable of electronic communication with the vehicle 102, and thus the search component 114 is able to discover the set of remote computing devices 304 (e.g., computing devices that are not capable of electronic communication with the vehicle 102 may not be discovered or may not be discoverable by the search component 114).

[0079] In various aspects, each of the set of remote computing devices 304 can be any suitable computing device that can be operated by an operator. Accordingly, each of the set of remote computing devices 304 can include any suitable electronic display (e.g., any suitable computer screen or computer monitor) that can present visual information for viewing by its respective operator; each of the set of remote computing devices 304 can include any suitable electronic speaker that can produce audio information for hearing by its respective operator; each of the set of remote computing devices 304 can include any suitable human-machine interface tool (e.g., keyboard, keypad, touch screen, voice control system) that can be used by its respective operator to provide manual input.

[0080] As a non-limiting example, any one of the set of remote computing devices 304 can be a computerized workstation that can mimic or otherwise simulate the cockpit, dashboard, control panel, console, or control cabin of a vehicle 102. For example, assume that the vehicle 102 is a car, truck, or bus. In this case, any one of the set of remote computing devices 304 can be equipped or provided with: a human-machine interface tool similar to or having the function of a car, truck, or bus steering wheel; another human-machine interface tool similar to or having the function of a car, truck, or bus accelerator pedal; another human-machine interface tool similar to or having the function of a car, truck, or bus brake pedal; or even another human-machine interface tool similar to or having the function of a car, truck, or bus gear shifter. As another example, assume that the vehicle 102 is a boat. In this case, any one of the set of remote computing devices 304 can be equipped or provided with: a human-machine interface tool similar to or having the function of a boat's steering wheel; another human-machine interface tool similar to or having the function of a boat's throttle handle; or another human-machine interface tool similar to or having the function of a boat's trim control switch.

[0081] But in other cases, any one of the set of remote computing devices 304 can be any other suitable type of computing device. As a non-limiting example, any one of the set of remote computing devices 304 can be a desktop computer. As another non-limiting example, any one of the set of remote computing devices 304 can be a laptop computer. As another non-limiting example, any one of the set of remote computing devices 304 can be a smartphone. Even as another non-limiting example, any one of the set of remote computing devices 304 can be a tablet device.

[0082] Figure 4 A block diagram showing an example, and not a limitation, of a system 400 that includes a remote control link that can assist semi-autonomous or pseudo-autonomous driving in accordance with one or more embodiments described herein. As shown, the system 400 can include the same components as the system 300 in some cases and can further include a remote control link 402.

[0083] In various embodiments, the control component 116 may electronically create, electronically form, or otherwise establish a remote control link 402 between the vehicle 102 and the remote computing device 304(j) (for any suitable positive integer 1 ≤ j ≤ n). In various aspects, the remote control link 402 may be any suitable wireless electronic communication channel that is capable of transmitting electronic data from the vehicle 102 to the remote computing device 304(j), or capable of transmitting electronic data from the remote computing device 304(j) to the vehicle 102. In some cases, the remote control link 402 may be any suitable Internet connection that utilizes one or more intermediate access points or intermediate routers. In other cases, the remote control link 402 may be any suitable point-to-point connection that can operate or otherwise function without an intermediate access point or intermediate router. Non-limiting examples of such point-to-point connections may include P2P connections or Wi-Fi P2P connections (such as Wi-Fi ).

[0084] In various aspects, after establishing the remote control link 402, the control component 116 may continuously or persistently transmit, via the remote control link 402, any real-time driving status data captured or measured by a set of vehicle sensors 104 so that the remote computing device 304(j) can access the real-time driving status data. In other words, the control component 116 may transmit the real-time driving status data to the remote computing device 304(j) in real time via the remote control link 402.

[0085] In various cases, after receiving the real-time driving status data via the remote control link 402, the remote computing device 304(j) may convey the real-time driving status data to the operator of the remote computing device 304(j). As a non-limiting example, regardless of the visual information (such as the text or numerical measurements collected by the on-vehicle thermometer 206, on-vehicle hygrometer 208, on-vehicle proximity sensor 210, on-vehicle global positioning sensor 214, or on-vehicle biometric sensor 216) can be visually presented on the computer screen or other electronic display of the remote computing device 304(j) so that the operator of the remote computing device 304(j) can view the visual information. As another non-limiting example, any audio information (e.g., the sounds recorded by the set of on-vehicle microphones 204) can be played or generated by the electronic speaker of the remote computing device 304(j) so that the operator of the remote computing device 304(j) can hear the audio information. Even as another non-limiting example, any suitable haptic feedback device of the remote computing device 304(j) can reproduce or simulate any haptic information (e.g., the motion recorded by a set of vehicle motion sensors 212).

[0086] In various aspects, this visual, auditory, or tactile conveyance of real-time driving status data by the remote computing device 304(j) can enable an operator of the remote computing device 304(j) to manually inspect or manually consider the real-time driving status data. Accordingly, the operator of the remote computing device 304(j) can determine one or more appropriate driving operations that the vehicle 102 should perform to handle or respond to the real-time driving condition data. As a non-limiting example, the operator of the remote computing device 304(j) can determine that, given the real-time driving condition data, the vehicle 102 should slow down to a specific speed. As another non-limiting example, the operator of the remote computing device 304(j) can determine that, given the real-time driving condition data, the vehicle 102 should turn left by a specific angle. As another non-limiting example, the operator of the remote computing device 304(j) can determine that, given the real-time driving status data, the vehicle 102 should perform a lane change to the right. Even in another non-limiting example, the operator of the remote computing device 304(j) can determine that, based on the real-time driving status data, the vehicle 102 should honk its horn.

[0087] In any case, the operator can interact with the remote computing device 304(j) via any human-machine interface tool, such that the remote computing device 304(j) generates one or more electronic instructions that respectively correspond to the one or more appropriate driving operations determined by the operator of the remote computing device 304(j). As a non-limiting example, if the operator determines that the vehicle 102 should slow down to a specific speed, the operator can interact with the remote computing device 304(j) such that the remote computing device 304(j) generates an electronic instruction instructing the vehicle 102 to slow down to that specific speed. As another non-limiting example, if the operator determines that the vehicle 102 should turn left by a specific degree, then the operator can interact with the remote computing device 304(j) so that the remote computing device 304(j) creates an electronic instruction indicating that the vehicle 102 should turn left by that specific degree. As another non-limiting example, if the operator determines that the vehicle 102 should perform a lane change to the right, then the operator can interact with the remote computing device 304(j) so that the remote computing device 304(j) creates an electronic instruction indicating that the vehicle 102 should perform a lane change to the right. Even as another non-limiting example, if the operator determines that the vehicle 102 should honk its horn, then the operator can interact with the remote computing device 304(j) so that the remote computing device 304(j) creates an electronic instruction indicating that the vehicle 102 should honk its horn.

[0088] In various aspects, the remote computing device 304(j) can electronically transmit the one or more electronic instructions to the vehicle 102 via the remote control link 402. In response to receiving the one or more electronic instructions, the drive actuator 106 can be activated or otherwise initiated to follow or comply with the one or more electronic instructions. As a non-limiting example, if the one or more electronic instructions indicate that the vehicle 102 should slow down to a specific speed, the set of drive actuators 106 can cause the vehicle 102 to actually slow down to that specific speed. As another non-limiting example, if the one or more electronic instructions indicate that the vehicle 102 should turn left by a specific degree, the set of drive actuators 106 can cause the vehicle 102 to actually turn left by that specific degree. As another non-limiting example, if the one or more electronic instructions indicate that the vehicle 102 should execute a lane change to the right, the set of drive actuators 106 can cause the vehicle 102 to actually execute a lane change to the right. Even in another non-limiting example, if the one or more electronic instructions indicate that the vehicle 102 should sound the horn, the set of drive actuators 106 can cause the vehicle 102 to actually sound the horn.

[0089] Thus, the real-time driving state data captured by the set of vehicle sensors 104 can be streamed in real time to the remote computing device 304(j) via the remote control link 402, and the remote computing device 304(j) can respond by transmitting, via the remote control link 402, electronic instructions that can be followed or executed by a set of drive actuators 106. Accordingly, before the remote control link 402 is established, the vehicle 102 can be considered to be operating autonomously or to be manually operated by a passenger actually riding in the vehicle 102. However, after the remote control link 402 is established, the vehicle 102 can be regarded as being remotely operated by an operator of the remote computing device 304(j).

[0090] In some embodiments, an operator of the remote computing device 304(j) may have full control of the vehicle 102. That is, all drive actuators 106 may respond to electronic instructions sent by the remote computing device 304(j). However, in other embodiments, an operator of the remote computing device 304(j) may have partial control of the vehicle 102. That is, the number of drive actuators 106 that respond to electronic instructions sent by the remote computing device 304(j) may be less than all. As a non-limiting example, the set of brake actuators 222 may respond (e.g., be obligated or forced to comply) to electronic instructions sent by the remote computing device 304(j), but the set of steering actuators 218 may not respond (e.g., have no obligation or be forced to comply) to electronic instructions sent by the remote computing device 304(j). In such a case, the operator of the remote computing device 304(j) may remotely control the braking of the vehicle 102, but not the steering of the vehicle 102. Instead, the steering of the vehicle 102 may be controlled autonomously by the vehicle 102 or manually by a passenger actually riding in the vehicle 102.

[0091] In various aspects, such partial control may be considered advantageous or beneficial in some situations, such as when a passenger wishes to manually drive the vehicle 102 but is physically unable to operate certain aspects of the vehicle 102. As a non-limiting example, assume the passenger is an amputee. In such a case, the passenger may operate the steering wheel of the vehicle 102, but not the accelerator pedal or brake pedal of the vehicle 102. In such a case, the passenger may manually control the steering wheel, while the accelerator pedal and brake pedal may be remotely controlled by an operator of the remote computing device 304(j). This may allow the passenger to experience the pleasure or leisure of driving the vehicle 102, which they might otherwise not be able to experience due to their physical disability.

[0092] Figure 5 A block diagram of an illustrative, non-limiting system 500 is shown that includes link triggers that may assist with semi-autonomous or pseudo-autonomous driving in accordance with one or more embodiments described herein. As shown, system 500 may include the same components as system 400 in some cases, and may further include link trigger 404.

[0093] In various embodiments, control component 116 may electronically establish a remote control link 402 in response to link trigger 502. In various aspects, link trigger 502 may be any suitable traffic-related or driving-related event that is electronically detected or occurs with respect to vehicle 102.

[0094] In some cases, the link trigger 502 can be the detection or occurrence of the vehicle 102 invoking an autonomous driving function. As a non-limiting example, assume that the vehicle 102 is initially or initially in a manual driving mode. That is, the vehicle 102 can initially or initially be manually driven by a passenger actually riding in the vehicle 102. In various aspects, the passenger can invoke the autonomous driving mode of the vehicle 102 at a certain point in time. In other words, the passenger can attempt to cause the vehicle 102 to start autonomous driving at a certain point in time, so that the passenger no longer needs to manually drive the vehicle 102. In various cases, the passenger can attempt to do so by pressing any suitable button of the vehicle 102 or selecting any suitable graphical user interface element of the vehicle 102, and the button or graphical user interface element activates (or purports to activate) the autonomous driving mode. In various aspects, the control component 116 can respond to such an invocation or attempted invocation of the autonomous driving mode by establishing a remote control link 402 (e.g., in response to the button or graphical user interface element being pressed). As described above, after the remote control link 402 is established, in some cases, the vehicle 102 can be considered to be remotely driven by an operator of the remote computing device 304(j). However, during such remote driving, the passenger actually riding in the vehicle 102 does not need to manually drive the vehicle 102. Therefore, from the perspective of the passenger, the vehicle 102 seems to be driving autonomously. Since the vehicle 102 can actually be remotely driven by an operator of the remote computing device 304(j), this can be considered a semi-autonomous or pseudo-autonomous driving mode of the vehicle 102.

[0095] In other cases, the link trigger 502 can be any suitable deviation from the electronic driving route of the vehicle 102. As a non-limiting example, assume that the vehicle 102 is initially or initially in a manual driving mode. That is, the vehicle 102 can initially or initially be manually driven by a passenger actually riding in the vehicle 102. In various aspects, the electronic navigation system of the vehicle 102 can indicate on the computer screen or the head-up display of the vehicle 102 the electronic driving route that the vehicle 102 should or needs to follow. In various cases, the electronic driving route can be any suitable sequence of driving routes (e.g., turn left onto Main Street, exit at Exit 235, continue straight for 16 miles), leading to any suitable destination. In various cases, a passenger manually driving the vehicle 102 can cause the vehicle 102 to deviate from the electronic driving route, such as making a wrong turn or taking the wrong exit. In various aspects, the control component 116 can detect such a deviation by comparing the current position of the vehicle 102 indicated by a set of vehicle global positioning sensors 214 with the electronic driving route. In fact, if the current position of the vehicle 102 is on or consistent with the electronic driving route, the control component 116 can infer that no deviation has occurred. On the other hand, if the current position of the vehicle 102 deviates from or is inconsistent with the electronic driving route, the control component 116 can infer that a deviation has occurred. In various aspects, the control component 116 can respond to such a deviation by establishing a remote control link 402. As described above, after establishing the remote control link 402, in some cases, the vehicle 102 can be considered to be remotely driven by the operator of the remote computing device 304(j). Therefore, the operator of the remote computing device 304(j) can correct the deviation by remotely driving the vehicle 102 back onto the electronic driving route. In this way, the electronic driving route can be executed.

[0096] In other cases, the link trigger 502 can be an emergency situation that is detected or occurs and affects the health of the passengers of the vehicle 102. As a non-limiting example, assume that the vehicle 102 is initially or initially in a manual driving mode. That is, the vehicle 102 can initially or initially be manually driven by a passenger actually riding in the vehicle 102. In various aspects, as described above, the one or more vehicle biometric sensors 216 can be considered to monitor the vital signs of the passengers (e.g., heart rate, respiratory rate, blood oxygen level, body temperature). In various situations, there is a possibility that a medical emergency may suddenly occur to a passenger while manually driving the vehicle 102, thus affecting the passenger's ability to safely drive the vehicle 102. For example, a passenger may suddenly have a heart attack or a stroke. In various situations, the control component 116 can detect such a sudden medical emergency by analyzing any real-time vital sign data recorded by the one or more vehicle biometric sensors 216. In some aspects, the control component 116 can detect a sudden medical emergency by comparing the real-time vital sign data with a defined threshold (e.g., if the heart rate of a passenger drops below a minimum threshold or rises above a maximum threshold, the control component 116 can infer that a medical emergency is occurring). In other aspects, the control component 116 can detect a sudden medical emergency by executing a pre-trained medical emergency classifier on the real-time vital sign data (e.g., such a classifier can be trained in a supervised, unsupervised, or reinforcement learning manner to receive the vital sign data as input and produce a classification label as output indicating whether such vital sign data indicates a medical emergency). In various aspects, the control component 116 can respond to such a medical emergency by establishing a remote control link 402. As described above, after establishing the remote control link 402, in some cases, the vehicle 102 can be considered to be remotely driven by an operator of the remote computing device 304(j). Thus, even if a passenger has a medical emergency, the operator of the remote computing device 304(j) can still safely drive the vehicle 102. In this way, vehicle accidents or collisions caused by the poor health of passengers can be avoided.

[0097] In other cases, the link trigger 502 can be that the vehicle 102 detects or a traffic violation occurs. As a non-limiting example, assume that the vehicle 102 is initially or initially in a manual driving mode. That is, the vehicle 102 can be initially or initially manually driven by a passenger actually riding in the vehicle 102. In various aspects, the vehicle 102 can be located in a geographical area where a specific traffic regulation (such as a speed limit) is in effect. In various cases, the control component 116 can identify a specific traffic regulation by querying any suitable traffic regulation database and any location currently or presently indicated by the vehicle global positioning sensor set 214. Alternatively, a specific traffic regulation can be indicated by the electronic navigation system of the vehicle 102. In various cases, a passenger manually driving the vehicle 102 can cause the vehicle 102 to violate a specific traffic regulation (e.g., exceed the speed limit). In various aspects, the control component 116 can detect such a violation by determining whether the real-time motion data collected by the one or more vehicle motion sensors 212 complies with a specific traffic regulation. In fact, if the real-time motion data complies with or otherwise meets any threshold indicated by a specific traffic regulation, the control component 116 can infer that no violation has occurred. On the other hand, if the real-time motion data does not comply with or does not meet any threshold indicated by a specific traffic regulation, the control component 116 can infer that a violation has occurred. In various aspects, the control component 116 can respond to such a violation by establishing a remote control link 402. As described above, after the remote control link 402 is established, in some cases, the vehicle 102 can be considered to be remotely driven by an operator of the remote computing device 304(j). Thus, the operator of the remote computing device 304(j) can correct the violation by remotely driving the vehicle 102 in accordance with a specific traffic regulation. In this way, a specific traffic regulation can be enforced.

[0098] In other cases, the link trigger 502 can be an unexpected driving state detected or occurring to the vehicle 102. As a non-limiting example, assume that the vehicle 102 is initially or initially in an autonomous driving mode. That is, the vehicle 102 can be initially or initially autonomously driven. In various aspects, such autonomous driving can be powered by a machine learning model that has been trained to receive real-time driving state data collected by the set of vehicle sensors 104 as input and determine one or more driving operations for the vehicle 102 to take as output (e.g., to be performed by the set of drive actuators 106).

[0099] In some cases, the control component 116 can detect an unexpected driving state by comparing the real-time driving state data captured by the vehicle sensors 104 with the set of driving state data on which the machine learning model is trained. In various cases, the control component 116 can assist this comparison through a deep learning encoder. In particular, the deep learning encoder can exhibit any suitable internal architecture (e.g., it can have any suitable number of any suitable types of layers, such as dense layers, convolutional layers, non-linear layers, batch normalization layers, or pooling layers; it can have any suitable inter-layer connections, such as forward connections, skip connections, or recurrent connections; it can have any suitable activation function, such as rectified linear unit, softmax, or hyperbolic tangent). In various cases, the deep learning encoder can be trained in an unsupervised manner using an encoding-decoding pipeline so as to be able to compress the input driving condition data into a latent vector. In various aspects, the control component 116 can execute the deep learning encoder on the set of real-time driving state data collected by the set of vehicle sensors 104, thereby generating a specific latent vector. In various cases, the control component 116 can also execute the deep learning encoder on each set of driving state data on which the machine learning model is trained, thereby generating a distribution of training latent vectors. If the specific latent vector fits well with the distribution of training latent vectors (e.g., the probability that it belongs to the training latent vectors is greater than a threshold), then the control component 116 can infer that the real-time driving condition data is similar enough to the data on which the machine learning model is trained. Therefore, the control component 116 can conclude that the real-time driving state data does not represent an unexpected driving state. On the other hand, if the fit of the specific latent vector in the training latent vector distribution is poor (e.g., the probability of belonging to this distribution is less than a threshold), then the control component 116 can infer that the real-time driving state data is not similar enough to the data on which the machine learning model is trained. Therefore, the control component 116 can conclude that the real-time driving state data represents an unexpected driving state.

[0100] In any case, the control component 116 can respond to such an unexpected driving state by establishing a remote control link 402. As described above, after establishing the remote control link 402, in some cases, the vehicle 102 can be considered to be remotely driven by an operator of the remote computing device 304(j). Therefore, the operator of the remote computing device 304(j) can remotely drive the vehicle 102 to safely navigate through the unexpected driving conditions. In this way, the instability of autonomous driving can be improved.

[0101] Note that, in some aspects, the link trigger 502 can be any suitable hazardous driving condition that is detected or occurs (e.g., even if the machine learning model for the autonomous driving capabilities was previously trained under similar hazardous driving conditions), rather than based on an unexpected driving condition as described above. In such a case, the control component 116 can utilize any suitable technique (e.g., utilizing a pre-trained machine learning classifier that is configured to receive driving condition data as input and produce a classification label as output indicating whether the driving condition data represents a hazardous driving condition) to detect such a hazardous driving condition.

[0102] Figures 6 - 10 Flowcharts depicting example but non-limiting computer-implemented methods 600, 700, 800, 900, and 1000 that can assist in triggering or initiating semi-autonomous or pseudo-autonomous driving in accordance with one or more embodiments described herein. In various cases, the semi-autonomous driving system 108 can assist the computer-implemented methods 600, 700, 800, 900, and 1000.

[0103] First, consider Figure 6 . In various embodiments, the action 602 can include setting the vehicle to a manual driving mode by a processor (e.g., via 110 and 116) onboard the vehicle (e.g., 102) such that the vehicle is operated by a driver physically present in the vehicle.

[0104] In various aspects, the action 604 can include discovering a computing device (e.g., 304(j)) that is physically remote from the vehicle but within the electronic communication range of the vehicle by a processor (e.g., via 110 and 114).

[0105] In various cases, the action 606 can include determining by a processor (e.g., via 110 and 116) whether the driver physically present has activated the autonomous driving mode of the vehicle. If not, the computer-implemented method 600 can return to the action 604. If so, the computer-implemented method 600 can proceed to the action 608.

[0106] In various cases, the action 608 can include establishing a remote control link (e.g., 402) between the vehicle and the discovered computing device by a processor (e.g., via 110 and 116) such that the vehicle is now remotely operated by the discovered computing device rather than manually by the driver physically present.

[0107] Now, consider Figure 7。In various embodiments, as shown, the computer-implemented method 700 may include acts 602, 604, and 608. However, the computer-implemented method 700 may not include act 606, but may include act 702. In various aspects, act 702 may include determining, by a processor (e.g., via 110 and 116), whether the vehicle is deviating from a prescribed driving route that the vehicle should follow. If not, the computer-implemented method 700 may return to act 604. If so, the computer-implemented method 700 may proceed to act 608.

[0108] Now, consider Figure 8 。In various embodiments, as shown, the computer-implemented method 800 may include acts 602, 604, and 608. However, the computer-implemented method 800 may not include act 606 or 702, but may include act 802. In various aspects, act 802 may include determining, by a processor (e.g., via 110 and 116), whether a driver who is actually present is experiencing a health emergency while manually operating the vehicle. If not, the computer-implemented method 800 may return to act 604. If so, the computer-implemented method 800 may instead proceed to act 608.

[0109] Now, consider Figure 9 。In various embodiments, as shown, the computer-implemented method 900 may include acts 602, 604, and 608. However, the computer-implemented method 900 may not include act 606, 702, or 802, but may include act 902. In various aspects, act 902 may include determining, by a processor (e.g., via 110 and 116), whether a driver who is actually present is violating any applicable traffic laws while manually operating the vehicle. If not, the computer-implemented method 900 may return to act 604. If so, the computer-implemented method 900 may proceed to act 608.

[0110] Now, consider Figure 10 。In various embodiments, as shown, the computer-implemented method 1000 may include acts 604 and 608. However, the computer-implemented method 1000 may not include act 602, but may include act 1002. In various aspects, act 1002 may include setting the vehicle to an autonomous driving mode by a processor (e.g., via 110 and 116) carried on the vehicle (e.g., 102).

[0111] In various cases, the computer-implemented method 1000 can include act 1004 instead of acts 606, 702, 802, or 902. In various aspects, act 1004 can include determining, by a processor (e.g., via 110 and 116), whether a vehicle is experiencing an unexpected or dangerous driving condition. If not, the computer-implemented method 1000 can return to act 604. If so, the computer-implemented method 1000 can proceed to act 608.

[0112] Figure 11 A block diagram showing an example, and not a limitation, of system 1100, which includes a link monitoring program that can assist semi-autonomous or pseudo-autonomous driving in accordance with one or more embodiments described herein. As shown, system 1100 can include link monitor 1102 in some cases.

[0113] In various embodiments, after establishing the remote control link 402, the control component 116 can perform link monitor 1102 continuously, persistently, periodically, regularly, or irregularly. In various aspects, link monitor 1102 can be any suitable program, calculation, or analysis that involves evaluating the quality of the remote control link 402. As a non-limiting example, link monitor 1102 can include measuring (e.g., via any suitable electronic communication-related sensor) the signal strength exhibited by the remote control link 402 and comparing the signal strength (which can vary over time) to any suitable threshold. As another non-limiting example, link monitor 1102 can include measuring (e.g., via any suitable electronic communication-related sensor) the time delay exhibited by the remote control link 402 and comparing the time delay (which can vary over time) to any suitable threshold. These are just non-limiting examples. In other aspects, link monitor 1102 can include measuring any other suitable attribute, characteristic, or property of the remote control link 402 and comparing the attribute, characteristic, or property (which can vary over time) to any suitable threshold. In various cases, the control component 116 can perform any suitable electronic operation based on link monitor 1102.

[0114] As a non - limiting example, the control component 116 can electronically generate an alert or warning based on the link monitoring 1102. For example, assume that the link monitoring 1102 indicates that the signal strength or time delay meets any suitable threshold (e.g., the signal strength is not too low and the time delay is not too high). The control component 116 can accordingly avoid generating an alert or warning. However, assume that the link monitoring 1102 indicates that the signal strength or time delay fails to meet any suitable threshold (e.g., the signal strength may be too low and the time delay may be too high). The control component 116 can accordingly generate an alert or warning, which indicates that the remote control link 402 may soon be lost. In some cases, the control component 116 can send the alert or warning to the remote computing device 304(j) via the remote control link 402 so that the operator of the remote computing device 304(j) knows that the remote control link 402 may soon be interrupted. In some cases, the control component 116 can visually display the alert or warning on any suitable electronic display of the vehicle 102 so that the passengers actually riding in the vehicle 102 are aware that the remote control link 402 may soon be interrupted (e.g., the passengers may have to resume manual driving of the vehicle 102 in the near future).

[0115] As another non - limiting example, the control component 116 can electronically put the vehicle 102 into a warning mode based on the link monitoring 1102. For example, assume that the link monitoring 1102 indicates that the signal strength or time delay meets any suitable threshold (e.g., the signal strength is not too low and the time delay is not too high). The control component 116 can accordingly avoid putting the vehicle 102 into a warning mode. However, assume that the link monitoring 1102 indicates that the signal strength or time delay does not meet any suitable threshold (e.g., the signal strength may be too low and the time delay may be too high). The control component 116 can accordingly put the vehicle 102 into a warning mode, where the warning mode can include automatically performing any suitable automatic safety operation. In some cases, the warning mode can include causing the drive actuator 106 to reduce the driving speed of the vehicle 102 by any appropriate amount or percentage. In other cases, the warning mode can include causing the drive actuator 106 to increase the following distance of the vehicle 102 by any appropriate amount or percentage (e.g., increasing the distance between the vehicle 102 and other vehicles in front of, beside, or behind the vehicle 102). In other cases, the warning mode can also include causing the vehicle 102 to divert backup power from any non - critical components (e.g., CD player, seat heater, cigarette lighter) to the remote control link 402. This diversion of backup power can be regarded as an attempt to improve the quality of the remote control link 402 (e.g., increasing its signal strength or reducing its time delay).

[0116] Figures 12 - 13Flowcharts of illustrative but non - limiting computer - implemented methods 1200 and 1300 are shown, which can assist in the monitoring of semi - autonomous or pseudo - autonomous driving according to one or more embodiments described herein. In various cases, the semi - autonomous driving system 108 can assist the computer - implemented methods 1200 and 1300.

[0117] First, consider Figure 12 . In various embodiments, the act 1202 can include discovering, by a processor (e.g., via 110 and 114), a computing device (e.g., 304(j)) that is physically remote from the vehicle but within the electronic communication range of the vehicle.

[0118] In various aspects, the act 1204 can include establishing, by a processor (e.g., via 110 and 116), a remote control link (e.g., 402) between the vehicle and the discovered computing device, such that the vehicle is now remotely operated by the discovered computing device rather than autonomously or manually by an actually - present driver.

[0119] In various cases, the act 1206 can include determining, by a processor (e.g., via 110 and 116), whether the signal strength of the remote control link is below a threshold. If not, the computer - implemented method 1200 can return to the act 1206. If so, the computer - implemented method 1200 can instead perform the act 1208.

[0120] In various cases, the act 1208 can include generating, by a processor (e.g., via 110 and 116), an alert or warning notifying the actually - present driver that the remote control link may soon be lost.

[0121] Now, consider Figure 13 . In various embodiments, as shown, the computer - implemented method 1300 can include the acts 1202, 1204, and 1206. However, the computer - implemented method 1300 may not include the act 1208, but instead include the act 1302. In various aspects, the act 1302 can include causing, by a processor (e.g., via 110 and 116), the vehicle to reduce speed, increase the following distance, or transfer electrical power or power from non - critical components of the vehicle to the remote control link.

[0122] Figure 14 A block diagram of an illustrative but non - limiting system 1400 is shown, which includes a backup remote control link that can assist in semi - autonomous or pseudo - autonomous driving according to one or more embodiments described herein. As shown, the system 1400 can include the same components as the system 1100 in some cases, and can further include a backup remote control link 1402.

[0123] In various embodiments, the control component 116 may electronically create, electronically form, or otherwise electronically establish a backup remote control link 1402 between the vehicle 102 and the remote computing device 304(k) according to the link monitoring 1102, for any suitable positive integer 1 ≤ k ≤ n, where j ≠ k (e.g., in some cases, j < k; in other cases, j > k). In various aspects, the backup remote control link 1402 may be similar to the remote control link 402. Thus, the backup remote control link 1402 may be any suitable wireless electronic communication channel that enables electronic data to be transmitted from the vehicle 102 to the remote computing device 304(k), or enables electronic data to be transmitted from the remote computing device 304(k) to the vehicle 102.

[0124] In various aspects, the control component 116 may prepare the backup remote control link 1402 in response to the link monitoring 1102 indicating that the remote control link 402 has degraded beyond a first (e.g., moderate) threshold but has not degraded beyond a second (e.g., severe) threshold. As a non-limiting example, the link monitoring 1102 may indicate that the signal strength of the remote control link 402 has dropped below a first strength threshold but has not dropped below a second strength threshold, where the second strength threshold is lower than the first strength threshold (e.g., the lower the strength, the worse or more severe). As another non-limiting example, the link monitoring 1102 may indicate that the time delay of the remote control link 402 has exceeded a first delay threshold but has not exceeded a second delay threshold, where the second delay threshold is higher than the first delay threshold (e.g., the higher the delay, the worse or more severe). In both cases, the control component 116 can determine that the remote control link 402 has suffered a certain degree of degradation, but the degree of degradation is not severe. In response to this determination, the control component 116 may create or establish a backup remote control link 1402, such that the vehicle 102 can communicate with the remote computing device 304(k), but the control component 116 can avoid delegating driving authority to the remote computing device 304(k). In other words, when the remote control link 402 only experiences mild to moderate attenuation, the remote computing device 304(j) can continue to control the vehicle 102; the backup remote control link 1402 can be established as a redundant safety net in case the remote control link 402 further attenuates, but the remote computing device 304(k) cannot yet remotely control the vehicle 102.

[0125] At a certain point in time, the link monitor 1102 may indicate that the remote control link 402 has degraded beyond a first (e.g., moderate) threshold and a second (e.g., severe) threshold. As a non-limiting example, the link monitor 1102 may indicate that the signal strength of the remote control link 402 has dropped below a first strength threshold and a second strength threshold. As another non-limiting example, the link monitor 1102 may indicate that the time delay of the remote control link 402 has exceeded a first delay threshold and a second delay threshold. In both cases, the control component 116 may determine that the remote control link 402 has suffered excessive degradation. In response to this determination, the control component 116 may revoke the driving permission of the remote computing device 304(j) and grant the driving permission to the remote computing device 304(k). In other words, when the remote control link 402 experiences severe degradation, the remote computing device 304(k) can control the vehicle 102, while the remote computing device 304(j) can no longer control the vehicle 102. In some cases, this may involve terminating the remote control link 402. In different aspects, this can be regarded as a "do then break" redundancy protocol implemented by the control component 116.

[0126] Figure 15 A flowchart showing an example, non-limiting, computer-implemented method 1500 that may assist in the fallback for semi-autonomous or pseudo-autonomous driving in accordance with one or more embodiments described herein. In various cases, the semi-autonomous driving system 108 may assist in the computer-implemented method 1500.

[0127] In various embodiments, the act 1502 may include discovering, by a processor (e.g., via 110 and 114), a first computing device (e.g., 304(j)) that is physically remote from the vehicle but within the electronic communication range of the vehicle.

[0128] In various aspects, the act 1504 may include establishing, by a processor (e.g., via 110 and 116), a first remote control link (e.g., 402) between the vehicle and the first computing device, such that the vehicle is now remotely operated by the first computing device.

[0129] In various cases, the act 1506 may include determining, by a processor (e.g., via 110 and 116), whether the signal strength of the first remote control link is below a first threshold. If not, the computer-implemented method 1500 may return to the act 1506. If so, the computer-implemented method 1500 may proceed to the act 1508.

[0130] In various cases, the act 1508 may include discovering, by a processor (e.g., via 110 and 114), a second computing device (e.g., 304(k)) that is physically remote from the vehicle but within the electronic communication range of the vehicle.

[0131] In various aspects, the act 1510 can include preparing a second remote control link (e.g., 1402) between the vehicle and the second computing device via a processor (e.g., via 110 and 116), without terminating the first remote control link, such that the vehicle remains remotely operated via the first computing device rather than the second computing device.

[0132] In various instances, the act 1512 can include determining via a processor (e.g., via 110 and 116) whether the signal strength of the first remote control link is below a second threshold, where the second threshold is lower than the first threshold. If not, the computer-implemented method 1500 can return to the act 1506. If so, the computer-implemented method 1500 can instead proceed to the act 1514.

[0133] In various instances, the act 1514 can include replacing the first remote control link with the second remote control link via a processor (e.g., via 110 and 116), such that the vehicle is now remotely controlled by the second computing device rather than the first computing device.

[0134] Figure 16 A block diagram of an exemplary system 1600 is shown, which includes one or more device bids or one or more device profiles that can assist in semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein. As shown, the system 1600 can include the same components as the system 1400 in some cases, and can further include a set of device bids 1602 or a set of device profiles 1604.

[0135] In various embodiments, the set of device bids 1602 can correspond (e.g., in a one-to-one manner) to the set of remote computing devices 304, respectively. In particular, each of the set of remote computing devices 304 can transmit the corresponding one of the set of device bids 1602 to the search component 114 in response to being discovered during the wireless device discovery 302. In various aspects, each of the set of device bids 1602 can be any suitable electronic data for indicating, specifying, or otherwise representing the financial or monetary price that the operator of the corresponding one of the set of remote computing devices 304 charges for providing remote driving services to the vehicle 102. Thus, the control component 116 can utilize the set of device bids 1602 when deciding which one of the set of remote computing devices 304 to link to. As a non-limiting example, the remote computing device 304(j) can submit the minimum or lowest bid in the set of device bids 1602. Thus, the control component 116 can establish a remote control link 402 with the remote computing device 304(j) based on the minimum or lowest bid.

[0136] In various embodiments, the set of device profiles 1604 can correspond, respectively, to the set of remote computing devices 304 (e.g., in a one-to-one manner). In particular, each of the set of remote computing devices 304 can transmit a corresponding one of the set of device profiles 1604 to the search component 114 in response to being discovered during the wireless device discovery 302. In various aspects, each of the set of device profiles 1604 can be any suitable electronic data for indicating, specifying, or otherwise representing the quality of the history of providing remote driving services by the operator of the corresponding one of the set of remote computing devices 304 in the past. As some non-limiting examples, each of the device profiles 1604 can indicate: previous remote passenger reviews or ratings assigned to the operator of the corresponding one of the set of remote computing devices 304; previous remote passenger complaints filed against the operator of the corresponding one of the set of remote computing devices 304; or previous professional or criminal background information associated with the operator of the corresponding one of the set of remote computing devices 304. Thus, the control component 116 can use the set of device profiles 1604 when deciding which one of the remote computing devices 304 to link to. As a non-limiting example, the remote computing device 304(j) can have the highest previous remote passenger rating or the most positive previous remote passenger review indicated by the set of device profiles 1604. Thus, the control component 116 can establish a remote control link 402 with the remote computing device 304(j) based on these highest ratings or most positive reviews.

[0137] Figure 17 A flowchart showing an example, non-limiting, computer-implemented method 1700 that can assist semi-autonomous or pseudo-autonomous driving according to one or more embodiments described herein. In various instances, the semi-autonomous driving system 108 can assist the computer-implemented method 1700.

[0138] In various embodiments, the act 1702 can include discovering, via a device (e.g., via 114) operably coupled to a processor (e.g., 110) and carried on a vehicle (e.g., 102), one or more computing devices (e.g., 304) that are physically remote from the vehicle but within the electronic communication range of the vehicle.

[0139] In various aspects, the act 1704 can include establishing a first remote control link between the vehicle and a first computing device (e.g., 304(j)) of the one or more computing devices via a device (e.g., via 116), such that steering, acceleration, or braking of the vehicle is autonomously operated or operated by an actual driver before the first remote control link is established, and such that steering, acceleration, or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established.

[0140] Although not explicitly shown in Figure 17 , the steering, acceleration, or braking of the vehicle can be operated by the actual driver before the establishment of the first remote control link, and the device can establish the first remote control link in response to the actual driver selecting the autonomous driving mode of the vehicle (e.g., as described in Figure 5 and Figure 6 ).

[0141] Although not explicitly shown in Figure 17 , the steering, acceleration, or braking of the vehicle can be operated by the actual driver before the establishment of the first remote control link, and the device can establish the first remote control link in response to the vehicle deviating from the defined driving route (e.g., as described in Figure 5 and Figure 7 ).

[0142] Although not explicitly shown in Figure 17 , the steering, acceleration, or braking of the vehicle can be operated by the actual driver before the establishment of the first remote control link, and the device can establish the first remote control link in response to detecting a health emergency of the actual driver (e.g., as described in Figure 5 and Figure 8 ).

[0143] Although not explicitly shown in Figure 17 , the steering, acceleration, or braking of the vehicle can be autonomously operated before the establishment of the first remote control link, and the device can establish the first remote control link in response to detecting that the vehicle encounters unexpected road conditions (e.g., as described in Figure 5 and Figure 10 ).

[0144] Although not explicitly shown in Figure 17 , the computer-implemented method 1700 can include: monitoring the signal strength of the first remote control link by the device (e.g., via 116); and generating an electronic alert by the device (e.g., via 116) in response to the signal strength of the first remote control link being lower than a threshold (e.g., as described in Figure 12 ).

[0145] Although not explicitly shown in Figure 17 , the computer-implemented method 1700 can include: monitoring the signal strength of the first remote control link by the device (e.g., via 116); and causing the vehicle to enter a warning mode in response to the signal strength of the first remote control link being lower than a threshold, where the warning mode includes reducing the speed of the vehicle, increasing the following distance of the vehicle, or transferring the power in the vehicle to the first remote control link (e.g., as described in Figure 13 ).

[0146] Although not explicitly shown in Figure 17 Figure 17 , the computer-implemented method 1700 may include: monitoring the signal strength of a first remote control link via a device (e.g., via 116); in response to the signal strength being below a first threshold, preparing a second remote control link (e.g., 1402) between the vehicle and a second computing device (e.g., 304(k)) among the one or more computing devices via the device (e.g., via 116) as a redundant backup without terminating the first remote control link; and in response to the signal strength being below a second threshold that is smaller than the first threshold, establishing the second remote control link and terminating the first remote control link.

[0147] In various cases, machine learning algorithms or models can be implemented in any suitable manner to assist with any suitable aspects described herein. To assist with the above machine learning aspects of various embodiments, consider the following discussion regarding artificial intelligence (AI). Various embodiments described herein may employ artificial intelligence to assist with the automation of one or more features or functions. Components may employ various AI-based schemes to perform the various embodiments / examples disclosed herein. To provide or assist with the numerous determinations (e.g., determining, ascertaining, inferring, calculating, predicting, forecasting, estimating, deriving, predicting, detecting, computing) described herein, the components described herein may examine all or a subset of the data to which they are granted access and may reason or determine the state of the system or environment based on a set of observations captured by events or data. For example, the determination results may be used to identify a particular environment or action, or to generate a probability distribution of the state. The determination may be probabilistic, i.e., calculating a probability distribution of the relevant state based on the consideration of data and events. The determination may also refer to the technique of combining higher-level events from a set of events or data.

[0148] Such determinations may result in the construction of new events or actions from a set of observed events or stored event data, regardless of whether the events are closely related in time, and regardless of whether the events and data are from one or more events and data sources. The components disclosed herein may employ various classification (explicit training (e.g., via training data) and implicit training (e.g., via observing behavior, preferences, historical information, receiving extrinsic information, etc.)) schemes or systems (e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, data fusion engines, etc.) for performing automatic or deterministic operations related to the claimed subject matter. Thus, the classification scheme or system can be used for automatic learning and performing several functions, operations, or determinations.

[0149] The classifier may take an input attribute vector z = (z 1 , z 2 , z 3 , z4 , z n ) is mapped to the confidence that the input belongs to a certain class, such as f(z) = confidence(class). This classification can use probability - or statistics - based analysis methods (e.g., considering utility and cost in the analysis) to determine the operations to be automatically performed. Support Vector Machine (SVM) can be an example of a classifier. The SVM works by finding a hyper - surface in the possible input space that attempts to separate triggering criteria from non - triggering events. Intuitively, this allows for correct classification results when the test data is close but not identical to the training data. Other directed and undirected model classification methods include Naive Bayes, Bayesian networks, decision trees, neural networks, fuzzy logic models, or probability classification models that provide different independence patterns, any of which can be adopted. The classification used here also includes statistical regression for developing priority models.

[0150] To provide additional background for the various embodiments described herein, Figure 18 and the following discussion is intended to provide a brief, general description of a suitable computing environment 1800 in which the various embodiments of the invention described herein can be implemented. Although the embodiments of the invention have been described above in the general context of computer - executable instructions that can run on one or more computers, those skilled in the art will recognize that the embodiments of the invention can also be implemented in combination with other program modules or as a combination of hardware and software.

[0151] In general, program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. Additionally, those skilled in the art will understand that the methods of the invention can be implemented by other computer system configurations, including single - processor or multi - processor computer systems, microcomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, as well as personal computers, handheld computing devices, microprocessor - based or programmable consumer electronics, etc., each of which can be operatively coupled to one or more associated devices.

[0152] In a distributed computing environment, certain tasks are performed by remote processing devices connected via a communication network, and the illustrated embodiments of the invention can also be implemented in a distributed computing environment. In a distributed computing environment, program modules can be located in local and remote memory storage devices.

[0153] Computing devices typically include various media, which may include computer-readable storage media, machine-readable storage media, or communication media. Computer-readable storage media or machine-readable storage media can be any available storage media accessible by a computer, including volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable storage media or machine-readable storage media can be associated with any method or technology for storing information, such as computer-readable or machine-readable instructions, program modules, structured data, or unstructured data.

[0154] Computer-readable storage media can include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other storage technologies, compact disc read-only memory (CDROM), digital versatile disc (DVD), Blu-ray disc (BD) or other optical storage, Blu-ray disc (BD) or other optical disc storage, magnetic tape, magnetic disk storage or other magnetic storage devices, solid state drives or other solid state storage devices, or other tangible or non-transitory media that can be used to store the desired information. In this regard, the terms "tangible" or "non-transitory" as applied to storage, memory, or computer-readable media herein should be understood to exclude only propagating transitory signals per se and not to relinquish rights to all standard storage, memory, or computer-readable media that do not consist solely of propagating transitory signals.

[0155] Computer-readable storage media can be accessed by one or more local or remote computing devices, such as via an access request, query, or other data retrieval protocol, in order to perform various operations on the information stored on the media.

[0156] Communication media typically embody computer-readable instructions, data structures, program modules, or other structured or unstructured data in a data signal, such as a modulated data signal, e.g., a carrier wave or other transmission mechanism, and include any information delivery or transmission media. The term "modulated data signal" or "signal" refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example and not limitation, communication media include wired media, such as a wired network or direct wired connection, and wireless media, such as acoustic, radio frequency, infrared, and other wireless media.

[0157] Refer again to Figure 18, An example environment 1800 for various embodiments for implementing the various aspects described herein includes a computer 1802, which includes a processing unit 1804, a system memory 1806, and a system bus 1808. The system bus 1808 couples system components including, but not limited to, the system memory 1806 to the processing unit 1804. The processing unit 1804 can be any of a variety of commercially available processors. Dual microprocessors and other multiprocessor architectures can also be used as the processing unit 1804.

[0158] The system bus 1808 can be any of several types of bus structures, and it can further interconnect with a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus structures. The system memory 1806 includes a ROM 1810 and a RAM 1812. The basic input / output system (BIOS) can be stored in non-volatile memory such as ROM, erasable programmable read-only memory (EPROM), EEPROM, where the BIOS contains basic routines that help transfer information between elements within the computer 1802, such as during startup. The RAM 1812 can also include high-speed RAM, such as static RAM for caching data.

[0159] The computer 1802 also includes an internal hard disk drive (HDD) 1814 (e.g., EIDE, SATA), one or more external storage devices 1816 (e.g., a magnetic floppy disk drive (FDD) 1816, a memory stick or flash drive reader, a memory card reader, etc.), and a drive 1820, such as a solid-state drive, an optical disc drive, which can read from or write to a disk 1822 (e.g., a CD-ROM disc, a DVD, a BD, etc.). Alternatively, in the case of a solid-state drive, the disk 1822 will not be included unless separately. Although the illustrated internal HDD 1814 is located within the computer 1802, the internal HDD 1814 can also be configured in a suitable chassis (not shown) for external use. Additionally, although not shown in the environment 1800, solid-state drives (SSDs) can be used as a supplement or alternative to the HDD 1814. The HDD 1814, the external storage device 1816, and the drive 1820 can be connected to the system bus 1808 through a hard disk interface 1824, an external storage interface 1826, and a drive interface 1828, respectively. The interface 1824 for external drive implementation can include at least one or both of the universal serial bus (USB) and the Institute of Electrical and Electronics Engineers (IEEE) 1394 interface technologies. The embodiments described herein also contemplate other external drive connection technologies.

[0160] The drive and its associated computer-readable storage medium provide non-volatile storage of data, data structures, computer-executable instructions, and the like. For computer 1802, the drive and storage medium can store data in any suitable digital format. Although the above description of computer-readable storage media mentions various types of storage devices, those skilled in the art should understand that other types of storage media that can be read by a computer, whether currently existing or developed in the future, can also be used in this example operating environment, and moreover, any such storage media can contain computer-executable instructions for performing the methods described herein.

[0161] Many program modules can be stored in the drive and RAM 1812, including an operating system 1830, one or more application programs 1832, other program modules 1834, and program data 1836. All or part of the operating system, application programs, modules, or data can also be cached in RAM 1812. The systems and methods described herein can be implemented using various commercially available operating systems or combinations of operating systems.

[0162] Computer 1802 can optionally include emulation technology. For example, a hypervisor (not shown) or other intermediary can simulate a hardware environment for operating system 1830, and the simulated hardware can optionally be different from Figure 18 the hardware shown. In such an embodiment, operating system 1830 can include a virtual machine (VM) among multiple virtual machines hosted by computer 1802. Additionally, operating system 1830 can provide a runtime environment for application programs 1832, such as a Java runtime environment or a.NET framework. A runtime environment is a consistent execution environment that allows application programs 1832 to run on any operating system that includes the runtime environment. Similarly, operating system 1830 can support containers, and application programs 1832 can take the form of containers, which are lightweight, independent, executable software packages that include, for example, code, runtime, system tools, system libraries, and application settings.

[0163] Furthermore, computer 1802 can enable a security module, such as a Trusted Platform Module (TPM). For example, through the TPM, the boot component hashes the next boot component in a timely manner and waits for the result to match a security value before loading the next boot component. This process can be performed at any layer of the computer 1802 code execution stack, for example, applied to the application execution layer or the operating system (OS) kernel layer, thus achieving security at any layer of code execution.

[0164] Users can input commands and information to the computer 1802 through one or more wired / wireless input devices, such as the keyboard 1838, the touch screen 1840, and a pointing device (such as the mouse 1842). Other input devices (not shown) may include a microphone, an infrared (IR) remote controller, a radio frequency (RF) remote controller or other remote controllers, a joystick, a virtual reality controller or virtual reality headset, a gamepad, a stylus, an image input device (such as a camera), a gesture sensor input device, a vision motion sensor input device, an emotion or face detection device, a biometric input device (such as a fingerprint or iris scanner), or similar devices. These input devices and other input devices are generally connected to the processing unit 1804 through the input device interface 1844, which may be connected to the system bus 1808, but may also be connected through other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an infrared interface, interfaces, etc.

[0165] The monitor 1846 or other types of display devices can also be connected to the system bus 1808 through an interface, such as the video adapter 1848. In addition to the monitor 1846, the computer generally also includes other peripheral output devices (not shown), such as speakers, printers, etc.

[0166] The computer 1802 can operate in a network environment, using a logical connection with one or more remote computers (such as the remote computer 1850) through wired or wireless communication. The remote computer 1850 can be a workstation, a server computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other common network nodes, and generally includes many or all of the described elements related to the computer 1802. However, for the sake of brevity, only the memory / storage device 1852 is shown. The described logical connection includes a wired / wireless connection to a local area network (LAN) 1854 or a larger network (such as a wide area network (WAN) 1856). Such LAN and WAN networking environments are common in offices and companies and are beneficial for enterprise-wide computer networks, such as intranets, all of which can be connected to a global communication network, such as the Internet.

[0167] When used in a LAN network environment, the computer 1802 can be connected to the local network 1854 through a wired or wireless communication network interface or adapter 1858. The adapter 1858 can assist in wired or wireless communication with the LAN 1854, and the LAN 1854 may also include a wireless access point (AP) set on it for communicating with the adapter 1858 in wireless mode.

[0168] When used in a wide area network environment, computer 1802 may include a modem 1860, or may be connected to a communication server on wide area network 1856 in other ways to establish communication through wide area network 1856, such as through the Internet. Modem 1860 may be an internal or external device, and may also be a wired or wireless device, and may be connected to system bus 1808 through input device interface 1844. In a network environment, program modules related to computer 1802 or parts thereof may be stored in remote memory / storage device 1852. It can be understood that the network connections shown are only examples, and other ways can also be used to establish communication links between computers.

[0169] When used in a LAN or WAN network environment, computer 1802 may access a cloud storage system or other network-based storage systems to supplement or replace the above-mentioned external storage device 1816, such as, but not limited to, one or more network virtual machines that provide storage or process information. Generally speaking, the connection between computer 1802 and the cloud storage system can be established through LAN 1854 or WAN 1856 (for example, through adapter 1858 or modem 1860 respectively). After connecting computer 1802 to the relevant cloud storage system, external storage interface 1826 can manage the storage provided by the cloud storage system with the help of adapter 1858 or modem 1860, just like managing other types of external storage. For example, external storage interface 1826 can be configured to provide access to cloud storage sources as if these sources are physically connected to computer 1802.

[0170] Computer 1802 can communicate wirelessly with any wireless device or entity, such as printers, scanners, desktop or portable computers, portable data assistants, communication satellites, any device or location associated with a wireless detection tag (such as newsstands, kiosks, store shelves, etc.) and telephones. This can include Wi-Fi (Wireless Fidelity) and wireless technologies. Therefore, the communication can be the predetermined structure of a traditional network or an ad hoc communication between at least two devices.

[0171] Figure 19is a schematic block diagram of an example computing environment 1900 with which the disclosed subject matter may interact. The example computing environment 1900 includes one or more clients 1910. The clients 1910 can be hardware or software (e.g., threads, processes, computing devices). The example computing environment 1900 also includes one or more servers 1930. The servers 1930 can also be hardware or software (such as threads, processes, computing devices). The servers 1930 can accommodate threads, e.g., by performing transformations by adopting one or more embodiments described herein. One possible form of communication between the clients 1910 and the servers 1930 is a data packet, suitable for transmission between two or more computer processes. The example computing environment 1900 includes a communication framework 1950 that can be used to facilitate communication between the clients 1910 and the servers 1930. The clients 1910 are operatively connected to one or more client data storage devices 1920 that can be used to store local information of the clients 1910. Similarly, the servers 1930 are operatively connected to one or more server data stores 1940 for storing local information of the servers 1930.

[0172] Various embodiments can be a system, method, apparatus, or computer program product at any possible technical detail integration level. The computer program product can include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute various aspects of the various embodiments. The computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer-readable storage medium can be (but is not limited to) an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing devices. A non-exhaustive list of more specific examples of the computer-readable storage medium can also include the following: a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device (such as punched cards or raised structures in grooves having instructions recorded thereon), and any suitable combination of the foregoing devices. The computer-readable storage medium used herein should not be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (such as an optical pulse through an optical fiber), or an electrical signal transmitted through a wire.

[0173] The computer-readable program instructions described herein can be downloaded to respective computing / processing devices from a computer-readable storage medium or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network (LAN), a wide area network (WAN), or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to a computer-readable storage medium within the respective computing / processing device for storage. The computer-readable program instructions for performing the operations of the various embodiments may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or the like, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, or may be executed in part on the user's computer as a stand-alone software package, or may be executed in part on the user's computer and in part on a remote computer, or may be executed entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network, including a LAN or a WAN, or may be connected to an external computer (e.g., via the Internet of an Internet service provider). In some embodiments, an electronic circuit, including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), can execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit and thereby perform various aspects.

[0174] This document will describe various aspects with reference to the flowchart illustrations or block diagrams of methods, apparatuses (systems), and computer program products according to various embodiments. It can be understood that each block in the flowchart illustration or block diagram, as well as the combination of blocks in the flowchart illustration or block diagram, can be implemented by computer-readable program instructions. These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine. Thus, the instructions executed by the processor of the computer or other programmable data processing device result in a method for implementing the functions / actions specified in one or more blocks of the flowchart or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can direct a computer, a programmable data processing device, or other devices to operate in a specific manner. Thus, the computer-readable storage medium storing the instructions contains a manufactured article that includes instructions for implementing the functions / acts specified in the blocks of the flowchart or block diagram. The computer-readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other devices, causing a series of operational actions to be performed on the computer, other programmable apparatus, or other devices to produce a computer-implemented process. Thus, the instructions executed on the computer, other programmable apparatus, or other devices implement the functions / acts specified in one or more blocks of the flowchart or block diagram.

[0175] The flowchart and block diagram in the figure illustrate the architecture, functions, and operations of systems, methods, and computer program products that may be implemented according to various embodiments. In this regard, each block in the flowchart or block diagram can represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function. In certain alternative implementations, the functions labeled in the blocks may not occur in the order labeled in the figure. For example, two consecutive blocks shown in the figure may actually be executed substantially simultaneously, or depending on the functions involved, the blocks may sometimes be executed in the reverse order. It should also be noted that each block in the block diagram or flowchart illustration, as well as the combination of blocks in the block diagram or flowchart illustration, can be implemented by a system based on dedicated hardware that can perform the specified functions or acts, or perform a combination of dedicated hardware and computer instructions.

[0176] Although the subject matter has been described above in the general context of computer-executable instructions of a computer program product that runs on a computer, those skilled in the art will recognize that the present disclosure may also or can be implemented in combination with other program modules. In general, program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. In addition, those skilled in the art will understand that aspects can be implemented by other computer system configurations, including single-processor or multi-processor computer systems, microcomputing devices, mainframe computers, and computers, handheld computing devices (such as PDAs, telephones), microprocessor-based or programmable consumer or industrial electronic products, etc. The illustrated content can also be implemented in a distributed computing environment, where tasks are performed by remote processing devices connected through a communication network. However, some aspects (if not all) of the present disclosure can also be implemented on a stand-alone computer. In a distributed computing environment, program modules can be located in local and remote memory storage devices.

[0177] The terms "component", "system", "platform", "interface", etc. used in this application can refer to or include entities related to a computer or entities related to an operating machine with one or more specific functions. The entities disclosed herein can be hardware, a combination of hardware and software, software, or software in execution. For example, a component can be (but is not limited to) a process running on a processor, a processor, an object, an executable file, an execution thread, a program, or a computer. For example, an application running on a server and the server can both be components. One or more components can reside in a process or an execution thread, and the components can be located on a computer or distributed between two or more computers. In another example, the various components can be executed from various computer-readable media on which various data structures are stored. These components can communicate through local or remote processes, for example, communicate according to a signal having one or more data packets (for example, data of one component interacting with another component in a local system or a distributed system, or data interacting with other systems across a network such as the Internet through a signal). Another example is that a component can be a device with a specific function, whose mechanical components are operated by an electrical or electronic circuit, and the electrical or electronic circuit is operated by a software or firmware application executed by a processor. In this case, the processor can be inside or outside the device and can execute at least part of the software or firmware. As another example, a component can be a device that provides a specific function through electronic components without mechanical parts, where the electronic components can include a processor or other methods of executing software or firmware, and these software or firmware at least partially endow the electronic components with functions. In one aspect, a component can simulate an electronic component through a virtual machine, for example, within a cloud computing system.

[0178] In addition, the term "or" means inclusive "or", rather than exclusive "or". That is, unless otherwise specified or the context clearly indicates, "X employs A or B" means any natural inclusive arrangement. That is, if X employs A; X employs B; or X employs both A and B, then in any of the above cases, "X employs A or B" holds. The term "and / or" used herein has the same meaning as "or". In addition, the articles "a" and "an" used in the specification and drawings should generally be understood to mean "one or more", unless otherwise specified or clearly understood to be in the singular form according to the context. The terms "example" or "exemplary" used herein refer to being an example, instance, or illustration. To avoid doubt, the subject matter disclosed herein is not limited by these examples. In addition, any aspect or design described herein as "example" or "exemplary" is not necessarily to be construed as superior or better than other aspects or designs, nor does it mean excluding equivalent exemplary structures and techniques known to those of ordinary skill in the art.

[0179] This disclosure describes non - limiting examples. For ease of description or explanation, various parts of this disclosure use the terms "each", "every", or "all" when discussing various examples. The use of the terms "each", "every", or "all" is non - limiting. In other words, when the description provided in this disclosure applies to "each", "every", or "all" of certain specific objects or components, it should be understood that this is a non - limiting example, and it should be further understood that in various other examples, this description may apply to less than "each", "every", or "all" of that specific object or component.

[0180] In the present subject specification, the term "processor" can generally refer to any computing processing unit or device, including but not limited to a single-core processor; a single-core processor with software multithreading execution capabilities; a multi-core processor; a multi-core processor with software multithreading execution capabilities; a multi-core processor with hardware multithreading technology; a parallel platform; and a parallel platform with distributed shared memory. Additionally, the processor can also refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof, intended to perform the functions described herein. Further, the processor can utilize nanoscale architectures, such as but not limited to molecule and quantum dot based transistors, switches, and gates, to optimize space usage or improve the performance of a user device. The processor can also be implemented as a combination of computing processing units. In the present disclosure, terms such as "storage", "store", "data storage", "data store", "database", and any other information storage component related to the operation and functionality of a component are used to refer to a "memory component", an entity embodied as a "memory", or a component that includes a memory. It will be understood that the memory or memory component described herein can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. By way of example and not limitation, non-volatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (such as ferroelectric RAM (FeRAM)). Volatile memory can include RAM, such as can be used as an external cache memory. By way of illustration and not limitation, RAM has various forms, such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). Additionally, the memory component of the systems or computer implemented methods disclosed herein are intended to include but not limited to include these and any other suitable types of memory.

[0181] The foregoing are merely examples of systems and computer-implemented methods. Of course, it is not possible to describe every conceivable combination of components or computer-implemented method for the purpose of describing the present disclosure, but many further combinations and permutations are possible. Additionally, the terms "including," "having," "owning," etc. used in the detailed description, claims, appendices, and drawings have a meaning similar to the term "comprising," and when used as a transitional word in the claims, it means to include.

[0182] The description of the various embodiments is for illustrative purposes but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent without departing from the scope and spirit of the described embodiments. The terms used herein are chosen to best explain the principles of the embodiments of the invention, the practical application, or the technical improvement over the prior art in the market, or to enable one of ordinary skill in the art to understand the embodiments disclosed herein.

[0183] The various non-limiting aspects of the various embodiments described herein are presented in the following clauses.

[0184] Clause 1: A system, comprising: a vehicle; and a processor carried on the vehicle, the processor executing computer-executable components stored in a non-transitory computer-readable memory carried on the vehicle, the computer-executable components including: a search component for discovering one or more computing devices physically remote from the vehicle but within the electronic communication range of the vehicle; and a control component for establishing a first remote control link between the vehicle and a first computing device of the one or more computing devices, such that steering, acceleration, or braking of the vehicle is autonomously operated or operated by an actual driver before the first remote control link is established, and such that steering, acceleration, or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established.

[0185] Clause 2: The system of any of the preceding clauses, wherein before the first remote control link is established, steering, acceleration, or braking of the vehicle is operated by an actual driver, and wherein the control component establishes the first remote control link in response to the actual driver selecting an autonomous driving mode of the vehicle.

[0186] Clause 3: The system of any of the preceding clauses, wherein before the first remote control link is established, steering, acceleration, or braking of the vehicle is operated by an actual driver, and wherein the control component establishes the first remote control link in response to the vehicle deviating from a defined driving route.

[0187] Clause 4: The system of any of the preceding clauses, wherein, prior to the establishment of the first remote control link, the steering, acceleration, or braking of the vehicle is operated by an actual driver, and wherein the control component establishes the first remote control link in response to detecting a health emergency of the actual driver.

[0188] Clause 5: The system of any of the preceding clauses, wherein, prior to the establishment of the first remote control link, the steering, acceleration, or braking of the vehicle is autonomously operated, and wherein the control component establishes the first remote control link in response to detecting an unexpected road condition encountered by the vehicle.

[0189] Clause 6: The system of any of the preceding clauses, wherein the control component monitors the signal strength of the first remote control link, and wherein the control component generates an electronic alert in response to the signal strength of the first remote control link being below a threshold.

[0190] Clause 7: The system of any of the preceding clauses, wherein the control component monitors the signal strength of the first remote control link, and wherein the control component causes the vehicle to enter a warning mode in response to the signal strength of the first remote control link being below a threshold, wherein the warning mode includes reducing the speed of the vehicle, increasing the following distance of the vehicle, or transferring power in the vehicle to the first remote control link.

[0191] Clause 8: The system of any of the preceding clauses, wherein the control component monitors the signal strength of the first remote control link, wherein: in response to the signal strength being below a first threshold, the control component prepares a second remote control link between the vehicle and a second computing device among the one or more computing devices as a redundant backup without terminating the first remote control link; and in response to the signal strength being below a second threshold smaller than the first threshold, the control component establishes the second remote control link and terminates the first remote control link.

[0192] In various cases, any suitable combination of Clauses 1 to 8 can be implemented.

[0193] Clause 9: A computer-implemented method, comprising: discovering, by a device operably coupled to a processor and carried on a vehicle, one or more computing devices that are physically remote from the vehicle but within the electronic communication range of the vehicle; and establishing, by the device, a first remote control link between the vehicle and a first computing device among the one or more computing devices, such that the steering, acceleration, or braking of the vehicle is autonomously operated or operated by an actual driver prior to the establishment of the first remote control link, and such that the steering, acceleration, or braking of the vehicle is remotely operated by the first computing device after the establishment of the first remote control link.

[0194] Clause 10: A computer-implemented method of any of the preceding clauses, wherein the steering, acceleration, or braking of the vehicle is operated by an actual driver before the establishment of a first remote control link, and wherein the device establishes the first remote control link in response to the actual driver selecting an autonomous driving mode of the vehicle.

[0195] Clause 11: A computer-implemented method of any of the preceding clauses, wherein the steering, acceleration, or braking of the vehicle is operated by an actual driver before the establishment of a first remote control link, and wherein the device establishes the first remote control link in response to the vehicle deviating from a defined driving route.

[0196] Clause 12: A computer-implemented method of any of the preceding clauses, wherein the steering, acceleration, or braking of the vehicle is operated by an actual driver before the establishment of a first remote control link, and wherein the device establishes the first remote control link in response to detecting a health emergency of the actual driver.

[0197] Clause 13: A computer-implemented method of any of the preceding clauses, wherein the steering, acceleration, or braking of the vehicle is autonomously operated before the establishment of a first remote control link, and wherein the device establishes the first remote control link in response to detecting an unexpected road condition encountered by the vehicle.

[0198] Clause 14: A computer-implemented method of any of the preceding clauses, further comprising: monitoring, by the device, the signal strength of the first remote control link; and generating, by the device, an electronic alert in response to the signal strength of the first remote control link being below a threshold.

[0199] Clause 15: A computer-implemented method of any of the preceding clauses, further comprising: monitoring, by the device, the signal strength of the first remote control link; and causing, by the device, the vehicle to enter a warning mode in response to the signal strength of the first remote control link being below a threshold, wherein the warning mode includes reducing the speed of the vehicle, increasing the following distance of the vehicle, or transferring power in the vehicle to the first remote control link.

[0200] Clause 16: A computer-implemented method of any of the preceding clauses, further comprising: monitoring, by the device, the signal strength of the first remote control link; in response to the signal strength being below a first threshold, preparing, by the device, a second remote control link between the vehicle and a second computing device in the one or more computing devices as a redundant backup without terminating the first remote control link; and in response to the signal strength being below a second threshold smaller than the first threshold, establishing, by the device, the second remote control link and terminating the first remote control link.

[0201] In various cases, any suitable combination of Clauses 9 to 16 can be implemented.

[0202] Clause 17: A computer program product for assisting semi-autonomous or pseudo-autonomous driving, the computer program product comprising a non-transitory computer-readable memory having program instructions embodied thereon, wherein the program instructions are executable by a processor carried on a vehicle, and wherein execution of the program instructions causes the processor to: discover one or more computing devices physically remote from the vehicle but within the electronic communication range of the vehicle; and establish a first remote control link between the vehicle and a first computing device of the one or more computing devices, such that steering, acceleration, or braking of the vehicle is autonomously operated or operated by an actual driver before the first remote control link is established, and such that steering, acceleration, or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established.

[0203] Clause 18: The computer program product of any of the preceding clauses, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the processor establishes the first remote control link in response to the actual driver selecting an autonomous driving mode of the vehicle.

[0204] Clause 19: The computer program product of any of the preceding clauses, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the processor establishes the first remote control link in response to the vehicle deviating from a defined driving route.

[0205] Clause 20: The computer program product of any of the preceding clauses, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the processor establishes the first remote control link in response to detecting a health emergency of the actual driver.

[0206] In various cases, any suitable combination of Clauses 17 to 20 can be implemented.

[0207] In various cases, any suitable combination of Clauses 1 to 20 can be implemented.

Claims

1. A system comprising means of transport; and A processor mounted on a vehicle, the processor being configured to execute computer executable components stored in a non-transitory computer readable memory mounted on the vehicle, the computer executable components comprising: a search component for discovering one or more computing devices physically remote from the vehicle but within electronic communication range of the vehicle; as well as A control component is used to establish a first remote control link between a vehicle and a first computing device among the one or more computing devices, so that the steering, acceleration or braking of the vehicle is operated autonomously or by an actual driver before the first remote control link is established, and the steering, acceleration or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established.

2. The system of claim 1 , wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the control component establishes the first remote control link in response to the actual driver selecting an autonomous driving mode of the vehicle.

3. The system of claim 1 , wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the control component establishes the first remote control link in response to the vehicle deviating from a defined driving route.

4. The system of claim 1, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the control component establishes the first remote control link upon detecting a health emergency of the actual driver.

5. The system of claim 1, wherein steering, acceleration, or braking of the vehicle is operated autonomously before the first remote control link is established, and wherein the control component establishes the first remote control link upon detecting that the vehicle encounters an unexpected road condition.

6. The system of claim 1, wherein the control component monitors a signal strength of the first remote control link, and wherein the control component generates an electronic alarm in response to the signal strength of the first remote control link being below a threshold.

7. The system of claim 1 , wherein the control component monitors a signal strength of the first remote control link, and wherein the control component causes the vehicle to enter an alert mode in response to the signal strength of the first remote control link being below a threshold, wherein the alert mode includes reducing a speed of the vehicle, increasing a following distance of the vehicle, or transferring power of the vehicle to the first remote control link.

8. The system of claim 1, wherein the control component monitors the signal strength of the first remote control link, wherein: In response to the signal strength being below a first threshold, the control component prepares a second remote control link between the vehicle and a second computing device of the one or more computing devices as a redundant backup without terminating the first remote control link; as well as In response to the signal strength being below a second threshold that is less than the first threshold, the control component establishes a second remote control link and terminates the first remote control link.

9. A computer-implemented method comprising: discovering, via a device operatively coupled to the processor and onboard the vehicle, one or more computing devices physically remote from the vehicle but within electronic communication range of the vehicle; as well as A first remote control link is established between the vehicle and a first computing device among the one or more computing devices through the device, so that the steering, acceleration or braking of the vehicle is operated autonomously or by an actual driver before the first remote control link is established, and the steering, acceleration or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established.

10. The computer-implemented method of claim 9, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the device establishes the first remote control link in response to the actual driver selecting an autonomous driving mode of the vehicle.

11. The computer-implemented method of claim 9, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the device establishes the first remote control link in response to the vehicle deviating from a defined driving route.

12. A computer-implemented method according to claim 9, wherein steering, acceleration or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the device establishes the first remote control link in response to detecting a health emergency of the actual driver.

13. The computer-implemented method of claim 9, wherein steering, acceleration, or braking of the vehicle is operated autonomously before the first remote control link is established, and wherein the device establishes the first remote control link in response to detecting that the vehicle has encountered an unexpected road condition.

14. The computer-implemented method of claim 9, further comprising: monitoring, by the device, a signal strength of a first remote control link; as well as The device generates an electronic alert in response to a signal strength of the first remote control link being below a threshold.

15. The computer-implemented method of claim 9, further comprising: monitoring, by the device, a signal strength of a first remote control link; as well as The device causes the vehicle to enter an alert mode in response to the signal strength of the first remote control link being below a threshold, wherein the alert mode includes reducing the speed of the vehicle, increasing the following distance of the vehicle, or transferring power in the vehicle to the first remote control link.

16. The computer-implemented method of claim 9, further comprising: monitoring, by the device, a signal strength of a first remote control link; In response to the signal strength being below a first threshold, preparing, by the device, a second remote control link between the vehicle and a second computing device of the one or more computing devices as a redundant backup without terminating the first remote control link; as well as In response to the signal strength being below a second threshold that is less than the first threshold, a second remote control link is established through the device and the first remote control link is terminated.

17. A computer program product for assisting semi-autonomous or pseudo-autonomous driving, the computer program product comprising a non-transitory computer readable memory having program instructions, wherein the program instructions are executable by a processor onboard a vehicle, and wherein execution of the program instructions causes the processor to: discovering one or more computing devices physically remote from the vehicle but within electronic communication range of the vehicle; and A first remote control link is established between a vehicle and a first computing device among the one or more computing devices, so that steering, acceleration or braking of the vehicle is operated autonomously or by an actual driver before the first remote control link is established, and steering, acceleration or braking of the vehicle is remotely operated by the first computing device after the first remote control link is established.

18. The computer program product of claim 17, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the processor establishes the first remote control link in response to the actual driver selecting an autonomous driving mode of the vehicle.

19. The computer program product of claim 17, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the processor establishes the first remote control link in response to the vehicle deviating from a defined driving route.

20. The computer program product of claim 17, wherein steering, acceleration, or braking of the vehicle is operated by an actual driver before the first remote control link is established, and wherein the processor establishes the first remote control link in response to detecting a health emergency of the actual driver.