Control device, control method, and program

By identifying the location of obstacles in the surrounding environment and generating a occupancy point map, the area around the obstacle is expanded, and the problem of moving objects contacting obstacles is solved, and the safe movement of the moving objects is achieved.

JP2025059773AActive Publication Date: 2025-04-10HONDA MOTOR CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the prior art, when the moving body automatically moves to a preset destination, it is prone to contact with obstacles.

Method used

By identifying the location of obstacles in the surrounding environment, a occupancy point map is generated and the area around the obstacle is expanded, and a path to avoid obstacles is generated so that the moving body can move safely.

Benefits of technology

It effectively avoids contact between the moving body and the obstacles, ensuring that the moving body can reach the destination safely and smoothly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025059773000001_ABST
    Figure 2025059773000001_ABST
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] Conventionally, a mobile object that moves autonomously to a preset destination is known. In addition, a technology has been proposed to create an occupancy grid map consisting of lattice points that are distributed probabilistically by sensing the distance to an object such as an obstacle, and to create a configuration space map by increasing the thickness of the object in the occupancy grid map based on the radius or size of the mobile object (for example, see Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2008-47095 A Summary of the Invention [Problem to be solved by the invention]

[0004] In conventional technology, there were cases where a moving object would come into contact with the moving body.

[0005] The present invention has been made in consideration of the above circumstances, and has as its object 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 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 occupancy grid diagram generating unit detects a corner of the first region and expands the corner in the occupancy grid diagram.

[0008] (3): In the above aspect (2), the path generation unit generates a path along which the moving body should proceed in a second area not including 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 a 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 a 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 or not the third grid is the corner depending on the proportion of the first region within a second range centered on the third grid in which it is determined that an object exists.

[0012] (7): In the above aspect (6), 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 a plurality of 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 or not the third grid is the corner based on the correlation coefficient.

[0013] (8): In the aspect of (2) above, when the images of multiple frames are 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 aspect of (2) above, the path generation unit sets a position on the path that becomes a subgoal, and 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.

[0015] (10): In the aspect (2) above, 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 positions of objects present around a moving body based on an image capturing the situation around the moving body, generates an occupation lattice diagram including a plurality of lattices based on the positions of the objects present around the moving body, generates a path to be followed by the moving body based on the occupation lattice diagram, determines whether or not an object exists for each of a plurality of lattices in the occupation lattice diagram based on the positions of the objects present around the moving body, and expands a first region including a lattice 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 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 to be taken by the moving body based on the occupation grid diagram; determining 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 expanding a first region including a grid in which it has been determined that an object exists. Effect of the Invention

[0018] According to aspects (1) to (12), it is possible to prevent the moving body from coming into contact with the object. [Brief description 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. [Diagram 2] FIG. [Diagram 3] FIG. 2 is a diagram illustrating an example of a functional configuration of a moving object. [Figure 4] FIG. 1 is a diagram showing an example of an occupation grid diagram. [Diagram 5] FIG. 1 is a diagram showing an example of a scanning array. [Figure 6]FIG. 13 is a diagram showing an example of an occupied lattice diagram on which a linear expansion process has been performed. [Figure 7] FIG. 13 is a diagram showing an example of a grid diagram within a second range centered on a third grid. [Figure 8] FIG. 11 is a diagram illustrating an example of a corner detection process. [Figure 9] FIG. 11 is a diagram showing an example of a path along which a moving object moves to a subgoal. [Figure 10] FIG. 13 is a diagram illustrating an example of a corner expansion process. [Figure 11] FIG. 13 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. 11 is a diagram showing an example of a route to a destination in a second embodiment. [Figure 14] FIG. 14 is an enlarged view of the vicinity of the corner in FIG. 13. [Figure 15] FIG. 4 is a diagram showing an example of a plurality of lattice points on a first polygon. [Figure 16] FIG. 11 is a diagram for explaining a corner detection process in the second embodiment. [Figure 17] 13 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. FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0020] Hereinafter, with reference to the drawings, an embodiment 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 moving body to move the moving body. The moving body in the present invention moves autonomously in an area where pedestrians walk. The area where pedestrians walk is a sidewalk, a public open space, a floor in a building, etc., and may include a roadway. In the following description, it is assumed that no person rides on the moving body, but a person may ride on the moving body. The moving body may, for example, move slightly ahead of the user while heading toward a predetermined destination, so as to prevent other pedestrians who may hinder 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 may not be performed all the time, but may be performed temporarily. For example, when the moving body runs parallel to the user or pursues the user and detects a predetermined situation (for example, the presence of an obstacle or traffic congestion) in the user's traveling direction, the moving body 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 body system 1 including a mobile body 100. The mobile body 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 bodies 100. These communicate with each other, for example, via a network NW. The network NW is 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. The terminal device 2 requests the provision of authority to use the mobile object 100 from the management device 10 based on, for example, an operation by a user, and obtains information indicating that the use has been permitted.

[0023] [Management device] The management device 10 is a computer that grants the authority to use the mobile object 100 to the user of the terminal device 2 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 preregistered 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 providing 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, which is a map of the surrounding area of ​​the mobile object 100, to the mobile object 100.

[0025] [Mobile 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 plus x-direction, the rearward direction of the moving body 100 is the minus x-direction, the width direction of the moving body 100, which is the left direction based on the plus x-direction, the right direction is the minus 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 plus z-direction.

[0026] The moving body 100 includes, for example, a base body 110, a door section 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 section 112 to put luggage in a storage section provided on the base body 110 or take luggage out of the storage section. The first wheel 120 and the second wheel 130 are driving wheels, and the third wheel 140 is an auxiliary wheel (driven wheel). The moving 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 in the positive z direction. A camera 180 that captures an image of the surroundings of the moving body 100 is provided on the end of the support 150 in 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 capable of capturing 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] Fig. 3 is a diagram showing an example of the functional configuration of the moving object 100. In addition to the functional configuration shown in Fig. 2, the moving 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 driving 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 brake 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 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 occupation 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 occupation 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 cooperation between software and hardware. The program may be stored in advance in a storage device (a storage device with a non-transient storage medium) such as an HDD (Hard Disk Drive) or flash memory, or may be stored in a removable storage medium (non-transient 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, a flash memory, or a RAM (Random Access Memory). Information such as control information 222, map information 224, and an occupancy grid diagram 226 is stored in the storage unit 220. The control information 222 is a control program executed by the drive control unit 212 for controlling the behavior of the moving body 100. The map information 224 is, for example, map information of the periphery of the moving body 100. The occupancy grid diagram 226 includes a plurality of grids, and is a diagram showing positions where objects exist in the periphery of the moving body 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 identifying unit 202 identifies the position of the moving body 100. The position identifying unit 202 acquires position information of the moving body 100 by a GPS (Global Positioning System) device (not shown) built into the moving body 100. The position information may be, for example, two-dimensional map coordinates or latitude and longitude information. The position identifying unit 202 may also estimate the position of the moving body 100 at the same time as creating the environmental map by a method such as a so-called SLAM using a camera image captured by the camera 180 or 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 position information acquired by the position identification unit 202 to the information providing device 20, thereby acquiring map information 224, which is a map of the surrounding area of ​​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 the speed, acceleration, and other states of objects present around the mobile body 100 based on, for example, an image captured by the camera 180. The 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) an image.

[0038] The occupied grid diagram generating unit 208 generates an occupied grid diagram 226 including a plurality of grids based on the positions of objects existing 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 generating unit 210 grasps the location of the destination specified by the user based on the map information 224. In addition, the route generating 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 generating unit 208. The route may be generated, for example, as a series of multiple route points arranged at a predetermined distance apart. The route generating 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 occupied grid diagram] Fig. 4 is a diagram showing an example of an occupancy lattice diagram 226. The occupancy lattice diagram 226 includes a plurality of lattices, and shows the positions of objects present around the mobile body 100. The center 228 of the occupancy lattice diagram 226 corresponds to the current location of the mobile body 100. The occupancy lattice diagram generating unit 208 determines whether or not an object exists for each of the plurality of lattices in the occupancy lattice diagram 226, based on the positions of objects present around the mobile body recognized by the recognition unit 206. In the occupancy lattice diagram 226 shown in Fig. 4, black lattices 230 are lattices in which it has been determined that an object exists.

[0042] Next, the occupied grid diagram generating unit 208 performs linear expansion processing based on the positions of the multiple grids in which it is determined that the object exists. The linear expansion processing is a processing for linearly expanding the first region including the grids in which it is determined that the 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 for linear expansion processing. The scanning array 232 is an array showing an area within a first range centered on a first lattice where it is determined that an object exists. In the example of FIG. 5, the scanning array 232 is an array showing an area within a radius r1 (within a first range) from the center of the first lattice where it is determined that an object exists. Note that the first range is not limited to this, and may be, for example, an area included in a lattice diagram of N×N (N: natural number) centered on the first lattice where it is determined that an object exists.

[0044] Specifically, the occupied grid diagram generating unit 208 selects one of the plurality of grids 230 in which it is 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 generating unit 208 determines whether or not a second grid different from the first grid in which it is determined that an object exists is present in the created scanning array 232. If a second grid different from the first grid in which it is determined that an object exists is present in the scanning array 232, the occupied grid diagram generating unit 208 determines that an object exists in a 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 the occupied grid diagram 226 after the linear expansion process. The grid 234 is a grid of the area expanded by the linear expansion process. In this way, when a second grid different from the first grid in which it is determined that an object exists exists within a first range (within the range of the scanning array 232) centered on the first grid in which it is determined that an object exists, the occupied grid diagram generating unit 208 linearly expands the first area (the area including the grid in which it is determined that an object exists) 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 generating unit 208 executes the linear expansion process for each of the multiple grids in which it is determined that an object exists in FIG. 4. This makes it possible to prevent the moving body 100 from coming into contact with the object when trying to pass through a gap between the 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 in which it is determined that an object exists). Specifically, the occupied grid diagram generating unit 208 determines whether or not the third grid is a corner depending on the proportion of the first region (a region including a grid in which it is determined that an object exists) in a second range centered on the third grid in which it is determined that an object exists. The corner determination process will be described below with a specific example.

[0047] Fig. 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 generating unit 208 extracts a 5 x 5 grid diagram centered on the third grid where it is 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] When the proportion R of the first region in the second range centered on the third grid in which it is determined that an object exists is equal to or greater than a first threshold value TH1 (e.g., 0.7), the occupied grid diagram generating unit 208 determines that the third grid is not a corner. For example, in the case of the grid diagram G1 in FIG. 7, the proportion R=19 / 25=0.76. In this case, since the proportion R is equal to or greater than the first threshold value TH1 (0.7), the occupied grid diagram generating unit 208 determines that the third grid located at the center of the grid diagram G1 is not a corner. In fact, the third grid located at the center of the grid diagram G1 is surrounded by grids in which it is determined that an object exists, and is not a corner.

[0049] Furthermore, when the ratio R of the first region in the second range centered on the third grid where it is 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 generating unit 208 determines that the third grid is a corner. For example, in the case of the grid diagram G2 in FIG. 7, the ratio R=3 / 25=0.12. In this case, since the ratio R is less than the second threshold TH2 (0.2), the occupied grid diagram generating unit 208 determines that the third grid located at the center of the grid diagram G2 is a corner. In fact, the third grid located at the center of the grid diagram G2 is a corner because it is located at the edge of the first region.

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

[0051] Furthermore, when the proportion R of the first region within the second range centered on the third grid in which 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 generating 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 the grid diagram G4 in Fig. 7, the ratio R = 6 / 25 = 0.24. In this case, since the ratio R is less than the first threshold TH1 (0.7) and is equal to or greater than the second threshold TH2 (0.2), the occupied grid diagram generating 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. When the correlation is strong as shown in the grid diagram G4 in Fig. 7, the occupied grid diagram generating unit 208 determines that the third grid is not a corner. In fact, the third grid located at the center of the 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 Fig. 7, the ratio R = 8 / 25 = 0.32. In this case, since 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 generating 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. When the correlation is weak as shown in grid diagram G5 in Fig. 7, the occupied grid diagram generating unit 208 determines that the third grid is a corner.

[0054] As described above, the occupied grid diagram generating unit 208 determines whether or not the third grid is a corner of the first region based on the ratio R of the first region within the second range centered on the third grid in which it is 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 or not the third grid is a corner of the first region. The occupied grid diagram generating unit 208 executes the corner determination process for each of the multiple grids in which it is determined that an object exists in FIG. 6.

[0055] Next, the occupied grid diagram generating unit 208 executes a corner detection process 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 process. Details of the corner detection process 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 the camera 180, the occupied lattice diagram generating unit 208 determines whether each of multiple lattices is a corner across the multiple frames. As shown in Fig. 8, the occupied lattice diagram generating unit 208 obtains the results of corner determination processing for the occupied lattice diagram 226 corresponding to each of the first frame F1, the second frame F2, the third frame F3, .... In Fig. 8, the lattice 236 is a lattice determined to be a corner in the occupied lattice diagram 226 corresponding to the first frame F1.

[0057] The occupied grid diagram generating unit 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 generating unit 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 indicating a corner detected by the occupied grid diagram generating unit 208. In this way, the occupied grid diagram generating unit 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 generating unit 208 expands the corners detected in the occupancy grid diagram 226. The path generating unit 210 generates a path for the moving body 100 to follow in the second area not including the first area (the area including the grid in which the object is determined to exist) based on the occupancy grid diagram 226 with the corners expanded. The drive control unit 212 controls the drive device 300 that drives the moving body 100 so that the moving body 100 moves along the path generated by the path generating unit 210.

[0059] Here, the occupancy grid diagram generating unit 208 expands the corners in the occupancy grid diagram 226 in order to prevent the moving body 100 from contacting an object near the corners. The path generated by the path generating 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, when the moving body 100 approaches the first path point, the path generating 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 arranged next to the first path point.

[0060] In this way, the moving body 100 cannot strictly pass through the multiple path points included in the path generated by the path generating unit 210. For this reason, if the first path point is located near a corner with a small curvature, when the moving direction of the moving body 100 is switched from the first path point to the second path point, the moving body 100 may come into contact with an object near the corner. Therefore, in this embodiment, the occupancy lattice diagram generating unit 208 executes a corner expansion process to expand the corner detected in the occupancy lattice 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 area (an area including a lattice in which it is determined that an object exists) is present 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, the distance from the center to each vertex of which is r2, at the position of the corner 242. The regular polygon to be placed at the position of the corner 242 is not limited to a regular hexagon, and may be a regular M-polygon (M is a natural number equal to or greater than 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 if corner expansion processing were to be performed on all corners included in the occupation grid diagram 226, the processing load on the occupation grid diagram generation unit 208 would increase. Therefore, the occupation grid diagram generation unit 208 expands corners within a specified range from the subgoal SG, but does not expand corners outside the specified range from the subgoal SG. This makes it possible to reduce the processing load on the occupation grid diagram generation unit 208 in the 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 is determined that an object exists) prior to 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 the corner 242.

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

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

[0068] First, the recognition unit 206 recognizes the positions of objects existing around the moving body 100 based on an image capturing the surroundings of the moving body 100 (step S100). For example, the recognition unit 206 recognizes the positions of objects existing around the moving body 100 based on an image captured by the camera 180.

[0069] Next, the occupancy lattice diagram generating unit 208 determines whether or not an object exists for each of the multiple lattices in the occupancy lattice diagram 226 based on the positions of objects existing around the moving body 100 (step S102). As a result, for example, the occupancy lattice diagram 226 shown in Fig. 4 is generated. After that, the occupancy lattice diagram generating 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 the object exists (step S104). As a result, for example, a plurality of 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 body 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). After that, the drive control unit 212 controls the drive device 300 so that the moving body 100 moves along the path generated by the path generating unit 210 (step S110).

[0073] Next, the control device 200 judges whether the moving object 100 has arrived at the destination (step S112). If it is not judged that the moving object 100 has arrived at the destination, the control device 200 returns the process to the above-mentioned step S100. On the other hand, if it is judged 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 occupancy grid diagram generating unit 208 of this embodiment determines whether or not an object exists for each of a plurality of lattices in the occupancy grid diagram 226, based on the position of the object existing around the moving body 100. In addition, the occupancy grid diagram generating unit 208 expands the first region including the lattice in which it is determined that the 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 above-described first embodiment, the occupancy grid diagram generating unit 208 expands the corner by placing a regular polygon area at the corner position. On the other hand, in the second embodiment, the path generating unit 210 generates a path so that the moving 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 generating unit 208 is surrounded by a first polygon 248 and a second polygon 250. The route generating unit 210 generates a route R1 that does not pass inside the area surrounded by the first polygon 248 and 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, the moving body 100 may come into contact with an object near the corner 252.

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

[0078] Therefore, the moving body 100 does not strictly pass through the multiple route points included in the route R1, but moves along the route R2. As shown in Fig. 14, the route R2 passes through the inner side of the route R1 (the side of the grid where the object is determined to exist). Therefore, when the moving body 100 moves along the route R2, there is a possibility that the moving body 100 will come into contact with the object at the point 254 in Fig. 14. Therefore, in this embodiment, the occupancy grid diagram generating unit 208 detects the corners of the area (first area) surrounded by the first polygon 248, and arranges a regular polygonal area at the position of the corner.

[0079] Fig. 15 is a diagram showing an example of a plurality of lattice 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 lattice points P1 to P7. The occupied grid diagram generating unit 208 determines whether each of the plurality of lattice points P1 to P7 is a corner.

[0080] 16 is a diagram for explaining the corner detection process in the second embodiment. The occupied grid diagram generating unit 208 selects one grid point from among a plurality of grid points P1 to P7. The occupied grid diagram generating unit 208 also judges whether the angle Deg formed by two sides extending from the selected grid point is a predetermined angle (e.g., 100 degrees) or less. The occupied grid diagram generating unit 208 also judges whether Dist1 and Dist2, which are the lengths of the two sides extending from the selected grid point, are both a predetermined length (e.g., 1 m) or less.

[0081] If the angle Deg is equal to or smaller than a predetermined angle and the lengths Dist1 and Dist2 of the two sides are both equal to or smaller than a predetermined length, the occupancy grid diagram generating unit 208 determines that the selected lattice point is a corner. For example, in the example shown in Fig. 15, it is assumed that the lattice point P5 is determined to be a corner. After that, the occupancy grid diagram generating unit 208 places a regular polygonal area at the position of the lattice point P5 determined to be a corner.

[0082] FIG. 17 is a diagram showing an example of a situation in which a regular polygonal area is arranged at the position of the lattice point P5 determined to be a corner. In the example shown in FIG. 17, a regular hexagonal area 258 is arranged at the position of the lattice point P5. The occupation grid diagram generating unit 208 arranges the regular hexagonal area 258 so that the center of the regular hexagon coincides with the lattice point P5. The route generating unit 210 also incorporates the vertices of the regular hexagon arranged at the position of the lattice point P5 into the route R3 from the current location 244 of the mobile body 100 to the destination G. In this embodiment, the regular polygon arranged at the position of the lattice point P5 is a regular hexagon, but this is not limited thereto. For example, the regular polygon arranged at the position of the lattice point P5 may be a regular M-gon (M is a natural number equal to or greater than 3).

[0083] 17, the path R3 generated by the path generating unit 210 passes through a part of the outer periphery of the regular hexagonal area 258. On the other hand, the path R4 that the moving body 100 actually passes through passes inside the path R3 (the side of the grid where it is determined that the object exists). However, since the regular hexagonal area 258 is disposed 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 generating unit 208 of this embodiment expands the corner by placing a regular polygon area at the position of the corner. In addition, the path generating unit 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 unit 100 from contacting the corner of an object such as an obstacle with 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 occupancy grid diagram including a plurality of grids based on the positions of objects present around the moving body; generating a route for the moving object to follow based on the occupancy grid diagram; determining whether or not an object is present in each of a plurality of lattices in the occupancy lattice diagram based on the positions of objects present in the vicinity of 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 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 positions of objects present around the moving object; a route generation unit that generates a route along which the moving object should proceed based on the occupancy grid diagram; The occupancy grid diagram generating unit determining whether or not an object is present in each of a plurality of lattices in the occupancy lattice diagram based on the positions of objects present in the vicinity of the moving body; Expanding a first region that includes a lattice in which an object is determined to exist; Control device.

2. The occupancy grid diagram generating unit Detecting corners of the first region; expanding the corner in the occupancy grid diagram; The control device according to claim 1 .

3. the path generation unit generates a path along which the moving object should proceed in a second area not including the first area, based on the occupancy grid diagram with the corners expanded; A drive control unit is further provided 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 2.

4. 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 2.

5. the occupied grid diagram generating unit, when a second grid different from the first grid in which it is determined that an object exists and which is also determined that an object exists, exists within a first range centered on the first grid in which it is determined that an object exists, determines that an object exists in a region connecting the first grid and the second grid with a straight line, thereby linearly expanding the first region; The control device according to claim 1 .

6. the occupied grid diagram generating unit determines whether the third grid is the corner according to a proportion of the first region within a second range centered on the third grid in which it is determined that an object exists; The control device according to claim 2.

7. The occupancy grid diagram generating unit If the ratio is equal to or greater than a first threshold, the third grid is determined to not be the corner; If the proportion is less than a second threshold which is less than the first threshold, the third grid 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 a plurality of grids included in the first region within the second range, and whether or not the third grid is the corner is determined according to the correlation coefficient. The control device according to claim 6.

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

9. The route generation unit sets a position that is a sub-goal on the route, the occupancy grid diagram generating 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 2.

10. 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 vertices of the regular polygon into the path. The control device according to claim 2.

11. 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 occupancy grid diagram including a plurality of grids based on the positions of objects present around the moving body; generating a route for the moving object to follow based on the occupancy grid diagram; determining whether or not an object is present in each of a plurality of lattices in the occupancy lattice diagram based on the positions of objects present in the vicinity of the moving body; Expanding a first region that includes a lattice in which an object is determined to exist; Control methods.

12. On the computer, A process of recognizing positions of objects present around the moving body based on an image of the surroundings of the moving body; A process of generating an occupancy 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 lattices in the occupancy lattice diagram based on the positions of objects existing around the moving object; A process of expanding a first region including a lattice in which an object is determined to exist; A program that executes the following.

Citation Information

Patent Citations

  • 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

  • Method of dividing coverage area for robot and device thereof

    JP2008047095A