This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2020-126572, filed on Jul. 27, 2020; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a drive control device, a drive control method, and a computer program product.
Methods using machine learning and rule-based methods are used as technologies to determine a travel lane and a speed in automated driving. The methods using machine learning require a considerable learning time, and in addition, do not guarantee safety. In contrast, the rule-based methods are safer, but are lower in travel efficiency.
According to an embodiment, a drive control device includes an acquisition unit, a calculation unit, and a determination unit. The acquisition unit is configured to acquire own vehicle information including position information and speed information on an own vehicle, second vehicle information including position information and speed information on a second vehicle present at a periphery of the own vehicle, route information including road information representing a road to be traveled until a destination point is reached from a start point and information representing a lane to be traveled on the road, and map information including lane information on the road, legal speed limit information on the road, lane change propriety information on the road, and work information representing a work zone on the road. The calculation unit is configured to calculate lane attribute information including at least one of a lane recommendation degree of each lane included in the lane information, a propriety of traveling each lane, and a target speed in each lane, based on the own vehicle information, the second vehicle information, the route information, and the map information. The determination unit is configured to determine at least one of a travel lane and a speed of the own vehicle within a range in which safety is guaranteed, using a machine learning model that receives the own vehicle information, the second vehicle information, the route information, the map information, and the lane attribute information, and outputs at least one of a travel lane and a speed.
The following describes embodiments of a drive control device, a drive control method, and a computer program in detail with reference to the accompanying drawings.
A drive control device according to a first embodiment is mounted on, for example, a mobile object.
Example of Mobile Object
The mobile object 10 includes a drive control device 20, an output unit 10A, a sensor 10B, sensors 10C, a power control unit 10G, and a power unit 10H.
The mobile object 10 may be any mobile object. The mobile object 10 is, for example, a vehicle, a wheeled platform, or a mobile robot. The vehicle is, for example, a two-wheeled motor vehicle, a four-wheeled motor vehicle, or a bicycle. The mobile object 10 may be, for example, a mobile object that travels via a driving operation by a person, or a mobile object that can automatically travel (autonomously travel) without the driving operation by the person.
The drive control device 20 is configured as an electronic control unit (ECU). The drive control device 20 determines at least one of a travel lane in which and a speed at which the mobile object 10 is to travel. For example, the drive control device 20 may determine only the speed, for example, in a situation where only one travel lane is available for the mobile object 10 to travel therein.
The drive control device 20 is not limited to the mode of being mounted on the mobile object 10. The drive control device 20 may be mounted on a stationary object. The stationary object is an immovable object such as an object fixed to a ground surface. The stationary object fixed to the ground surface is, for example, a guard rail, a pole, a parked vehicle, or a traffic sign. The stationary object is, for example, an object in a static state with respect to the ground surface. The drive control device 20 may be mounted on a cloud server that executes processing on a cloud system.
The power unit 10H is a drive device mounted on the mobile object 10. The power unit 10H is, for example, an engine, a motor, and wheels.
The power control unit 10G receives information representing at least one of the travel lane and the speed from a determination unit 23 of a processing unit 20A, and controls driving of the power unit 10H.
The output unit 10A outputs information. In the first embodiment, the output unit 10A outputs the information representing at least one of the travel lane and the speed determined by the drive control device 20.
The output unit 10A includes a communication function to transmit the information representing at least one of the travel lane and the speed, a display function to display the information representing at least one of the travel lane and the speed, and a sound output function to output a sound indicating the information representing at least one of the travel lane and the speed. The output unit 10A includes, for example, at least one of a communication unit 10D, a display 10E, and a speaker 10F. The first embodiment will be described by way of an example of a configuration in which the output unit 10A includes the communication unit 10D, the display 10E, and the speaker 10F.
The communication unit 10D transmits the information representing at least one of the travel lane and the speed to another device. The communication unit 10D transmits the information representing at least one of the travel lane and the speed to another device, for example, through communication lines. The display 10E displays the information representing at least one of the travel lane and the speed. The display 10E is, for example, a liquid crystal display (LCD), a projection device, or a light. The speaker 10F outputs a sound representing the information representing at least one of the travel lane and the speed.
The sensor 10B is a sensor that acquires information on the periphery of the mobile object 10. The sensor 10B is, for example, a monocular camera, a stereo camera, a fisheye camera, an infrared camera, a millimeter-wave radar, or a light detection and ranging or laser imaging detection and ranging (LIDAR) sensor. In the description herein, a camera will be used as an example of the sensor 10B. The number of the cameras (10B) may be any number. A captured image may be a color image consisting of three channels of red, green, and blue (RGB) or a monochrome image having one channel represented as a gray scale. The camera (10B) captures time-series images at the periphery of the mobile object 10. The camera (10B) captures the time-series images, for example, by imaging the periphery of the mobile object 10 in chronological order. The periphery of the mobile object 10 is, for example, a region within a predefined range from the mobile object 10. This range is, for example, a range capturable by the camera (10B).
The first embodiment will be described by way of an example of a case where the camera (10B) is installed so as to include a front direction of the mobile object 10 as an imaging direction. That is, in the first embodiment, the camera (10B) captures the images in front of the mobile object 10 in chronological order.
The sensors 10C are sensors that measure a state of the mobile object 10. The measurement information includes, for example, the speed of the mobile object 10 and a steering wheel angle of the mobile object 10. The sensors 10C are, for example, an inertial measurement unit (IMU), a speed sensor, and a steering angle sensor. The IMU measures the measurement information including triaxial accelerations and triaxial angular velocities of the mobile object 10. The speed sensor measures the speed based on rotation amounts of tires. The steering angle sensor measures the steering wheel angle of the mobile object 10.
The following describes an example of a functional configuration of the mobile object 10 according to the first embodiment.
Example of Functional Configuration
The mobile object 10 includes the drive control device 20, the output unit 10A, the sensor 10B, the sensors 10C, the power control unit 10G, and the power unit 10H. The drive control device 20 includes the processing unit 20A and a storage unit 20B. The output unit 10A includes the communication unit 10D, the display 10E, and the speaker 10F.
The processing unit 20A, the storage unit 20B, the output unit 10A, the sensor 10B, the sensors 10C, and the power control unit 10G are connected together through a bus 101. The power unit 10H is connected to the power control unit 10C.
The output unit 10A (the communication unit 10D, the display 10E, and the speaker 10F), the sensor 10B, the sensors 10C, the power control unit 10G, and the storage unit 20B may be connected together through a network. The communication method of the network used for the connection may be a wired method or a wireless method. The network used for the connection may be implemented by combining the wired method with the wireless method.
The storage unit 20B stores therein information. The storage unit 20B is, for example, a semiconductor memory device, a hard disk, or an optical disc. The semiconductor memory device is, for example, a random-access memory (RAM) or a flash memory. The storage unit 20B may be a storage device provided outside the drive control device 20. The storage unit 20B may be a storage medium. Specifically, the storage medium may be a medium that stores or temporarily stores therein computer programs and/or various types of information downloaded through a local area network (LAN) or the Internet. The storage unit 20B may be constituted by a plurality of storage media.
The processing unit 20A includes an acquisition unit 21, a calculation unit 22, and the determination unit 23. The acquisition unit 21, the calculation unit 22, and the determination unit 23 are implemented by, for example, one processor or a plurality of processors.
The processing unit 20A may be implemented, for example, by causing a processor such as a central processing unit (CPU) to execute a computer program, that is, by software. Alternatively, the processing unit 20A may be implemented, for example, by a processor such as a dedicated integrated circuit (IC), that is, by hardware. The processing unit 20A may also be implemented, for example, using both software and hardware.
The term “processor” used in the embodiments includes, for example, a CPU, a graphical processing unit (GPU), an application-specific integrated circuit (ASIC), and a programmable logic device. The programmable logic device includes, for example, a simple programmable logic device (SPLD), a complex programmable logic device (CPLD), and a field-programmable gate array (FPGA).
The processor reads and executes a computer program stored in the storage unit 20B to implement the processing unit 20A. Instead of storing the computer program in the storage unit 20B, the computer program may be directly incorporated in the circuit of the processor. In that case, the processor reads and executes the computer program incorporated in the circuit to implement the processing unit 20A.
The following describes functions of the processing unit 20A.
The acquisition unit 21 acquires information including, for example, own vehicle information, second vehicle information, route information, and map information from outside the drive control device 20.
The own vehicle information includes at least position information and speed information on an own vehicle. For example, the position information on the own vehicle is acquired, for example, by identifying the current coordinates of the vehicle using a global navigation satellite system (GNSS), and further identifying a direction of the vehicle using the sensors. The speed information on the own vehicle is acquired from, for example, the sensors 10C mounted on the vehicle.
The second vehicle information includes the position information and the speed information on a second vehicle present at the periphery of the own vehicle. The second vehicle information is calculated, for example, based on a relative positional relation and a relative speed with respect to the own vehicle that are obtained from the sensor 10B. Alternatively, the second vehicle information is calculated, for example, based on information transmitted through vehicle-to-vehicle communication from the second vehicle present at the periphery to the own vehicle.
The map information includes, for example, coordinates of roads, positions of intersections, junctions on roads, branch points, traffic sign information, road surface marking information, road networks, and road work information.
The route information is indicated road segment by road segment. In the example of
Referring back to
The lane recommendation degree is information representing how desirable the travel of the own vehicle is in order to reach the destination point 102 on the planned travel route. For example, the lane recommendation degree is calculated as a reciprocal of a distance from the current position to a lane to be traveled. Alternatively, for example, the lane recommendation degree may be weighted corresponding to a distance from the current position of the own vehicle to the branch point.
The own vehicle cannot reach the destination located down a lane 423 unless the own vehicle travels in the lane 423 in the road segment 411. Therefore, the own vehicle needs to travel in the lane 422 at the time of reaching the branch point. In this case, the calculation unit 22 calculates the lane recommendation degree r of the lane 422 corresponding to a distance l from the current position of the own vehicle to the branch point. The own vehicle is sufficiently distant from the branch point at the point A of
When the lane recommendation degree r is calculated, the calculation may take into account a driving manner of whether an overtaking operation should be made from the right side or the left side of an overtaken mobile object. For example, when the overtaking operation is to be made, the calculation unit 22 calculates a lane recommendation degree r2 of a lane on the right side of the lane traveled by the own vehicle to be higher than a lane recommendation degree r1 of a lane on the left side of the lane traveled by the own vehicle.
The calculation unit 22 calculates lane attribute information representing the lane recommendation degree r based on the route information, and supplies the lane attribute information to the determination unit 23. Through this processing, when the determination unit 23 determines at least one of the travel lane and the speed, the determination unit 23 can determine the travel lane (speed) taking into account the lane to be traveled.
At the point B of
The calculation unit 22 calculates the lane attribute information representing the propriety of traveling based on the own vehicle information, the second vehicle information, and the map information, and supplies the lane attribute information to the determination unit 23. Through this processing, when the determination unit 23 determines at least one of the travel lane and the speed of the own vehicle, the determination unit 23 can determine the travel lane (speed) avoiding a collision and taking into account the safety.
For example, in
The calculation unit 22 calculates the lane attribute information representing the target speed based on the own vehicle information, the second vehicle information, and the map information, and supplies the target speed to the determination unit 23. Through this processing, when the determination unit 23 determines at least one of the travel lane and the speed of the own vehicle, the determination unit 23 can determine the travel lane (speed) taking into account a travel efficiency.
Referring back to
The determination unit 23 trains the machine learning model, for example, using reinforcement learning. For example, a difference from the target speed calculated by the calculation unit 22 is used as a reward in the learning. The machine learning model determines at least one of the travel lane and the speed based on, for example, the own vehicle information and the second vehicle information acquired by the acquisition unit 21, and on, for example, the propriety of traveling calculated by the calculation unit 22, without selecting, for example, zones where no lanes are present, lanes where risk of collision with another vehicle is present, and lanes that are untravelable because road work is under way. As a result, efficient travel can be achieved while guaranteeing safety.
In the reinforcement learning, the difference from the target speed and the distance to the destination are used as the reward, and the machine learning model receives the lane recommendation degree and the target speed calculated by the calculation unit 22. Through this processing, at least one of the travel lane and the speed can be determined taking into account the route information. As a result, the own vehicle can reach the destination while keeping the efficient travel. Specifically, for example, when the second vehicle 106 traveling at a lower speed than that of the own vehicle is present in front of the own vehicle in the lane to be traveled, the travel lane and the speed can be determined such that the own vehicle once moves away from the lane to be traveled, and after overtaking the vehicle 106 traveling at a lower speed, returns to the lane to be traveled.
For example, the number of times of collision, the distance from the lane to be traveled, and the number of times of lane change may be used as the reward in the reinforcement learning.
Example of Drive Control Method
Then, based on the own vehicle information, the second vehicle information, the route information, and the map information, the calculation unit 22 calculates the lane attribute information including at least one of the lane recommendation degree r of each of the lanes, the propriety of traveling each of the lanes, and the target speed in each of the lanes that are included in the lane information (Step S2).
Then, using the machine learning model that receives the own vehicle information, the second vehicle information, the route information, the map information, and the lane attribute information, and outputs at least one of the travel lane and the speed, the determination unit 23 determines at least one of the travel lane and the speed of the own vehicle within a range in which safety is guaranteed (Step S3).
Effect of First Embodiment
The above-described drive control device 20 according to the first embodiment can determine the travel lane and the speed while ensuring both the safety and the travel efficiency in the automated driving. Specifically, a minimum level of safety through the rule-based approach can be guaranteed by supplying the lane attribute information calculated by the calculation unit 22 to the machine learning model. The determination unit 23 can determine a driving behavior providing a good travel efficiency through a leaning-based approach by determining at least one of the travel lane and the speed of the own vehicle using the machine learning model.
The following describes a second embodiment. In the description of the second embodiment, the same description as that of the first embodiment will not be repeated, and portions different from those of the first embodiment will be described.
In the first embodiment, the information (the own vehicle information, the second vehicle information, the route information, and the map information) output by the acquisition unit 21 and the lane attribute information output by the calculation unit 22 are supplied as they are to the determination unit 23. In the second embodiment, a case will be described where, in order to make the learning more efficient, an image is generated from the information output by the acquisition unit 21 and the calculation unit 22, and the image is supplied to the machine learning model.
Example of Functional Configuration
The processing unit 20A includes the acquisition unit 21, the calculation unit 22, the determination unit 23, and a generation unit 24. In the second embodiment, the generation unit 24 is further added.
The generation unit 24 generates one or more images that represent, by pixel values, at least one of the propriety of traveling, the lane recommendation degree, and the target speed at the periphery of the own vehicle (mobile object 10) based on the own vehicle information, the second vehicle information, the route information, the map information, and the lane attribute information. The generation unit 24 uses at least one piece of the lane attribute information output by the calculation unit 22 to generate at least one image. The generation unit 24 may use a plurality of attribute values to generate a plurality of images, and may supply the images to the determination unit 23.
In the images of
In the images of
As described above, in the drive control device 20-2 according to the second embodiment, the generation unit 24 generates one or more images that represent, by pixel values, at least one of the propriety of traveling, the lane recommendation degree, and the target speed at the periphery of the own vehicle (mobile object 10) based on the own vehicle information, the second vehicle information, the route information, the map information, and the lane attribute information. The determination unit 23 receives the input of the own vehicle information, the second vehicle information, the route information, the map information, and the lane attribute information via the one or more images.
Thus, the drive control device 20-2 according to the second embodiment can make the learning of the machine learning model more efficient by making the input to the machine learning model in the form of the image data.
Finally, an example of a hardware configuration of the drive control device 20 (20-2) according to each of the first and second embodiments will be described.
Example of Hardware Configuration
The drive control device 20 need not include the display device 204, the input device 205, and the communication device 206. For example, if the drive control device 20 is connected to a second device, the drive control device 20 may use a display function, an input function, and a communication function of the second device.
The control device 201 executes a computer program read from the auxiliary storage device 203 into the main storage device 202. The control device 201 is one or a plurality of processors such as CPUs. The main storage device 202 is a memory such as a read-only memory (ROM) and a RAM. The auxiliary storage device 203 is, for example, a memory card and/or a hard disk drive (HDD).
The display device 204 displays information. The display device 204 is, for example, a liquid crystal display. The input device 205 receives input of the information. The input device 205 is, for example, hardware keys. The display device 204 and the input device 205 may be, for example, a liquid crystal touch panel that has both the display function and the input function. The communication device 206 communicates with another device.
A computer program to be executed by the drive control device 20 is stored as a file in an installable format or an executable format on a computer-readable storage medium, such as a compact disc read-only memory (CD-ROM), a memory card, a compact disc-recordable (CD-R), or a digital versatile disc (DVD), and is provided as a computer program product.
The computer program to be executed by the drive control device 20 may be stored on a computer connected to a network such as the Internet, and provided by being downloaded through the network. The computer program to be executed by the drive control device 20 may be provided through the network such as the Internet without being downloaded.
The computer program to be executed by the drive control device 20 may be provided by being incorporated into, for example, a ROM in advance.
The computer program to be executed by the drive control device 20 has a module configuration including functions implementable by the computer program among the functions of the drive control device 20.
The functions to be implemented by the computer program are loaded into the main storage device 202 by causing the control device 201 to read the computer program from a storage medium such as the auxiliary storage device 203 and execute the computer program. That is, the functions to be implemented by the computer program are generated in the main storage device 202.
Some of the functions of the drive control device 20 may be implemented by hardware such as an IC. The IC is a processor that performs, for example, dedicated processing.
When a plurality of processors are used to implement the functions, each of the processors may implement one of the functions, or may implement two or more of the functions.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.