Control device, control method, and program
By identifying the location of objects in the surrounding environment and generating an occupied grid map, the difficulty in route generation in the prior art is solved, and a more suitable and smooth generation of moving paths is achieved.
Patent Information
- Application Number
- JP2023169287
- 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
In the prior art, there is difficulty in generating a route from the current location to the destination of the mobile body, and it is difficult to effectively generate a suitable route.
By identifying the location of objects in the surrounding environment, an occupancy grid map is generated and a path is generated based on the object outline. The system simplifies the path profile by removing unnecessary vertices and generates more appropriate moving paths.
The route generation from the current location to the destination is realized, improving the rationality of the route and the smoothness of the movement.
Smart Images

Figure 2025059288000001_ABST
Abstract
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] Conventional techniques sometimes fail to properly generate a route from a moving object's current location to its destination.
[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 appropriately generate a route from a current location of a mobile object to a destination. [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 the objects present around the moving body; and a path generation unit that generates a path to be taken by the moving body based on the contours of the objects shown in the occupation grid diagram, wherein the occupation grid diagram generation unit 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, generates a first contour that indicates the contour of a first area that includes a grid in which it has been determined that an object exists, and generates a second contour that has fewer vertices than the first contour and encompasses the first area, as the contour of the object.
[0007] (2): In the above aspect (1), 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 second contour in the occupied grid diagram, 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.
[0008] (3): In the above aspect (1), the occupied grid diagram generating unit selects a first vertex from among a plurality of vertices included in the first contour, and determines whether or not to delete the first vertex from the first contour based on the proportion of the first region within a first range centered on the first vertex.
[0009] (4): In the above aspect (3), the occupied grid diagram generating unit deletes the first vertex from the first contour if the ratio is equal to or greater than a first threshold, and does not delete the first vertex from the first contour if the ratio is less than the first threshold.
[0010] (5): In the above aspect (3), the occupied grid diagram generating unit selects a second vertex from among a plurality of vertices included in the first contour from which the first vertex has been deleted, and determines whether or not to delete the second vertex from the first contour based on the angle formed by two line segments extending from the second vertex to two vertices adjacent to the second vertex and the sum of the lengths of the two line segments.
[0011] (6): In the above aspect (5), the occupied grid diagram generating unit deletes the second vertex from the first contour if the difference between the angle and 180 degrees is less than a second threshold value and the sum of the lengths of the two line segments is equal to or greater than a third threshold value.
[0012] (7): In the above aspect (5), the occupancy grid diagram generating unit selects a third vertex from among a plurality of vertices included in the first contour from which the second vertex has been deleted, and determines whether or not to delete the third vertex from the first contour based on the Euclidean distance from the position of the moving body in the occupancy grid diagram to the third vertex.
[0013] (8): In the above aspect (1), the occupied grid diagram generating unit generates the first contour by connecting a plurality of vertices of the first region with a convex hull, generates a plurality of parallel lines corresponding to each of a plurality of straight lines included in the first contour, expands the first region by connecting the plurality of parallel lines, and generates the second contour by connecting the expanded first region with a concave hull.
[0014] (9): 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 for the moving body to follow based on the contours of the objects shown in 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, generates a first contour showing the contour of a first area including a lattice in which it is determined that an object exists, and generates a second contour having fewer vertices than the first contour and including the first area as the contour of the object.
[0015] (10): A program according to one embodiment of the present invention causes a computer to execute the following processes: recognize the positions of objects present around a moving body based on an image capturing the situation around the moving body; generate an occupation lattice diagram including a plurality of lattices based on the positions of the objects present around the moving body; generate a path for the moving body to follow based on the contours of the objects shown in the occupation lattice diagram; determine 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; generate a first contour indicating the contour of a first area including a lattice in which it has been determined that an object exists; and generate a second contour having fewer vertices than the first contour and encompassing the first area as the contour of the object. Effect of the Invention
[0016] According to aspects (1) to (10), a route from the current location of a moving object to a destination can be appropriately generated. [Brief description of the drawings]
[0017] [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. 2 is a diagram showing an example of a first route from a start point to a goal point in an occupancy grid diagram. [Diagram 5] FIG. 13 is a diagram showing an example of a second route from a start point to a goal point in an occupancy grid diagram. [Figure 6] FIG. 1 is a diagram showing an example of an occupation grid diagram. [Figure 7] FIG. 13 is a diagram for explaining a process of detecting vertices on the contour of the first region. [Figure 8] FIG. 1 is a diagram showing an example of a scanning array. [Figure 9] FIG. 13 is a diagram for explaining a specific example of a vertex search. [Figure 10] FIG. 13 is a diagram showing an example of a first group of contours and a second group of contours. [Figure 11] FIG. 1 is a diagram showing an example of a scanning array. [Figure 12] FIG. 13 is a diagram showing an example of a first group of contours and a second group of contours on which a vertex deletion process has been performed. [Figure 13] FIG. 13 is a diagram for explaining further vertex deletion processing. [Figure 14] FIG. 13 is a diagram showing an example of a first group of contours and a second group of contours on which further vertex deletion processing has been performed. [Figure 15] 11A and 11B are diagrams for explaining a vertex deletion process based on the Euclidean distance from the position of a moving object. [Figure 16] 4 is an example of a flowchart illustrating a process executed by a control device. [Figure 17] FIG. 13 is a diagram showing an example of an occupation grid diagram in the second embodiment. [Figure 18] FIG. 1 is a diagram showing an example of a scanning array. [Figure 19] FIG. 13 is a diagram showing an example of an occupied lattice diagram on which a linear expansion process has been performed. [Figure 20] 13 is a diagram for explaining a process of generating a first contour and expanding the first contour in parallel. FIG. [Figure 21] FIG. 1 is a diagram illustrating an example of parallel expansion and centroid expansion. [Figure 22] FIG. 11 is a diagram showing an example of a second contour in the second embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] 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.
[0019] 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.
[0020] [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.
[0021] [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.
[0022] [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.
[0023] [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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] [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.
[0029] 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.
[0030] [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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] [Challenges in route generation] FIG. 4 is a diagram showing an example of a first route R1 from a start point S to a goal point G in an occupancy grid diagram. The occupancy grid diagram includes a plurality of grids, and shows the positions of objects around the moving body 100. The area 232 is an area determined by the recognition unit 206 to be an area in which an object exists. The area 234 is an area obtained by expanding the area 232 in consideration of the size of the moving body 100. The area 232 is expanded in order to prevent the moving body 100 from contacting the object. The first area A1 is an area that includes the area 232 and the area 234. The first area A1 is considered to be an area in which an object exists. The second area A2 is an area other than the first area A1 in the occupancy grid diagram.
[0040] The moving body 100 generates the contour of the first area A1 by connecting multiple vertices on the periphery of the first area A1 in the occupancy grid diagram. When the moving body 100 moves from the start point S to the goal point G, it moves along the contour of the first area A1. Specifically, as shown in FIG. 4, the moving body 100 generates a first route R1 that passes through multiple vertices that form the contour of the first area A1, and moves from the start point S to the goal point G along the first route R1. However, since the moving body 100 needs to turn the body at each vertex position and the moving distance is long, the first route R1 cannot be said to be a suitable route.
[0041] Fig. 5 is a diagram showing an example of a second route R2 from a start point S to a goal point G in an occupancy grid diagram. As shown in Fig. 5, by smoothing the contour of the first area A1 by deleting some of the multiple vertices, it is possible to generate a second route R2 that is more suitable than the first route R1. Hereinafter, the process of generating the first contour that shows the contour of the first area A1 will be described in detail.
[0042] [First contour generation process] Fig. 6 is a diagram showing an example of an occupancy grid diagram 226. A center 228 of the occupancy grid diagram 226 corresponds to the current location of the mobile object 100. The occupancy grid diagram generating unit 208 determines whether or not an object exists for each of a plurality of grids in the occupancy grid diagram 226, based on the position of an object existing around the mobile object recognized by the recognition unit 206. In the occupancy grid diagram 226 shown in Fig. 4, a black area 236 is an area including a grid in which it is determined that an object exists.
[0043] Next, the occupancy grid diagram generating unit 208 performs an expansion process based on the positions of the multiple grids in which it is determined that the object exists. The expansion process is a process of expanding the area 236 including the grids in which it is determined that the object exists, taking into consideration the size of the moving body 100. By the expansion process, the area in which it is determined that the object exists is expanded to the area 238. The first area A1 is an area that combines the area 236 and the area 238. It is considered that the object exists in the first area A1. The second area A2 is an area other than the first area A1 in the occupancy grid diagram.
[0044] FIG. 7 is a diagram for explaining a process for detecting vertices in the contour of the first region A1. As shown in FIG. 7, the first region A1 is divided into a first group G1 and a second group G2. A method for detecting vertices in the contour of the first group G1 will be explained below as an example. First, the occupied lattice diagram generating unit 208 searches from the bottom to the top in order from the right end of the occupied lattice diagram 226, and finds a lattice 244 included in the first group G1. The occupied lattice diagram generating unit 208 determines that the found lattice 244 is a vertex in the contour of the first group.
[0045] Fig. 8 is a diagram showing an example of the scanning array 248. The scanning array 248 is an array used to search for vertices. As shown in Fig. 8, the scanning array 248 is a 3 x 3 array with the starting grid at the center. The occupied grid diagram generating unit 208 searches for vertices counterclockwise from the grid below the starting grid.
[0046] FIG. 9 is a diagram for explaining a specific example of searching for a vertex. FIG. 9 is an enlarged view of the area 246 in FIG. 7. The occupied lattice diagram generating unit 208 searches for a vertex adjacent to the lattice 244 using the scanning array 248, starting from the lattice 244. Specifically, as shown in the left diagram of FIG. 9, the occupied lattice diagram generating unit 208 finds a lattice 250 included in the first group G1 at the fifth position around the lattice 244. The occupied lattice diagram generating unit 208 determines that the found lattice 250 is a vertex in the contour of the first group G1.
[0047] Next, the occupied grid diagram generating unit 208 uses the scanning array 248 to search for vertices adjacent to the grid 250, starting from the discovered grid 250. In this case, since the discovered grid 244 already exists at the first position of the scanning array 248, the search is performed from the grid at the second position to reduce the calculation load. The number at which the search starts can be calculated by (previous number + 5)%8. Here, "%" is a modulus operator, and is a symbol that calculates the remainder after division. For example, in the example shown on the right side of FIG. 9, the previous number (the number when searching grid 250) is 5, so (5 + 5)%8 = 2, and the search is performed from the grid at the second position.
[0048] The occupied grid diagram generating unit 208 repeats the above process to detect all vertices in the contour of the first group G1. The occupied grid diagram generating unit 208 also performs the same process to detect all vertices in the contour of the second group G2.
[0049] Fig. 10 is a diagram showing an example of a contour 252 of the first group G1 and a contour 254 of the second group G2. As shown in Fig. 10, the occupation grid diagram generating unit 208 generates the contour 252 of the first group G1 by connecting a plurality of vertices of the detected first group G1. In addition, the occupation grid diagram generating unit 208 generates the contour 254 of the second group G2 by connecting a plurality of vertices of the detected second group G2. The contour 252 of the first group G1 and the contour 254 of the second group G2 in Fig. 10 are first contours indicating the contour of the first area A1.
[0050] [Generation of the second contour] Next, the occupancy grid diagram generating unit 208 generates a second contour based on the generated first contour, the second contour having fewer vertices than the first contour and including the first area A1. As described above, the number of vertices is made fewer than that of the first contour so that the path generating unit 210 can generate a more suitable path. The generation process of the second contour will be described in detail below.
[0051] FIG. 11 is a diagram showing an example of the scanning array 256. The scanning array 256 is an array used in the vertex deletion process. The scanning array 256 is an array indicating an area within a first range centered on the first vertex determined to be the vertex of the first contour. In the example of FIG. 11, the scanning array 256 is an array indicating an area within a radius r1 (within a first range) from the center centered on the first vertex determined to be the vertex of the first contour. Specifically, in the example of FIG. 11, the scanning array 256 includes 21 lattices within a radius r1 from the center. 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 vertex determined to be the vertex of the first contour.
[0052] Specifically, the occupied grid diagram generating unit 208 selects one of the multiple vertices determined to be vertices of the first contour as the first vertex, and creates a scanning array 256 centered on the first vertex. Next, the occupied grid diagram generating unit 208 determines whether or not to delete the first vertex from the first contour based on the proportion R of the first region (the region including the lattice determined to have an object) in the created scanning array 256.
[0053] For example, the occupied grid diagram generating unit 208 calculates the ratio R by dividing the number of grids included in the first region in the scanning array 256 by the total number of grids (21) in the scanning array 256. Furthermore, if the ratio R is equal to or greater than a first threshold (e.g., 0.5), the occupied grid diagram generating unit 208 deletes the first vertex from the first contour. On the other hand, if the ratio R is less than the first threshold (0.5), the occupied grid diagram generating unit 208 does not delete the first vertex from the first contour.
[0054] For example, in the case of vertex P1 in FIG. 10, the number of lattices included in the first region in the scanning array 256 is 11. Therefore, the ratio R for vertex P1 is 11 / 21=0.523. In this case, the ratio R is equal to or greater than the first threshold TH1 (0.5), so the occupied grid diagram generating unit 208 determines to delete vertex P1 from the first contour. On the other hand, in the case of vertex P2 in FIG. 10, the number of lattices included in the first region in the scanning array 256 is 10. Therefore, the ratio R for vertex P2 is 10 / 21=0.476. In this case, the ratio R is less than the first threshold TH1 (0.5), so the occupied grid diagram generating unit 208 determines not to delete vertex P1 from the first contour. In addition, the occupied grid diagram generating unit 208 performs the same process for all vertices of the first contour.
[0055] Fig. 12 is a diagram showing an example of the contour 252 of the first group G1 and the contour 254 of the second group G2 after vertex deletion processing. Comparing Fig. 10 with Fig. 12, it can be seen that multiple vertices have been deleted from the contour 252 of the first group G1 and the contour 254 of the second group G2. Note that the occupation grid diagram generating unit 208 may further delete multiple vertices from the contour 252 of the first group G1 and the contour 254 of the second group G2 shown in Fig. 12. This point will be described in detail below.
[0056] 13 is a diagram for explaining further vertex deletion processing. The occupancy grid diagram generating unit 208 selects a second vertex from among the multiple vertices included in the first contour from which the first vertex has been deleted. The occupancy grid diagram generating unit 208 also determines whether to delete the second vertex from the first contour based on the angle Deg formed by two line segments extending from the second vertex to two vertices adjacent to the second vertex and the sum of the lengths of the two line segments Dist1+Dist2.
[0057] For example, the occupancy grid diagram generating unit 208 selects one vertex as the second vertex from among the multiple vertices included in the contour 252 of the first group G1 and the contour 254 of the second group G2 shown in Fig. 12. In addition, the occupancy grid diagram generating unit 208 deletes the selected second vertex from the first contour when the difference between the angle Deg formed by two line segments extending from the second vertex to two vertices adjacent to the second vertex and 180 degrees is less than a second threshold value (e.g., 10 degrees) and the sum of the lengths of the two line segments Dist1+Dist2 is equal to or greater than a third threshold value. In addition, the occupancy grid diagram generating unit 208 executes the same process for all vertices included in the contour 252 of the first group G1 and the contour 254 of the second group G2 shown in Fig. 12.
[0058] Fig. 14 is a diagram showing an example of the contour 252 of the first group G1 and the contour 254 of the second group G2 after further vertex deletion processing has been performed. Comparing Fig. 12 with Fig. 14, it can be seen that a plurality of vertices have been further deleted from the contour 252 of the first group G1 and the contour 254 of the second group G2. Specifically, a plurality of vertices P3 to P8 shown in Fig. 12 have been deleted from the contour 252 of the first group G1, and a vertex P9 shown in Fig. 12 has been deleted from the contour 254 of the second group G2.
[0059] In this way, the occupancy grid diagram generating unit 208 generates, as the contour of the object, a second contour that has fewer vertices than the first contour and encompasses the first region. The path generating unit 210 generates a path for the moving body 100 to follow in the second region A2, which is a region not surrounded by the second contour in the occupancy grid diagram 226. 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. This allows the path generating unit 210 to generate a more appropriate path, and the moving body 100 can move more smoothly to the destination.
[0060] The occupancy grid diagram generating unit 208 may further delete a number of vertices from the contour 252 of the first group G1 and the contour 254 of the second group G2 shown in Fig. 14 based on the Euclidean distance from the position of the moving object 100. This point will be described in detail below.
[0061] 15 is a diagram for explaining the vertex deletion process based on the Euclidean distance from the position of the moving object 100. The occupancy grid diagram generating unit 208 selects a third vertex from among the multiple vertices included in the first contour from which the second vertex has been deleted. In addition, the occupancy grid diagram generating unit 208 determines whether or not to delete the third vertex from the first contour based on the Euclidean distance from the position 258 of the moving object 100 in the occupancy grid diagram 226 to the third vertex.
[0062] For example, the occupancy grid diagram generating unit 208 selects one vertex from among multiple vertices included in the contour 252 of the first group G1 and the contour 254 of the second group G2 shown in FIG. 14 as the third vertex. Also, as shown in FIG. 15, the occupancy grid diagram generating unit 208 determines whether or not the third vertex is included within the range of an ellipse 260 centered on the position 258 of the moving body 100 based on the Euclidean distance from the position 258 of the moving body 100 to the third vertex in the occupancy grid diagram 226. If the third vertex is not included within the range of the ellipse 260, the occupancy grid diagram generating unit 208 deletes the third vertex from the first contour. Also, the occupancy grid diagram generating unit 208 executes the same process for all vertices included in the contour 252 of the first group G1 and the contour 254 of the second group G2 shown in FIG. 14. This makes it possible to further reduce the number of vertices included in the first contour.
[0063] [flowchart] 16 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.
[0064] 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.
[0065] Next, the occupancy lattice diagram generating unit 208 determines whether or not an object exists in each of the multiple lattices in the occupancy lattice diagram 226 based on the positions of the objects existing around the moving body 100 (step S102). As a result, for example, the occupancy lattice diagram 226 shown in FIG. 6 is generated.
[0066] Next, the occupied grid diagram generating unit 208 generates a first contour that indicates the contour of the first area A1 that includes the grid in which it is determined that the object exists (step S104). As a result, for example, contours 252 and 254 are generated as shown in FIG.
[0067] Next, the occupancy grid diagram generating unit 208 generates a second contour that has fewer vertices than the first contour and encompasses the first area A1 (step S106). For example, the occupancy grid diagram generating unit 208 generates contours 252 and 254, which have fewer vertices than the contour in FIG. 10, as shown in FIGS. 12, 14, and 15.
[0068] Next, the path generating unit 210 generates a path along which the moving body 100 should travel in the second area A2, which is an area not surrounded by the second contour in the occupancy 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).
[0069] 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.
[0070] As described above, the occupancy grid diagram generating unit 208 of this embodiment determines whether or not an object exists for each of the multiple lattices in the occupancy grid diagram 226 based on the position of the object existing around the mobile object 100. The occupancy grid diagram generating unit 208 also generates a first contour that indicates the contour of a first area including the lattice in which it has been determined that the object exists. Furthermore, the occupancy grid diagram generating unit 208 generates a second contour that has fewer vertices than the first contour and includes the first area as the contour of the object. This allows the control device 200 of this embodiment to appropriately generate a route from the current location of the mobile object 100 to the destination.
[0071] <Second embodiment> In the above-described first embodiment, the occupancy grid diagram generating unit 208 generates a second contour having fewer vertices than the first contour by reducing the number of vertices of the first contour. On the other hand, in the second embodiment, a region in the occupancy grid diagram 226 where it is determined that an object exists is linearly expanded, the linearly expanded region is enclosed by a convex hull to generate a first contour, and the first contour is expanded in parallel and then enclosed by a concave hull to generate a second contour. Details of the second embodiment will be described below.
[0072] Fig. 17 is a diagram showing an example of an occupancy lattice diagram 226 in the second embodiment. The occupancy lattice diagram generating unit 208 judges whether or not an object exists in each of a plurality of lattices in the occupancy lattice diagram 226, based on the position of an object existing around the moving object recognized by the recognition unit 206. In the occupancy lattice diagram 226 shown in Fig. 17, a black lattice 262 is a lattice in which it has been determined that an object exists.
[0073] 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 grid 262 in which it is determined that the object exists. The linear expansion processing will be described below.
[0074] FIG. 18 is a diagram showing an example of the scanning array 264. The scanning array 264 is an array used for linear expansion processing. The scanning array 264 is an array showing an area within a second range centered on the first lattice where it is determined that an object exists. In the example of FIG. 18, the scanning array 264 is an array showing an area within a radius r2 (within a second range) from the first lattice where it is determined that an object exists, with the first lattice at the center. Note that the second 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.
[0075] Specifically, the occupied grid diagram generating unit 208 selects one of the plurality of grids 262 in which it is determined that an object exists as a first grid, and creates a scanning array 264 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 264. If a second grid different from the first grid in which it is determined that an object exists is present in the scanning array 264, 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.
[0076] FIG. 19 is a diagram showing an example of the occupied grid diagram 226 after the linear expansion process. The grid 266 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 an object is determined to exist exists within a second range (within the range of the scanning array 264) centered on the first grid in which an object is determined to exist, the occupied grid diagram generating unit 208 linearly expands the first area (the area including the grid in which an 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 generating unit 208 executes the linear expansion process for each of the multiple grids in which an object is determined to exist in FIG. 17.
[0077] FIG. 20 is a diagram for explaining the process of generating a first contour and expanding the first contour in parallel. The occupation grid diagram generating unit 208 detects a plurality of vertices of the first region expanded by the linear expansion process. The process of detecting the vertices of the first region may be the same as the process shown in FIG. 7 to FIG. 9 of the first embodiment. In addition, the occupation grid diagram generating unit 208 generates the first contour by connecting the detected plurality of vertices of the first region with a convex hull. In the example of FIG. 20, contours 268, 270, and 272 are the first contours generated by the occupation grid diagram generating unit 208.
[0078] Next, the occupancy grid diagram generating unit 208 generates a plurality of parallel lines corresponding to each of the plurality of straight lines included in the first contour, and expands the first region by connecting the plurality of parallel lines. As a result, the contour 268 expands to the contour 274, the contour 270 expands to the contour 276, and the contour 272 expands to the contour 278.
[0079] As shown in Fig. 21, when expanding a small area of a given area or less with parallel lines, the vertices may protrude significantly from the occupied area. For this reason, the occupied grid diagram generating unit 208 may perform centroid expansion for small areas, which expands the area using the Euclidean distance from the centroid.
[0080] The occupancy grid diagram generating unit 208 generates a second contour by connecting the expanded first region (the region surrounded by the contours 274, 276, and 278) with a concave hull. As shown in Fig. 20, the contours 274 and 276 are adjacent to each other, but when the process of connecting the expanded first region with a concave hull is performed, the contours 274 and 276 are integrated.
[0081] Fig. 22 is a diagram showing an example of the second contour in the second embodiment. When the process of connecting the expanded first region with a concave hull is performed, contours 280 and 282 are generated as the second contour, as shown in Fig. 22.
[0082] In this way, the occupancy grid diagram generating unit 208 generates, as the contour of the object, a second contour (contours 280, 282) that has fewer vertices than the first contour (contours 268, 270, 272) and encompasses the first region. The path generating unit 210 generates a path for the moving body 100 to follow in the second region A2, which is an area not surrounded by the second contour in the occupancy grid diagram 226. 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. This allows the path generating unit 210 to generate a more appropriate path, and the moving body 100 can move more smoothly to the destination.
[0083] 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 path for the moving body to follow based on the contour of the object shown in 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; generating a first contour indicating a contour of a first region including a lattice in which it has been determined that an object exists; generating a second contour as a contour of the object, the second contour having fewer vertices than the first contour and including the first region; Control device.
[0084] 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]
[0085] 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 path generating unit that generates a path along which the moving object should proceed based on a contour of the object shown in 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; generating a first contour indicating a contour of a first region including a lattice in which an object is determined to exist; generating a second contour having fewer vertices than the first contour and including the first region as a contour of the object; Control device.
2. the path generation unit generates a path along which the moving object should proceed in a second region that is a region not surrounded by the second contour in the occupancy grid diagram; 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 1 .
3. The occupancy grid diagram generating unit selecting a first vertex from among a plurality of vertices included in the first contour; determining whether or not to delete the first vertex from the first contour based on a proportion of the first region within a first range centered on the first vertex; The control device according to claim 1 .
4. The occupancy grid diagram generating unit If the proportion is greater than or equal to a first threshold, removing the first vertex from the first contour; If the percentage is less than the first threshold, then the first vertex is not removed from the first contour. The control device according to claim 3.
5. The occupancy grid diagram generating unit selecting a second vertex from among a plurality of vertices included in the first contour from which the first vertex has been deleted; determining whether or not to delete the second vertex from the first contour based on an angle formed by two line segments extending from the second vertex to two vertices adjacent to the second vertex and a sum of lengths of the two line segments; The control device according to claim 3.
6. The occupancy grid diagram generating unit If the difference between the angle and 180 degrees is less than a second threshold and the sum of the lengths of the two line segments is equal to or greater than a third threshold, the second vertex is deleted from the first contour. The control device according to claim 5.
7. The occupancy grid diagram generating unit selecting a third vertex from among the multiple vertices included in the first contour from which the second vertex has been deleted; determining whether or not to delete the third vertex from the first contour based on a Euclidean distance from the position of the moving object in the occupancy grid diagram to the third vertex; The control device according to claim 5.
8. The occupancy grid diagram generating unit generating the first contour by connecting the vertices of the first region with a convex hull; generating a plurality of parallel lines corresponding to each of a plurality of straight lines included in the first contour; Expanding the first region by connecting the parallel lines; generating the second contour by connecting the dilated first region with a concave hull; The control device according to claim 1 .
9. 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 path for the moving body to follow based on the contour of the object shown in 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; generating a first contour indicating a contour of a first region including a lattice in which an object is determined to exist; generating a second contour having fewer vertices than the first contour and including the first region as a contour of the object; Control methods.
10. 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 along which the moving object should proceed based on the contours of the object shown in 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 generating a first contour indicating a contour of a first region including a lattice in which it is determined that an object exists; generating a second contour as a contour of the object, the second contour having fewer vertices than the first contour and including the first region; A program that executes the following.
Citation Information
Patent Citations
Engineering machinery entering path planning method and path planning apparatus
CN103017757A
Route planning unit and autonomous mobile device
JP2010066932A
Moving body control apparatus, moving body control method, and control program
JP2014123200A
Information processing apparatus, information processing method, and information processing program
JP2021071814A
Signal processing device, signal processing method, program, and moving device
WO2021060018A1