Patent Description:
With the development of technology, smart driving and autonomous driving technologies have received more and more attention, and people are also increasingly concerned about the safety of self-driving vehicles. In some areas of a road, due to safety restrictions such as distance constraints from obstacles or road boundaries, self-driving vehicles may have difficulty passing the areas autonomously, the driver or the safety officer needs to manually control the vehicle to pass the area, which limits the application of the self-driving vehicle.

<CIT> discloses a vehicle control device provided in a vehicle and a method of controlling the vehicle. <CIT> discloses a method for driving a vehicle. <CIT> discloses a method for operating vehicle, particularly for approaching parking space in parking zone that is non-visible or distant from road by vehicle, involves determining and storing multiple trajectories for home-parking space of home parking zone. <CIT> discloses a method for path determination.

Embodiments of the present invention provide a method for controlling a vehicle as claimed in independent claim <NUM>.

Embodiments of the present invention provide an apparatus for controlling a vehicle as claimed in independent claim <NUM>.

Embodiments of the present invention provide a computer-readable storage medium having a computer program stored thereon, when the computer program is executed by a processor, the processor is configured to implement the method according to embodiments of the present invention.

It should be understood that the contents described in the summary is neither intended to limit key or important features of the embodiments of the present invention, nor to limit the scope of the present invention. Other features of the present invention will become readily understood from the following description.

The above and other features, advantages and aspects of the embodiments of the present invention will become more apparent with reference to the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals indicate the same or similar elements, in which:.

Embodiments of the present invention will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present invention have been illustrated in the accompanying drawings, it is to be understood that the present invention may be embodied in various forms and should not be construed as being limited to the embodiments set forth herein. Instead, these embodiments are provided for a thorough and complete understanding of the present invention. It should be understood that the drawings and embodiments of the present invention are for illustrative purposes only and are not intended to limit the scope of the present invention.

In the description of the embodiments of the present invention, the term "including" and its equivalents should be construed as open-ended inclusions, i.e., "include, but is not limited to". The term "according to" is to be understood as "at least partially according to". The term "an embodiment" or "the embodiment" should be understood as "at least one embodiment". Terms "first", "second" and the like may refer to different or identical objects. Other explicit and implicit definitions may also be included below.

In recent years, driverless or self-driving technology has gradually emerged. Due to safety restrictions of autonomous vehicles (i.e., the self-driving vehicles), some autonomous vehicles may not be able to autonomously pass some driving areas such as narrower curves, roads blocked by obstacles. Generally, the driver or the safety officer is required to manually control the vehicle to pass through these areas, which is unacceptable for achieving fully autonomous driving.

According to embodiments of the present invention, a solution for controlling a vehicle is provided. With the solution, in response to determining that the target vehicle is located in the historical takeover area, historical control information associated with passing through a historical path in the historical takeover area is obtained. The historical takeover area indicates the area through which the vehicle in a manual control state passed in a previous period. The planned path for the target vehicle to pass through the historical takeover area is determined based on the historical control information, and the target vehicle is controlled to pass through the historical takeover area under an automatic control state based on the planned path. With the solution of the present invention, the self-driving vehicle can intelligently learn historical control information determined when the driver manually controls the vehicle to pass through the historical takeover area, such that the self-driving vehicle can pass through the historical takeover area, thereby improving the traffic rate for the vehicle to autonomously pass through the historical takeover area.

<NUM> illustrates a schematic diagram of an exemplary environment <NUM> in which various embodiments of the present invention are implemented. Some objects, including a target vehicle <NUM> traveling on a road <NUM>, are shown schematically in the exemplary environment <NUM>. <NUM>, the target vehicle <NUM> may be any type of vehicle that may carry people and/or objects and move through a power system such as an engine, including but not limited to a car, a truck, a bus, an electric vehicle, a motorcycle, a motorhome, a train, or the like. The one or more target vehicles <NUM> in the environment <NUM> may be vehicles having a certain degree of autonomous driving capability, also referred to as autonomous vehicles.

The target vehicle <NUM> may be communicatively coupled to a computing device <NUM>. Although shown as a separate entity, the computing device <NUM> may be embedded in the target vehicle <NUM>. The computing device <NUM> may also be an entity external to the target vehicle <NUM>, and may communicate with the target vehicle <NUM> via a wireless network. The computing device <NUM> may be implemented as one or more computing devices, which include at least a processor, a memory, and other components typically found in a general-purpose computer in order to implement functions such as computing, storage, communication, and control.

As shown in FIG. <NUM>, in a previous period, the driver or the safety person once controlled a vehicle <NUM> to pass through a historical takeover area <NUM>, i.e., the vehicle <NUM> passes through the historical takeover area <NUM> under manual control , and the passing path is the historical path <NUM> that bypasses an obstacle <NUM>. In some embodiments, the vehicle <NUM> may be the same vehicle as the target vehicle <NUM>. Alternatively, the vehicle <NUM> may be different from the target vehicle <NUM>. For example, the vehicle <NUM> may be the same type of vehicle for testing as the target vehicle <NUM>. When it is determined that the target vehicle <NUM> travels into the historical takeover area <NUM>, the computing device <NUM> may obtain historical control information <NUM> associated with the historical path <NUM>, and determine, based on the historical control information, the planned path <NUM> configured to control the target vehicle <NUM> to pass through the historical takeover area <NUM>. It should be understood that, the arrangement of the vehicle and the historical takeover area shown in FIG. <NUM> are only schematic, and the solution of the present invention is not intended to limit the arrangement in any way. The process of controlling the target vehicle <NUM> to pass through the historical takeover area <NUM> will be described in detail below with reference to <FIG> and <FIG>.

<FIG> is a flowchart illustrating a method <NUM> for controlling a vehicle according to some embodiments of the present invention. The method <NUM> may be performed, for example, by the computing device <NUM> shown in FIG. As shown in <FIG>, the method may include the following acts.

At block <NUM>, in response to determining that the target vehicle <NUM> is located in the historical takeover area <NUM>, the computing device <NUM> obtains historical control information <NUM> associated with passing through the historical path <NUM> in the historical takeover area <NUM>. The historical takeover area <NUM> indicates an area through which the vehicle in a manual control state passed in a previous period. In some embodiments, the computing device <NUM> may obtain the current location of the target vehicle <NUM>, and compare the current location with the historical takeover area <NUM> to determine whether the target vehicle <NUM> is located in the historical takeover area <NUM>.

In some embodiments, the historical control information <NUM> includes at least one of:
decision-making information corresponding to the historical path <NUM>, trajectory information of the historical path <NUM>, or traffic constraint information corresponding to the historical path <NUM>. In an example, the decision-making information corresponding to the historical path may indicate the strategy that the driver used to pass through the historical takeover area <NUM>. Taking FIG. <NUM> as an example, the decision-making information may indicate that the driver controls the vehicle <NUM> to bypass the obstacle <NUM> from the left.

The trajectory information of the historical path <NUM> may indicate, for example, a set of locations passed by the vehicle <NUM> when the driver controls the vehicle <NUM> to pass through the historical takeover area <NUM>. The traffic constraint information may indicate, for example, one or more constraints satisfied by the driver when controlling the vehicle <NUM> to pass through the historical takeover area <NUM>, such as a minimum distance (for example, <NUM>) from an obstacle, a minimum distance (for example, <NUM>) from a road boundary, or the like.

In some embodiments, for example, the historical control information <NUM> associated with the vehicle <NUM> passing through the history path <NUM> of an area may be recorded by a computing device coupled to the vehicle <NUM>. In an example, the historical control information <NUM> may also be recorded by other devices such as a drive test device. In some embodiments, the historical control information <NUM> may be, for example, uploaded to a server in the cloud, and the computing device <NUM> receives the historical control information <NUM> from the server.

In some embodiments, the vehicle <NUM> may be the same vehicle as the target vehicle <NUM>. That is, in the previous period, the driver manually took over the target vehicle <NUM>, and manually controlled the vehicle <NUM> to pass through the historical takeover area <NUM>. When the target vehicle <NUM> travels to the historical takeover area <NUM> again, the computing device <NUM> may obtain the historical control information <NUM> associated with the historical path <NUM>.

In some embodiments, the historical takeover area <NUM> may include at least one path. For example, the historical takeover area <NUM> may include different paths that the driver controls different vehicles traveling. In this case, the computing device <NUM> may determine, from the historical takeover area <NUM>, the historical path <NUM> through which the target vehicle <NUM> passes in the manual control state, and obtain the historical control information associated with the historical path <NUM>.

In some embodiments, the vehicle <NUM> may be a vehicle different from the target vehicle <NUM>. That is, in the previous period, the driver manually took over another vehicle <NUM> different from the target vehicle <NUM>, and manually controlled the vehicle <NUM> to pass through the historical takeover area <NUM>. When the target vehicle <NUM> travels to the historical takeover area <NUM>, the computing device <NUM> may obtain the historical control information <NUM> associated with the historical path <NUM> of the vehicle <NUM>.

In some embodiments, the computing device <NUM> may determine, from the historical takeover area, the historical path <NUM> through which a reference vehicle corresponding to the target vehicle <NUM> passes the historical takeover area <NUM> in the manual control state, and obtain the historical control information <NUM> associated with the historical path <NUM>. In some embodiments, the reference vehicle may be, for example, a vehicle of the same model as the target vehicle <NUM>, and is different from the target vehicle <NUM>, such that manual control of the reference vehicle by the driver may be instructive for the target vehicle <NUM>. In some other embodiments, the reference vehicle may also be, for example, a vehicle that is close in size to the target vehicle <NUM>. For example, the computing device <NUM> may determine the reference vehicle by comparing size information of the vehicle.

At block <NUM>, the computing device <NUM> determines a planned path <NUM> for the target vehicle <NUM> to pass through the historical takeover area <NUM> based on the historical control information <NUM>.

The process of block <NUM> will be described below with reference to <FIG> illustrate the processes of determining the planned path <NUM> according to embodiments of the present invention.

In some embodiments, the computing device <NUM> may determine the planned path <NUM> based on the decision-making information in the historical control information <NUM>. In an example, as shown in <FIG>, at block <NUM>, the computing device <NUM> may determine the decision-making information corresponding to the historical path <NUM> from the historical control information <NUM>. For example, as described above, the computing device <NUM> may determine, for example, that the decision-making information corresponding to the historical path <NUM> is bypassing the obstacle <NUM> from the left.

At block <NUM>, the computing device <NUM> determines a path search space for passing through the historical takeover area <NUM> based on the decision-making information.

In an example, with reference to FIG. <NUM>, after entering the historical takeover area <NUM>, the computing device <NUM> may determine the path for passing through the historical takeover area <NUM> based on the decision of bypassing the obstacle <NUM> from the left, such that the fault or dangerous decisions such as controlling the target vehicle <NUM> bypassing the obstacle <NUM> from the right can be avoided.

At block <NUM>, the computing device <NUM> determines the planned path based on the path search space.

For example, as shown FIG. <NUM>, after the path search space corresponding to the decision of bypassing the obstacle <NUM> from the left is determined, the computing device <NUM> may employ any suitable path planning technique to determine the planned path <NUM> from the path search space.

In some embodiments, the computing device <NUM> may determine the planned path <NUM> based on the trajectory information in the historical control information <NUM>. In an example, as shown in <FIG>, at block <NUM>, the computing device <NUM> may determine the trajectory information of the historical path <NUM> from the historical control information <NUM>. For example, as described above, the trajectory information may be, for example, a set of locations that the vehicle <NUM> passed through when the vehicle <NUM> is controlled to pass through the historical takeover area <NUM> by the driver.

At block <NUM>, the computing device <NUM> adjusts a loss function for determining the planned path <NUM> based on the trajectory information.

In autonomous driving, the loss function is generally configured to determine the optimal passing path in the path search space. The loss function may consider one or more factors, including the offset from a reference line, the distance from an obstacle, the distance from a road boundary, and the like. The reference line may be, for example, the centerline of a lane. Based on the loss function, the passing path determined may be close to the centerline of the lane while being as far away as possible from the obstacle and the road boundary.

In some embodiments, the computing device <NUM> introduces the offset from the historical path <NUM> in the loss function based on the trajectory information. Based on the loss function, the computing device <NUM> enables the planned path to fit the historical path <NUM> passed by the vehicle when the vehicle is manually driven by the driver, while satisfying other constraints, such that the target vehicle <NUM> can safely pass through the historical takeover area <NUM>.

At block <NUM>, the computing device <NUM> determines the planned path <NUM> based on the adjusted loss function.

According to the invention, the difference between the planned path <NUM> and the historical path <NUM> is less than a predetermined threshold. With the adjusted loss function, the computing device <NUM> makes the difference between the planned path <NUM> and the historical path <NUM> as small as possible In some embodiments, the difference may be represented by, for example, the distances between multiple position points in the planned path <NUM> and corresponding path points in the historical path <NUM>.

In some embodiments, the computing device <NUM> may determine the planned path <NUM> based on the traffic constraint information in the historical control information <NUM>. In an example, as shown in <FIG>, at block <NUM>, the computing device <NUM> may determine the traffic constraint information of the historical path <NUM> from the historical control information <NUM>. For example, as described above, the traffic constraint information may be, for example, one or more constraints satisfied by the driver when controlling the vehicle <NUM> to pass through the historical takeover area <NUM>, such as a minimum distance (for example, <NUM>) from an obstacle, a minimum distance (for example, <NUM>) from a road boundary, or the like.

At block <NUM>, the computing device <NUM> may adjust the loss function for determining the planned path <NUM> based on the traffic constraint information.

As discussed above, the loss function may generally consider one or more factors, including the offset from the reference line, the distance from the obstacle, the distance from the road boundary, and the like. for example, the reference line may indicate the centerline of the lane. Based on such loss function, the passing path determined may be close to the centerline of the lane while being as far away as possible from the obstacle and the road boundary.

Generally, the developer may also set corresponding parameter search spaces for the parameters in the loss function. For example, to ensure safety, the developer may set the distance from the obstacle to not less than <NUM>, and the distance from the road boundary to not less than <NUM>. However, the developer may have no road experience, they may fail to consider the safety needs of the vehicle on some road sections. The great threshold may make the passable area too narrow, the target vehicle <NUM> cannot obtain the planned path for passing through some road sections, and the small threshold may make the target vehicle <NUM> dangerous when passing through some road sections.

In some embodiments, the computing device <NUM> may adjust the search spaces of parameters in the loss function based on the traffic constraint information. For example, when the minimum distance from the obstacle corresponding to the historical path <NUM> is <NUM>, the computing device <NUM> may modify the search space corresponding to the distance from the obstacle in the loss function from the previous greater than or equal to <NUM> to greater than or equal to <NUM>, such that the passable area of the target vehicle <NUM> may be enlarged, thereby increasing the passing rate of the target vehicle <NUM> passing through the area.

In some embodiments, the computing device <NUM> may gradually widen the search space by a preset step size. Taking the distance from the obstacle as an example, the computing device <NUM> may perform the path search according to the initial constraint (such as greater than or equal to <NUM>). In a case that the path cannot be found, the computing device may adjust the constraint to, for example, greater than or equal to <NUM>, and perform the path search again based on the adjusted constraint. The computing device <NUM> may iteratively adjust the parameter constraint until, for example, to greater than or equal to <NUM> as indicated by the traffic constraint information. When the computing device <NUM> is still unable to search the passable path under this constraint, the computing device <NUM> may issue an instruction requesting the driver to manually take over the vehicle.

At block <NUM>, the computing device <NUM> determines the planned path <NUM> based on the loss function adjusted, the planned path <NUM> satisfies the constraint indicated by the traffic constraint information.

Based on the adjusted loss function, in the case where the passing path cannot be searched previously, the computing device <NUM> may determine the planned path <NUM> for passing through the historical takeover area <NUM> due to the expansion of the search space of the passable area.

With reference to <FIG>, at block <NUM>, the computing device <NUM> enables the target vehicle <NUM> to pass through the historical takeover area <NUM> under an automatic control state based on the planned path <NUM>. In an example, the computing device <NUM> may send an instruction to the target vehicle <NUM> to travel along the planned path <NUM>, to cause the target vehicle <NUM> to pass through the historical takeover area <NUM>.

With the method according to embodiments of the present invention, the control information that the driver manually control the vehicle to pass through an area is learned, and by adjusting the traffic strategy or the passable space, the possibility for the vehicle to pass through the area automatically can be improved on the premise of ensuring the safety of the vehicle.

<FIG> is a block diagram of an apparatus <NUM> for controlling a vehicle according to the present invention. The apparatus <NUM> may be included in or implemented as the computing device <NUM> in FIG. As shown in <FIG>, the apparatus <NUM> includes a historical control information obtaining module <NUM>, a planned path determination module <NUM>, and a control module <NUM>. The historical control information obtaining module <NUM> is configured to, in response to determining that the target vehicle is located in the historical takeover area, obtain the historical control information associated with passing through the historical path in the historical takeover area. The historical takeover area indicates an area through which the vehicle in the manual control state passed in the previous period. The planned path determination module <NUM> is configured to determine the planned path for the target vehicle to pass through the historical takeover area based on the historical control information. The control module <NUM> is configured to control the target vehicle to pass through the historical takeover area in an automatic control state based on the planned path.

In some embodiments, the historical control information obtaining module <NUM> includes a first path determination module and a first obtaining module. The first path determination module is configured to determine, from the historical takeover area, the historical path through which the target vehicle passes the historical takeover area in the manual control state. The first obtaining module is configured to obtain the historical control information associated with the historical path.

In some embodiments, the historical control information obtaining module <NUM> includes a second path determination module, and a second obtaining module. The second path determination module is configured to determine, from the historical takeover area, the historical path through which the reference vehicle corresponding to the target vehicle passes the historical takeover area in the manual control state. The second obtaining module is configured to obtain the historical control information associated with the historical path.

In some embodiments, the historical control information includes at least one of: the decision-making information corresponding to the historical path, the trajectory information of the historical path, and the traffic constraint information corresponding to the historical path.

According to the invention, the planned path determination module <NUM> includes a decision-making information determination module, a path search space determination module, and a first path determination module. The decision-making information determination module is configured to determine the decision-making information corresponding to the historical path from the historical control information. The path search space determination module is configured to determine the path search space for passing through the historical takeover area based on the decision-making information. The first path determination module is configured to determine the planned path based on the path search space.

According to the invention, the planned path determination module <NUM> includes a trajectory information determination module, a first adjustment module, and a second path determination module. The trajectory information determination module is configured to determine the trajectory information of the historical path from the historical control information. The first adjustment module is configured to adjust the loss function for determining the planned path based on the trajectory information. The second path determination module is configured to determine the planned path based on the loss function adjusted. The difference between the planned path and the historical path is less than the predetermined threshold.

In some embodiments, the planned path determination module <NUM> includes a traffic constraint information determination module, a second adjustment module, and a third path determination module. The traffic constraint information determination module is configured to determine the traffic constraint information corresponding to the historical path from the historical control information. The second adjustment module is configured to adjust the loss function for determining the planned path based on the traffic constraint information. The third path determination module is configured to determine the planned path based on the loss function adjusted, the planned path satisfying a constraint indicated by the traffic constraint information.

<FIG> is a schematic block diagram of an exemplary device <NUM> capable of implementing various embodiments of the present invention. The device <NUM> may be configured to implement the computing device <NUM> as described in FIG. As illustrated in the figure, the device <NUM> includes a central processing unit (CPU) <NUM>, which may perform various suitable actions and processes in accordance with computer program instructions stored in a read only memory (ROM) <NUM> or loaded from a storage unit <NUM> into a random-access memory (RAM) <NUM>. In the RAM <NUM>, various programs and data necessary for operations of the device <NUM> may also be stored. The CPU <NUM>, the ROM <NUM>, and the RAM <NUM> are connected to each other through a bus <NUM>. An input/output (I/O) interface <NUM> is also connected to the bus <NUM>.

A number of components in the device <NUM> are connected to the I/O interface <NUM>, including: an input unit <NUM> such as a keyboard, a mouse, and the like; an output unit <NUM> such as various types of displays, speakers, etc.; the storage unit <NUM> such as a magnetic disk, an optical disk, or the like; and a communication unit <NUM> such as a network card, a modem, a wireless communication transceiver, and so on. The communication unit <NUM> allows the device <NUM> to exchange information/data with other devices via a computer network such as the Internet and/or various telecommunications networks.

The processing unit <NUM> performs the various methods and processes described above, such as the process <NUM>. For example, in some embodiments, the method <NUM> may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as the storage unit <NUM>. In some embodiments, some or all of the computer programs may be loaded and/or installed onto the device <NUM> via the ROM <NUM> and/or the communication unit <NUM>. When a computer program is loaded onto the RAM <NUM> and executed by the CPU <NUM>, one or more steps in the method <NUM> described above may be performed. Alternatively, in other embodiments, the CPU <NUM> may be configured to perform the method <NUM> in any other suitable manner (e.g., by way of the firmware).

The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, and without limitation, exemplary types of the hardware logic components that may be used include: a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), an application specific standard product (ASSP), a system on chip (SOC), a complex programmable logic device (CPLD), and the like.

Program codes for performing the method in the present invention may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller in a general-purpose computer, a special purpose computer, or other programmable data processing devices, such that the program codes, when executed by the processor or controller, are configured to implement functions/operations specified in the flow chart and/or block diagrams. The program code may be executed entirely on a machine, partly on the machine, as a separate software package, partly on the machine, partly on a remote computer, or entirely on the remote computer or server.

In the context of the present invention, the machine-readable medium may be a tangible medium that may contain, or store a program for use by or in combination with an instruction execution system, an apparatus, or a device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine-readable storage medium may include: an electrical connection having one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read only memory (ROM), an Erasable Programmable Read Only Memory (EPROM or a flash memory), an optical fiber, a compact disc read-only memory (CD-ROM), an optical memory component, a magnetic memory component, or any suitable combination thereof.

Moreover, while operations are described in a particular order, this should be understood as that the operations are required to be performed in a particular illustrated order or in a sequential order, or that all illustrated operations are required to be performed to achieve desirable results. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present invention. Certain features described in the context of separate embodiments may also be implemented in combination in a single implementation. Conversely, features that are described in the context of the single implementation may also be implemented in a plurality of implementations separately or in any suitable sub-combination.

Claim 1:
A method for controlling a vehicle, comprising:
in response to determining that a target vehicle (<NUM>) is located in a historical takeover area (<NUM>), obtaining (<NUM>) historical control information associated with passing through a historical path in the historical takeover area (<NUM>), the historical takeover area (<NUM>) indicating an area through which the vehicle in a manual control state passed in a previous period, in which the historical control information includes decision-making information corresponding to the historical path, and trajectory information of the historical path, wherein the historical path is a path which bypasses an obstacle;
determining (<NUM>) a planned path for the target vehicle (<NUM>) to pass through the historical takeover area (<NUM>) based on the historical control information; and
controlling (<NUM>) the target vehicle (<NUM>) to pass through the historical takeover area (<NUM>) in an automatic control state based on the planned path;
characterized in that, determining the planned path for the target vehicle (<NUM>) to pass through the historical takeover area (<NUM>) based on the historical control information comprises:
determining a path search space for passing through the historical takeover area (<NUM>) based on the decision-making information corresponding to the historical path;
introducing an offset from the historical path in a loss function based on the trajectory information of the historical path; and
determining the planned path in the path search space based on the loss function, wherein the offset from the historical path is less than a predetermined threshold.