Control device, control method, and program

The control device uses an occupancy grid diagram to detect and expand obstacle regions, preventing collisions by generating safe navigation paths, addressing the issue of obstacle avoidance in autonomous systems.

JP7738616B2Active Publication Date: 2025-09-12HONDA MOTOR CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023170069
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-09-29
Publication Date
2025-09-12
Estimated Expiration
2043-09-29

AI Technical Summary

Technical Problem

Conventional systems fail to prevent moving objects from colliding with obstacles, leading to potential contact.

Method used

A control device that generates an occupancy grid diagram to identify objects around a moving body, expands regions with detected obstacles, and generates paths to avoid these regions, using corner detection and expansion techniques to ensure safe navigation.

Benefits of technology

Prevents collisions by accurately mapping obstacles and generating paths that avoid contact, enhancing safety and reliability in autonomous navigation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007738616000001
    Figure 0007738616000001
  • Figure 0007738616000002
    Figure 0007738616000002
  • Figure 0007738616000003
    Figure 0007738616000003
Patent Text Reader

Abstract

To prevent a moving body from coming into contact with a corner of an object with a small curvature.SOLUTION: A control device includes: a recognition section that recognizes a position of an object present around the moving body on the basis of an image obtained by imaging a situation around the moving body; an occupancy grid diagram generation section that generates an occupancy grid diagram including a plurality of grids on the basis of the position of the object present around the moving body; and a route generation section that generates a route, which the moving body follows, on the basis of the occupancy grid diagram. The occupancy grid diagram generation section determines whether the object is present for each of the plurality of grids in the occupancy grid diagram on the basis of the position of the object present around the moving body, and expands a first region including the grid in which it is determined that the object is present.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a control device, a control method, and a program. [Background technology]

[0002] A mobile object that autonomously moves to a predetermined destination is known. In addition, a technique has been proposed in which an occupancy grid map is created consisting of stochastically distributed grid points by sensing the distance to an object such as an obstacle, and the thickness of the object in the occupancy grid map is increased based on the radius or size of the mobile object, thereby creating a configuration space map (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-47095 Summary of the Invention [Problem to be solved by the invention]

[0004] In conventional technology, there are cases where a moving object comes into contact with an object.

[0005] The present invention has been made in consideration of the above circumstances, and one of its objects is to provide an information processing system that can prevent a moving body from coming into contact with an object. [Means for solving the problem]

[0006] The control device, control method, and program according to the present invention employ the following configuration. (1): A control device according to one embodiment of the present invention includes a recognition unit that recognizes the positions of objects present around a moving body based on an image capturing the situation around the moving body; an occupation grid diagram generation unit that generates an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving body; and a path generation unit that generates a path along which the moving body should proceed based on the occupation grid diagram, wherein the occupation grid diagram generation unit determines whether or not an object exists for each of a plurality of grids in the occupation grid diagram based on the positions of objects present around the moving body, and expands a first region that includes a grid in which it is determined that an object exists.

[0007] (2) In the above aspect (1), the occupied grid diagram generating unit detects corners of the first region and expands the corners in the occupied grid diagram.

[0008] (3): In the above aspect (2), the path generation unit generates a path for the moving body to follow in a second area that does not include the first area based on the occupied grid diagram with the corners expanded, and the control device further includes a drive control unit that controls a drive device that drives the moving body so that the moving body moves along the path.

[0009] (4) In the above aspect (2), the occupied grid diagram generating unit expands the corner by placing a regular polygonal area at the position of the corner.

[0010] (5): In the above aspect (1), when a second lattice different from the first lattice in which an object is determined to exist exists within a first range centered on the first lattice in which an object is determined to exist, the occupied grid diagram generating unit linearly expands the first region by determining that an object exists in the region connecting the first lattice and the second lattice with a straight line.

[0011] (6): In the above aspect (2), the occupied grid diagram generating unit determines whether the third grid is the corner or not based on the proportion of the first area within a second range centered on the third grid in which an object is determined to exist.

[0012] (7): In the aspect (6) above, the occupied grid diagram generating unit determines that the third grid is not the corner if the ratio is equal to or greater than a first threshold, determines that the third grid is the corner if the ratio is less than a second threshold that is smaller than the first threshold, and calculates a correlation coefficient based on the coordinates of each of the multiple grids included in the first region within the second range if the ratio is less than the first threshold and equal to or greater than the second threshold, and determines whether the third grid is the corner based on the correlation coefficient.

[0013] (8): In the aspect (2) above, when the image of multiple frames is captured, the occupied grid diagram generating unit determines whether each of the multiple grids is a corner across the multiple frames, and detects as the corner a grid that has been determined to be a corner a predetermined number of times or more.

[0014] (9): In the above aspect (2), the path generation unit sets a position on the path that will be a subgoal, and the occupation grid diagram generation unit expands the corners that are within a predetermined range from the subgoal, but does not expand the corners that are outside the predetermined range from the subgoal.

[0015] (10): In the above aspect (2), the occupied grid diagram generating unit expands the corner by placing a regular polygon area at the position of the corner, and the path generating unit incorporates the vertices of the regular polygon into the path.

[0016] (11): A control method according to one embodiment of the present invention is a control method in which a computer recognizes the positions of objects present around a moving body based on an image capturing the situation around the moving body, generates an occupation grid diagram including a plurality of grids based on the positions of the objects present around the moving body, generates a path for the moving body to follow based on the occupation grid diagram, determines whether or not an object exists for each of the plurality of grids in the occupation grid diagram based on the positions of the objects present around the moving body, and expands a first region including a grid in which it is determined that an object exists.

[0017] (12): A program according to one embodiment of the present invention causes a computer to execute the following processes: recognizing the positions of objects present around a moving body based on an image capturing the situation around the moving body; generating an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving body; generating a path for the moving body to follow based on the occupation grid diagram; determining whether or not an object exists in each of the plurality of grids in the occupation grid diagram based on the positions of objects present around the moving body; and expanding a first region including a grid in which it is determined that an object exists. [Effects of the Invention]

[0018] According to the aspects (1) to (12), it is possible to prevent the moving body from coming into contact with the object. [Brief explanation of the drawings]

[0019] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration of a mobile body system including a mobile body. [Figure 2] FIG. [Figure 3] FIG. 2 is a diagram illustrating an example of a functional configuration of a moving body. [Figure 4] FIG. 10 is a diagram showing an example of an occupation grid diagram. [Figure 5] FIG. 10 is a diagram showing an example of a scanning array. [Figure 6]FIG. 10 is a diagram showing an example of an occupied grid diagram subjected to linear expansion processing. [Figure 7] FIG. 10 is a diagram showing an example of a grid diagram within a second range centered on a third grid. [Figure 8] FIG. 10 is a diagram illustrating an example of a corner detection process. [Figure 9] FIG. 10 is a diagram showing an example of a path along which a moving object moves to a subgoal. [Figure 10] FIG. 10 is a diagram illustrating an example of corner expansion processing. [Figure 11] FIG. 10 is a diagram showing an example of an occupied grid map in which a corner expansion process is performed after the first region is expanded. [Figure 12] 4 is an example of a flowchart illustrating a process executed by a control device. [Figure 13] FIG. 10 is a diagram showing an example of a route to a destination in the second embodiment. [Figure 14] FIG. 14 is an enlarged view of the vicinity of the corner in FIG. 13. [Figure 15] FIG. 10 is a diagram illustrating an example of a plurality of lattice points on a first polygon. [Figure 16] FIG. 10 is a diagram illustrating corner detection processing in the second embodiment. [Figure 17] FIG. 10 is a diagram showing an example of a situation in which a regular polygonal area is placed at the position of a lattice point determined to be a corner. DETAILED DESCRIPTION OF THE INVENTION

[0020] Hereinafter, with reference to the drawings, embodiments of a control device, a control method, and a program of the present invention will be described. The control device of the present invention controls a drive device of a mobile object to move the mobile object. The mobile object of the present invention autonomously moves in an area where pedestrians walk. The area where pedestrians walk includes sidewalks, public open spaces, floors within buildings, and may also include roadways. In the following description, it is assumed that no human is on the mobile object, but a human may also be on the mobile object. For example, the mobile object may move slightly ahead of the user while heading toward a predetermined destination, so as to prevent other pedestrians who may obstruct the user's movement from getting too close to the user (i.e., to create a path for the user). Note that such an operation need not be performed constantly, but may be performed temporarily. For example, when the mobile object is traveling alongside or pursuing the user and detects a predetermined situation (e.g., the presence of an obstacle or traffic congestion) in the user's direction of travel, the mobile object may temporarily lead the user by executing the algorithm of the present invention.

[0021] First Embodiment 1 is a diagram showing an example of the configuration of a mobile system 1 including a mobile object 100. The mobile system 1 includes, for example, one or more terminal devices 2, a management device 10, an information providing device 20, and one or more mobile objects 100. These communicate with each other, for example, via a network NW. The network NW is, for example, any network such as a LAN, a WAN, or an internet line.

[0022] [Terminal Device] The terminal device 2 is, for example, a computer device such as a smartphone, a tablet terminal, etc. For example, based on a user's operation, the terminal device 2 requests the provision of authority to use the mobile object 100 from the management device 10, and obtains information indicating that use has been permitted.

[0023] [Management device] The management device 10 is a computer that grants the user of the terminal device 2 the authority to use the mobile object 100 in response to a request from the terminal device 2 and manages reservations for use of the mobile object 100. The management device 10 generates and manages, for example, schedule information that associates pre-registered user identification information with the date and time of reservations for use of the mobile object 100. Note that if there is no need to grant authority to users or manage reservations, the management device 10 may be omitted.

[0024] [Information provision device] The information providing device 20 is a computer that provides map information to the mobile object 100. For example, the information providing device 20 acquires location information indicating the location of the mobile object 100 from the mobile object 100, and provides map information that is a map of the area around the mobile object 100 to the mobile object 100.

[0025] [Moving object] 2 is a perspective view showing the moving body 100. In the following explanation, the forward direction of the moving body 100 is the positive x-direction, the backward direction of the moving body 100 is the negative x-direction, the width direction of the moving body 100, which is the left direction based on the positive x-direction, the right direction based on the positive y-direction, and the height direction of the moving body 100, which is a direction perpendicular to the x-direction and y-direction, is the positive z-direction.

[0026] The mobile body 100 includes, for example, a base body 110, a door unit 112 provided on the base body 110, and wheels (first wheel 120, second wheel 130, and third wheel 140) attached to the base body 110. For example, a user can open the door unit 112 to put luggage into a storage unit provided on the base body 110 or take luggage out of the storage unit. The first wheel 120 and the second wheel 130 are driving wheels, and the third wheel 140 is an auxiliary wheel (driven wheel). The mobile body 100 may move using a configuration other than wheels, such as caterpillars.

[0027] A cylindrical support 150 extending in the positive z direction is provided on the surface of the base 110 facing the positive z direction. A camera 180 that captures images of the surroundings of the moving body 100 is provided on the end of the support 150 facing the positive z direction. The position at which the camera 180 is provided may be any position different from the above.

[0028] Camera 180 is, for example, a camera that can capture images of the periphery of moving body 100 at a wide angle (for example, 360 degrees). Camera 180 may include multiple cameras. Camera 180 may be realized by combining, for example, multiple 120-degree cameras or multiple 60-degree cameras.

[0029] 3 is a diagram showing an example of the functional configuration of the mobile object 100. In addition to the functional configuration shown in FIG. 2, the mobile object 100 further includes a communication unit 190, a control device 200, and a drive device 300. The communication unit 190 is a communication interface for communicating with the terminal device 2, the management device 10, or the information providing device 20.

[0030] [Drive unit] The drive device 300 includes a first motor 302, a second motor 304, a battery 306, a brake device 308, and a steering device 310. The first motor 302 and the second motor 304 are operated by power supplied to the battery 306. The first motor 302 drives the first wheel 120, and the second motor 304 drives the second wheel 130. The first motor 302 may be an in-wheel motor provided in the wheel of the first wheel 120, and the second motor 304 may be an in-wheel motor provided in the wheel of the second wheel 130.

[0031] The braking device 308 outputs a braking torque to each wheel based on an instruction from the control device 200. The steering device 310 includes an electric motor. The electric motor applies a force to a rack and pinion mechanism based on an instruction from the control device 200, for example, to change the direction of the first wheel 120 or the second wheel 130, thereby changing the course of the moving body 100.

[0032] [Control device] The control device 200 includes, for example, a position identification unit 202, an information processing unit 204, a recognition unit 206, an occupancy grid diagram generation unit 208, a path generation unit 210, a drive control unit 212, and a storage unit 220. The position identification unit 202, the information processing unit 204, the recognition unit 206, the occupancy grid diagram generation unit 208, the path generation unit 210, and the drive control unit 212 are realized by, for example, a hardware processor such as a CPU (Central Processing Unit) executing a program (software). Some or all of these components may be realized by hardware (including circuitry) such as an LSI (Large Scale Integration), an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a GPU (Graphics Processing Unit), or may be realized by a combination of software and hardware. The program may be stored in advance in a storage device (a storage device with a non-transitory storage medium) such as an HDD (Hard Disk Drive) or flash memory, or may be stored in a removable storage medium (a non-transitory storage medium) such as a DVD or CD-ROM, and installed by inserting the storage medium into a drive device.

[0033] The storage unit 220 is realized by a storage device such as a HDD, flash memory, or RAM (Random Access Memory). The storage unit 220 stores information such as control information 222, map information 224, and an occupancy grid diagram 226. The control information 222 is a control program executed by the drive control unit 212 to control the behavior of the moving object 100. The map information 224 is, for example, map information about the periphery of the moving object 100. The occupancy grid diagram 226 includes multiple grids and is a diagram showing the positions of objects in the periphery of the moving object 100. Details of the occupancy grid diagram 226 will be described later.

[0034] Note that some or all of the functional configuration included in the control device 200 may be included in another device. For example, the other device and the moving object 100 may communicate with each other and cooperate to control the moving object 100.

[0035] The position identification unit 202 identifies the position of the mobile object 100. The position identification unit 202 acquires position information of the mobile object 100 using a GPS (Global Positioning System) device (not shown) built into the mobile object 100. The position information may be, for example, two-dimensional map coordinates or latitude and longitude information. The position identification unit 202 may also estimate the position of the mobile object 100 simultaneously with the creation of an environmental map by using a camera image captured by the camera 180 or a technique such as so-called SLAM using a sensor such as Lidar.

[0036] The information processing unit 204 manages information acquired from the terminal device 2, the management device 10, or the information providing device 20. For example, the information processing unit 204 transmits the location information acquired by the location identification unit 202 to the information providing device 20, thereby acquiring map information 224, which is a map of the area around the mobile object 100, from the information providing device 20. The information processing unit 204 stores the map information 224 acquired from the information providing device 20 in the storage unit 220.

[0037] The recognition unit 206 recognizes the positions (distance from the mobile body 100 and direction relative to the mobile body 100) and states such as speed and acceleration of objects present around the mobile body 100, for example, based on images captured by the camera 180. Objects include traffic participants and obstacles present in facilities or on roads. The mobile body 100 may be provided with a detection unit other than a camera, such as a radar device or LIDAR. In this case, the recognition unit 206 recognizes the situation around the mobile body 100 using the detection results of the radar device or LIDAR instead of (or in addition to) images.

[0038] The occupied grid diagram generation unit 208 generates an occupied grid diagram 226 including a plurality of grids based on the positions of objects present around the moving object recognized by the recognition unit 206. A specific method for generating the occupied grid diagram 226 will be described later.

[0039] The route generation unit 210 ascertains the location of the destination specified by the user based on the map information 224. Furthermore, the route generation unit 210 generates a route to be taken by the mobile object 100 based on the occupancy grid diagram 226 generated by the occupancy grid diagram generation unit 208. The route may be generated, for example, as a series of multiple route points spaced at a predetermined distance apart. The route generation unit 210 generates, for example, a route to head toward the destination while avoiding surrounding objects.

[0040] The drive control unit 212 controls the drive device 300 (first motor 302, second motor 304, braking device 308, and steering device 310) attached to the moving body 100 so that the moving body 100 moves along the path generated by the path generation unit 210.

[0041] [Generation of occupancy grid diagram] 4 is a diagram showing an example of an occupancy grid diagram 226. The occupancy grid diagram 226 includes a plurality of grids and shows the positions of objects present in the vicinity of the mobile body 100. The center 228 of the occupancy grid diagram 226 corresponds to the current location of the mobile body 100. The occupancy grid diagram generation unit 208 determines whether or not an object exists in each of the plurality of grids in the occupancy grid diagram 226, based on the positions of objects present in the vicinity of the mobile body recognized by the recognition unit 206. In the occupancy grid diagram 226 shown in FIG. 4, black grids 230 are grids in which it has been determined that an object exists.

[0042] Next, the occupied grid diagram generation unit 208 performs linear expansion processing based on the positions of the plurality of grids where it is determined that an object exists. The linear expansion processing is a processing for linearly expanding the first region including the grids where it is determined that an object exists. The linear expansion processing will be described below.

[0043] FIG. 5 is a diagram showing an example of the scanning array 232. The scanning array 232 is an array used in the linear expansion process. The scanning array 232 is an array that indicates an area within a first range centered on a first lattice where it has been determined that an object exists. In the example of FIG. 5, the scanning array 232 is an array that indicates an area within a radius r1 (within the first range) from the center of the first lattice where it has been determined that an object exists. Note that the first range is not limited to this, and may be, for example, an area included in an N×N (N: natural number) lattice diagram centered on the first lattice where it has been determined that an object exists.

[0044] Specifically, the occupied grid diagram generator 208 selects one of the plurality of grids 230 in which it has been determined that an object exists as a first grid, and creates a scanning array 232 centered on the first grid. Next, the occupied grid diagram generator 208 determines whether or not a second grid, different from the first grid, in which it has been determined that an object exists, exists within the created scanning array 232. If a second grid, different from the first grid, in which it has been determined that an object exists, exists within the scanning array 232, the occupied grid diagram generator 208 determines that an object exists in the region connecting the first grid and the second grid with a straight line, thereby linearly expanding the first region.

[0045] FIG. 6 is a diagram showing an example of an occupied grid diagram 226 after linear expansion processing. Grid 234 is a grid of the area expanded by linear expansion processing. In this way, when a second grid different from the first grid in which an object is determined to exist exists within a first range (within the range of the scanning array 232) centered on a first grid in which an object is determined to exist, the occupied grid diagram generation unit 208 linearly expands the first area (the area including the grid in which the object is determined to exist) by determining that an object exists in the area connecting the first grid and the second grid with a straight line. The occupied grid diagram generation unit 208 performs linear expansion processing on each of the multiple grids in which an object is determined to exist in FIG. 4. This prevents the mobile object 100 from coming into contact with an object when attempting to pass through a gap between objects when the distance between the objects is short.

[0046] Next, the occupied grid diagram generating unit 208 executes a corner determination process to determine a corner in the first region (a region including a grid determined to have an object). Specifically, the occupied grid diagram generating unit 208 determines whether the third grid is a corner based on the proportion of the first region (a region including a grid determined to have an object) within a second range centered on the third grid determined to have an object. The corner determination process will be described below using a specific example.

[0047] 7 is a diagram showing an example of a grid diagram within the second range centered on the third grid. In the example shown in Fig. 7, the occupied grid diagram generation unit 208 extracts a 5x5 grid diagram centered on the third grid where it has been determined that an object exists, as a grid diagram within the second range, from the occupied grid diagram 226. Note that the second range is not limited to this, and may be, for example, an area included in a circle of a predetermined radius centered on the third grid.

[0048] If the proportion R of the first region within the second range centered on the third grid point where it has been determined that an object exists is equal to or greater than a first threshold value TH1 (e.g., 0.7), the occupied grid diagram generator 208 determines that the third grid point is not a corner. For example, in the case of the grid point G1 in FIG. 7, the proportion R is 19 / 25=0.76. In this case, because the proportion R is equal to or greater than the first threshold value TH1 (0.7), the occupied grid diagram generator 208 determines that the third grid point located at the center of the grid point G1 is not a corner. In fact, the third grid point located at the center of the grid point G1 is surrounded by grid points determined to have an object, and is therefore not a corner.

[0049] Furthermore, if the proportion R of the first region within the second range centered on the third grid where it has been determined that an object exists is less than a second threshold TH2 (e.g., 0.2) that is smaller than the first threshold TH1, the occupied grid diagram generator 208 determines that the third grid is a corner. For example, in the case of grid diagram G2 in FIG. 7, the proportion R is 3 / 25=0.12. In this case, because the proportion R is less than the second threshold TH2 (0.2), the occupied grid diagram generator 208 determines that the third grid located at the center of grid diagram G2 is a corner. In fact, the third grid located at the center of grid diagram G2 is a corner because it is located at the edge of the first region.

[0050] For example, in the case of grid diagram G3 in FIG. 7, the ratio R = 1 / 25 = 0.04. In this case, because the ratio R is less than the second threshold TH2 (0.2), the occupied grid diagram generation unit 208 determines that the third grid point located at the center of grid diagram G3 is a corner. Although the third grid point located at the center of grid diagram G3 is not strictly a corner because it is surrounded by grid points determined to have no objects, it is necessary to perform corner expansion processing, which will be described later, on this third grid point. Therefore, the occupied grid diagram generation unit 208 also determines that the third grid point located at the center of grid diagram G3 is a corner.

[0051] Furthermore, if the proportion R of the first region within the second range centered on the third grid where it is determined that an object exists is less than the first threshold TH1 (0.7) and greater than or equal to the second threshold TH2 (0.2), the occupied grid diagram generation unit 208 calculates a correlation coefficient based on the coordinates of each of the multiple grids included in the first region within the second range, and determines whether the third grid is a corner based on the correlation coefficient.

[0052] For example, in the case of grid diagram G4 in FIG. 7, the ratio R = 6 / 25 = 0.24. In this case, because the ratio R is less than the first threshold TH1 (0.7) and greater than or equal to the second threshold TH2 (0.2), the occupied grid diagram generator 208 calculates a correlation coefficient based on the coordinates of each of the multiple grids included in the first region within the second range. If the correlation is strong as shown in grid diagram G4 in FIG. 7, the occupied grid diagram generator 208 determines that the third grid is not a corner. In fact, the third grid located at the center of grid diagram G4 is not a corner because it is located on a straight line.

[0053] For example, in the case of grid diagram G5 in Figure 7, the ratio R = 8 / 25 = 0.32. In this case, the ratio R is less than the first threshold TH1 (0.7) and greater than or equal to the second threshold TH2 (0.2), so the occupied grid diagram generator 208 calculates the correlation coefficient based on the coordinates of each of the multiple grids included in the first region within the second range. When the correlation is weak as shown in grid diagram G5 in Figure 7, the occupied grid diagram generator 208 determines that the third grid is a corner.

[0054] As described above, the occupied grid diagram generating unit 208 determines whether the third grid is a corner of the first region based on the proportion R of the first region within the second range centered on the third grid where it has been determined that an object exists, and the correlation coefficient calculated based on the coordinates of each of the multiple grids included in the first region within the second range. This allows the occupied grid diagram generating unit 208 to determine with high accuracy whether the third grid is a corner of the first region. Note that the occupied grid diagram generating unit 208 performs the corner determination process for each of the multiple grids where it has been determined that an object exists in FIG. 6.

[0055] Next, the occupied grid diagram generating unit 208 executes corner detection processing to detect corners in the first region (a region including a grid in which it has been determined that an object exists) based on the result of the corner determination processing. Details of the corner detection processing will be described below.

[0056] FIG. 8 is a diagram showing an example of corner detection processing. When multiple frames of images are captured by camera 180, occupied grid diagram generation unit 208 determines whether each of multiple grids across the multiple frames is a corner. As shown in FIG. 8, occupied grid diagram generation unit 208 obtains the results of corner determination processing for occupied grid diagrams 226 corresponding to each of the first frame F1, second frame F2, third frame F3, .... In FIG. 8, grid 236 is a grid determined to be a corner in occupied grid diagram 226 corresponding to first frame F1.

[0057] The occupied grid diagram generator 208 counts the number of times each of the multiple grids included in the occupied grid diagram 226 has been determined to be a corner, based on the results of the corner determination process over multiple frames. The occupied grid diagram generator 208 detects a grid that has been determined to be a corner a predetermined number of times or more as a corner of the first region. In FIG. 8 , grid 238 is a grid that indicates a corner detected by the occupied grid diagram generator 208. In this way, the occupied grid diagram generator 208 detects corners based on the results of the corner determination process over multiple frames, and therefore can detect corners with high accuracy.

[0058] The occupancy grid diagram generator 208 expands the corners detected in the occupancy grid diagram 226. The path generator 210 generates a path for the mobile object 100 to follow in a second region that does not include the first region (a region that includes a grid in which it is determined that an object exists) based on the occupancy grid diagram 226 with the expanded corners. The drive controller 212 controls the drive device 300 that drives the mobile object 100 so that the mobile object 100 moves along the path generated by the path generator 210.

[0059] Here, the occupancy grid diagram generation unit 208 expands corners in the occupancy grid diagram 226 in order to prevent the moving body 100 from coming into contact with an object near the corner. The path generated by the path generation unit 210 is a series of multiple path points (first path point, second path point, third path point, ...) that are arranged at a predetermined distance apart. When the moving body 100 moves toward the first path point, as the moving body 100 approaches the first path point, the path generation unit 210 deletes the first path point from the path before the moving body 100 reaches the first path point. As a result, the moving body 100 moves toward the second path point that is placed next to the first path point.

[0060] In this way, the moving object 100 cannot precisely pass through multiple path points included in the path generated by the path generation unit 210. For this reason, if the first path point is located near a corner with a small curvature, there is a possibility that the moving object 100 will come into contact with an object near the corner when the movement direction of the moving object 100 is switched from the first path point to the second path point. Therefore, in this embodiment, the occupancy grid diagram generation unit 208 executes corner expansion processing to expand corners detected in the occupancy grid diagram 226.

[0061] 9 is a diagram showing an example of a route for moving the moving body 100 to the subgoal SG. The route generation unit 210 sets the subgoal SG as a point to be passed through on the route from the current location 240 of the moving body 100 to the destination. Then, the route generation unit 210 generates a route for moving the moving body 100 to the subgoal SG. At this time, as shown in FIG. 9, a corner 242 of the first region (a region including a grid in which it is determined that an object exists) exists near the subgoal SG, so the occupied grid diagram generation unit 208 expands the corner 242.

[0062] 10 is a diagram showing an example of corner expansion processing. For example, the occupancy grid diagram generating unit 208 expands the corner 242 by placing a regular polygonal area at the position of the corner 242. In the example shown in FIG. 10, the occupancy grid diagram generating unit 208 expands the corner 242 by placing a regular hexagon 244 at the position of the corner 242, with the distance from the center to each vertex being r2. The regular polygon to be placed at the position of the corner 242 is not limited to a regular hexagon, but may be a regular M-gon (M is a natural number greater than or equal to 3). This makes it possible to prevent the moving body 100 from coming into contact with an object near the corner 242.

[0063] Note that performing corner expansion processing on all corners included in the occupied grid diagram 226 would increase the processing load on the occupied grid diagram generation unit 208. Therefore, the occupied grid diagram generation unit 208 expands corners within a predetermined range from the subgoal SG, but does not expand corners outside the predetermined range from the subgoal SG. This reduces the processing load on the occupied grid diagram generation unit 208 during corner expansion processing.

[0064] The occupied grid diagram generating unit 208 may perform a process of expanding the first region (a region including a grid in which it has been determined that an object exists) before performing the corner expansion process. For example, the occupied grid diagram generating unit 208 may expand the first region taking into consideration the size of the moving body 100. This makes it possible to more reliably prevent the moving body 100 from coming into contact with an object such as an obstacle.

[0065] Fig. 11 is a diagram showing an example of an occupied grid diagram 226 in which the first region has been expanded and then corner expansion processing has been performed. In the example of Fig. 11, the number of grids is small, so the corner expansion processing using the regular hexagon in Fig. 10 cannot be accurately represented, but in reality, the regular hexagon in Fig. 10 will be placed at the position of corner 242.

[0066] 11, each of the multiple grids included in the occupancy grid map 226 is classified into a first area A1 (an area including grids determined to have an object) and a second area A2 that does not include the first area A1. The path generation unit 210 generates a path for the mobile object 100 to follow in the second area A2 based on the occupancy grid map 226 with the corners expanded. The drive control unit 212 controls the drive device 300 so that the mobile object 100 moves along the path generated by the path generation unit 210.

[0067] [flowchart] 12 is an example of a flowchart showing processing executed by the control device 200. The processing according to this flowchart is started in response to a user operation setting a destination and issuing an instruction to start the operation of the moving object 100.

[0068] First, the recognition unit 206 recognizes the positions of objects present around the mobile object 100 based on an image capturing the situation around the mobile object 100 (step S100). For example, the recognition unit 206 recognizes the positions of objects present around the mobile object 100 based on an image captured by the camera 180.

[0069] Next, the occupancy grid diagram generation unit 208 determines whether or not an object exists in each of the multiple grids in the occupancy grid diagram 226, based on the positions of objects present around the moving body 100 (step S102). As a result, for example, the occupancy grid diagram 226 shown in Fig. 4 is generated. Thereafter, the occupancy grid diagram generation unit 208 performs a linear expansion process as shown in Fig. 6.

[0070] Next, the occupied grid diagram generating unit 208 detects corners of the first region including the grid in which it is determined that an object exists (step S104). As a result, for example, multiple corners are detected as shown in FIG.

[0071] Next, the occupied grid diagram generating unit 208 expands the corner in the occupied grid diagram 226 (step S106). For example, the occupied grid diagram generating unit 208 expands the corner by placing a regular polygon as shown in FIG. 10 at the position of the corner.

[0072] Next, the path generating unit 210 generates a path for the moving object 100 to follow in the second area A2 that does not include the first area A1, based on the corner-expanded occupied grid diagram 226 (step S108). Thereafter, the drive control unit 212 controls the drive device 300 so that the moving object 100 moves along the path generated by the path generating unit 210 (step S110).

[0073] Next, the control device 200 determines whether the moving object 100 has arrived at the destination (step S112). If it is determined that the moving object 100 has not arrived at the destination, the control device 200 returns the process to step S100. On the other hand, if it is determined that the moving object 100 has arrived at the destination, the control device 200 ends the process according to this flowchart.

[0074] As described above, the occupied grid diagram generating unit 208 of this embodiment determines whether an object exists in each of the multiple grids in the occupied grid diagram 226 based on the positions of objects present around the moving body 100. In addition, the occupied grid diagram generating unit 208 expands the first region including the grid in which it has been determined that an object exists. This allows the control device 200 of this embodiment to prevent the moving body 100 from coming into contact with the object.

[0075] Second Embodiment In the first embodiment described above, the occupancy grid diagram generating unit 208 expands the corner by placing a regular polygonal area at the corner position. On the other hand, in the second embodiment, the path generating unit 210 generates a path so that the mobile object 100 passes through the vertices of the regular polygon placed at the corner position. The second embodiment will be described in detail below.

[0076] 13 is a diagram showing an example of a route R1 to a destination in the second embodiment. As shown in FIG. 13, in an occupancy grid diagram 246, a grid in which an object is determined to exist by the occupancy grid diagram generation unit 208 is surrounded by a first polygon 248 and a second polygon 250. The route generation unit 210 generates a route R1 that does not pass inside the area surrounded by the first polygon 248 or the area surrounded by the second polygon 250 and has the shortest distance to the destination (goal) G. Note that the route R1 bends to the left at a corner 252 with a small curvature. For this reason, there is a possibility that the moving body 100 will come into contact with an object near the corner 252.

[0077] Fig. 14 is an enlarged view of the vicinity of corner 252 in Fig. 13. In Fig. 14, route R1 is a route generated by the route generation unit 210, and route R2 is a route that the moving object 100 actually passes through. As described above, when the moving object 100 moves toward a first route point included in route R1, as the moving object 100 approaches the first route point, the route generation unit 210 deletes the first route point from route R1 before the moving object 100 reaches the first route point. As a result, the moving object 100 moves toward a second route point that is located next to the first route point.

[0078] Therefore, the moving object 100 does not strictly pass through the multiple route points included in route R1, but moves along route R2. As shown in FIG. 14, route R2 passes more inward than route R1 (on the grid side where it is determined that an object exists). Therefore, when the moving object 100 moves along route R2, there is a possibility that the moving object 100 will come into contact with the object at point 254 in FIG. 14. Therefore, in this embodiment, the occupancy grid diagram generating unit 208 detects corners of the area (first area) surrounded by the first polygon 248, and places regular polygonal areas at the positions of the corners.

[0079] Fig. 15 is a diagram showing an example of a plurality of grid points P1 to P7 on a first polygon 248. As shown in Fig. 15, a grid in which an object is determined to exist by the occupied grid diagram generating unit 208 is surrounded by the first polygon 248. The first polygon 248 includes a plurality of grid points P1 to P7. The occupied grid diagram generating unit 208 determines whether each of the plurality of grid points P1 to P7 is a corner.

[0080] 16 is a diagram illustrating the corner detection process in the second embodiment. The occupation grid diagram generation unit 208 selects one grid point from among multiple grid points P1 to P7. The occupation grid diagram generation unit 208 then determines whether the angle Deg formed by two sides extending from the selected grid point is equal to or less than a predetermined angle (e.g., 100 degrees). The occupation grid diagram generation unit 208 then determines whether the lengths Dist1 and Dist2 of the two sides extending from the selected grid point are both equal to or less than a predetermined length (e.g., 1 m).

[0081] The occupancy grid diagram generator 208 determines that the selected grid point is a corner if the angle Deg is equal to or less than a predetermined angle and the lengths of the two sides Dist1 and Dist2 are both equal to or less than a predetermined length. For example, in the example shown in FIG. 15, assume that grid point P5 is determined to be a corner. Then, the occupancy grid diagram generator 208 places a regular polygonal area at the position of grid point P5 determined to be a corner.

[0082] FIG. 17 is a diagram illustrating an example of a situation in which a regular polygonal area is placed at the position of lattice point P5, which has been determined to be a corner. In the example illustrated in FIG. 17, a regular hexagonal area 258 is placed at the position of lattice point P5. The occupation grid diagram generating unit 208 places the regular hexagonal area 258 so that the center of the regular hexagon coincides with lattice point P5. The path generating unit 210 also incorporates the vertices of the regular hexagon placed at the position of lattice point P5 into the path R3 from the current location 244 of the mobile object 100 to the destination G. Note that, although the regular polygon placed at the position of lattice point P5 is a regular hexagon in this embodiment, this is not limiting. For example, the regular polygon placed at the position of lattice point P5 may be a regular M-gon (M is a natural number greater than or equal to 3).

[0083] 17, the path R3 generated by the path generation unit 210 passes through part of the outer periphery of the regular hexagonal region 258. On the other hand, the path R4 that the moving body 100 actually passes through passes more inward than the path R3 (on the side of the grid where it is determined that the object exists). However, because the regular hexagonal region 258 is located at the corner position, even if the moving body 100 moves along the path R4, the moving body 100 will not come into contact with the object near the corner.

[0084] As described above, the occupancy grid diagram generator 208 of this embodiment expands the corner by placing a regular polygonal area at the corner position. Furthermore, the path generator 210 incorporates the vertices of the regular polygon into the path R3. This allows the control device 200 of this embodiment to prevent the mobile body 100 from coming into contact with the corner of an object, such as an obstacle, that has a small curvature.

[0085] The above-described embodiment can be expressed as follows. a storage device storing a program; a hardware processor; The hardware processor executes the program stored in the storage device, Recognizing the positions of objects present around the moving body based on an image of the surroundings of the moving body; generating an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving body; generating a route for the moving body to follow based on the occupancy grid diagram; determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects present around the moving body; Expanding a first region including a lattice in which an object is determined to exist; Control device.

[0086] The above describes the form for carrying out the present invention using an embodiment, but the present invention is not limited to such an embodiment, and various modifications and substitutions can be made within the scope that does not deviate from the gist of the present invention. [Explanation of symbols]

[0087] 100 Mobile 200 control device 206 Recognition part 208 Occupancy grid diagram generation unit 210 Route generation unit 212 Drive control unit 214 Second Control Section 220 Storage section 226 Occupancy grid diagram 300 Drive Unit

Claims

1. a recognition unit that recognizes the positions of objects present around the moving body based on an image of the surroundings of the moving body; an occupied grid diagram generating unit that generates an occupied grid diagram including a plurality of grids based on the positions of objects present around the moving object; a path generation unit that generates a path along which the moving object should travel based on the occupancy grid diagram; The occupation grid diagram generating unit determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects present around the moving body; Expanding a first region including a lattice in which an object is determined to exist; Detecting corners of the first region; Expanding the corner in the occupancy grid diagram; Control device.

2. the path generation unit generates a path that the moving object should take in a second area that does not include the first area, based on the occupancy grid diagram with the corners expanded; a drive control unit that controls a drive device that drives the moving body so that the moving body moves along the path; The control device according to claim 1 .

3. the occupancy grid diagram generating unit expands the corner by arranging a regular polygonal area at the position of the corner; The control device according to claim 1 .

4. the occupied grid diagram generation unit determines whether the third grid point is the corner point or not, depending on the proportion of the first region within a second range centered on the third grid point where it is determined that an object exists. The control device according to claim 1 .

5. The occupation grid diagram generating unit If the ratio is equal to or greater than a first threshold, the third grid is determined to be not the corner; If the ratio is less than a second threshold value that is smaller than the first threshold value, the third grid point is determined to be the corner; if the ratio is less than the first threshold and equal to or greater than the second threshold, a correlation coefficient is calculated based on the coordinates of each of the plurality of grids included in the first region within the second range, and whether or not the third grid is the corner is determined based on the correlation coefficient. The control device according to claim 4.

6. when the images of a plurality of frames are captured, the occupied grid diagram generation unit determines whether each of the plurality of grids is the corner across the plurality of frames, and detects, as the corner, a grid that has been determined to be the corner a predetermined number of times or more. The control device according to claim 1 .

7. the path generation unit sets a position on the path that is a subgoal; the occupancy grid diagram generation unit expands the corners within a predetermined range from the subgoal, but does not expand the corners outside the predetermined range from the subgoal; The control device according to claim 1 .

8. the occupancy grid diagram generating unit expands the corner by arranging a regular polygonal area at the position of the corner; the path generation unit incorporates the vertices of the regular polygon into the path; The control device according to claim 1 .

9. A recognition unit that recognizes the positions of objects present around the moving body based on an image of the situation around the moving body; an occupied grid diagram generating unit that generates an occupied grid diagram including a plurality of grids based on the positions of objects present around the moving object; a path generation unit that generates a path along which the moving object should travel based on the occupancy grid diagram; The occupation grid diagram generating unit determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects present around the moving body; Expanding a first region including a lattice in which an object is determined to exist; When a second lattice different from the first lattice in which it has been determined that an object exists is present within a first range centered on the first lattice in which it has been determined that an object exists, the first region is linearly expanded by determining that an object exists in a region connecting the first lattice and the second lattice with a straight line. Control device.

10. The computer Recognizing the positions of objects present around the moving body based on an image of the surroundings of the moving body; generating an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving body; generating a route for the moving body to follow based on the occupancy grid diagram; determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects present around the moving body; Expanding a first region including a lattice in which an object is determined to exist; Detecting corners of the first region; Expanding the corner in the occupancy grid diagram; Control method.

11. A computer comprising: Recognizing the positions of objects present around the moving body based on an image of the surroundings of the moving body; generating an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving body; generating a route for the moving body to follow based on the occupancy grid diagram; determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects present around the moving body; Expanding a first region including a lattice in which an object is determined to exist; When a second lattice different from the first lattice in which it has been determined that an object exists is present within a first range centered on the first lattice in which it has been determined that an object exists, the first region is linearly expanded by determining that an object exists in a region connecting the first lattice and the second lattice with a straight line. Control method.

12. On the computer, A process of recognizing the positions of objects present around the moving body based on an image of the surroundings of the moving body; A process of generating an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving object; A process of generating a route to be taken by the moving object based on the occupancy grid diagram; a process of determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects existing around the moving object; A process of expanding a first region including a lattice in which it is determined that an object exists; detecting corners of the first region; expanding the corner in the occupancy grid diagram; A program that executes the following.

13. A computer comprising: A process of recognizing the positions of objects present around the moving body based on an image of the surroundings of the moving body; A process of generating an occupation grid diagram including a plurality of grids based on the positions of objects present around the moving object; A process of generating a route to be taken by the moving object based on the occupancy grid diagram; a process of determining whether or not an object exists in each of a plurality of grids in the occupancy grid diagram based on the positions of objects existing around the moving object; A process of expanding a first region including a lattice in which it is determined that an object exists; a process of linearly expanding the first region by determining that an object exists in a region connecting the first and second lattices with a straight line when a second lattice different from the first lattice in which the object is determined to exist exists within a first range centered on the first lattice in which the object is determined to exist; A program that executes the following.

Citation Information

Patent Citations

  • Method of dividing coverage area for robot and device thereof

    JP2008047095A

  • Information processing apparatus, information processing method, program, and system

    JP2020038631A

  • Method for mapping the environment of motor vehicles

    US20190361112A1

  • Method and system for free space detection in a cluttered environment

    US20200097013A1

  • Signal processing device, signal processing method, program, and moving device

    WO2021060018A1