Autonomous vehicle, system, and method of operating an autonomous vehicle

JP7757647B2Active Publication Date: 2025-10-22TOYOTA JIDOSHA KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021113383
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-10
Filing Date
2021-07-08
Publication Date
2025-10-22
Estimated Expiration
2041-07-08

AI Technical Summary

Technical Problem

Existing automated advanced driver assistance systems (ADAS) in autonomous vehicles struggle to effectively coordinate lane changes in multi-lane road environments, particularly considering safety factors such as adjacent vehicle movements and geometric road design.

Method used

A system, method, and computer program product that dynamically detect and classify vehicles in adjacent lanes, adjust lane change maneuvers based on vehicle type and road geometry, and delay changes until safe conditions are met, using sensors and processors to identify and track vehicle movements and road features.

Benefits of technology

Enhances the situational adaptability and safety of autonomous vehicles by ensuring lane changes are executed only when safe, considering the presence and movement of adjacent vehicles and road geometry, thereby improving operational safety and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007757647000001
    Figure 0007757647000001
  • Figure 0007757647000002
    Figure 0007757647000002
  • Figure 0007757647000003
    Figure 0007757647000003
Patent Text Reader

Abstract

To provide system, methods, and computer program products to enhance the situational competency of a vehicle during operation at least partially in an autonomous mode, and / or the safe operation of a vehicle during operation at least partially in an autonomous mode.SOLUTION: The systems, methods, and computer program products are to facilitate operation of a vehicle during operation at least partially in an autonomous mode, in a multi-lane roadway environment to coordinate a change of lane of the autonomous vehicle from a first lane in which the autonomous vehicle is currently operating and to a target lane change area of a second lane. Such coordination is to dynamically take into consideration several operational safety factors within a driving environment, including presence of one or more vehicles in a third lane adjacent to the target lane area of the second lane and a geometric roadway design.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Embodiments relate generally to autonomous vehicles, systems for implementation in autonomous vehicles, methods of operating autonomous vehicles, and computer program products for operating autonomous vehicles. [Background technology]

[0002] Automated advanced driver assistance systems (ADAS) in autonomous vehicles have lane change capabilities in multi-lane road environments. Such systems coordinate lane changes of the autonomous vehicle when available lane change areas exist. Summary of the Invention

[0003] One or more embodiments relate to systems, methods, and computer program products configured to improve a vehicle's situational competency when operating at least in part in an autonomous mode and / or the vehicle's safe operation when operating at least in part in an autonomous mode. Such systems, methods, and computer program products facilitate the vehicle's operation when operating at least in part in an autonomous mode to coordinate a lane change of the vehicle from a first lane, in which the vehicle is currently traveling, to a target lane change area in a second lane in a multi-lane road environment. Such coordination dynamically considers safety factors related to one or more detected movements in the driving environment, including, but not limited to, the presence of one or more vehicles in a third lane adjacent to the target lane area in the second lane, and geometric road design.

[0004] The systems, methods, and computer program products improve the situational adaptability of a vehicle when operating at least in part in an autonomous mode and / or the safe operation of a vehicle when operating at least in part in an autonomous mode.

[0005] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle can adjust and cause a vehicle, when operating at least partially in an autonomous mode, to execute a lane change from a first lane in which the vehicle is currently traveling to a second target lane by dynamically performing one or more actions, including, but not limited to, detecting the presence of one or more vehicles in the target lane and the presence of one or more vehicles in a third lane adjacent to the target lane.

[0006] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least partially in an autonomous mode can dynamically track detected vehicle movement in a target lane. Alternatively or additionally, the system can dynamically track detected vehicle movement in a third lane adjacent to the target lane.

[0007] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least in part in an autonomous mode can classify a detected vehicle in a target lane based on vehicle type. Alternatively or additionally, the system can classify a detected vehicle in a third lane adjacent to the target lane based on vehicle type. Vehicle types can include, but are not limited to, cars, vans, trucks, motorcycles, buses, trailers, and semi-trailers.

[0008] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least partially in an autonomous mode can compare the classified detected vehicle type to acceptable vehicle types. The acceptable vehicle types can be customized by allowing only vehicles pre-selected by a user to change lanes. By way of example, a delay in executing a lane change can continue until acceptable space or area in the target lane becomes available.

[0009] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least partially in an autonomous mode can cause the autonomous vehicle to implement a driving maneuver to change from the first lane to a target lane in response to the comparison. The autonomous vehicle can execute such a driving maneuver into the target lane a predetermined time after the comparison.

[0010] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least in part in an autonomous mode can adjust and cause the autonomous vehicle to execute a lane change from a first lane in which the autonomous vehicle is currently traveling to a second, target lane by dynamically performing one or more actions, including, but not limited to, detecting the presence of one or more vehicles in the target lane and detecting the geometric road design on which the autonomous vehicle is traveling. As used herein, a "geometric road design" refers to the three-dimensional layout of a road. The geometric road design can include horizontal configurations (e.g., curves and straight sections), vertical configurations (e.g., vertical curves and slopes), and cross sections (e.g., lanes and shoulders, curbs, medians, slopes and grooves along the road, and sidewalks).

[0011] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least partially in an autonomous mode can classify detected geometric road designs.

[0012] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least partially in an autonomous mode can compare the classified road geometry with acceptable geometric road designs. The acceptable geometric road designs can be customized by a user by allowing lane changes only on pre-selected geometric road designs. By way of example, a delay in executing a lane change can continue until an acceptable geometric road design for the target lane is available.

[0013] According to one or more embodiments, a system, method, and computer program product for implementation in a vehicle when operating at least partially in an autonomous mode can cause a driving maneuver to cause the autonomous vehicle to change from the first lane to the target lane in response to the comparison. The autonomous vehicle can execute such a driving maneuver into the target lane a predetermined time after the comparison.

[0014] One or more embodiments may include a system for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, the system including: a sensor system external to the autonomous vehicle that dynamically detects a driving environment including the presence of a vehicle in a third lane adjacent to the second lane; and one or more processors operatively coupled to the sensor system that execute a set of instructions that cause the one or more processors to identify a target lane change area in the second lane, determine a position of the detected vehicle relative to the identified target lane change area, and, in response to a determination that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, cause the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area.

[0015] One or more embodiments may include a method for operating a vehicle operating at least partially in an autonomous mode to change from a first lane to a second lane adjacent to the first lane, the method comprising one or more of: dynamically detecting a driving environment external to the autonomous vehicle, the driving environment including the presence of a vehicle in a third lane adjacent to the second lane; identifying a target lane change area in the second lane; determining a position of the detected vehicle relative to the identified target lane change area; and, in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, causing the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area.

[0016] One or more embodiments may include a computer program product for operating a vehicle, when operating at least in part in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, the computer program product including at least one computer-readable medium comprising a set of instructions that, when executed by one or more processors, cause the one or more processors to one or more of: identify a target lane change area in the second lane; determine a position of the detected vehicle relative to the identified target lane change area; and, in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, cause the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area.

[0017] One or more embodiments may include a system, method, and computer program product for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, comprising: a sensor system external to the autonomous vehicle that detects the presence of one or more vehicles in the second lane and a driving environment including a geometric road design at least out to a distance that enables the lane change to be completed; and one or more processors operatively coupled to the sensor system, causing the one or more processors to identify a target lane change area in the second lane, determine based on the detected geometric road design whether the detected geometric road design in the identified target lane change area is curved, and, in response to a determination that the detected geometric road design in the identified target lane change area is curved, calculate a gravity force (F) required to effectuate a lane change into the identified target lane change area. d ) and determine the gravity (F d ) to a predetermined acceptable or threshold gravity value (F a ) and the determined gravity (F d ) falls within a predetermined acceptable or threshold gravity value (F a ), the determined gravity (F d ) falls within a predetermined acceptable or threshold gravity value (F a ), delaying the autonomous vehicle from performing a driving maneuver until at least a lane change can be performed. Alternatively or additionally, the determined force of gravity (F d ) falls within a predetermined acceptable or threshold gravity value (F a ), the process returns to the start whereby a new or alternative target lane change area is identified.

[0018] One or more embodiments may include a system, method, and computer program product for operating a vehicle operating at least partially in an autonomous mode to change from a first lane to a second lane adjacent to the first lane, comprising: a sensor system that dynamically detects the presence of a second vehicle in a third lane adjacent to the second lane, a third vehicle in the third lane spatially ahead of the second vehicle, and a geometric road design at least to a distance that allows the lane change to be completed; and one or more processors operatively coupled to the sensor system, causing the one or more processors to identify a target lane change area in the second lane and to detect the presence of the detected second vehicle and the detected third vehicle. and one or more processors that execute a set of instructions to dynamically track the movement of the three vehicles, determine a position of at least the detected second vehicle relative to the identified target lane change area, determine a spatial distance between the detected second vehicle and the detected third vehicle and / or a speed / acceleration rate of the detected second vehicle, determine or predict a probability that the detected second vehicle will implement a lane change into the second lane in response to the detected geometric road design, the determination of the spatial distance, and the determination of the speed / acceleration rate of the detected second vehicle, and, in response to the determination or prediction, cause the autonomous vehicle to implement a driving maneuver from the first lane into the target lane change area.

[0019] According to one or more embodiments, the set of instructions causes the one or more processors, in response to determining that the detected vehicle is within a predetermined threshold distance to the identified target lane change area, to delay implementing a lane change by the autonomous vehicle until the detected vehicle is no longer within the predetermined threshold distance to the identified target lane change area.

[0020] According to one or more embodiments, the set of instructions causes the one or more processors to classify the detected vehicle based on vehicle type in response to determining that the detected vehicle is within a predetermined threshold distance to the identified target lane change area.

[0021] According to one or more embodiments, the set of instructions causes the one or more processors to compare the classified detected vehicle type to predetermined acceptable vehicle types.

[0022] According to one or more embodiments, the set of instructions causes the one or more processors to, in response to determining that the vehicle type is acceptable based on the comparison, cause the autonomous vehicle to implement a driving maneuver from the first lane to the target lane area.

[0023] According to one or more embodiments, detecting the driving environment comprises detecting the geometric road design at least up to a distance that allows a lane change to be completed.

[0024] According to one or more embodiments, detecting the driving environment comprises detecting the presence of a second vehicle in a third lane spatially ahead of the detected vehicle. [Brief explanation of the drawings]

[0025] Various advantages of embodiments of the present invention will become apparent to those skilled in the art upon reading the following specification and appended claims, and upon reviewing the following drawings.

[0026] [Figure 1] FIG. 1 illustrates an example of an autonomous vehicle according to one or more embodiments. [Figure 2A] 2A and 2B are diagrams illustrating examples of operation of the autonomous vehicle of FIG. 1. [Figure 2B] 2A and 2B are diagrams illustrating examples of operation of the autonomous vehicle of FIG. 1. [Figure 2C] 2A and 2B are diagrams illustrating examples of operation of the autonomous vehicle of FIG. 1. [Figure 2D] 2A and 2B are diagrams illustrating examples of operation of the autonomous vehicle of FIG. 1. [Figure 3] FIG. 2 shows an example flowchart of a method of operating an autonomous vehicle according to FIG. 1. [Figure 4] FIG. 2 shows an example flowchart of a method of operating an autonomous vehicle according to FIG. 1. [Figure 5] FIG. 2 shows an example flowchart of a method of operating an autonomous vehicle according to FIG. 1. DETAILED DESCRIPTION OF THE INVENTION

[0027] Referring now to the figures, Figure 1 illustrates a vehicle 100 according to one or more embodiments. According to one or more embodiments, a "vehicle" can refer to any form of motorized transportation device. According to one or more embodiments, the vehicle 100 can include an automobile. However, embodiments are not so limited, and thus the vehicle 100 can include a watercraft, an aircraft, or any other form of motorized transportation device.

[0028] According to one or more embodiments, vehicle 100 may include an autonomous vehicle. As described herein, “autonomous vehicle” may include a vehicle configured to operate in an autonomous mode. As detailed, described, and / or illustrated herein, “autonomous mode” means that one or more computing systems are used to operate and / or navigate and / or steer the vehicle along a travel route with minimal or no input from a human driver. According to one or more embodiments, vehicle 100 may be configured to selectively switch between an autonomous mode and a manual mode. Such switching may be accomplished in any suitable manner (now known or later developed). As detailed, described, and / or illustrated herein, “manual mode” means that the operation and / or navigation and / or steering of the vehicle along a travel route is performed, in whole or in part, by a human driver.

[0029] According to one or more embodiments, vehicle 100 may include one or more operating elements, some of which may be part of an autonomous driving system. Some of the possible operating elements of vehicle 100 are shown in FIG. 1 and described herein. It will be understood that vehicle 100 need not include all of the elements illustrated in FIG. 1 and / or described herein. Vehicle 100 may include any combination of the various elements illustrated in FIG. 1. Furthermore, vehicle 100 may include additional elements in addition to the elements illustrated in FIG. 1.

[0030] According to one or more embodiments, vehicle 100 may not include one or more of the elements shown in Figure 1. Additionally, although various operating elements are illustrated as being located within vehicle 100, embodiments are not so limited, and thus one or more of the operating elements may be located outside vehicle 100, or even physically separated by a large spatial distance.

[0031] According to one or more embodiments, vehicle 100 includes one or more processors 110. As detailed, described, and / or illustrated herein, "processor" means any component or group of components configured to execute any of the processes described herein or any form of instructions for performing such a process or causing such a process to be performed. Processor 110 may be implemented with one or more general-purpose and / or one or more special-purpose processors. Examples of suitable processors include graphics processors, microprocessors, microcontrollers, DSP processors, and other circuits capable of executing software. Further examples of suitable processors include, but are not limited to, central processing units (CPUs), array processors, vector processors, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), application-specific integrated circuits (ASICs), programmable logic circuits, and controllers. Processor 110 may include at least one hardware circuit (e.g., an integrated circuit) configured to execute instructions contained in program code. In embodiments with multiple processors 110, such processors 110 may function independently of one another, or one or more processors may function in combination with one another. According to one or more embodiments, processor 110 may be a host, main, or primary processor of vehicle 100. For example, processor 110 may comprise an engine control unit (ECU).

[0032] According to one or more embodiments, vehicle 100 may include one or more autonomous driving modules 120. Autonomous driving module 120 may be implemented as computer-readable program code that, when executed by a processor, implements one or more of the various processes described herein, including, for example, determining a current driving maneuver, a future driving maneuver, and / or a modification for vehicle 100. Autonomous driving module 120 may also directly or indirectly implement such a driving maneuver or modification for vehicle 100. Autonomous driving module 120 may be one or more components of processor 110. Alternatively, autonomous driving module 120 may execute on and / or be distributed among other processing systems to which processor 110 is operatively connected. Autonomous driving module 120 may include instructions (e.g., program logic) executable by processor 110. Such instructions may include instructions to perform various vehicle functions and / or to transmit data to, receive data from, interact with, and / or control vehicle 100 or one or more of its systems (e.g., one or more of vehicle systems 190). Alternatively or additionally, data storage device 170 may contain such instructions.

[0033] According to one or more embodiments, vehicle 100 may include an I / O hub 130 that is operatively connected to other systems of vehicle 100. I / O hub 130 may include input and output interfaces. The input and output interfaces may be integrated into a single, unitary interface, or alternatively, may be separate, independent interfaces that are operatively connected.

[0034] An input interface is defined herein as any device, component, system, element, or mechanism, or group thereof, that allows information / data to enter a machine. The input interface may receive input from a person in the vehicle (e.g., a driver or passenger) or a remote operator of vehicle 100. In examples, the input interface may include a user interface (UI), a graphical user interface (GUI), such as a display, a human-machine interface (HMI), etc. However, embodiments are not limited thereto, and thus the input interface may include a keyboard, a touch screen, a multi-touch screen, a button, a joystick, a mouse, a trackball, a microphone, and / or combinations thereof.

[0035] An output interface is defined herein as any device, component, system, element, or mechanism, or group thereof, that allows information / data to be presented to a vehicle occupant and / or a remote operator of vehicle 100. The output interface can be configured to present information / data to a vehicle occupant and / or a remote operator. The output interface can include one or more of a visual display or an audio display, such as a microphone, earphone, and / or speaker. One or more components of vehicle 100 can function as both an input interface component and an output interface component.

[0036] According to one or more embodiments, vehicle 100 may include one or more data storage devices 170 for storing one or more types of data. Vehicle 100 may include interfaces that allow one or more systems thereof to manage, search, modify, add, or delete data stored in data storage device 170. Data storage device 170 may comprise volatile and / or non-volatile memory. Examples of suitable data storage devices 170 include RAM (random access memory), flash memory, ROM (read-only memory), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), registers, magnetic disks, optical disks, hard drives, or any other suitable storage medium, or any combination thereof. Data storage device 170 may be a component of processor 110 or, alternatively, may be operatively connected to processor 110 for use therewith. As detailed, described, and / or illustrated herein, "operably connected" can include direct or indirect connections, including connections without direct physical contact.

[0037] According to one or more embodiments, vehicle 100 may include sensor system 180 configured to dynamically detect, determine, evaluate, monitor, measure, quantify, and / or sense information about vehicle 100 and the operating environment external to vehicle 100, at least while vehicle 100 is in operation. As detailed, described, and / or exemplified herein, a “sensor” refers to any device, component, and / or system capable of one or more of detecting, determining, evaluating, monitoring, measuring, quantifying, and sensing something. One or more sensors may be configured to detect, determine, evaluate, monitor, measure, quantify, and / or sense in real time. As detailed, described, and / or exemplified herein, “real time” refers to a level of processing response that a user or system perceives as sufficiently immediate for a particular process or decision to be made, or that allows a processor to keep up with some external process.

[0038] Alternatively or additionally, sensor system 180 may include one or more sensors, including radar sensor 181, lidar sensor 182, sonar sensor 183, motion sensor 184, heat sensor 185, and camera 186. One or more sensors 181-186 may be configured to detect, determine, assess, monitor, measure, quantify, and / or sense information about the external environment in which vehicle 100 is located, including information about other vehicles in the external environment. Alternatively or additionally, sensor system 180 may be configured to detect, determine, assess, monitor, measure, quantify, and / or sense the position of vehicle 100 and / or the position of the vehicle in the environment relative to vehicle 100. Various examples of these and other types of sensors are described herein. It will be understood that embodiments are not limited to the particular sensors described herein.

[0039] Sensor system 180 and / or one or more sensors 181-186 may be operatively connected to processor 110, data storage device 170, autonomous driving module 120, and / or other elements, components, or modules of vehicle 100. Sensor system 180 and / or any one or more sensors described herein may be provided or located in any suitable location with respect to vehicle 100. For example, one or more sensors may be located within vehicle 100, one or more sensors may be located external to vehicle 100, one or more sensors may be located in direct contact with the exterior of vehicle 100, and / or one or more sensors may be located within a component of vehicle 100. One or more sensors may be provided or located in any suitable location that enables the practice of one or more embodiments.

[0040] According to one or more embodiments, one or more sensors 181-186 can function independently of one another, or alternatively, can function in combination with one another. Sensors 181-186 can be used in any combination and can be used redundantly to verify and improve detection accuracy.

[0041] Sensor system 180 may include any suitable type of sensor. For example, sensor system 180 may include one or more sensors (e.g., speedometers) configured to detect, determine, evaluate, monitor, measure, weigh, and / or sense the speed of vehicle 100 and other vehicles in the external environment. Sensor system 180 may also include one or more environmental sensors configured to detect, determine, evaluate, monitor, measure, weigh, and / or sense other vehicles in the external environment of vehicle 100 and / or information / data about such vehicles.

[0042] According to one or more embodiments, sensor system 180 may include one or more radar sensors 181. As detailed, described, and / or illustrated herein, a “radar sensor” means any device, component, and / or system that can detect, determine, evaluate, monitor, measure, weigh, and / or sense something, at least in part, using radio signals. One or more radar sensors 181 may be configured to directly or indirectly detect, determine, evaluate, monitor, measure, weigh, and / or sense the presence of one or more vehicles in an environment external to vehicle 100, the relative position of each detected vehicle with respect to vehicle 100, the spatial distance between each detected vehicle and vehicle 100 in one or more directions (e.g., longitudinally, laterally, and / or other directions), the spatial distance between a detected vehicle and other detected vehicles in one or more directions (e.g., longitudinally, laterally, and / or other directions), the speed of each detected vehicle, and / or the movement of each detected vehicle.

[0043] According to one or more embodiments, the sensor system 180 can include one or more lidar sensors 182. As detailed, described, and / or illustrated herein, a "lidar sensor" refers to any device, component, and / or system that can detect, determine, evaluate, monitor, measure, weigh, and / or sense something, at least in part, using a laser. Such a device can include a laser source and / or laser scanner configured to emit a laser and a detector configured to detect reflections of the laser. The one or more lidar sensors 182 can be configured to operate in a coherent or incoherent detection mode. The one or more lidar sensors 182 can include a high-resolution lidar sensor.

[0044] The one or more lidar sensors 182 may be configured to directly or indirectly detect, determine, evaluate, monitor, measure, quantify, and / or sense the presence of one or more vehicles in the environment external to vehicle 100, the position of each detected vehicle relative to vehicle 100, the spatial distance between each detected vehicle and vehicle 100 in one or more directions (e.g., longitudinally, laterally, and / or other directions), the altitude of each detected vehicle, the spatial distance between the detected vehicle and other detected vehicles in one or more directions (e.g., longitudinally, laterally, and / or other directions), the speed of each detected vehicle, and / or the movement of each detected vehicle. The one or more lidar sensors 182 may generate a three-dimensional (3D) representation (e.g., an image) of each detected vehicle, which may be used to compare, via one or more data stores 170, with representations of known vehicle types. Alternatively or additionally, data acquired by the one or more lidar sensors 182 may be processed to make such determinations.

[0045] According to one or more embodiments, sensor system 180 may include one or more imaging devices, such as, for example, one or more cameras 186. As detailed, described, and / or illustrated herein, "camera" refers to any device, component, and / or system capable of capturing visual data. Such visual data may include one or more of video information / data and image information / data. The visual data may be in any suitable form. One or more cameras 186 may comprise high-resolution cameras. High resolution may refer to pixel resolution, spatial resolution, spectral resolution, temporal resolution, and / or radiometric resolution.

[0046] According to one or more embodiments, the one or more cameras 186 may comprise a high dynamic range (HDR) camera or an infrared (IR) camera.

[0047] According to one or more embodiments, one or more of the cameras 186 may include a lens and an image capture element. The image capture element may be any suitable type of image capture device or system, including, for example, an area array sensor, a charge-coupled device (CCD) sensor, a complementary metal-oxide semiconductor (CMOS) sensor, a linear array sensor, and / or a CCD (monochrome). The image capture element may capture images at any suitable wavelength on the electromagnetic spectrum. The image capture element may capture color and / or grayscale images. One or more of the cameras may be configured with zoom-in and / or zoom-out capabilities.

[0048] According to one or more embodiments, one or more of the cameras 186 may be spatially oriented, positioned, operatively configured, and / or arranged to capture visual data from at least a portion of the environment external to the vehicle 100 and / or from any suitable portion within the vehicle 100. For example, one or more of the cameras may be located within the vehicle 100.

[0049] According to one or more embodiments, one or more of the cameras 186 may be fixed in a position that does not change relative to the vehicle 100. Alternatively, or additionally, one or more of the cameras 186 may be movable such that their position can be changed relative to the vehicle 100 to facilitate the capture of visual data from different portions of the environment external to the vehicle 100. Such movement of one or more of the cameras 186 may be achieved in any suitable manner, such as, for example, by rotating (about one or more rotational axes), pivoting (about a pivotal axis), sliding (along an axis), and / or extending (along an axis).

[0050] According to one or more embodiments, one or more cameras 186 (and / or their movement) can be controlled by one or more of processor 110, sensor system 180, and any one or more of the modules detailed, described, and / or illustrated herein.

[0051] During operation of vehicle 100, processor 110 can be configured to select one or more of sensors 180 to sense the driving environment based on current given environmental conditions, including, but not limited to, the road, other vehicles, adjacent lanes, traffic regulations, objects on the road, etc. For example, one or more lidar sensors 182 can be used to sense the driving environment when vehicle 100 is driving in autonomous mode at night or during the evening hours. As another example, high dynamic range (HDR) camera 186 can be used to sense the driving environment when vehicle 100 is operating in autonomous mode during the day. Detection of (other) vehicles when vehicle 100 is operating in autonomous mode can be performed in any suitable manner. For example, a frame-by-frame analysis of the driving environment can be performed using a machine vision system using any suitable technology.

[0052] According to one or more embodiments, vehicle 100 may include vehicle detection module 140. Vehicle detection module 140 may be implemented as computer-readable program code that, when executed by a processor, implements one or more of the various processes detailed, described, and / or illustrated herein, including, for example, detecting one or more vehicles in a driving environment. Vehicle detection module 140 may be a component of processor 110, or alternatively, may execute on and / or be distributed among other processing systems to which processor 110 is operatively connected. Vehicle detection module 140 may include a set of logical instructions executable by processor 110. Alternatively or additionally, data storage device 170 may include such logical instructions. Logical instructions may include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, state setting data, configuration data for integrated circuits, state information for personalizing electronic circuits, and / or other structural components specific to hardware (e.g., a host processor, central processing unit / CPU, microcontroller, etc.).

[0053] Vehicle detection module 140 may be configured to detect one or more vehicles traveling on a roadway in any suitable manner. The detection of the one or more vehicles may be performed in any suitable manner. For example, the detection may be performed using data acquired by sensor system 180.

[0054] According to one or more embodiments, when one or more vehicles are detected, vehicle detection module 140 can also identify the detected vehicles. Vehicle detection module 140 can attempt to identify dynamic vehicles by accessing vehicle data (e.g., vehicle images) in a vehicle image database in data store 170 or an external source (e.g., a cloud-based data store).

[0055] According to one or more embodiments, vehicle detection module 140 may also include any suitable vehicle recognition software configured to analyze one or more images captured by sensor system 180. The vehicle recognition software may query a vehicle image database for possible correspondences. For example, an image captured by sensor system 180 may be compared to images in the vehicle image database to search for possible correspondences. Alternatively or additionally, measurements or other aspects of an image captured by sensor system 180 may be compared to measurements or other aspects of images in the vehicle image database.

[0056] Vehicle detection module 140 can identify a detected vehicle as a particular type of vehicle if there is one or more correspondences between the captured image and images in the vehicle database. As detailed, described, and / or illustrated herein, a "correspondence" or "correspondences" means that an image or other information collected by sensor system 180 and one or more of the images in the vehicle image database are substantially identical. For example, an image or other information collected by sensor system 180 and one or more of the images in the vehicle image database can correspond within a predetermined threshold probability or confidence level.

[0057] According to one or more embodiments, vehicle 100 may include vehicle tracking module 150. Vehicle tracking module 150 may be embodied as computer-readable program code that, when executed by a processor, implements one or more of the various processes detailed, described, and / or illustrated herein, including one or more of tracking, observing, monitoring, and following one or more vehicle movements during a plurality of sensor observations. As detailed, described, and / or illustrated herein, a "sensor observation" refers to a time or period during which one or more sensors of a sensor system are used to obtain sensor data of at least a portion of the vehicle's operating environment. Vehicle tracking module 150 may be a component of processor 110 or, alternatively, may execute on and / or be distributed among other processing systems to which processor 110 is operatively connected. Vehicle tracking module 150 may include logical instructions executable by processor 110. Alternatively or additionally, data storage device 170 may include such logical instructions. Logical instructions may include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, state setting data, configuration data for integrated circuits, state information for personalizing electronic circuits, and / or hardware-specific structural components (e.g., host processor, central processing unit / CPU, microcontroller, etc.).

[0058] According to one or more embodiments, vehicle 100 may include vehicle classification module 160. Vehicle classification module 160 may be implemented as computer-readable program code that, when executed by a processor, implements one or more of the various processes detailed, described, and / or illustrated herein, including, for example, classifying vehicles in a driving environment. Vehicle classification module 160 may be a component of processor 110, or alternatively, may execute on and / or be distributed among other processing systems to which processor 110 is operatively connected. Vehicle classification module 160 may include logical instructions executable by processor 110. Alternatively or additionally, data storage device 170 may include such logical instructions. Logical instructions may include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, state setting data, configuration data for integrated circuits, state information for personalizing electronic circuits, and / or other structural components specific to hardware (e.g., a host processor, central processing unit / CPU, microcontroller, etc.).

[0059] According to one or more embodiments, the vehicle classification module 160 may be configured to detect, determine, assess, measure, weigh, and / or sense the vehicle type of one or more detected vehicles in the driving environment based on vehicle size. The vehicle classification module 160 may be configured to classify the type of one or more detected vehicles according to one or more defined vehicle classifications. For example, the vehicle classifications may include cars, vans, trucks, motorcycles, buses, trailers, and semi-trailers. However, embodiments are not limited thereto, and thus the vehicle classifications may include other forms of motorized transportation devices.

[0060] The vehicle class of a detected vehicle may be determined in any suitable manner. For example, the detected dimensions (e.g., length, width, and / or height) of the vehicle may be compared to predetermined dimensions for each vehicle class (e.g., car, van, truck, motorcycle, bus, trailer, and semi-trailer). The predetermined dimensions may have any suitable value. The predetermined dimensions may be one or more of a predetermined length, a predetermined width, and a predetermined height. In such cases, the relative size of the detected vehicle may be determined in terms of one or more of a predetermined length, a predetermined width, and a predetermined height. For example, one or more of the length, height, or width of the detected vehicle may be detected. The detected length, height, or width of the detected vehicle may be compared to a predetermined length, height, or width. The predetermined length, height, or width may be any suitable length, height, or width. If the detected dimensions (e.g., length, height, or width) correspond to the predetermined dimensions within a predetermined threshold, the vehicle type may be classified. Such comparison and / or classification may be performed or carried out by one or more of the processor 110 and the vehicle classification module 160.

[0061] Alternatively or additionally, sensor system 180, processor 110, and / or vehicle classification module 160 may be configured to directly or indirectly detect, determine, estimate, measure, weigh, and / or sense the size of at least a portion of one or more vehicles in the driving environment.

[0062] According to one or more embodiments, one or more of the modules 120, 130, 140, 150, 160, and 199 detailed, described, and / or illustrated herein may include artificial or computational intelligence elements such as, for example, neural networks, fuzzy logic, or other machine learning algorithms.

[0063] According to one or more embodiments, one or more of modules 120, 130, 140, 150, 160, and 199 detailed, described, and / or illustrated herein may be distributed among multiple modules described herein. According to one or more embodiments, two or more of modules 120, 130, 140, 150, 160, and 199 may be combined into a single module.

[0064] According to one or more embodiments, vehicle 100 may include one or more vehicle systems 190, including a propulsion system 191, a braking system 192, a steering system 193, a throttle system 194, a transmission system 195, a signal system 196, and a navigation system 197. However, embodiments are not so limited, and thus vehicle 100 may include more, fewer, or different systems.

[0065] Propulsion system 191 may include one or more mechanisms, devices, elements, components, systems, and / or combinations thereof (now known or later developed) configured to provide powered motion to vehicle 100. Propulsion system 191 may include an engine and an energy source.

[0066] Braking system 192 may comprise one or more mechanisms, devices, elements, components, systems, and / or combinations thereof (now known or later developed) configured to slow vehicle 100.

[0067] The steering system 193 may comprise one or more mechanisms, devices, elements, components, systems, and / or combinations thereof (now known or later developed) configured to adjust the course of the vehicle 100.

[0068] The throttle system 194 may comprise one or more mechanisms, devices, elements, components, systems, and / or combinations thereof (now known or later developed) configured to control the operating speed of the engine / motor of the vehicle 100 and, as a result, the speed of the vehicle 100.

[0069] The transmission system 195 may comprise one or more mechanisms, devices, elements, components, systems, and / or combinations thereof (now known or later developed) configured to transfer mechanical power from the engine / motor of the vehicle 100 to the wheels / tires.

[0070] Signal system 196 may include one or more mechanisms, devices, elements, components, systems, and / or combinations thereof (now known or later developed) configured to provide clarity to the driver of vehicle 100 and provide information regarding one or more aspects of vehicle 100. For example, signal system 196 may provide information regarding the presence, location, size, and direction of travel of a vehicle, and / or the driver's intentions regarding the direction and speed of travel of vehicle 100. For example, signal system 196 may include headlights, taillights, brake lights, hazard lights, and turn signal lights.

[0071] Navigation system 197 may include one or more mechanisms, devices, elements, components, systems, applications, and / or combinations thereof (now known or later developed) configured to determine the geographic location of vehicle 100 and / or determine driving routes for vehicle 100. Navigation system 197 may include one or more mapping applications that determine driving routes for vehicle 100. For example, a driver or passenger may input a starting point and a destination. The mapping application may determine one or more suitable driving routes between the starting point and the destination. The driving routes may be selected based on one or more parameters (e.g., shortest driving distance, shortest driving time, etc.).

[0072] According to one or more embodiments, the navigation system 197 can be configured to dynamically update the driving route while the vehicle 100 is in operation. The navigation system 197 can include one or more of a global positioning system, a local positioning system, or a geolocation system. The navigation system 197 can implement any of a number of satellite positioning systems, such as the United States Global Positioning System (GPS), the Russian GLONASS system, the European Galileo system, the Chinese Beidou system, the Chinese Compass system, the Indian Regional Navigation Satellite System, or any system using satellites from a combination of satellite systems, or any satellite system developed in the future. The navigation system 197 can use Transmission Control Protocol (TCP) and / or Geographic Information System (GIS) and location services.

[0073] The navigation system 197 may include a transceiver configured to estimate the position of the vehicle 100 relative to the Earth. For example, the navigation system 197 may include a GPS transceiver that determines the vehicle's latitude, longitude, and / or altitude. The navigation system 197 may use other systems (e.g., laser-based positioning systems, inertial-aided GPS, and / or camera-based positioning) to determine the position of the vehicle 100. Alternatively or additionally, the navigation system 197 may be based on access point geolocation services, such as using the W3C Geolocation Application Programming Interface (API). In such systems, the location of the vehicle 100 may be determined by, for example, consultation with location servers including the device's GPS and Global System for Mobile Communications (GSM) / Code Division Multiple Access (CDMA) cell IDs, Internet Protocol (IP) addresses, Wi-Fi and Bluetooth® Media Access Control (MAC) addresses, Radio Frequency Identification (RFID), Wi-Fi connection locations, or GSM / CDMA cell IDs. It will therefore be appreciated that the particular manner in which the geographic location of the vehicle 100 is determined will depend on the method of operation of the particular location tracking system used.

[0074] The processor 110 and / or the autonomous driving module 120 may be operatively coupled to communicate with various vehicle systems 190 and / or individual components thereof. For example, the processor 110 and / or the autonomous driving module 120 may communicate to send information to and / or receive information from the various vehicle systems 190 to control the movement, speed, steering, path, direction, etc. of the vehicle 100. The processor 110 and / or the autonomous driving module 120 may control some or all of the vehicle systems 190 and, therefore, may be partially or fully autonomous.

[0075] Processor 110 and / or autonomous driving module 120 may be configured to control the navigation and / or steering of vehicle 100 by controlling vehicle systems 190 and / or one or more of its components. For example, when operating in autonomous mode, processor 110 and / or autonomous driving module 120 may control the direction and / or speed of vehicle 100. Processor 110 and / or autonomous driving module 120 may cause vehicle 100 to accelerate (e.g., by increasing the supply of fuel provided to the engine), decelerate (e.g., by decreasing the supply of fuel to the engine or by applying the brakes), and / or change direction (e.g., by changing the direction of the wheels).

[0076] Vehicle 100 may include one or more actuators 198. Actuator 198 may be any element or combination of elements configured to modify, adjust, and / or change vehicle system 190 or one or more of its components in response to receiving signals or other inputs from processor 110 and / or autonomous driving module 120. Any suitable actuator may be used. For example, one or more actuators 198 may include a motor, a pneumatic actuator, a hydraulic piston, a relay, a solenoid, a piezoelectric actuator, or the like.

[0077] According to one or more embodiments, vehicle 100 may include a machine learning (ML) system 199. As detailed, described, or illustrated herein, machine learning refers to a computer and / or system that has the ability to learn without being explicitly programmed. Machine learning algorithms may be used to train one or more machine learning models of vehicle 100 based on data received via one or more of processor 110, data storage device 170, sensor system 180, vehicle systems 190, and any other input sources. ML algorithms may include one or more of a linear regression algorithm, a logistic regression algorithm, or a combination of different algorithms. Neural networks may also be used to train a system based on the received data. ML system 199 may analyze received information or data about the driving environment to improve one or more of autonomous driving module 120, vehicle detection module 140, vehicle tracking module 150, vehicle classification module 160, sensor system 180, and vehicle systems 190.

[0078] According to one or more embodiments, the ML system 199 can also receive information from one or more other vehicles and process the received information to dynamically determine patterns in the detected driving environment. The information can be received based on selections including location (e.g., as geographically defined from an address, zip code, or GPS coordinates), planned driving routes (e.g., GPS alerts), activities associated with co-owned / shared vehicles, history, news feeds, etc. The information (i.e., received or processed information) can also be uplinked to other systems and modules in the vehicle 100 for further processing to discover additional information that can be used to improve understanding of the information. The ML system 199 can also send information to other vehicles in the detected driving environment and can link to other devices, including, but not limited to, smartphones, smart home systems, or Internet of Things (IoT) devices. The ML system 199 can thereby communicate / communicate to other vehicles an intent to change lanes into a particular lane, thereby improving safety by reducing the likelihood of vehicle collisions when performing driving maneuvers.

[0079] According to one or more embodiments, ML system 199 may include one or more processors and one or more data storage devices (e.g., non-volatile memory / NVM and / or volatile memory) that contain a set of instructions that, when executed by the one or more processors, cause ML system 199 to receive information from one or more of other vehicles, processor 110, data storage device 170, sensor system 180, vehicle system 190, and any other input / output sources, and process the received information, particularly to identify lane change areas and cause the implementation of driving maneuvers into the identified lane change areas. However, embodiments are not limited thereto, and thus ML system 199 may process the received information to perform other aspects related to the operation of vehicle 100. ML system 199 may communicate with and collect information from one or more of other vehicles, processor 110, data storage device 170, sensor system 180, vehicle system 190, and any other input / output sources to provide a deeper understanding of the monitored behavior of systems, components, and interfaces.

[0080] According to one or more embodiments, the ML system 199 can utilize the functionality of a monitoring as a service (MaaS) interface (not illustrated) to facilitate deployment of monitoring capabilities in a cloud environment. The MaaS interface thereby facilitates tracking by the ML system 199 of the state of systems, subsystems, components, associated applications, networks, etc. in the cloud. The one or more other vehicles from which the machine learning subsystem receives information can include, for example, vehicles in the detected driving environment, vehicles in a user-defined area (e.g., an address, neighborhood, zip code, city, etc.), vehicles co-owned or shared by the user, vehicles along an upcoming or anticipated driving route (e.g., based on GPS coordinates), etc. The received information can enable a user or remote operator of the vehicle 100 to better monitor and recognize patterns and changes in the detected driving environment.

[0081] According to one or more embodiments, causing vehicle 100 to perform a driving maneuver can be performed automatically or manually by a vehicle occupant (e.g., the driver and / or other occupants) or a remote operator of vehicle 100. In one or more embodiments, a vehicle occupant or remote operator can be prompted to provide permission to perform a driving maneuver. A vehicle occupant or remote operator can be prompted visually, audibly, and tactilely through one or more sources. For example, a vehicle occupant or remote operator can be prompted via a user interface located within a passenger compartment of vehicle 100 or a user interface located external to vehicle 100. Alternatively or additionally, a vehicle occupant or remote operator can be prompted via an audio output on one or more audio channels. However, embodiments are not limited thereto, and thus vehicle 100 can employ other forms of prompting as an alternative to, or in addition to, visual, audio, and tactile prompts.

[0082] In response to receiving input corresponding to approval to implement a driving maneuver by a vehicle occupant or a remote operator, vehicle 100 may implement the driving maneuver. According to one or more embodiments, the driving maneuver may be implemented only based on a determination that the driving maneuver can be safely performed given the current driving environment, including, but not limited to, the road, other vehicles, adjacent lanes, traffic rules, objects on the road, etc.

[0083] 2A through 2D each illustrate a non-limiting example of the operation of vehicle 100 in accordance with one or more embodiments. Vehicle 100 can travel in a driving environment comprising a road. As detailed, described, and / or illustrated herein, a "road" refers to a thoroughfare, route, path, or way between two points on which one or more vehicles can travel. A road comprises multiple lanes, including first lane 202, second lane 204, and third lane 206. As detailed, described, and / or illustrated herein, a "lane" is a portion of a road designated for use by and / or in use by a single line of vehicles. While the illustrated example shows a road comprising three lanes, embodiments are not so limited, and thus a road can comprise any number of lanes.

[0084] In the illustrated example, first lane 202 may be a lane along which vehicle 100 travels in a first direction. Second lane 204 may be a lane immediately laterally adjacent to first lane 202 that is currently unoccupied. Third lane 206 may be a lane immediately laterally adjacent to second lane 204 along which one or more vehicles, such as second vehicle 210 and third vehicle 212, travel in a first direction. First lane 202, second lane 204, and third lane 206 may be substantially parallel to one another along at least a portion of their respective lengths. As illustrated in FIG. 2D , the road arrangement may include a first road segment 214 that is substantially straight, a second road segment 216 that is curved, and a third road segment 218 that is substantially straight.

[0085] In the example shown, vehicle 100 can identify a target lane change area 208 in lane two. Vehicle 100 can detect the driving environment via sensor system 180. The driving environment can include the presence of a vehicle traveling in lane two 204 and a vehicle traveling in lane three 206 that is directly adjacent to target area 208 in lane two 204.

[0086] Vehicle 100 can determine the position of detected vehicle 210 relative to identified target lane change region 208. As illustrated in FIG. 2A , if vehicle 100 determines that detected vehicle 210 is not within a predetermined threshold distance to identified target lane change region 208, vehicle 100 can perform, or cause vehicle 100 to perform, a driving maneuver that causes vehicle 100 to change from first lane 202 into identified target lane change region 208.

[0087] 2B , if vehicle 100 determines that detected vehicle 210 is within a predetermined threshold distance to identified target lane change region 208, vehicle 100 can classify the vehicle type of second vehicle 210 via vehicle classification module 160. Vehicle 100 can then compare the classified vehicle type of second vehicle 210 to acceptable vehicle types. The acceptable vehicle types can be predetermined and selected by a user of vehicle 100 or a remote operator via a user interface located at I / O hub 130 or at a location external to vehicle 100. For example, the user or remote operator can object to changing into an adjacent lane area adjacent to a particular class of vehicle (e.g., semi-trucks). In such an example, the user or remote operator can indicate via the user interface that the acceptable vehicle classes are all vehicles other than semi-trucks.

[0088] Alternatively or additionally, vehicle 100 can dynamically track the movement of the detected second vehicle 210 via vehicle tracking module 150 and can delay executing a driving maneuver to change from first lane 202 into the identified target lane change area 208 even if it is determined that the detected vehicle 210 is not within a predetermined threshold distance. For example, if second vehicle 210 is classified as a semi-truck, then implementing a driving maneuver into the identified target lane change area 208 is delayed until a safe lane change (either into lane change area 208 or another identified lane change area) can be made.

[0089] 2C and 2D , the driving environment may alternatively or additionally include the presence of a third vehicle 212 traveling in a third lane 206 spatially ahead of the detected second vehicle 210. Alternatively or additionally, the driving environment may include a geometric road design at least up to a distance that allows a lane change to be completed. Alternatively or additionally, the vehicle 100 may dynamically track the movement of the detected first vehicle 210 and the detected third vehicle 212 via the vehicle tracking module 150.

[0090] The vehicle 100 may abort a lane change in a situation where it is determined that the second vehicle 210 may suddenly change lanes due to a change in road configuration (e.g., a change from a straight configuration to a curved configuration, or a change from three lanes of road to two lanes), or due to one or more of the spatial distance between the second vehicle 210 and the third vehicle 212 and the relative speed between the second vehicle 210 and the third vehicle 212.

[0091] The vehicle 100 may abort a lane change in a situation where it is determined or predicted that the second vehicle 210 may change lanes due to a change in road configuration (e.g., a change from a straight configuration to a curved configuration, or a change from three lanes of road to two lanes), or due to one or more factors including, but not limited to, the spatial distance between the second vehicle 210 and the third vehicle 212, the relative speed between the second vehicle 210 and the third vehicle 212, and the detected geometric road design.

[0092] According to one or more embodiments, vehicle 100 can identify a target lane change region 208 in second lane 204. Alternatively or additionally, vehicle 100 can dynamically track the movement of detected second vehicle 210 and detected third vehicle 212. Alternatively or additionally, vehicle 100 can determine a position of at least detected second vehicle 210 relative to the identified target lane change region 208. Alternatively or additionally, vehicle 100 can determine, via one or more of processor 110, vehicle tracking module 150, and sensor system 180, one or more of a spatial distance between the detected second vehicle and the detected third vehicle, and a speed / acceleration rate of the detected second vehicle. Alternatively or additionally, the vehicle 100 may determine or predict the probability that the detected second vehicle 210 will make a lane change into the second lane 204 in response to the detected geometric road design, the determination of the spatial distance, and the determination of the speed / acceleration rate of the detected second vehicle.

[0093] Then, in response to a determination or prediction that the detected second vehicle 210 has a low probability of achieving a lane change into the second lane 204 (taking into account a predetermined threshold probability value), the vehicle 100 can perform or cause to be performed a driving maneuver that will result in the vehicle 100 changing from the first lane 202 into the identified target lane change area 208.

[0094] In response to determining or predicting that the detected second vehicle 210 has a high probability (considering a predetermined threshold probability value) of achieving a lane change into the second lane 204, the vehicle 100 may delay achieving the driving maneuver at least until the lane change can be safely performed. Alternatively or additionally, the vehicle 100 may identify a new or alternative target lane change area.

[0095] 3 through 5 detail methods 300, 400, and 500 for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane. Methods 300, 400, and 500 may be implemented, for example, in logic instructions (e.g., software), configurable logic, fixed-function hardware logic, etc., or any combination thereof.

[0096] 3 , illustrated process block 302 includes dynamically detecting a driving environment including the presence of one or more vehicles external to the autonomous vehicle in a third lane adjacent to the second lane. According to one or more embodiments, process block 302 may be performed by one or more of processor 110, vehicle detection module 140, vehicle tracking module 150, and sensor system 180. At least a portion of the environment external to vehicle 100 may be dynamically sensed to detect such vehicles. For example, vehicle 100 may sense or detect the external driving environment in one or more directions, such as a side direction relative to the longitudinal axis of vehicle 100, a rearward direction relative to the longitudinal axis of vehicle 100, and a forward direction relative to the longitudinal axis of vehicle 100.

[0097] The method 300 may then proceed to illustrated process block 304, which includes identifying a target lane area in lane 2. According to one or more embodiments, execution of process 304 may be performed by one or more of the processor 110 and the sensor system 180.

[0098] The method 300 may then proceed to illustrated process block 306, which includes determining a position of the detected vehicle relative to the identified target lane change area. According to one or more embodiments, execution of process block 306 may be performed by one or more of the processor 110, the vehicle tracking module 150, and the sensor system 180.

[0099] Method 300 may then proceed to illustrated process block 308, which includes determining whether the detected vehicle is within an acceptable threshold distance to the identified target lane change area. If "no," process block 312 includes causing the autonomous vehicle to implement a driving maneuver from the first lane to the identified target lane change area in response to determining that the detected vehicle is not within the acceptable threshold distance to the identified target lane change area. According to one or more embodiments, execution of process block 312 may be performed by one or more of processor 110 and autonomous driving module 120.

[0100] If "yes," process block 310 involves delaying the lane change to the target lane until it is safe to execute the lane change and proceeds to process block 312.

[0101] Alternatively or additionally, if "yes," the method 300 may proceed to start, whereby a new or alternative target lane change area is identified.

[0102] Alternatively or additionally, if "yes," process block 314 includes classifying the detected vehicle based on vehicle type. According to one or more embodiments, process block 314 may be performed by one or more of processor 110 and vehicle classification module 160.

[0103] The method 300 may then proceed to illustrated process block 316, which includes comparing the classified detected vehicle type to acceptable vehicle types. According to one or more embodiments, process block 316 may be performed by one or more of the processor 110 and the vehicle classification module 160.

[0104] The method 300 may then proceed to illustrated process block 318, which includes determining whether the classified detected vehicle type is an acceptable vehicle class. If yes, the method may proceed to process block 312. If no, the method 300 may proceed to process block 310.

[0105] Method 300 may end or terminate once vehicle 100 has executed or implemented a driving maneuver to change from the first lane to the target lane area. Alternatively, method 300 may start or return to block 302. According to one or more embodiments, processor 110 and one or more of autonomous driving modules 120 may cause vehicle 100 to implement a driving maneuver to change to the target lane. In this regard, processor 110 and one or more of autonomous driving modules 120 may be operatively connected to one or more of vehicle systems 190 to implement the driving maneuver. Alternatively or additionally, processor 110 and one or more of autonomous driving modules 120 may be operatively connected to and may control one or more actuators 198 that may control one or more of vehicle systems 190, or portions thereof, to implement the driving maneuver.

[0106] According to one or more embodiments, the method may include additional process blocks (not illustrated). For example, following execution of process block 302 and prior to execution of process block 314, method 300 may include a process block including dynamically tracking movement of the detected vehicle. Such tracking of the detected vehicle may occur during or within a time frame of multiple sensor detections. According to one or more embodiments, execution of the detected vehicle tracking process block may be performed by one or more of processor 110 and vehicle tracking module 150.

[0107] 4 , illustrated process block 402 includes dynamically detecting a driving environment external to the autonomous vehicle, including the presence of one or more vehicles in a third lane adjacent to the second lane, and a geometric road design at least up to a distance that allows a lane change to be completed. According to one or more embodiments, process block 402 may be performed by one or more of processor 110, vehicle detection module 140, vehicle tracking module 150, sensor system 180, and navigation system 197. At least a portion of the environment external to vehicle 100 may be dynamically sensed to detect such vehicles. For example, vehicle 100 may sense or detect the external driving environment in one or more directions, such as laterally relative to a longitudinal axis of vehicle 100, rearward relative to the longitudinal axis of vehicle 100, and forward relative to the longitudinal axis of vehicle 100.

[0108] The method 400 may then proceed to illustrated process block 404, which includes identifying a target lane change area in lane 2. According to one or more embodiments, execution of process block 404 may be performed by one or more of the processor 110 and the sensor system 180.

[0109] The method 400 may then proceed to illustrated process block 406, which includes determining whether the detected geometric road design in the identified target lane change area is curved based on the detected geometric road design. According to one or more embodiments, execution of process block 406 may be performed by one or more of the processor 110, the sensor system 180, and the navigation system 197.

[0110] The method 400 then, in response to determining that the detected geometric road design in the identified target lane change area is curved, calculates a gravity force (F) required to effectuate a lane change into the identified target lane change area. d) according to one or more embodiments, execution of process block 408 may be performed by processor 110.

[0111] The method 400 then calculates the force of gravity (F d ) to a predetermined acceptable or threshold gravity value (F a ) according to one or more embodiments, execution of process block 410 may be performed by one or more of processor 110 and autonomous driving module 120.

[0112] The method 400 then calculates the force of gravity (F d ) is a predetermined acceptable or threshold gravity value (F a ) The process may proceed to illustrated process block 412, which includes determining whether: According to one or more embodiments, execution of process block 412 may be performed by one or more of processor 110 and autonomous driving module 120.

[0113] If yes, method 400 proceeds to process block 414, which includes implementing a driving maneuver by the autonomous vehicle from lane one to the identified target lane change area. According to one or more embodiments, execution of process block 414 may be performed by one or more of processor 110 and autonomous driving module 120.

[0114] If "no," the method 400 proceeds to process block 416, which includes delaying the autonomous vehicle from performing a driving maneuver until at least a lane change can be performed. Alternatively or additionally, the determined gravity (F d ) falls within a predetermined acceptable or threshold gravity value (F a), the process returns to the beginning, whereby a new or alternative target lane change area can be identified. According to one or more embodiments, execution of process block 416 may be performed by one or more of the processor 110 and the autonomous driving module 120.

[0115] 5 , illustrated process block 502 includes dynamically detecting a driving environment external to the autonomous vehicle, which may include one or more of the presence of a second vehicle and a third vehicle in a third lane adjacent to the second lane, and a geometric road design at least up to a distance that allows a lane change to be completed. According to one or more embodiments, process block 502 may be performed by one or more of processor 110, vehicle detection module 140, vehicle tracking module 150, sensor system 180, and navigation system 197. At least a portion of the environment external to vehicle 100 may be dynamically sensed to detect such vehicles. For example, vehicle 100 may sense or detect the external driving environment in one or more directions, such as laterally relative to a longitudinal axis of vehicle 100, rearward relative to the longitudinal axis of vehicle 100, and forward relative to the longitudinal axis of vehicle 100.

[0116] The method 500 may then proceed to illustrated process block 504, which includes identifying a target lane change area in lane 2. According to one or more embodiments, execution of process block 504 may be performed by one or more of the processor 110 and the sensor system 180.

[0117] Method 500 may then proceed to illustrated process block 506, which includes dynamically tracking the movement of detected second vehicle 210 and detected third vehicle 212. According to one or more embodiments, process block 506 may be performed by one or more of processor 110, sensor system 180, and vehicle tracking module 150.

[0118] The method 500 may then proceed to illustrated process block 508, which includes dynamically determining a spatial position of at least the detected second vehicle 210 relative to the identified target lane change region 208. According to one or more embodiments, execution of process block 508 may be performed by one or more of the processor 110, the vehicle detection module 140, the vehicle tracking module 150, and the sensor system 180.

[0119] Method 500 may then proceed to illustrated process block 510, which includes dynamically determining one or more of the spatial distance between the detected second vehicle 210 and the detected third vehicle 212 and the speed / acceleration rate of the detected second vehicle 210. According to one or more embodiments, process block 510 may be performed by one or more of processor 110, vehicle tracking module 150, and sensor system 180.

[0120] The method 500 then determines a probability (P) of the detected second vehicle 210 executing a lane change into the second lane in response to one or more of the detected geometric road design, the determined spatial distance, and the determined speed / acceleration rate of the detected second vehicle 210. d ) may proceed to illustrated process block 512, which includes determining or predicting the

[0121] The method 500 then calculates the determined probability (P d ) to a predetermined acceptable or threshold probability (P a ) according to one or more embodiments, execution of process block 514 may be performed by one or more of processor 110 and autonomous driving module 120.

[0122] The method 500 then calculates the determined probability (P d ) is determined to be within a predetermined acceptable or threshold probability (P a) or greater. According to one or more embodiments, execution of process block 516 may be performed by one or more of processor 110 and autonomous driving module 120.

[0123] If yes, method 500 proceeds to process block 518, which includes implementing a driving maneuver by the autonomous vehicle from lane one to the identified target lane area. According to one or more embodiments, execution of process block 518 may be performed by one or more of processor 110 and autonomous driving module 120.

[0124] If no, method 500 proceeds to process block 520, which includes delaying the autonomous vehicle from performing a driving maneuver until at least the lane change can be performed. Alternatively or additionally, method 500 can return to "start," thereby identifying a new or alternative target lane change area. According to one or more embodiments, execution of process block 520 can be performed by one or more of processor 110 and autonomous driving module 120.

[0125] The terms "coupled," "attached," or "connected" may be used herein to indicate any type of relationship between applicable components, whether direct or indirect, and may apply to electrical, mechanical, fluid, optical, electromagnetic, electromechanical, or other connections. Additionally, terms such as "first," "second," etc. are used herein for ease of discussion only and do not have a specific temporal or chronological connotation unless otherwise indicated. "Cause" or "causing" means to cause, compel, force, command, direct, and / or enable an event or action to occur, or to at least bring such event or action into a state where it is possible for such event or action to occur, in a direct or indirect manner.

[0126] Those skilled in the art will recognize from the foregoing description that the broad range of techniques of embodiments of the present invention can be implemented in a variety of forms. Accordingly, while embodiments of the present invention have been described in connection with specific examples thereof, the true scope of embodiments of the invention should not be so limited, as other modifications will become apparent to those skilled in the art from a study of the drawings, specifications, and the following claims. The invention disclosed in this specification includes the following aspects. [Aspect 1] 1. A system for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, comprising: a sensor system external to the autonomous vehicle that dynamically detects a driving environment including the presence of a vehicle in a third lane adjacent to the second lane; one or more processors operatively coupled to the sensor system, the one or more processors comprising: identifying a target lane change area in the second lane; determining a position of the detected vehicle relative to the identified target lane change region; the one or more processors execute a set of instructions that, in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, cause the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area; , A system comprising: [Aspect 2] 2. The system of claim 1, wherein the set of instructions causes the one or more processors, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area, to delay implementing a lane change by the autonomous vehicle until the detected vehicle is no longer within the predetermined threshold distance to the identified target lane change area. Aspect 3 2. The system of claim 1, wherein the set of instructions causes the one or more processors to classify the detected vehicle based on vehicle type in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area. Aspect 4 4. The system of aspect 3, wherein the set of instructions causes the one or more processors to compare the classified detected vehicle type to predetermined acceptable vehicle types. Aspect 5 5. The system of claim 4, wherein the set of instructions causes the one or more processors to, in response to determining that the vehicle type is acceptable based on the comparison, implement a driving maneuver by the autonomous vehicle from the first lane to the target lane area. Aspect 6 2. The system of claim 1, wherein detecting the driving environment comprises detecting a geometric road design at least up to a distance that allows a lane change to be completed. Aspect 7 The system of aspect 1, wherein detecting the driving environment includes detecting the presence of a second vehicle in the third lane spatially ahead of the detected vehicle. Aspect 8 1. A method of operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane into a second lane adjacent to the first lane, comprising: dynamically detecting a driving environment external to the autonomous vehicle, the driving environment including the presence of a vehicle in a third lane adjacent to the second lane; identifying a target lane change area in the second lane; determining a position of the detected vehicle relative to the identified target lane change area; in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, causing the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area; The method has the following features. Aspect 9 9. The method of claim 8, further comprising, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change region, delaying implementation of a lane change by the autonomous vehicle until the detected vehicle is no longer within the predetermined threshold distance to the identified target lane change region. Aspect 10 9. The method of claim 8, further comprising classifying the detected vehicle based on vehicle type in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area. Aspect 11 11. The method of embodiment 10, further comprising comparing the classified detected vehicle type to predetermined acceptable vehicle types. Aspect 12 12. The method of claim 11, further comprising, in response to determining that the vehicle type is acceptable based on the comparison, causing the autonomous vehicle to implement a driving maneuver from the first lane to the target lane. Aspect 13 9. The method of embodiment 8, wherein detecting the driving environment comprises detecting a geometric road design at least up to a distance that allows a lane change to be completed. Aspect 14 9. The method of claim 8, wherein detecting the driving environment comprises detecting the presence of a second vehicle in the third lane spatially ahead of the detected vehicle. Aspect 15 1. A computer program product for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, the computer program product comprising: When executed by one or more processors, the one or more processors: identifying a target lane change area in the second lane; determining a position of the detected vehicle relative to the identified target lane change region; and at least one computer-readable medium comprising a set of instructions for causing an autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area. Computer program products. Aspect 16 16. The computer program product of aspect 15, wherein the set of instructions causes the one or more processors, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area, to delay implementing a lane change by the autonomous vehicle until the identified vehicle is no longer within the predetermined threshold distance to the identified target lane change area. Aspect 17 16. The computer program product of aspect 15, wherein the set of instructions causes the one or more processors to classify the detected vehicle based on vehicle type in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area. Aspect 18 20. The computer program product of aspect 17, wherein the set of instructions causes the one or more processors to compare the classified detected vehicle type to predetermined acceptable vehicle types. Aspect 19 19. The computer program product of aspect 18, wherein the set of instructions causes the one or more processors to, in response to determining that the vehicle type is acceptable based on the comparison, implement a driving maneuver by the autonomous vehicle from the first lane to the target lane area. Aspect 20 16. The computer program product of aspect 15, wherein detecting the driving environment comprises detecting a geometric road design at least up to a distance that allows a lane change to be completed.

Claims

1. 1. A system for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, comprising: a sensor system external to the autonomous vehicle that dynamically detects a driving environment including the presence of a vehicle in a third lane adjacent to the second lane; one or more processors operatively coupled to the sensor system, the one or more processors comprising: identifying a target lane change area in the second lane; determining a position of the detected vehicle relative to the identified target lane change region; in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, causing the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area; the one or more processors execute a set of instructions to cause the detected vehicle to be classified based on vehicle type in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area; A system comprising:

2. 2. The system of claim 1, wherein the set of instructions causes the one or more processors, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area, to delay implementing a lane change by the autonomous vehicle until the detected vehicle is no longer within the predetermined threshold distance to the identified target lane change area.

3. The system of claim 1 , wherein the set of instructions causes the one or more processors to compare the classified detected vehicle type to predetermined acceptable vehicle types.

4. 4. The system of claim 3, wherein the set of instructions causes the one or more processors to, in response to determining that the vehicle type is acceptable based on the comparison, cause the autonomous vehicle to implement a driving maneuver from the first lane to the target lane change area.

5. The system of claim 1 , wherein detecting the driving environment comprises detecting a geometric road design at least up to a distance that allows a lane change to be completed.

6. The system of claim 1 , wherein detecting the driving environment comprises detecting the presence of a second vehicle in the third lane spatially ahead of the detected vehicle.

7. 1. A method of operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane into a second lane adjacent to the first lane, comprising: dynamically detecting a driving environment external to the autonomous vehicle, the driving environment including the presence of a vehicle in a third lane adjacent to the second lane; identifying a target lane change area in the second lane; determining a position of the detected vehicle relative to the identified target lane change area; in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, causing the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area; classifying the detected vehicle based on vehicle type in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change region; The method has the following features.

8. 8. The method of claim 7, further comprising, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change region, delaying implementation of a lane change by the autonomous vehicle until the detected vehicle is no longer within the predetermined threshold distance to the identified target lane change region.

9. The method of claim 7 further comprising comparing the classified detected vehicle type to predetermined acceptable vehicle types.

10. 10. The method of claim 9, further comprising, in response to determining that the vehicle type is acceptable based on the comparison, causing the autonomous vehicle to implement a driving maneuver from the first lane to the target lane change area.

11. The method of claim 7 , wherein detecting the driving environment comprises detecting a geometric road design at least up to a distance that allows a lane change to be completed.

12. The method of claim 7 , wherein detecting the driving environment comprises detecting the presence of a second vehicle in the third lane spatially ahead of the detected vehicle.

13. 1. A computer program product for operating a vehicle, when operating at least partially in an autonomous mode, to change from a first lane to a second lane adjacent to the first lane, the computer program product comprising: When executed by one or more processors, the one or more processors: identifying a target lane change area in the second lane; determining a position of the vehicle detected by a sensor system external to the autonomous vehicle that dynamically detects a driving environment including the presence of a vehicle in a third lane adjacent to the second lane, the position of the detected vehicle relative to the identified target lane change area; in response to determining that the detected vehicle is not within a predetermined threshold distance of the identified target lane change area, causing the autonomous vehicle to implement a driving maneuver from the first lane into the identified target lane change area; and at least one computer-readable medium comprising a set of instructions that, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area, causes the detected vehicle to be classified based on vehicle type. Computer program products.

14. 14. The computer program product of claim 13, wherein the set of instructions causes the one or more processors, in response to determining that the detected vehicle is within the predetermined threshold distance to the identified target lane change area, to delay implementing a lane change by the autonomous vehicle until the identified vehicle is no longer within the predetermined threshold distance to the identified target lane change area.

15. 14. The computer program product of claim 13, wherein the set of instructions causes the one or more processors to compare the classified detected vehicle type to predetermined acceptable vehicle types.

16. 16. The computer program product of claim 15, wherein the set of instructions causes the one or more processors to, in response to determining that the vehicle type is acceptable based on the comparison, cause the autonomous vehicle to implement a driving maneuver from the first lane to the target lane change area.

17. 14. The computer program product of claim 13, wherein detecting the driving environment comprises detecting a geometric road design at least up to a distance that allows a lane change to be completed.

Citation Information

Patent Citations

  • A system and method for predicting the behavior of detected objects

    JP2013544696A

  • Methods for lane changing for autonomous vehicles

    JP2017001665A

  • Vehicle control device, vehicle control method, and program

    JP2019217827A

  • Modifying autonomous vehicle driving by recognizing vehicle characteristics

    US20160068156A1

  • Vehicle and control method therefor

    US20180225975A1