Route generation method, program, route generation device, and autonomous mobile body
By setting a first turning circle and a Dubins path within a specific area, the method addresses the challenge of generating paths within confined spaces, ensuring the path stays inside the area and considers the mobile body's performance, thus effectively connecting start and end points.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MURATA MASCH LTD
- Filing Date
- 2022-08-03
- Publication Date
- 2026-07-29
AI Technical Summary
Conventional Dubins paths fail to generate a path between two points within a specific area when the area is small relative to the turning circle radius, especially when the start and end points are close to the area's edge, leading to parts of the path being generated outside the area.
A method that involves setting a first turning circle with the start or end point as the contact point and a second turning circle within the specific area, followed by generating a Dubins path that fits within the area, allowing for flexible setting of the second turning circle and considering the autonomous mobile body's driving performance.
Enables the generation of a two-point path within the specific region for a larger number of start-end point combinations, ensuring the path remains entirely within the area and accounts for the mobile body's driving capabilities.
Smart Images

Figure 0007896406000001 
Figure 0007896406000002 
Figure 0007896406000003
Abstract
Description
Technical Field
[0001] The present invention relates to a path generation method for generating a movement path of an autonomous mobile body. In particular, it relates to a path generation method for generating a movement path that moves from a starting point to an ending point existing within a specific area. Further, the present invention relates to a program for causing a computer to execute this path generation method, a path generation device that realizes the above path generation method, and an autonomous mobile body including this path generation device.
Background Art
[0002] Some autonomous mobile bodies can autonomously move along a movement path that combines, for example, a path defined within a specific area and a path from within the specific area to outside the area (see, for example, Patent Document 1). In the above movement path, when the end point of the path defined within the specific area and the starting point of the path from within the specific area to outside the area (a point within the specific area) are misaligned, it is necessary to generate a path (a path between two points) connecting the end point and the starting point.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] One method for generating the above-mentioned path between two points is to create a path called a "Dubins path." A "Dubins path" is a path generated by combining a turning circle that includes the starting point on its circumference, a turning circle that includes the ending point on its circumference, and the circumtangency (straight or curved) of these two turning circles. This "Dubins path" is advantageous for generating movement paths for autonomous mobile objects that cannot or are prohibited from moving backward and have constraints on the turning radius. Furthermore, a "Dubins path" can connect a starting point and an ending point regardless of their positions or the direction (attitude) of movement of the autonomous mobile object at the starting and ending points.
[0005] On the other hand, in order to avoid interference with obstacles outside a specific area, the above-mentioned path between two points needs to be generated so that it fits within that specific area. However, when a path between two points is generated using only conventional Dubins paths, if the specific area is not large compared to the radius of rotation of the turning circle (for example, if the size of the specific area is 6 times or less the radius of the turning circle), and / or if the positions of the starting point and / or ending point are close to the outer edge of the area, then part of the path will be generated outside the specific area regardless of the Dubins path used, and a proper path between two points may not be generated.
[0006] The objective of the present invention is to generate two-point paths that fall within a specific region using Dubins paths, for a larger number of start-end point combinations within that region. [Means for solving the problem]
[0007] Several embodiments for solving the problem are described below. These embodiments can be combined as needed. The present invention relates to a method for generating a route for an autonomous mobile object that moves from a starting point located within a specific region to an ending point located within the same region. The route generation method comprises the following steps. ◎Step of setting the direction of movement at the starting and ending points. ◎A step of setting a first turning circle with the starting point or ending point as the point of contact and the set direction of movement as the direction of rotation. ◎A step of setting a second turning circle that fits within a specific area. ◎A step of setting up a Dubins path that starts from or ends at a predetermined point on the second turning circle. ◎A step of selecting a travel path from among the paths that include the first turning circle and the Dubins path, which falls within a specific area.
[0008] In the above path generation method, before generating the Dubins path, a first revolving circle is set with the start or end point as the point of contact and the direction of movement at the start or end point as the direction of rotation. Subsequently, a second revolving circle, which becomes part of the Dubins path, is set. By setting the first revolving circle before generating the Dubins path and then setting the second revolving circle, it becomes possible to secure the area necessary for generating the Dubins path within a specific region. As a result, for a large number of start-end point combinations within a small specific region, it is possible to generate a two-point path that fits within the specific region using the Dubins path.
[0009] In the above path generation method, the first and second turning circles may be externally tangent to the predetermined point mentioned above. This eliminates the need for a path connecting the first and second turning circles, thus enabling the generation of a shorter path between the two points.
[0010] In the above path generation method, if the starting point of the movement path is a point on the circumference of the first turning circle, the step of setting the Dubins path may include the step of setting the Dubins path from the point of tangency between the first turning circle and the second turning circle to the endpoint. This makes it possible to generate a two-point path consisting of a path from the starting point of the movement path to the point of tangency between the first turning circle and the second turning circle, and a Dubins path from that point of tangency to the endpoint of the movement path, when the first turning circle is set based on the starting point of the movement path.
[0011] In the above path generation method, if the endpoint of the movement path is a point on the circumference of the first turning circle, the step of setting the Dubins path may include setting the point of tangency between the first turning circle and the second turning circle as a provisional endpoint, and setting a Dubins path from the starting point of the movement path to the provisional endpoint. This makes it possible to generate a two-point path consisting of a Dubins path from the starting point of the movement path to the provisional endpoint of the second turning circle, and a path that moves along the first turning circle from the provisional endpoint to the endpoint of the movement path, when the first turning circle is set based on the endpoint of the movement path.
[0012] In the above path generation method, if the endpoint is a point on the circumference of the first turning circle, the step of setting up the Dubins path may include the following steps. ◎A step to set the Dubins path from the point of contact between the first and second turning circles to the starting point. ◎The step of reversing the Dubins path to create a path that goes from the starting point to the junction. This allows for the generation of a two-point path consisting of a Dubins path from the starting point of the movement path to the point of contact between the first and second turning circles, and a path that moves along the first turning circle from that point of contact to the end point of the movement path, when the first turning circle is set relative to the end point of the movement path.
[0013] In the above path generation method, the first turning circle and the second turning circle do not need to be tangent. This allows for flexible setting of the second turning circle.
[0014] In the above path generation method, the first turning circle and the second turning circle may be circles corresponding to the minimum turning radius of the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body.
[0015] In the above path generation method, the autonomous mobile unit may tow a trolley. In this case, the first turning circle and the second turning circle may be circles consisting of the minimum turning radius including the trolley towed by the autonomous mobile unit. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile unit towing the trolley.
[0016] The above route generation method may further include the following steps. ◎When a command is issued to generate a movement path ending at a predetermined target location within a specific area while the autonomous mobile body is moving autonomously within that area, the step is to determine whether the current position of the autonomous mobile body falls within an interruptible area, which defines a range of positions within which a movement path can be planned to be completed, starting at the position where the currently executing autonomous movement is interrupted and stopped at the current position, and ending at the aforementioned target location, so as to fit within the specific area. ◎A step to interrupt the currently running autonomous movement if the current location of the autonomous mobile unit falls within the interruption zone. ◎A step of generating a movement path starting from the position where the currently executing autonomous movement stopped, and ending at the target position, after interrupting the movement.
[0017] This prevents the stopping position of the autonomous vehicle when autonomous movement is interrupted from going outside the area where route planning is possible, even if a route plan is commanded during autonomous movement. Furthermore, it prevents the planned route from going outside a specific area as a result of planning the route from the stopping position after autonomous movement is interrupted.
[0018] In the above path generation method, the interruption region may be set as a region indicating a range of positions in which the turning circle-containing region can be contained within a specific region. The turning circle-containing region includes a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while moving in a straight line at maximum speed, a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the right at maximum speed, and a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the left at maximum speed. This makes it possible to more accurately determine whether the current position of the autonomous mobile body is a suitable position for interrupting autonomous movement and generating a movement path.
[0019] In the above path generation method, the interruption region may be set for each attitude angle of the autonomous mobile body. In this case, the step of determining whether the current position of the autonomous mobile body is included in the interruption region may include the following steps. A step of selecting an interruptible area corresponding to the posture angle of the autonomous mobile object at the current position. A step of determining whether the current position of the autonomous mobile object is included in the selected interruptible area.
[0020] By setting the interruptible area for each posture angle, a larger interruptible area can be set compared to the case of using a common interruptible area for each posture angle. Also, it is possible to accurately determine whether the autonomous mobile object during autonomous movement can plan a two-point path to interrupt the autonomous movement and fit into a specific area at any posture angle of the autonomous mobile object.
[0021] In the above path generation method, when the stop position of the autonomous mobile object when the autonomous movement is interrupted is not included in the interruptible area, it may further include a step of resuming and continuing the interrupted autonomous movement. Thereby, it is possible to attempt to move the autonomous mobile object to another position by autonomous movement and interrupt the autonomous movement from the other position to generate a movement path.
[0022] A program according to another aspect of the present invention is a program for causing a computer to execute the above path generation method.
[0023] A path generation device according to still another aspect of the present invention generates a movement path of an autonomous mobile object that moves from a starting point existing within a specific area to an ending point existing within the specific area. The path generation device sets a moving direction for the starting point and the ending point, sets a first turning circle with the starting point or the ending point as a contact point and the set moving direction as the turning direction, sets a second turning circle that fits within the specific area, sets a Dubins path that starts from a predetermined point of the second turning circle or ends at the predetermined point, and selects a path that fits within the specific area among the paths including the first turning circle and the Dubins path as the movement path.
[0024] The above-described path generation device sets a first rotational circle with the start or end point as the contact point and the direction of movement at the start or end point as the rotational direction, before generating the Dubins path, and then sets a second rotational circle that becomes part of the Dubins path. By setting the first rotational circle before generating the Dubins path and then setting the second rotational circle, it becomes possible to secure the area necessary for generating the Dubins path within a specific area. As a result, for a large number of start-end point combinations within a small specific area, it is possible to generate a two-point path that fits within the specific area using the Dubins path.
[0025] In the above-described path generation device, the first and second turning circles may be externally tangent to the predetermined point mentioned above. This eliminates the need to generate a path connecting the first and second turning circles, thus enabling the generation of a shorter path between two points.
[0026] In the above-described path generation device, if the starting point of the movement path is a point on the circumference of the first turning circle, a Dubins path from the point of contact between the first turning circle and the second turning circle to the endpoint may be set. This allows the generation of a two-point path consisting of a path from the starting point of the movement path to the point of contact between the first turning circle and the second turning circle, and a Dubins path from that point of contact to the endpoint of the movement path, when the first turning circle is set based on the starting point of the movement path.
[0027] In the above-described path generation device, if the endpoint of the movement path is a point on the circumference of the first turning circle, the point of contact between the first turning circle and the second turning circle may be set as a provisional endpoint, and a Dubins path from the starting point of the movement path to this provisional endpoint may be set. This makes it possible to generate a two-point path consisting of a Dubins path from the starting point of the movement path to the provisional endpoint of the second turning circle, and a path that moves along the first turning circle from the provisional endpoint to the endpoint of the movement path, when the first turning circle is set based on the endpoint of the movement path.
[0028] In the above-described path generation device, if the endpoint of the movement path is a point on the circumference of the first turning circle, a Dubins path may be set from the point of contact between the first turning circle and the second turning circle to the starting point, and this Dubins path may be reversed to generate a path from the starting point to the point of contact. This makes it possible to generate a two-point path consisting of a Dubins path from the starting point of the movement path to the point of contact between the first turning circle and the second turning circle, and a path that moves along the first turning circle from the point of contact to the endpoint of the movement path, when the first turning circle is set based on the endpoint of the movement path.
[0029] In the above-described path generation device, the first turning circle and the second turning circle do not need to be tangent. This allows the second turning circle to be set flexibly.
[0030] In the above-described path generation device, the first turning circle and the second turning circle may be circles corresponding to the minimum turning radius of the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body.
[0031] In the above-described path generation device, the autonomous mobile body may tow a trolley. In this case, the first turning circle and the second turning circle may be circles that consist of the minimum turning radius including the trolley towed by the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body towing the trolley.
[0032] The above-described path generation device, when autonomously moving within a specific area, is commanded to generate a movement path ending at a predetermined target location within that specific area, determines whether the current position of the autonomous moving object falls within an interruptible area, which defines a range of positions from which a movement path can be planned to fall within the specific area, starting at the position where the currently executing autonomous movement is interrupted and stopped, and ending at the aforementioned target location. If the current position of the autonomous moving object falls within the interruptible area, the device may interrupt the currently executing autonomous movement and generate a movement path starting at the position where the autonomous movement is stopped after the interruption, and ending at the target location.
[0033] This prevents the stopping position of the autonomous vehicle when autonomous movement is interrupted from going outside the area where route planning is possible, even if a route plan is commanded during autonomous movement. Furthermore, it prevents the planned route from going outside a specific area as a result of planning the route from the stopping position after autonomous movement is interrupted.
[0034] In the above-described path generation device, the interruptible region may be set as a region indicating a range of positions in which the turning circle-containing region can be contained within a specific region. The turning circle-containing region includes a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while moving in a straight line at maximum speed, a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the right at maximum speed, and a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the left at maximum speed. This makes it possible to more accurately determine whether the current position of the autonomous mobile body is a suitable position for interrupting autonomous movement and generating a movement path.
[0035] In the above-described path generation device, the interruption region may be set for each attitude angle of the autonomous mobile body. In this case, the path generation device may select an interruption region corresponding to the attitude angle of the autonomous mobile body at its current position and determine whether the current position of the autonomous mobile body is included in the selected interruption region. By setting an interruption region for each attitude angle, a larger interruption region can be set compared to using a common interruption region for each attitude angle. Furthermore, it is possible to accurately determine, at any attitude angle of the autonomous mobile body, whether it can interrupt its autonomous movement and plan a path between two points that falls within a specific region.
[0036] The above-described path generation device may resume and continue the interrupted autonomous movement if the stopping position of the autonomous mobile body at the time of interruption is not included in the interruption area. This makes it possible to attempt to move the autonomous mobile body to another position by autonomous movement, and then interrupt the autonomous movement from that other position to generate a movement path.
[0037] An autonomous mobile body according to yet another view of the present invention comprises a main body, a path generation device, and a mobile unit that moves the main body along a movement path generated by the path generation device. [Effects of the Invention]
[0038] For a larger number of start-end point combinations within a specific region, a two-point path that fits within that region can be generated using Dubins paths. [Brief explanation of the drawing]
[0039] [Figure 1] A schematic floor plan of a golf driving range. [Figure 2] A schematic perspective view of an autonomous mobile vehicle (part 1). [Figure 3] A schematic perspective view of an autonomous mobile vehicle (part 2). [Figure 4] A diagram showing the functional block configuration of the control unit. [Figure 5A] Figure (1) showing an example of Dubins pathway generation. [Figure 5B] Figure (2) showing an example of Dubins pathway generation. [Figure 5C] Figure (3) showing an example of Dubins pathway generation. [Figure 5D] Figure (4) showing an example of Dubins pathway generation. [Figure 5E] Figure (5) shows an example of Dubins pathway generation. [Figure 5F] Figure (6) showing an example of Dubins pathway generation. [Figure 6] A diagram showing an example of a route that an autonomous vehicle should recreate. [Figure 7] A flowchart illustrating the process of generating a travel schedule. [Figure 8] A flowchart illustrating the process of generating a path between two points within a specific region. [Figure 9] A diagram showing an example of the direction of movement set at the start and end points of a travel path. [Figure 10] A diagram showing an example of the first circular rotation relative to the starting point. [Figure 11] This diagram shows an example of a second circle of rotation that is circumscribing the first circle of rotation with respect to the starting point. [Figure 12] This figure shows an example of a Dubins path generated for the second orbital circle in Figure 11. [Figure 13] A diagram showing an example of a candidate travel path including the first turning circle and the Dubins path. [Figure 14] A diagram showing an example of the first turning circle with the endpoint as the reference point. [Figure 15] This figure shows an example of a second circular arc that is circumscribing the first circular arc with respect to the endpoint. [Figure 16] Figure 15 shows an example of a Dubins path generated for the second orbital circle. [Figure 17] A diagram showing another example of a candidate travel path including the first turning circle and the Dubins path. [Figure 18] A flowchart illustrating autonomous movement. [Figure 19] A diagram showing another example of a path between two points. [Figure 20A] Figure (1) shows an example of a method for determining the region containing a swirling circle. [Figure 20B] Figure (2) shows an example of a method for determining the region containing the swirling circle. [Figure 20C] Figure (3) shows an example of a method for determining the region containing the swirling circle. [Figure 20D] Figure (4) shows an example of a method for determining the region containing the swirling circle. [Figure 21A] This figure shows an example of the interruptible region set when the attitude angle is 0 degrees. [Figure 21B] A diagram showing an example of the interruption range set when the attitude angle is 45 degrees. [Figure 22] A flowchart illustrating the autonomous movement operation in the second embodiment. [Modes for carrying out the invention]
[0040] 1. First Embodiment (1) Outline of the autonomous mobile unit The autonomous mobile unit 1 will be described below using Figures 1 to 3. Figure 1 is a schematic plan view of a golf driving range. Figures 2 and 3 are schematic perspective views of the autonomous mobile unit. The autonomous mobile unit 1 according to this embodiment is a ball collecting and ejection machine used at a golf driving range 2.
[0041] The golf driving range 2 has a ball scattering area 3 where golf balls B are scattered, and a ball discharge ditch 7 into which the collected golf balls B are discharged. In this embodiment, grass is planted in the ball scattering area 3. The ball discharge ditch 7 is a groove provided within the ball scattering area 3 for discharging golf balls B. The golf balls B discharged into the ball discharge ditch 7 are sent to a collection pool (not shown).
[0042] The autonomous mobile unit 1 autonomously moves through the ball scattering area 3 and collects the golf balls B scattered in that area (ball collection operation). It then autonomously moves from the ball scattering area 3 to the side of the ball disposal groove 7 and discharges the golf balls B collected in the ball scattering area 3 into the ball disposal groove 7 (ball disposal operation). In other words, the autonomous mobile unit 1 is a device that performs ball collection and ball disposal while recreating the driving range 2.
[0043] The "reproduction run" described above refers to autonomously moving and reproducing a route generated based on information taught by the operator. "Reproduction runs" include, for example, "copy runs" in which the autonomous vehicle autonomously moves and reproduces the route itself that the operator has previously taught; "fill runs" in which the autonomous vehicle autonomously moves and reproduces a fill run that is planned to fill in a specific area that the operator has previously taught; and "two-point runs" in which the autonomous vehicle autonomously moves and reproduces a two-point run that is planned to connect two predetermined points. The autonomous vehicle 1 autonomously moves continuously along multiple routes that have been individually taught or planned for the above-mentioned "reproduction runs".
[0044] (2) Configuration of the autonomous mobile unit The configuration of the autonomous mobile unit 1 will be described below using Figures 2 and 3. The autonomous mobile unit 1 comprises a main body 11 and a control unit 13 (an example of a path generation device). The main body 11 constitutes the main body of the autonomous mobile unit 1. The main body 11 is provided with a moving unit 15. The moving unit 15 is a device that moves the autonomous mobile unit 1. The moving unit 15 has, for example, wheels 15a and a driving motor 15b (Figure 4) provided on the main body 11 that rotates the wheels 15a.
[0045] The main body 11 is connected to the ball collection and disposal unit 23 by a connecting structure 21. The ball collection and disposal unit 23 is a trolley towed by the autonomous mobile unit 1 and performs the collection and disposal of golf balls B. Specifically, the ball collection and disposal unit 23 has a ball collection unit 24 for collecting golf balls B and a ball disposal unit 25 for disposing of golf balls B. The ball collection unit 24 is composed of a pickup rotor 24a that rotates in conjunction with the movement of the autonomous mobile unit 1. The ball collection unit 24 may also be configured such that the pickup rotor 24a is rotated by a ball collection unit motor (not shown). The ball disposal unit 25 has a ball disposal unit motor 25a (Figure 4) and a ball disposal gate 25b driven by it.
[0046] The control unit 13 is a computer system located inside the main unit 11 and includes a CPU, storage devices (RAM, ROM, hard disk drive, SSD, etc.), and various interfaces. The control unit 13 performs various controls on the autonomous mobile unit 1. Note that all or part of the controls performed by the control unit 13 may be implemented by a program executable on the computer system constituting the control unit 13. In this case, the program may be stored in a storage device. All or part of the control unit 13 may be implemented as a custom IC such as a SoC (System on Chip).
[0047] Furthermore, the control unit 13 may be composed of one computer system or multiple computer systems. When the control unit 13 is composed of multiple computer systems, for example, the functions realized by the multiple functional blocks of the control unit 13 can be distributed and executed by the multiple computer systems in any proportion.
[0048] The autonomous mobile vehicle 1 is further equipped with various sensors. Specifically, the autonomous mobile vehicle 1 is equipped with a GNSS (Global Navigation Satellite System) receiver 17 (Figure 4) and a direction detection sensor 19 (Figure 4). The GNSS receiver 17 is installed on the main unit 11 and acquires information (location information) regarding the current ground position of the autonomous mobile vehicle 1 at the golf driving range 2. This allows the autonomous mobile vehicle 1 to travel outdoors while knowing its own position.
[0049] The direction detection sensor 19 is installed on the main unit 11 and measures the orientation (direction) of the autonomous mobile unit 1 (main unit 11) in the golf driving range 2. The direction detection sensor 19 is, for example, a geomagnetic sensor that measures the direction of the Earth's magnetic field at the position of the autonomous mobile unit 1, or a GNSS compass.
[0050] In another embodiment, a pair of GNSS receivers 17 may be provided on the main unit 11 to serve as a direction detection sensor 19. For example, by arranging a pair of GNSS receivers 17 side by side on a predetermined axis of the main unit 11 (for example, an axis parallel to the straight-line direction of the autonomous mobile body 1), the orientation (direction) of the main unit 11 on the golf driving range 2 can be calculated from two coordinate values (a combination of latitude and longitude) obtained from the pair of GNSS receivers 17 (Moving Baseline method). By calculating the direction using the coordinates obtained from the GNSS receivers 17, the direction of the autonomous mobile body 1 can be easily measured (calculated) without being affected by surrounding magnetic materials.
[0051] Furthermore, the direction of the autonomous mobile body 1 can also be calculated, for example, from the changes in latitude and longitude before and after movement, as measured by the GNSS receiver 17.
[0052] Furthermore, the ball collection and ejection unit 23 may be equipped with a ball storage volume detector (not shown). The storage volume detector measures the amount of golf balls B stored in the ball collection and ejection unit 23. In the ball collection and ejection unit 23, when the amount of golf balls B stored exceeds a predetermined threshold, it becomes ready to eject balls. The storage volume detector may be, for example, a weight sensor that measures the weight of the stored golf balls B, or a photoelectric sensor that detects the top surface of the stored golf balls B.
[0053] (3) Functional block configuration of the control unit The functional block configuration of the control unit 13 will be explained using Figure 4. Figure 4 is a diagram showing the functional block configuration of the control unit. The control unit 13 has the following functional blocks: a storage unit 131, a driving control unit 132, an autonomous movement command unit 133, a position calculation unit 134, a volleyball control unit 135, and a driving path generation unit 136.
[0054] The memory unit 131 is part or all of the memory area of the memory device of the computer system that constitutes the control unit 13, and stores various information about the autonomous mobile unit 1. Specifically, the memory unit 131 stores the travel schedule 101. The travel schedule 101 is data that stores a point cloud representing the route that the autonomous mobile unit 1 is to autonomously reproduce. In this embodiment, the travel schedule 101 stores not only the route to be reproduced, but also data on when to eject the golf balls B collected by the ball collection and ejection unit 23.
[0055] The travel control unit 132 controls the travel motor 15b. The travel control unit 132 receives operation commands from the travel path teaching unit 37 and movement commands from the autonomous movement command unit 133. The travel path teaching unit 37 is, for example, an operating means for the autonomous mobile body 1, such as a steering wheel or remote control. By receiving operation commands from the travel path teaching unit 37 into the travel control unit 132, the autonomous mobile body 1 can move according to the operator's operations using the travel path teaching unit 37.
[0056] The autonomous movement command unit 133 outputs a movement command to the driving control unit 132 for autonomously moving the autonomous mobile body 1. Specifically, the autonomous movement command unit 133 calculates the drive amount of the driving motor 15b based on the difference between the point that will be the target of movement from the point cloud included in the driving schedule 101 and the position information of the autonomous mobile body 1 input from the position calculation unit 134, and outputs this drive amount as a movement command to the driving control unit 132. In addition, the autonomous movement command unit 133 outputs a command (ball release command) to the ball release control unit 135 to release the golf ball B from the ball collection and release unit 23 at the ball release timing indicated in the driving schedule 101.
[0057] The position calculation unit 134 calculates the current position of the autonomous mobile body 1 at the golf driving range 2 based on the information acquired by the GNSS receiver 17. Specifically, the position calculation unit 134 measures the current location obtained by RTK (Real Time Kinematic) positioning as a combination of latitude and longitude. Alternatively, the current location obtained by the Centimeter Level Augmentation Service (CLAS) can also be used. Furthermore, the position calculation unit 134 calculates the orientation (direction) of the autonomous mobile body 1 based on the signal from the direction detection sensor 19.
[0058] As described above, the position calculation unit 134 calculates the latitude and longitude of the location of the autonomous mobile body 1, and the orientation of the autonomous mobile body 1 at that location, as position information for the autonomous mobile body 1. The position calculation unit 134 represents the orientation of the autonomous mobile body 1 as an angle that increases clockwise, for example, with north as the reference (0°).
[0059] The volleyball control unit 135 operates the volleyball gate 25b by driving the volleyball motor 25a when an operation is performed on the volleyball instruction unit 39, thereby volleying the golf balls B collected in the ball collection and volleying unit 23. The volleyball instruction unit 39 is, for example, an operation panel consisting of push buttons.
[0060] The travel route generation unit 136 generates a travel schedule 101 and stores it in the storage unit 131. The travel route generation unit 136 can generate a travel schedule 101 that combines a route taught by the operator (called a copy travel route) and a route planned to fill in a specific area taught by the operator (called a fill route). The travel route generation unit 136 also generates a two-point route connecting two points within the specific area (for example, a route connecting the end point of the fill route and the start point of the copy travel route) using a Dubins route. The generation of the travel schedule 101 by the travel route generation unit 136 will be explained in detail later.
[0061] Furthermore, the travel path generation unit 136 can reflect the timing of the operation performed by the ball-discarding instruction unit 39, that is, the timing of the ball-collecting and discarding unit 23 discarding the golf ball B, in the travel schedule 101. Specifically, for example, the travel path generation unit 136 can store in the travel schedule 101 the position of the autonomous mobile body 1 at the time the operation performed by the ball-discarding instruction unit 39 was performed, and / or the time at the time the operation performed by the ball-discarding instruction unit 39 was performed (the elapsed time since autonomous movement began), along with information indicating that the operation was performed by the ball-discarding instruction unit 39.
[0062] (4) Dubins route The following describes Dubins paths used to generate a two-point path connecting two points within a specific region. A Dubins path is composed of a pivot circle CR1 that includes the starting point ST on its circumference, a pivot circle CR2 that includes the ending point G on its circumference, and a tangent line TL or pivot circle CR3 that is tangent to the two pivot circles CR1 and CR2. For a specific starting point ST and ending point G, a specific orientation D1 (attitude) of the autonomous mobile object 1 at the starting point ST, and a specific orientation D2 of the autonomous mobile object 1 at the ending point G, six types of Dubins paths shown in Figures 5A to 5F are generated. Figures 5A to 5F show examples of Dubins path generation.
[0063] The Dubins path shown in Figure 5A consists of a clockwise orbital circle CR1, a counterclockwise orbital circle CR2, and a straight line tangent TL. This Dubins path is a path that moves clockwise along orbital circle CR1 from the starting point ST to the point of tangency between orbital circle CR1 and tangent TL, then moves along tangent TL from the point of tangency between orbital circle CR1 and tangent TL to the point of tangency between orbital circle CR2 and tangent TL, and finally moves counterclockwise along orbital circle CR2 from the point of tangency between orbital circle CR2 and tangent TL to the endpoint G (RSL (Right-Straight-Left) path).
[0064] The Dubins path shown in Figure 5B consists of a left-handed orbital circle CR1, a left-handed orbital circle CR2, and a straight line tangent TL. This Dubins path is a path that moves counterclockwise along orbital circle CR1 from the starting point ST to the point of tangency between orbital circle CR1 and tangent TL, then moves along tangent TL from the point of tangency between orbital circle CR1 and tangent TL to the point of tangency between orbital circle CR2 and tangent TL, and finally moves counterclockwise along orbital circle CR2 from the point of tangency between orbital circle CR2 and tangent TL to the endpoint G (LSL (Left-Straight-Left) path).
[0065] The Dubins path shown in Figure 5C consists of a left-handed orbital circle CR1, a right-handed orbital circle CR2, and a straight line tangent TL. This Dubins path is a path that moves counterclockwise along orbital circle CR1 from the starting point ST to the point of tangency between orbital circle CR1 and tangent TL, then moves along tangent TL from the point of tangency between orbital circle CR1 and tangent TL to the point of tangency between orbital circle CR2 and tangent TL, and finally moves clockwise along orbital circle CR2 from the point of tangency between orbital circle CR2 and tangent TL to the endpoint G (LSR (Left-Straight-Right) path).
[0066] The Dubins path shown in Figure 5D consists of a clockwise orbital circle CR1, a clockwise orbital circle CR2, and a counterclockwise orbital circle CR3. This Dubins path is a path that moves clockwise along orbital circle CR1 from the starting point ST to the point of contact between orbital circles CR1 and CR3, then moves counterclockwise along orbital circle CR3 from the point of contact between orbital circles CR1 and CR3 to the point of contact between orbital circles CR2 and CR3, and finally moves clockwise along orbital circle CR2 from the point of contact between orbital circles CR2 and CR3 to the endpoint G (RLR (Right-Left-Right) path).
[0067] The Dubins path shown in Figure 5E consists of a clockwise slewing circle CR1, a clockwise slewing circle CR2, and a straight line tangent TL. This Dubins path is a path that moves clockwise along slewing circle CR1 from the starting point ST to the point of tangency between slewing circle CR1 and tangent TL, then moves along tangent TL from the point of tangency between slewing circle CR1 and tangent TL to the point of tangency between slewing circle CR2 and tangent TL, and finally moves clockwise along slewing circle CR2 from the point of tangency between slewing circle CR2 and tangent TL to the endpoint G (RSR (Right-Straight-Right) path).
[0068] The Dubins path shown in Figure 5F consists of a left-handed spiral circle CR1, a left-handed spiral circle CR2, and a right-handed spiral circle CR3. This Dubins path moves counterclockwise along spiral circle CR1 from the starting point ST to the point of contact between spiral circles CR1 and CR3, then moves clockwise along spiral circle CR3 from the point of contact between spiral circles CR1 and CR3 to the point of contact between spiral circles CR2 and CR3, and finally moves counterclockwise along spiral circle CR2 from the point of contact between spiral circles CR2 and CR3 to the endpoint G (LRL (Left-Right-Left) path).
[0069] (5) Operation of the autonomous mobile unit (5-1) Operation to generate the travel schedule The following describes the process of generating the driving schedule 101. The following explanation uses the example of generating a route as shown in Figure 6 as the driving schedule 101. Figure 6 shows an example of a route that we want the autonomous vehicle to recreate.
[0070] The route shown in Figure 6 is a route where the autonomous movement starts at position P1 of the golf driving range 2 and ends at position P10. This route is composed of the following: a movement route TR1 starting at position P1 and ending at position P2; a movement route TR2 starting at position P2 and ending at position P3; a movement route TR3 starting at position P3 and ending at position P4; a movement route TR4 starting at position P4 and ending at position P5; a movement route TR5 starting at position P5 and ending at position P6; a movement route TR6 starting at position P6 and ending at position P7; a movement route TR7 starting at position P7 and ending at position P8; a movement route TR8 starting at position P8 and ending at position P9; and a movement route TR9 starting at position P9 and ending at position P10.
[0071] Of the above movement paths TR1 to TR9, movement paths TR1, TR5, and TR9 are copy movement paths. Movement paths TR5 and TR9 are paths for ejecting golf balls B collected in specific areas A1 and A2, respectively, and pass by the side of the ball ejection groove 7. Movement path TR1 is the path from the autonomous movement start position (position P1) toward specific area A1. Movement path TR9 is the path from the autonomous movement end point (position P10) after ejecting golf balls B into the ball ejection groove 7.
[0072] Movement paths TR3 and TR7 are filling paths that fill specific areas A1 and A2, respectively. While moving along these movement paths TR3 and TR7, the autonomous mobile unit 1 collects golf balls B scattered on the golf driving range 2 (ball scattering area 3).
[0073] Movement path TR4 is a two-point path connecting the endpoint (position P4) of the filled-in path movement path TR3 and the starting point (position P5) of the copied movement path movement path TR5. Movement path TR4 is generated to stay within the specific area A1 in order to avoid interference with obstacles outside the specific area A1. Movement path TR8 is a two-point path connecting the endpoint (position P8) of the filled-in path movement path TR7 and the starting point (position P9) of the copied movement path movement path TR9. Movement path TR8 is generated to stay within the specific area A2 in order to avoid interference with obstacles outside the specific area A2.
[0074] Travel path TR2 is a two-point path connecting the endpoint (position P2) of travel path TR1, which is a copied travel path, and the starting point (position P3) of travel path TR3, which is a filled-in path.
[0075] Using Figure 7, we will explain the operation of generating the route shown in Figure 6 as the travel schedule 101. Figure 7 is a flowchart of the travel schedule generation operation. First, in step S1, the copy travel routes TR1, TR5, TR9 and specific areas A1, A2 are generated by the operator's instruction.
[0076] Specifically, the operator operates the travel path teaching unit 37 to move the autonomous mobile body 1 in the following order: travel path TR1, outer perimeter of specific area A1, travel path TR5, outer perimeter of specific area A2, and travel path TR9. While the autonomous mobile body 1 is moving due to the operator's operation, the travel path generation unit 136 acquires position information calculated by the position calculation unit 134 at predetermined time intervals (for example, the control cycle of the control unit 13). As a result, travel path TR1, outer perimeter of specific area A1, travel path TR5, outer perimeter of specific area A2, and travel path TR9 can be generated as paths that include multiple pieces of position information (i.e., the coordinates of the autonomous mobile body 1's own position and the orientation (attitude) of the autonomous mobile body 1 at that position) as a point cloud.
[0077] The travel path generation unit 136 stores point clouds representing the copy travel paths TR1, TR5, and TR9 from the paths generated in step S1 in the travel schedule 101. At this time, the time of passing through each point is associated with each point in the travel schedule 101. On the other hand, point clouds representing the outer perimeters of specific regions A1 and A2 are stored in the storage unit 131 for the generation of filled-in paths.
[0078] Note that the teaching of the movement path and the perimeter of the specific area in step S1 does not have to be in the order of movement of the path shown in Figure 6, as described above. The order of teaching the movement path and the perimeter of the specific area can be determined as appropriate, taking into consideration the efficiency of teaching, etc.
[0079] Next, in step S2, the travel path generation unit 136 generates filled-in paths (travel paths TR3 and TR7) for each of the specific regions A1 and A2. The travel path generation unit 136 can generate filled-in paths that include multiple positional information as a point cloud by executing a known algorithm for generating filled-in paths. The travel path generation unit 136 stores the point cloud representing the filled-in paths in the travel schedule 101, associating it with the time it takes to pass through each point. The travel path generation unit 136 also generates a travel path TR2 that connects travel path TR1 and travel path TR3, and a travel path TR6 that connects travel path TR5 and travel path TR7, and stores them in the travel schedule 101.
[0080] Subsequently, in step S3, the travel path generation unit 136 generates two-point paths (travel paths TR4 and TR8) connecting two points within specific regions A1 and A2. As described above, the travel paths TR4 and TR8, which are two-point paths, are generated so as to fit within the specific regions A1 and A2. Specifically, the travel path generation unit 136 generates the two-point paths TR4 and TR8 according to the flowchart in Figure 8, which will be explained below. Figure 8 is a flowchart showing the operation of generating two-point paths within a specific region. In the following explanation, we will take the case of generating a travel path TR8 that starts at position P8 and ends at position P9 within specific region A2 as an example. The travel path TR4 within specific region A1 can be generated in the same manner as the travel path TR8.
[0081] First, in step S31, the travel path generation unit 136 sets the direction of movement at position P8, which is the starting point of the travel path TR8, and position P9, which is the ending point. For example, the orientation of the autonomous mobile body 1 at position P8 and position P9 is set as the direction of movement for position P8 and position P9, respectively. The orientation of the autonomous mobile body 1 at positions P8 and position P9 is determined when the copied travel path and the filled-in path are generated in steps S1 and S2 described above. For example, as shown in Figure 9, the direction of movement DI1 is set at position P8 and the direction of movement DI2 is set at position P9. Figure 9 is a diagram showing an example of the direction of movement set at the starting and ending points of the travel path.
[0082] Next, in step S32, the travel path generation unit 136 generates a Dubins path from position P8 to position P9. In step S32, the turning circle of the Dubins path has the minimum turning radius that the autonomous mobile body 1 can turn with the ball collection and volleying unit 23 connected.
[0083] Subsequently, the travel route generation unit 136 determines whether any of the Dubins routes generated in step S33 fall within the specific area A2. If any of the Dubins routes generated in step S32 fall within the specific area A2 (i.e., "Yes" in step S33), the travel schedule 101 generation operation proceeds to step S42. In step S42, the travel route generation unit 136 selects the shortest of the Dubins routes that fall within the specific area A2 as the travel route TR8.
[0084] On the other hand, if none of the Dubins routes generated in step S32 fall within the specific region A2 (resulting in "No" in step S33), the travel route generation unit 136 generates a travel route TR8 using a different route generation algorithm. Specifically, the travel route TR8 is generated as follows.
[0085] First, in step S34, the travel path generation unit 136 sets a first turning circle C1 with position P8, which is the starting point of the travel path TR8, as the contact point, and the travel direction DI1 as the turning direction. The first turning circle C1 is set so as to be tangent at position P8 to a straight line extending from position P8 in the travel direction DI1. Furthermore, the first turning circle C1 is set to have the minimum turning radius that the autonomous mobile body 1 can turn with the ball collecting and volleying unit 23 connected, taking into consideration the travel capability (turning capability) of the autonomous mobile body 1.
[0086] In step S34, the first turning circle C1 can be considered to be a clockwise turning circle and a counterclockwise turning circle that are circumscribed at position P8. Therefore, the travel path generation unit 136 determines that if either of the two turning circles with different turning directions is located within the specific region A2, it can set the turning circle located within the specific region A2 as the first turning circle C1 and plan a path from position P8 to position P9. On the other hand, if neither of the two first turning circles is located within the specific region A2, it determines that it is not possible to plan a path from position P8 to position P9.
[0087] For position P8 and direction of movement DI1 shown in Figure 9, a first turning circle C1 can be set, for example, as shown in Figure 10, and a path from position P8 to position P9 can be planned. The first turning circle C1 in Figure 10 is a counterclockwise circle. Figure 10 shows an example of a first turning circle with respect to the starting point.
[0088] After setting the first turning circle C1, the travel path generation unit 136 sets a second turning circle C2 in step S35 that fits within a specific region A2 and is circumscribing the first turning circle C1. The second turning circle C2 is set to have the same minimum turning radius as the first turning circle C1, allowing the autonomous mobile body 1 to turn while connected to the ball collection and volleying unit 23. On the other hand, the second turning circle C2 rotates in the opposite direction to the first turning circle C1. For example, a second turning circle C2 as shown in Figure 11 is set for the first turning circle C1 shown in Figure 10. Since the first turning circle C1 shown in Figure 10 rotates counterclockwise, the second turning circle C2 shown in Figure 11 rotates clockwise. Figure 11 shows an example of a second turning circle circumscribing the first turning circle with respect to the starting point.
[0089] After setting the second turning circle C2, the travel path generation unit 136 generates a Dubins path in step S36, starting from the point of contact P1' between the first turning circle C1 and the second turning circle C2 and ending at position P9. For the second turning circle C2 shown in Figure 11, a Dubins path is generated as shown by the thick line in Figure 12. Figure 12 is a diagram showing an example of a Dubins path generated for the second turning circle in Figure 11.
[0090] As shown in Figure 12, the Dubins path generated in step S36 is a so-called RSR path, consisting of a second clockwise turning circle C2, a third clockwise turning circle C3, and a tangent line TL1 between the second and third turning circles C2 and C3. The third turning circle C3 includes position P9 on its circumference and rotates from position P9 in the direction of movement DI2. The third turning circle C3 is also externally tangent at position P9 to a straight line extending from position P9 in the direction of movement DI2. Furthermore, the third turning circle C3, like the first and second turning circles C1 and C2, has the minimum turning radius that the autonomous mobile body 1 can turn with the ball collection and volleying unit 23 connected.
[0091] After generating the Dubins path described above, the travel path generation unit 136 generates a path in step S37 that combines the first turning circle C1 and the Dubins path generated in step S36 as a candidate for the travel path TR8. Specifically, as shown in Figure 13, a path that moves counterclockwise along the first turning circle C1 from position P8 to contact point P1' is connected to the Dubins path generated in step S36 at contact point P1'. Figure 13 shows an example of a candidate travel path that includes the first turning circle and the Dubins path.
[0092] By performing step S37 described above, one of the candidate paths for the movement path TR8 is generated, as shown in Figure 13: moving counterclockwise along the first rotational circle C1 from position P8 to tangent point P1', moving clockwise along the second rotational circle C2 from tangent point P1' to tangent point P2' of the second rotational circle C2 and tangent line TL1, moving along tangent line TL1 from tangent point P2' to tangent point P3' of the third rotational circle C3 and tangent line TL1, and moving clockwise along the third rotational circle C3 from tangent point P3' to position P9.
[0093] The path between two points, P8 and P9, can be generated not only when the first turning circle C1 starting from P8 is set as a counter-clockwise turning circle, but also when it is set as a clockwise turning circle. Therefore, the travel path generation unit 136 sets the first turning circle C1 as a counter-clockwise turning circle in step S34, executes steps S35 to S37 to generate the path between two points using the first turning circle C1 as a counter-clockwise turning circle, then returns to step S34, sets the first turning circle C1 as a clockwise turning circle, executes steps S35 to S37 to generate the path between two points using the first turning circle C1 as a clockwise turning circle. Conversely, the first turning circle C1 may be set as a clockwise turning circle to generate the path between two points using a Dubins path, and then the first turning circle C1 may be set as a counter-clockwise turning circle to generate the path between two points using a Dubins path.
[0094] After performing steps S34 to S37 described above to generate candidate movement paths TR8 by setting the first rotation circle C1 with respect to position P8, candidate movement paths TR8 are further generated by setting the first rotation circle C1 with respect to position P9, which is the endpoint of the movement path TR8.
[0095] In step S38, the travel path generation unit 136 sets a first turning circle C4 with position P9, which is the endpoint of the travel path TR8, as the contact point and the direction of movement DI2 as the turning direction. For position P9 and direction of movement DI2 shown in Figure 9, for example, the first turning circle C4 shown in Figure 14 is set. The first turning circle C4 in Figure 14 is a clockwise circle. Figure 14 shows an example of a first turning circle based on the endpoint.
[0096] After setting the first turning circle C4, the travel path generation unit 136 sets a second turning circle C5 in step S39 that fits within a specific region A2 and is tangent to the first turning circle C4. For the first turning circle C4 shown in Figure 14, for example, the second turning circle C5 shown in Figure 15 is set. Since the first turning circle C1 shown in Figure 14 is clockwise, the second turning circle C5 shown in Figure 15 is counterclockwise. Figure 15 shows an example of a second turning circle tangent to the first turning circle with respect to the endpoint.
[0097] After setting the second turning circle C5, the travel path generation unit 136 generates a Dubins path in step S40, starting from position P8 and ending at the point of contact P4' between the first turning circle C4 and the second turning circle C5. For the second turning circle C5 shown in Figure 15, a Dubins path is generated as shown by the thick line in Figure 16. Figure 16 shows an example of a Dubins path generated for the second turning circle in Figure 15.
[0098] As shown in Figure 16, the Dubins path generated in step S40 is a so-called LSL path, consisting of a second left-handed turning circle C5, a third left-handed turning circle C6, and a tangent line TL2 between the second and third turning circles C5 and C6. The third turning circle C6 is a circle that includes position P8 on its circumference and rotates from position P8 in the direction of movement DI1. The third turning circle C6 is externally tangent at position P9 to a straight line extending from position P8 in the direction of movement DI1.
[0099] After generating the Dubins path described above, the travel path generation unit 136 generates a path in step S41 that combines the first turning circle C4 and the Dubins path generated in step S40 as another candidate for the travel path TR8. Specifically, as shown in Figure 17, a path that moves clockwise along the first turning circle C4 from contact point P4' to position P9 is connected to the Dubins path generated in step S40 at contact point P4'. Figure 17 shows another example of a candidate travel path that includes the first turning circle and the Dubins path.
[0100] By performing step S41 above, another candidate path for the movement path TR8 is generated, as shown in Figure 17, which moves counterclockwise along the third revolving circle C6 from position P8 to the point of contact P5' of the tangent line TL2 with the third revolving circle C6, moves along the tangent line TL2 from point of contact P5' to the point of contact P6' of the second revolving circle C5 with the tangent line TL2, moves counterclockwise along the second revolving circle C5 from point of contact P6' to point of contact P4', and moves clockwise along the first revolving circle C4 from point of contact P4' to position P9.
[0101] Even when steps S38 to S41 described above are executed, the travel path generation unit 136 sets a clockwise first turning circle C4 in step S38, executes steps S39 to S41 to generate a path between two points using the clockwise first turning circle C4, then returns to step S38, sets a counterclockwise first turning circle C4, executes steps S39 to S41 to generate a path between two points using the counterclockwise first turning circle C4. Conversely, a counterclockwise first turning circle C4 may be set to generate a path between two points using a Dubins path, and then a clockwise first turning circle C4 may be set to generate a path between two points using a Dubins path.
[0102] The candidate travel paths TR8 generated by executing steps S34 to S41 above include not only the two paths shown in Figures 13 and 17, but also a large number of paths depending on the settings of the first turning circles C1 and C4 and the second turning circles C2 and C5, and the type of Dubins path generated for each of the second turning circles C2 and C5.
[0103] Therefore, in step S42, the travel path generation unit 136 selects from the generated travel path TR8 candidates the candidate in which all paths are contained within the specific region A1 and the travel distance is the shortest, as the travel path TR8. Subsequently, the travel path generation unit 136 converts the selected travel path TR8 into a point cloud, associates the time it takes to pass through each point of the travel path TR8 with the point cloud, and stores it in the travel schedule 101.
[0104] In the method for generating a path between two points within a specific region according to this embodiment, before generating the Dubins path, first pivot circles C1 and C4 are set with the starting point P8 or ending point P9 of the path between the two points as their tangents. The pivot direction of the first pivot circles C1 and C4 is determined by the direction of movement set at positions P8 and P9. Subsequently, second pivot circles C2 and C5, which become part of the Dubins path, are set. By setting the first pivot circles C1 and C4 before generating the Dubins path, and then setting the second pivot circles C2 and C5, it is possible to secure the area necessary for generating the Dubins path within the specific regions A1 and A2. As a result, for a greater number of combinations of starting and ending points within the specific regions A1 and A2, a path between two points that fits within the specific region can be generated using the Dubins path.
[0105] To verify the above effect, we set start and end points at various positions within a small, specific area, set various movement directions at each start and end point, and generated two-point paths by combining the first rotation circle and the Dubins path. We then compared the extent to which appropriate two-point paths that fit within the specific area could be generated with the case where two-point paths were generated using only the Dubins path. As a result, when the first rotation circle and the Dubins path were combined, appropriate two-point paths could be generated for almost all start and end point combinations except those very close to the outer perimeter of the small, specific area. On the other hand, when two-point paths were generated using only the Dubins path, appropriate two-point paths could not be generated for start and end points relatively far from the outer perimeter of the specific area. In other words, even when the Dubins path alone cannot generate a two-point path that fits within a small, specific area, combining the first rotation circle and the Dubins path can generate a two-point path that fits within that specific area.
[0106] Furthermore, the method for generating a movement path by combining the first turning circle and the Dubins path can be applied even when it is difficult to move backward and there are constraints on the turning radius, such as in the autonomous mobile body 1 (ball collecting machine) of this embodiment. In other words, the method for generating a movement path by combining the first turning circle and the Dubins path does not impair the advantages of the Dubins path.
[0107] Furthermore, in this embodiment, the first rotational circles C1 and C4 and the second rotational circles C2 and C5 are externally tangent. As a result, a path connecting the first rotational circles C1 and C4 and the second rotational circles C2 and C5 is unnecessary, thus enabling the generation of a shorter path between two points.
[0108] (5-2) Autonomous movement The operation of the autonomous mobile unit 1 when it moves autonomously according to the travel schedule 101 generated as described above will be explained below using Figure 18. Figure 18 is a flowchart of the autonomous movement operation.
[0109] In step S101, the autonomous movement command unit 133 identifies a target point (referred to as the target point) from the point cloud included in the travel schedule 101. For example, if each point in the travel schedule 101 is associated with the time it takes to pass through that point, the point associated with the time closest to the elapsed time from the start of autonomous movement can be identified as the target point. The autonomous movement command unit 133 also decides from the travel schedule 101 whether or not to perform the ball-throwing operation at the target point.
[0110] Next, in step S102, the autonomous mobile command unit 133 obtains the current position information of the autonomous mobile body 1 from the position calculation unit 134.
[0111] After acquiring the location information, in step S103, the autonomous movement command unit 133 calculates the control amount for the travel motor 15b as a movement command based on the target point identified in step S101 and the location information acquired in step S102. For example, the control amount for the travel motor 15b can be calculated based on the difference between the target point and the current location information, or the ratio between the target point and the current location information.
[0112] Subsequently, in step S104, the autonomous movement command unit 133 outputs the movement command calculated in step S103 to the driving control unit 132. The driving control unit 132 supplies power to the driving motor 15b based on the received movement command. As a result, the autonomous mobile unit 1 autonomously moves toward the target point, changing its attitude so that it faces the direction of the target at the target point.
[0113] If the autonomous mobile unit 1 has not reached the target point after a predetermined time (e.g., the control cycle) has elapsed since starting to move toward the target point (resulting in "No" in step S105), the autonomous movement operation returns to step S102. In other words, the autonomous movement command unit 133 executes steps S102 to S104 until the autonomous mobile unit reaches the target point.
[0114] On the other hand, if the autonomous mobile unit 1 reaches the target point ("Yes" in step S105) but has not reached the autonomous mobile end point of the travel schedule 101 ("No" in step S106), the autonomous mobile operation returns to step S101. That is, the autonomous mobile command unit 133 executes step S101 to identify the next target point and executes steps S102 to S104 to control the travel motor 15b to reach the next target point.
[0115] When the autonomous mobile unit 1 reaches the target point, the autonomous mobile command unit 133 determines whether or not to perform a ball-throwing operation at the reached target point. Specifically, if the travel schedule 101 indicates that a ball-throwing operation should be performed at the reached target point, the autonomous mobile command unit 133 determines that a ball-throwing operation should be performed at the reached target point and outputs a ball-throwing command to the ball-throwing control unit 135. Upon receiving the ball-throwing command, the ball-throwing control unit 135 drives the ball-throwing motor 25a to perform the ball-throwing operation at the target point.
[0116] On the other hand, if the autonomous mobile unit 1 reaches the target point ("Yes" in step S105) and that target point is the autonomous movement termination point of the travel schedule 101, that is, if the autonomous mobile unit 1 reaches the autonomous movement termination point ("Yes" in step S106), the autonomous movement operation ends.
[0117] 2. Second Embodiment (1) Overview In the first embodiment described above, after autonomously moving along a filled path within a specific region A (specific regions A1, A2 in the example of Figure 6), a two-point path from the end position of the filled path (position within specific region A) to the starting point (position P5, P9 in the example of Figure 6) of a path leading to the ball disposal groove 7 (movement path TR5, TR9 in the example of Figure 6) (position within specific region A) was created using a path creation method that utilizes Dubins paths. This two-point path is created so as to fit within specific region A. On the other hand, for example, in the autonomous mobile body 1, which is a ball collecting and discharging machine, the ball collecting and discharging unit 23 may become full of golf balls B while autonomously moving along a filled path, and a command to discharge the golf balls B into the ball disposal groove 7 may be issued during autonomous movement. In this case, the autonomous mobile body 1 interrupts and stops the currently executing autonomous movement, and then plans a two-point path from the stopped position to the starting point of a path leading to the vicinity of the ball disposal groove 7.
[0118] As described above, if a plan for a two-point path (for example, a volleyball command) is issued while autonomous movement is in progress, it may become impossible to plan a two-point path that connects the stopping position to the target position within specific region A and fits within specific region A after the autonomous mobile unit 1 has stopped following the plan. For example, if a plan for a two-point path is issued while the autonomous mobile unit 1 is moving at the edge of specific region A, and as a result the autonomous mobile unit 1 moves to an even further edge of specific region A, it becomes impossible to plan a two-point path that fits within specific region A.
[0119] Accordingly, in the second embodiment, when the system is autonomously moving within a specific region A and is instructed to plan a two-point path with a predetermined target location within the specific region A as the endpoint, the system determines whether it is possible to interrupt the currently running autonomous movement and plan a two-point path within the specific region A, with the stopping position as the starting point and the predetermined target location as the endpoint. If it is determined that it is possible, the system interrupts the autonomous movement and executes the plan for the two-point path.
[0120] (2) Autonomous movement operation of the second embodiment (2-1) Overview The autonomous movement operation according to the second embodiment will be described below. As will be described later, in the autonomous movement operation according to the second embodiment, when a command is issued to plan a two-point path that ends at a predetermined target position within the specific area A (for example, the starting point of a path leading to the volleyball field 7) while autonomous movement is being performed within a specific area A, it is determined whether the stopping position of the autonomous mobile body 1 after interrupting the currently performed autonomous movement is a position where a two-point path starting at that stopping position and ending at the above-mentioned target position can be planned to fit within the specific area A. This determination is made based on whether the current position of the autonomous mobile body 1 at the time the plan for the two-point path is commanded (while autonomous movement is being performed) is included in the interruptible area SA. The interruptible area SA is an area that defines the range of positions (current position) in which a two-point path starting at the position of the autonomous mobile body 1 when the autonomous movement is interrupted and stopped at the current position can be planned to fit within the specific area A.
[0121] In this embodiment, the interruptible area SA is set in advance and stored in the storage unit 131. This eliminates the need for the control unit 13 to calculate the interruptible area SA during autonomous movement, thereby reducing the load on the control unit 13 during autonomous movement. In other embodiments, the setting of the interruptible area SA can also be performed during autonomous movement.
[0122] (2-2) Setting the interruptible area The following describes how to set the interruptible area SA. The interruptible area SA can be set by (i) determining the area (referred to as the rotation circle containing area CA) that includes the first rotation circle C1 with the stopping position of the autonomous mobile body 1 when the currently executing autonomous movement is interrupted and stopped, and (ii) determining the interruptible area SA that can be contained within the specific area A.
[0123] First, the method for determining the turning circle-containing region CA will be explained. The turning circle-containing region CA is determined as a region that includes two first turning circles C11 and C12 (Figure 20A) that can be set at the position where the autonomous mobile body 1 interrupts its straight-line movement and stops while moving in a straight line at its maximum speed, two first turning circles C13 and C14 (Figure 20B) that can be set at the position where the autonomous mobile body 1 interrupts its right turn and stops while turning to the right at its maximum speed, and two first turning circles C15 and C16 (Figure 20C) that can be set at the position where the autonomous mobile body 1 interrupts its left turn and stops while turning to the left at its maximum speed. In this embodiment, as shown in Figure 20D, the region inside the first circle C7, which includes the first turning circles C11, C13, and C15 on the right side in the direction of travel of the autonomous mobile body 1, and the second circle C8, which includes the first turning circles C12, C14, and C16 on the left side, is defined as the turning circle containing region CA. The position at which movement / turning is interrupted and the vehicle stops while moving / turning at maximum speed can be confirmed experimentally. Alternatively, this stopping position can be calculated by theoretical calculation. Figures 20A to 20D show an example of a method for determining the turning circle containing region CA.
[0124] Furthermore, the shape of the orbital circle-containing region CA, which encompasses the six first orbital circles C11 to C16, is not limited to two circles. For example, the orbital circle-containing region CA may be defined by two or more circles and / or ellipses that include the six first orbital circles C11 to C16. Alternatively, the area inside the six first orbital circles C11 to C16 may also be defined as the orbital circle-containing region CA.
[0125] Next, the method for setting the interruptible area SA will be explained. The interruptible area SA is set as an area indicating the range of positions of the autonomous mobile body 1 that can contain the above-mentioned rotating circle-containing area CA within the specific area A. Here, "containing the rotating circle-containing area CA within the specific area A" means that at least one of the two circles (first circle C7, second circle C8) that define the rotating circle-containing area CA is contained within the specific area A. In this way, by defining the interruptible area SA as an area that can include the first rotating circles C11 to C16, which can be set at the position where the autonomous mobile body 1 stops while moving at maximum speed, within the specific area A, it is possible to more accurately determine whether the current position of the autonomous mobile body 1 is a suitable position for interrupting autonomous movement and planning a two-point path that fits within the specific area A.
[0126] As the interruptible region SA is defined as described above, the size and shape of the interruptible region SA differ depending on the direction (attitude angle) of the autonomous mobile unit 1, as shown in Figures 21A and 21B. In Figures 21A and 21B, the attitude angle of the autonomous mobile unit 1 is indicated by an arrow. Figure 21A shows an example of the interruptible region SA set when the attitude angle is 0 degrees. Figure 21B shows an example of the interruptible region SA set when the attitude angle is 45 degrees.
[0127] Therefore, the interruptible region SA is set for each predetermined angle of the attitude angle and stored in the memory unit 131. Specifically, if the predetermined angle is θ, multiple interruptible regions SA are set for the attitude angle range of 0 to θ, for the attitude angle range of θ / 2 to 3θ / 2, for the attitude angle range of θ to 2θ, for the attitude angle range of 3θ / 2 to 5θ / 2, and so on, and stored in the memory unit 131. In this way, by setting the interruptible region SA for each predetermined angle of the attitude angle, a larger interruptible region SA can be set compared to using a common interruptible region for each attitude angle. Furthermore, it is possible to accurately determine, at any attitude angle of the autonomous mobile body 1, whether it can interrupt its autonomous movement and plan a two-point path that fits within a specific region A.
[0128] (2-3) Autonomous movement The autonomous movement operation in the second embodiment will be explained below using Figure 22. Figure 22 is a flowchart showing the autonomous movement operation in the second embodiment. First, in step S201, the autonomous mobile unit 1 starts autonomous movement. For example, the autonomous mobile unit 1 starts autonomous movement along a filled path within specific areas A1 and A2. The autonomous movement operation is performed according to steps S101 to S106 described in the first embodiment above.
[0129] During autonomous movement, in step S202, the control unit 13 determines whether a plan command for a two-point path that ends at a predetermined target location and is contained within a specific area A has been issued to the autonomous mobile unit 1. For example, when a command to release a golf ball B is issued during autonomous movement, it is determined that a plan command for a two-point path has been issued, with the starting point of a path leading to the vicinity of the golf ball disposal groove 7 as the ending point. The plan command for a two-point path (golf ball disposal command) is output, for example, when the storage amount detector provided in the golf ball collection and disposal unit 23 detects that the amount of golf balls B stored exceeds a predetermined threshold. Alternatively, for example, a remote control panel may output a plan command for a two-point path (golf ball disposal command) to the autonomous mobile unit 1 through user operation.
[0130] If a plan command for a two-point path is given (Yes in step S202), the control unit 13 determines in step S203 whether the current position of the autonomous mobile unit 1 (estimated self-position) is included in the interruptible region SA. As described above, the size and shape of the interruptible region SA differ depending on the attitude angle of the autonomous mobile unit 1. Therefore, the control unit 13 selects an interruptible region SA from the storage unit 131 that corresponds to the current attitude angle of the autonomous mobile unit 1 (i.e., the attitude angle of the autonomous mobile unit 1 at its current position), and determines whether the current position of the autonomous mobile unit 1 is included in the selected interruptible region SA.
[0131] Note that, depending on the attitude angle, there may be two interruptible regions SA generated by the above setting method. For example, in the range of attitude angles from θ / 2 to θ, there is an interruptible region SA for attitude angles from 0 to θ, and an interruptible region SA for attitude angles from θ / 2 to 3θ / 2. In this case, the control unit 13 selects an interruptible region SA depending on which interruptible region SA's setting angle range the current attitude angle is closest to. For example, if the current attitude angle is greater than or equal to θ / 2 and less than or equal to 3θ / 4, the interruptible region SA for attitude angles from 0 to θ is selected, and if it is greater than 3θ / 4 and less than or equal to θ, the interruptible region SA for θ / 2 to 3θ / 2 is selected.
[0132] If the current position of the autonomous mobile unit 1 is not included in the interruptible area SA (No in step S203), the control unit 13 determines that even if autonomous movement is interrupted at the current position, it is not possible to plan a two-point path that ends at the target position and falls within the specific area A. In this case, the control unit 13 continues the currently running autonomous movement until the autonomous mobile unit 1 reaches a position included in the interruptible area SA (step S204).
[0133] On the other hand, if the current position is within the interruption area SA (Yes in step S203), the control unit 13 determines that by interrupting autonomous movement at the current position, it is possible to plan a two-point path that ends at the target position and fits within the specific area A. In this case, the control unit 13 interrupts the currently running autonomous movement and stops the autonomous mobile unit 1 (step S205).
[0134] Subsequently, in step S206, the control unit 13 determines whether the stopping position of the autonomous mobile body 1 when it interrupted autonomous movement and stopped is included in the interruptionable area SA. If the stopping position is not included in the interruptionable area SA (No in step S206), the control unit 13 resumes and continues the interrupted autonomous movement (i.e., returns to step S204). This allows, for example, if the braking distance of the autonomous mobile body 1 becomes unexpectedly long due to slippage or the like, and the autonomous mobile body 1 stops at a position where it is not possible to plan a two-point path that fits within a specific area, the autonomous mobile body 1 to move to another position by autonomous movement, and then attempts to interrupt the autonomous movement from that other position to generate a two-point path.
[0135] On the other hand, if the stopping position is included in the interruption area SA (Yes in step S206), the autonomous movement is interrupted and a two-point path is planned using a Dubins path, with the stopping position as the starting point and the above-mentioned target position as the ending point (step S207). The two-point path from the stopping position to the predetermined target position is planned by performing steps S31 to S42 described in the first embodiment above.
[0136] After planning the path between the two points, the control unit 13 autonomously moves the autonomous mobile body 1 from the above-mentioned stopping position to a predetermined target position (step S208). After completing this autonomous movement, the control unit 13 autonomously moves back to the stopping position of the autonomous mobile body 1 as determined in step S205 (step S209). For example, the control unit 13 autonomously moves the autonomous mobile body 1 from the above-mentioned stopping position to the starting point of the path toward the vicinity of the volleyball groove 7, and then autonomously moves the autonomous mobile body 1 along the path toward the vicinity of the volleyball groove 7, and performs volleying when it reaches the vicinity of the volleyball groove 7. After that, it autonomously moves to the end point of the above path (the path toward the vicinity of the volleyball groove 7). The end point of the above path (the path toward the vicinity of the volleyball groove 7) is within a specific area and is set to a position where a path between two points that fits within the specific area can be planned.
[0137] Subsequently, the control unit 13 plans a two-point path from the end point of the above-mentioned path to the above-mentioned stopping position, and by autonomously moving the autonomous mobile unit 1 along the two-point path, it can return to the stopping position where it stopped in step S205. The path from the end point of the above-mentioned path to the stopping position in step S205 can be planned using any path planning method.
[0138] If the autonomous mobile unit 1 returns to the above-mentioned stopping position and then decides to continue the autonomous movement that was interrupted in step S205 (No in step S210), the control unit 13 resumes the autonomous movement that was interrupted in step S205 from the above-mentioned stopping position. On the other hand, if the autonomous movement is to be terminated (Yes in step S210), the control unit 13 terminates the autonomous movement.
[0139] As described above, when a command is issued to plan a route between two points while autonomous movement is being performed within a specific area, if the current position of the autonomous mobile unit 1 (the position of the autonomous mobile unit 1 at the time the command was issued) is included in the interruptible area SA, the currently running autonomous movement is interrupted and the route between the two points is planned. This prevents the planned route from going outside the specific area as a result of interrupting the autonomous movement and planning the route from the position where it stopped.
[0140] 3. Features of the Embodiment The above embodiment can also be described as follows. (1) The path generation method is a method for generating a movement path (e.g., movement path TR4, TR8) for an autonomous mobile body that moves from a starting point (e.g., position P4, P8) located in a specific region (e.g., specific region A, A1, A2) to an ending point (e.g., position P5, P9) located within the specific region. This path generation method comprises the following steps. ◎ A step (for example, step S33) to set the direction of movement (e.g., direction of movement DI1, DI2) at the start and end points. ◎A step (for example, steps S34, S38) to set a first turning circle (for example, first turning circles C1, C4) with the starting point or ending point as the point of contact and the set direction of movement as the direction of rotation. ◎A step (for example, steps S35, S39) to set a second turning circle (for example, second turning circles C2, C5) that falls within a specific area. ◎A step of setting up a Dubins path that starts from or ends at a predetermined point on the second turning circle (for example, steps S36, S40). ◎A step of selecting a travel path from among the paths including the first turning circle and the Dubins path that falls within a specific area (for example, steps S37, S41, S42).
[0141] In the above path generation method, before generating the Dubins path, a first turning circle is set with the start or end point as the point of contact and the direction of movement at the start or end point as the turning direction. Subsequently, a second turning circle, which becomes part of the Dubins path, is set. By setting the first turning circle before generating the Dubins path and then setting the second turning circle, it becomes possible to secure the area necessary for generating the Dubins path within a specific region. As a result, it is possible to generate a two-point path that fits within the specific region for a larger number of start and end point combinations within that small specific region.
[0142] (2) In the path generation method of (1) above, the first turning circle and the second turning circle may be externally tangent with the predetermined point mentioned above as the point of tangency. This eliminates the need for a path connecting the first turning circle and the second turning circle, thus enabling the generation of a shorter path between two points.
[0143] (3) In the path generation method of (2) above, if the starting point of the movement path is a point on the circumference of the first turning circle, the step of setting the Dubins path may include the step of setting the Dubins path from the point of contact between the first turning circle and the second turning circle to the endpoint. This makes it possible to generate a two-point path consisting of a path from the starting point of the movement path to the point of contact between the first turning circle and the second turning circle, and a Dubins path from the point of contact to the endpoint of the movement path, when the first turning circle is set based on the starting point of the movement path.
[0144] (4) In the path generation method of (2) above, if the endpoint of the movement path is a point on the circumference of the first turning circle, the step of setting the Dubins path may include setting the point of tangency between the first turning circle and the second turning circle as a provisional endpoint, and setting the Dubins path from the starting point of the movement path to the provisional endpoint. This makes it possible to generate a two-point path consisting of a Dubins path from the starting point of the movement path to the provisional endpoint of the second turning circle, and a path that moves along the first turning circle from the provisional endpoint to the endpoint of the movement path, when the first turning circle is set based on the endpoint of the movement path.
[0145] (5) In the path generation method of (2) above, if the endpoint is a point on the circumference of the first turning circle, the step of setting up the Dubins path may include the following steps. ◎A step to set the Dubins path from the point of contact between the first and second turning circles to the starting point. ◎The step of reversing the Dubins path to create a path that goes from the starting point to the junction. This allows for the generation of a two-point path consisting of a Dubins path from the starting point of the movement path to the point of contact between the first and second turning circles, and a path that moves along the first turning circle from that point of contact to the end point of the movement path, when the first turning circle is set relative to the end point of the movement path.
[0146] (6) In the path generation method of (1) above, the first turning circle and the second turning circle do not have to be tangent. This allows the second turning circle to be set flexibly.
[0147] (7) In the path generation methods described in (1) to (6) above, the first turning circle and the second turning circle may be circles that make up the minimum turning radius of the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body.
[0148] (8) In the path generation methods of (1) to (6) above, the autonomous mobile body may tow a trolley. In this case, the first turning circle and the second turning circle may be circles consisting of the minimum turning radius including the trolley towed by the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body towing the trolley.
[0149] (9) The route generation methods described in (1) to (8) above may further include the following steps. ◎When a command is issued to generate a movement path ending at a predetermined target location within a specific area while the autonomous mobile body is moving autonomously within that area, the step is to determine whether the current position of the autonomous mobile body falls within an interruptible area, which defines a range of positions within which a movement path can be planned to be completed, starting at the position where the currently executing autonomous movement is interrupted and stopped at the current position, and ending at the aforementioned target location, so as to fit within the specific area. ◎A step to interrupt the currently running autonomous movement if the current location of the autonomous mobile unit falls within the interruption zone. ◎A step of generating a movement path starting from the position where the currently executing autonomous movement stopped, and ending at the target position, after interrupting the movement.
[0150] This prevents the stopping position of the autonomous vehicle when autonomous movement is interrupted from going outside the area where route planning is possible, even if a route plan is commanded during autonomous movement. Furthermore, it prevents the planned route from going outside a specific area as a result of planning the route from the stopping position after autonomous movement is interrupted.
[0151] (10) In the path generation method described in (9) above, the interruptible region may be set as a region indicating a range of positions in which the turning circle-containing region can be contained within a specific region. The turning circle-containing region includes a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while moving in a straight line at maximum speed, a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the right at maximum speed, and a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the left at maximum speed. This makes it possible to more accurately determine whether the current position of the autonomous mobile body is a suitable position for interrupting autonomous movement and generating a movement path.
[0152] (11) In the path generation methods described in (9) to (10) above, the interruptible region may be set for each attitude angle of the autonomous mobile body. In this case, the step of determining whether the current position of the autonomous mobile body is included in the interruptible region may include the following steps. ◎ A step of selecting an interruptible region corresponding to the attitude angle of the autonomous mobile object at its current position. ◎ A step to determine whether the current position of the autonomous mobile unit falls within the selected interruption zone.
[0153] By setting an interruption region for each attitude angle, a larger interruption region can be set compared to using a common interruption region for each attitude angle. Furthermore, it is possible to accurately determine, at any attitude angle of the autonomous mobile object, whether it can interrupt its autonomous movement and plan a two-point path that fits within a specific region.
[0154] (12) In the path generation method described in (9) to (11) above, if the stopping position of the autonomous mobile body when the autonomous movement is interrupted is not included in the interruptible region, the method may further include a step of resuming and continuing the interrupted autonomous movement. This makes it possible to attempt to move the autonomous mobile body to another position by autonomous movement, and then interrupt the autonomous movement from that other position to generate a movement path.
[0155] (13) A program relating to another view of the present invention is a program for causing a computer to execute the route generation methods described in (1) to (12) above.
[0156] (14) The path generation device (for example, the control unit 13) generates a movement path for an autonomous mobile body that moves from a starting point located within a specific area to an ending point located within a specific area. The path generation device sets the direction of movement for the starting point and the ending point, sets a first turning circle with the starting point or ending point as the contact point and the set direction of movement as the turning direction, sets a second turning circle that fits within the specific area, sets a Dubins path that starts from a predetermined point on the second turning circle or ends at the same predetermined point, and selects a path that fits within the specific area from among the paths including the first turning circle and the Dubins path as the movement path.
[0157] The above-described path generation device sets a first rotational circle with the start or end point as the contact point and the direction of movement at the start or end point as the rotational direction, before generating the Dubins path, and then sets a second rotational circle that becomes part of the Dubins path. By setting the first rotational circle before generating the Dubins path and then setting the second rotational circle, it becomes possible to secure the area necessary for generating the Dubins path within a specific area. As a result, for a large number of start-end point combinations within a small specific area, it is possible to generate a two-point path that fits within the specific area using the Dubins path.
[0158] (15) In the path generation device described in (14) above, the first turning circle and the second turning circle may be externally tangent with the predetermined point described above as the point of contact. This eliminates the need to generate a path connecting the first turning circle and the second turning circle, and thus enables the generation of a shorter path between two points.
[0159] (16) In the path generation device described in (15) above, if the starting point of the movement path is a point on the circumference of the first turning circle, a Dubins path from the point of contact between the first turning circle and the second turning circle to the endpoint may be set. This makes it possible to generate a two-point path consisting of a path from the starting point of the movement path to the point of contact between the first turning circle and the second turning circle, and a Dubins path from the point of contact to the endpoint of the movement path, when the first turning circle is set based on the starting point of the movement path.
[0160] (17) In the path generation device described in (15) above, if the endpoint of the movement path is a point on the circumference of the first turning circle, the point of contact between the first turning circle and the second turning circle may be set as a provisional endpoint, and a Dubins path from the starting point of the movement path to the provisional endpoint may be set. This makes it possible to generate a two-point path consisting of a Dubins path from the starting point of the movement path to the provisional endpoint of the second turning circle, and a path that moves along the first turning circle from the provisional endpoint to the endpoint of the movement path, when the first turning circle is set based on the endpoint of the movement path.
[0161] (18) In the path generation device described in (15) above, if the endpoint of the movement path is a point on the circumference of the first turning circle, a Dubins path may be set from the point of contact between the first turning circle and the second turning circle to the starting point, and a path may be generated by reversing the Dubins path to go from the starting point to the point of contact. This makes it possible to generate a two-point path consisting of a Dubins path from the starting point of the movement path to the point of contact between the first turning circle and the second turning circle, and a path that moves along the first turning circle from the point of contact to the endpoint of the movement path, when the first turning circle is set based on the endpoint of the movement path.
[0162] (19) In the path generation device described in (14) above, the first turning circle and the second turning circle do not have to be in contact. This allows the second turning circle to be set flexibly.
[0163] (20) In the path generation device described in (14) to (19) above, the first turning circle and the second turning circle may be circles that make up the minimum turning radius of the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body.
[0164] (21) In the path generation device described in (14) to (19) above, the autonomous mobile body may tow a trolley. In this case, the first turning circle and the second turning circle may be circles that consist of the minimum turning radius including the trolley towed by the autonomous mobile body. This makes it possible to generate the shortest path between two points while taking into account the driving performance of the autonomous mobile body towing the trolley.
[0165] (22) When the path generation device described in (14) to (21) above is autonomously moving within a specific area and is commanded to generate a movement path ending at a predetermined target location within that area, it may determine whether the current position of the autonomous moving body is included in an interruptible area, which defines a range of positions from which a movement path can be planned to be completed within the specific area, starting at the position where the currently executing autonomous movement is interrupted and stopped, and ending at the above-mentioned target location. If the current position of the autonomous moving body is included in the interruptible area, it may interrupt the currently executing autonomous movement and generate a movement path starting at the position where the currently executing autonomous movement is stopped after being interrupted, and ending at the target location.
[0166] This prevents the stopping position of the autonomous vehicle when autonomous movement is interrupted from going outside the area where route planning is possible, even if a route plan is commanded during autonomous movement. Furthermore, it prevents the planned route from going outside a specific area as a result of planning the route from the stopping position after autonomous movement is interrupted.
[0167] (23) In the path generation device described in (22) above, the interruptible region may be set as a region indicating a range of positions in which the turning circle-containing region can be contained within a specific region. The turning circle-containing region includes a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while moving in a straight line at maximum speed, a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the right at maximum speed, and a first turning circle that can be set at the position where the autonomous mobile body interrupts its movement and stops while turning to the left at maximum speed. This makes it possible to more accurately determine whether the current position of the autonomous mobile body is a suitable position for interrupting autonomous movement and generating a movement path.
[0168] (24) In the path generation device described in (22) to (23) above, the interruptible region may be set for each attitude angle of the autonomous mobile body. In this case, the path generation device may select an interruptible region corresponding to the attitude angle of the autonomous mobile body at its current position and determine whether the current position of the autonomous mobile body is included in the selected interruptible region. By setting an interruptible region for each attitude angle, a larger interruptible region can be set compared to using a common interruptible region for each attitude angle. Furthermore, it is possible to accurately determine, at any attitude angle of the autonomous mobile body, whether it can interrupt its autonomous movement and plan a two-point path that fits within a specific region.
[0169] (25) The path generation device described in (22) to (24) above may resume and continue the interrupted autonomous movement if the stopping position of the autonomous mobile body when the autonomous movement is interrupted is not included in the interruptible area. This makes it possible to attempt to move the autonomous mobile body to another position by autonomous movement and then interrupt the autonomous movement from that other position to generate a movement path.
[0170] (26) An autonomous mobile unit (for example, autonomous mobile unit 1) comprises a main body (for example, main body 11), a path generation device as described in (14) to (25) above, and a mobile unit (for example, mobile unit 15) that moves the main body along the path generated by the path generation device.
[0171] 4. Other Embodiments Although embodiments of the present invention have been described above, the present invention is not limited to the embodiments described above, and various modifications are possible without departing from the spirit of the invention. In particular, the multiple embodiments and modifications described herein can be arbitrarily combined as needed.
[0172] (A) The processing order of each step in the flowcharts shown in Figures 7, 8, and 18, and / or the processing content of each step, can be modified as appropriate without departing from the spirit of the invention.
[0173] (B) If the first turning circle C4 is set with respect to the endpoint of the path between two points (for example, position P9), the Dubins path may be generated in the opposite direction to that of the first embodiment, and then the generated Dubins path may be reversed.
[0174] Specifically, when setting the second pivot circle C5 in step S39, the rotation direction of the second pivot circle C5 is set to the opposite direction (clockwise) to the rotation direction (counterclockwise) of the first embodiment. Then, in step S40, a Dubins path is generated from the point of contact P4' between the first pivot circle C4 and the second pivot circle C5 to the starting point (position P8). This generates an RSR path from the point of contact P4' to position P8.
[0175] Subsequently, the RSR path from contact P4' to position P8 is converted to an LSL path from position P8 to contact P4'. This method also generates a movement path TR8 similar to that described in the first embodiment.
[0176] (C) The second rotational circles C2 and C5 do not need to be externally tangent to the first rotational circles C1 and C4, as long as they are contained within the specific regions A1 and A2. This allows for flexible setting of the second rotational circles C2 and C5, making it possible to more reliably generate a path between two points contained within the specific regions A1 and A2 using Dubins paths.
[0177] For example, as shown in Figure 19, a path can be generated that starts from position P8, moves along the first turning circle C1, moves along the tangent line TL3 connecting the first turning circle C1 and the second turning circle C2, moves from the tangent line TL3 to the second turning circle C2 and moves along the second turning circle C2, moves from the second turning circle C2 to the tangent line TL4, moves from the tangent line TL4 to the third turning circle C3 and moves along the third turning circle C3 to reach position P9. The path consisting of the first turning circle C1, the second turning circle C2, and the tangent line TL3 can be generated using a Dubins path. Figure 19 shows another example of a path between two points.
[0178] (D) For example, if the autonomous mobile unit 1 is not towing the ball-collecting and volleyball unit 23, the first turning circles C1, C4, the second turning circles C2, C5, and the third turning circles C3, C6 may have the minimum turning radius that the autonomous mobile unit 1 can turn. This makes it possible to generate a travel path that considers only the driving performance of the autonomous mobile unit 1. Generally, the minimum turning radius of the autonomous mobile unit 1 alone is smaller than the minimum turning radius when the autonomous mobile unit 1 is towing the ball-collecting and volleyball unit 23.
[0179] (E) Either generating a travel path based on the first turning circle C1 relative to the starting point, or generating a travel path based on the first turning circle C4 relative to the ending point, may be performed. For example, if a travel path can be generated based on the first turning circle C1 relative to the starting point, the generation of a travel path based on the first turning circle C4 relative to the ending point does not need to be performed.
[0180] (F) For example, if the starting and / or ending points of a two-point path (e.g., positions P8, P9) are very close to the outer perimeter of a specific region, and even if the first revolving circles C1, C4 and the Dubins path are combined, it is not possible to generate a two-point path that fits within the specific region relative to the starting and ending points, the starting and / or ending points may be moved to appropriate positions, and then steps S31 to S42 above may be executed to generate a two-point path.
[0181] For example, the starting point and / or ending point may be moved to a predetermined position within a specific region on a straight line extending in the direction of movement of the autonomous mobile body 1, which is set for each point. This allows the first turning circle to be set flexibly, making it possible to more reliably generate a path between two points that fits within a specific region using a Dubins path.
[0182] (G) The method for generating movement paths described above is not limited to the autonomous mobile body 1 as a ball-collecting machine, but can also be applied to other autonomous mobile bodies 1 such as autonomous mobile robots. [Industrial applicability]
[0183] This invention can be widely applied to generating routes for autonomous movement of an autonomous mobile object. [Explanation of Symbols]
[0184] 1. Autonomous Mobile Unit 11 Main unit 13 Control Unit 131 Storage section 132 Driving Control Unit 133 Autonomous Mobile Command Unit 134 Position calculation section 135 Volleyball control section 136 Travel Path Generation Unit 15. Mobile section 15a wheels 15b Travel motor 17 GNSS receiver 19 Directional detection sensor 21 Connection structure 23 Ball collecting volleyball section 24 Ball Collection Department 24a Pickup Rotor 25 Volleyball Club 25a Volleyball motor 25b Volleyball Gate 37. Driving Route Teaching Unit 39 Volleyball Teaching Department 2. Golf driving range 3 Sphere scattering area 7 Ball groove B Golf ball 101 Driving Schedule P1~P10 position TR1~TR9 Travel Route A1, A2 Specific area DI1, DI2 Direction of movement C1, C4 First turning circle C2, C5 Second turning circle C3, C6 Third turning circle
Claims
1. A method for generating a movement path for an autonomous mobile body that moves from a starting point located within a specific area previously taught by an operator to an ending point located within the same specific area, The steps include setting the direction of movement for the starting and ending points, A step of setting a first pivot circle with the aforementioned starting point or the aforementioned ending point as the point of contact and the aforementioned direction of movement as the pivot direction, The steps include setting a second turning circle that falls within the aforementioned specific region, The steps include setting a Dubins path that starts from a predetermined point on the second turning circle, passes through the second and third turning circles, and ends at the endpoint on the circumference of the third turning circle, if the starting point is a point on the circumference of the first turning circle, or setting a Dubins path that starts from the starting point, passes through the third turning circle and the second turning circle with the starting point as the point of tangency, and ends at a predetermined point on the second turning circle, if the endpoint is a point on the circumference of the first turning circle The process includes the step of selecting a path that falls within the specified area from among the paths connecting the first turning circle and the Dubins path as the movement path, Route generation method.
2. The path generation method according to claim 1, wherein the first turning circle and the second turning circle externally tangent to the predetermined point of tangency.
3. The path generation method according to claim 2, wherein, if the starting point is a point on the circumference of the first turning circle, the step of setting the Dubins path includes setting the Dubins path from the point of contact between the first turning circle and the second turning circle to the endpoint.
4. The path generation method according to claim 2, wherein, if the endpoint is a point on the circumference of the first turning circle, the step of setting the Dubins path includes setting the point of tangency between the first turning circle and the second turning circle as a provisional endpoint and setting a Dubins path from the starting point to the provisional endpoint.
5. If the endpoint is a point on the circumference of the first turning circle, the step of setting the Dubins path is: A step of setting a Dubins path from the point of contact between the first turning circle and the second turning circle to the starting point, The steps include: reversing the Dubins path to create a path that goes from the starting point to the contact point; The route generation method according to claim 2, including the method described in claim 2.
6. The path generation method according to claim 1, wherein the first turning circle and the second turning circle are not tangent.
7. The path generation method according to claim 1, wherein the first turning circle and the second turning circle are circles consisting of the minimum turning radius of the autonomous mobile body.
8. The autonomous mobile unit tows a trolley, The path generation method according to claim 1, wherein the first turning circle and the second turning circle are circles with the minimum turning radius including the trolley towed by the autonomous mobile body.
9. When the autonomous moving body is in motion within the specified area, and a command is issued to generate the movement path with a predetermined target position within the specified area as the endpoint, the steps include determining whether the current position of the autonomous moving body is included in an interruptible area that defines a range of positions within which the movement path, with the starting point being the position at which the currently executing autonomous movement is interrupted and stopped at the current position and the endpoint being the target position, can be planned to fit within the specified area. The steps include interrupting the currently running autonomous movement if the current position of the autonomous mobile unit falls within the interruptible region, The steps include generating a movement path with the starting point being the position where the currently executing autonomous movement stopped after interruption, and the ending point being the target position, The route generation method according to claim 1, further comprising:
10. The path generation method according to claim 9, wherein the interruptible region is set as a region indicating a range of positions in which a region containing a turning circle, which includes the first turning circle that can be set to a position where the autonomous mobile body interrupts its movement and stops while moving in a straight line at maximum speed, the first turning circle that can be set to a position where the autonomous mobile body interrupts its movement and stops while turning to the right at maximum speed, and the first turning circle that can be set to a position where the autonomous mobile body interrupts its movement and stops while turning to the left at maximum speed, can be contained within the specific region.
11. The interruptible region is set for each attitude angle of the autonomous mobile body, The step of determining whether the current position of the autonomous mobile body is included in the interruptible region is: The steps include selecting an interruptible region corresponding to the attitude angle of the autonomous mobile body at the current position, The steps include determining whether the current position of the autonomous mobile body is included in the selected interruptible region, A route generation method according to claim 9, comprising:
12. The path generation method according to claim 9, further comprising the step of resuming and continuing the interrupted autonomous movement if the stopping position of the autonomous mobile body when the autonomous movement is interrupted is not included in the interruptible region.
13. A program for causing a computer to execute the route generation method described in claim 1.
14. A path generation device that generates a movement path for an autonomous mobile body that moves from a starting point located within a specific area previously taught by an operator to an ending point located within the specific area, The direction of movement is set at the aforementioned starting point and ending point, A first pivot circle is set with the aforementioned starting point or the aforementioned ending point as the point of contact and the aforementioned direction of movement as the pivot direction, A second rotating circle is set that falls within the aforementioned specific region, If the starting point is a point on the circumference of the first turning circle, a Dubins path is set that starts from a predetermined point on the second turning circle, passes through the second and third turning circles, and ends at the endpoint on the circumference of the third turning circle, or if the endpoint is a point on the circumference of the first turning circle, a Dubins path is set that starts from the starting point, passes through the third turning circle and the second turning circle with the starting point as the point of tangency, and ends at a predetermined point on the second turning circle. A path that falls within the specified area is selected as the movement path from among the paths that connect the first turning circle and the Dubins path. Route generation device.
15. The path generation device according to claim 14, wherein the first turning circle and the second turning circle externally tangent to the predetermined point of tangency.
16. The path generation device according to claim 15, wherein, when the starting point is a point on the circumference of the first turning circle, a Dubins path is set from the point of contact between the first turning circle and the second turning circle to the ending point.
17. The path generation device according to claim 15, wherein, if the endpoint is a point on the circumference of the first turning circle, the point of contact between the first turning circle and the second turning circle is set as a provisional endpoint, and a Dubins path from the starting point to the provisional endpoint is set.
18. The path generation device according to claim 15, wherein, if the endpoint is a point on the circumference of the first turning circle, a Dubins path is set from the point of contact between the first turning circle and the second turning circle to the starting point, and the Dubins path is reversed to generate a path from the starting point to the point of contact.
19. The path generation device according to claim 14, wherein the first turning circle and the second turning circle are not tangent.
20. The path generation device according to claim 14, wherein the first turning circle and the second turning circle are circles consisting of the minimum turning radius of the autonomous mobile body.
21. The autonomous mobile unit tows a trolley, The path generation device according to claim 14, wherein the first turning circle and the second turning circle are circles with the minimum turning radius including the trolley towed by the autonomous mobile body.
22. The aforementioned route generation device is When the autonomous mobile body is moving within the specified area, if a command is issued to generate the movement path with a predetermined target position within the specified area as the endpoint, it is determined whether the current position of the autonomous mobile body falls within an interruptible area that defines a range of positions within which the movement path, with the starting point being the position at which the currently executing autonomous movement is interrupted and stopped at the current position and the endpoint being the target position, can be planned to fit within the specified area. If the current position of the autonomous mobile unit falls within the interruptible region, the currently running autonomous movement is interrupted. The currently running autonomous movement is interrupted, and the movement path is generated with the stopping position as the starting point and the destination position as the ending point. The route generation device according to claim 14.
23. The path generation device according to claim 22, wherein the interruptible region is set as a region indicating a range of positions in which a region containing a turning circle, which includes the first turning circle that can be set to a position where the autonomous mobile body interrupts its movement and stops while moving in a straight line at maximum speed, the first turning circle that can be set to a position where the autonomous mobile body interrupts its movement and stops while turning to the right at maximum speed, and the first turning circle that can be set to a position where the autonomous mobile body interrupts its movement and stops while turning to the left at maximum speed, can be contained within the specific region.
24. The interruptible region is set for each attitude angle of the autonomous mobile body, The path generation device according to claim 22, wherein the path generation device selects an interruptible region corresponding to the attitude angle of the autonomous mobile body at the current position, and determines whether or not the current position of the autonomous mobile body is included in the selected interruptible region.
25. The route generation device according to claim 22, wherein if the stopping position of the autonomous mobile body when autonomous movement is interrupted is not included in the interruptible region, the route generation device resumes and continues the interrupted autonomous movement.
26. The main unit and The route generation device according to claim 14, A moving unit that moves the main body along the movement path generated by the aforementioned path generation device, An autonomous mobile device equipped with the following features.