The disclosure of Japanese Patent Application No. 2013-247527 filed on Nov. 29, 2013 including the specification, drawings and abstract is incorporated herein by reference in its entirety.
1. Field of the Invention
The present invention relates to an autonomous moving object that autonomously moves, a control method thereof, and a non-transitory recording medium thereof.
2. Description of Related Art
An autonomous moving object is known which prevents a drop or a fail due to a level difference by detecting the level difference and performing a stopping or avoiding operation when the distance to a road surface measured by a distance measuring unit is greater than a threshold value (for example, Japanese Patent Application Publication No. 2012-130781 (JP 2012-130781A)).
However, for example, when the autonomous moving object runs on a convex part and is tilted, the distance measured by the distance measuring unit increases in comparison with the case where the autonomous moving object runs on a horizontal road surface. Accordingly, in spite of the absence of a concave stepped portion, the distance measured by the distance measuring unit is greater than the threshold value and the concave stepped portion may be erroneously detected. The invention provides an autonomous moving object that can accurately detect a level difference even in a state where the autonomous moving object is tilted, a control method thereof, and a non-transitory recording medium thereof.
A first aspect of the invention relates to an autonomous moving object. The autonomous moving object includes: a drive unit configured to drive wheels of a moving object body; a plurality of distance measuring units installed to face a road surface and configured to measure a distance to the road surface; a control unit configured to compare the distance measured by the distance measuring units with a threshold value and to control the drive unit; a tilt angle detecting unit configured to detect a tilt angle of the moving object body; and a correction unit configured to correct at least one of the distance measured by each distance measuring unit and the threshold value depending on the tilt angle of the moving object body detected by the tilt angle detecting unit.
A second aspect of the invention relates to a control method of an autonomous moving object. The control method of an autonomous moving object includes: measuring distances to a road surface; comparing the measured distances and a threshold value and controlling driving of the autonomous moving object; detecting a tilt angle of a moving object body; and correcting, at least one of the measured distances and the threshold value depending on the detected tilt angle of the moving object body.
A third aspect of the invention relates to a non-transitory recording medium having a control program of an autonomous moving object. The control program includes: a process of comparing distances to a road surface measured from the autonomous moving object and a threshold value and controlling driving of the autonomous moving object; a process of detecting a tilt angle of a moving object body; and a process of correcting at least one of the measured distances and a threshold value depending on the detected tilt angle of the moving object body.
According to the first to third aspects of the invention, it is possible to provide an autonomous moving object that can accurately detect a level difference even in a state where the autonomous moving object is tilted, a control method thereof, and a non-transitory recording medium thereof.
Features, advantages, and technical and industrial significance of exemplary embodiments of the invention will be described below with reference to the accompanying drawings, in which like numerals denote like elements, and wherein:
Hereinafter, an embodiment of the invention will be described with reference to the accompanying drawings.
Each distance sensor 5 is a specific example of a distance measuring unit and is disposed to face a road surface in the running direction so as to measure the distance to the road surface. For example, six distance sensors 5 are arranged at equal intervals along the outer circumferential edge of the moving object body 2 (
The controller 6 compares the distances measured by the distance sensors 5 with a predetermined threshold value and controls the motors 4. The controller 6 detects a level difference, for example, when the distances to the road surface measured by the distance sensors 5 are greater than the threshold value. The controller 6 controls the motors 4 so as to stop the autonomous moving object 1 or to avoid the level difference on the basis of the detected level difference.
The controller 6 is constituted by hardware such as a microcomputer including a central processing unit (CPU) performing a control process, a calculation process, and the like, a read only memory (ROM) storing a control program, a calculation program, and the like which are executed by the CPU, a memory including a random access memory (RAM); and an interface unit (IF) inputting and outputting signals from and to the outside. The CPU, the memory, and the interface unit are connected to each other via a data bus or the like.
When the autonomous moving object 1 runs on a convex part and is tilted, the distances measured by the distance sensors increase (FIG: 4) in comparison with the case where the autonomous moving object runs on a horizontal road surface. Accordingly, in spite of absence of a concave stepped portion, the distances measured by the distance sensors may be greater than the threshold value and a concave stepped portion may be erroneously detected. On the contrary, the autonomous moving object 1 according to this embodiment detects a tilt angle α of the moving object body 2 and corrects at least one of the distance measured by each distance sensor 5 and the threshold value depending on the detected tilt angle α of the moving object body 2. Accordingly, even in the state where the autonomous moving object runs on a convex part and is tilted, it is possible to accurately detect the distances without erroneously detecting the above-mentioned concave stepped portion.
The controller 6 includes a tilt angle detecting unit 61 detecting the tilt angle α of the moving object body 2, a correction unit 62 correcting at least one of the distance measured by each distance sensor 5 and the threshold value, and a control unit 63 controlling the motors 4 on the basis of the distances and threshold value corrected by the correction unit 62.
The tilt angle detecting unit 61 is a specific example of the tilt angle detecting unit and detects the tilt angle α of the moving object body 2, for example, on the basis of the distances measured by three distance sensors 5 out of six distance sensors 5. More specifically, the tilt angle detecting unit 61 calculates a plane equation (ax+by+cz+d=0) on the basis of the distances measured by the three distance sensors 5.
For example, as illustrated in
Xe=(d cos φ+R)·cos θYe=(d cos φ+R)·sin θZe=sin φ.
In the above-mentioned expression, when the center of the moving object body 2 is defined as an origin, the distance from the origin to each distance sensor 5 is defined as R, an angle formed by a line connecting each distance sensor 5 to the origin and the X axis is defined as θ, the distance measured by each distance sensor 5 is defined as d, and a depression angle is defined as φ (
The tilt angle detecting unit 61 calculates the coordinates of the distance points C, D in the same way as the coordinate of the distance point E and substitutes the calculated coordinates of the distance points C, D, and E for the plane equation (ax+by+cz+d=0). The tilt angle detecting unit 61 calculates a plane including the distance points C, D, and E by calculating the coefficients a to d. The tilt angle detecting unit 61 further calculates the normal line of the calculated plane. The tilt angle detecting unit 61 detects the calculated normal line as the tilt angle α of the moving object body 2. The tilt angle detecting unit 61 outputs the detected tilt angle α of the moving object body 2 to the correction unit 62.
The correction unit 62 corrects at least one of the distance measured by each distance sensor 5 and the threshold value depending on the tilt angle α of the moving object body 2 detected by the a angle detecting unit 61. Here, as described above, when the autonomous moving object runs on a convex part and the moving object body is tilted, the distances measured by the distance sensors increase (
Therefore, for example, the correction unit 62 performs a correction operation of decreasing the distance measured by eash distance sensor 5 as the tilt angle α of the moving object body 2 detected by the tilt angle detecting unit 61 increases. Alternatively, for example, the correction unit 62 performs a correction operation of increasing the threshold value as the tilt angle α of the moving object body 2 detected by the tilt angle detecting unit 61 increases. Accordingly, it is possible to correct the increase in the distance of each distance sensor 5 generated due to the tilt angle α of the moving object body 2.
The correction unit 62 performs the correction operation on the distance or the threshold value of the distance sensor 5 other than the distance sensors 5 used to detect the tilt angle of the tilt angle detecting unit 61. For example, as illustrated in
The control unit 63 is a specific example of the control unit, compares the distance of each distance sensor 5 corrected by the correction unit 62 with the threshold value or compares the distance measured by each distance sensor 5 with the threshold value corrected by the correction unit 62, and controls the motors 4. The control unit 63 detects a level difference, for example, when the distance of each distance sensor 5 corrected by the correction unit 62 is greater than the threshold value.
Here, a method of selecting three distance sensors S for calculating a plane in the tilt angle detecting unit 61 will be described below in details.
(1) When the distance sensors other than in the running direction are selected, for example, as illustrated in
The tilt angle detecting unit 61 calculates the angle θ1 in the running direction of the autonomous moving object 1, for example, on the basis of rotation information of each wheel detected by a rotation sensor. The tilt angle detecting unit 61 compares the calculated angle θ1 of the running direction of the autonomous moving object 1 with predetermined attachment angles θA to θF of the distance sensors 5a to 5f.
Here, when the autonomous moving object 1 is viewed from the top side, the center of the autonomous moving object is defined as an origin, a line passing through the distance sensors 5a, 5d is defined as the Y axis, and a line passing through the origin and perpendicular to the Y axis is defined as the X axis. The angle formed by the vector line in the running direction and the X axis is defined as the angle θ1 of the running direction, an angle formed by a line connecting the attachment position of each distance sensor 5a to 5f and the origin and the X axis is defined as the attachment angles θA to θF of the distance sensors 5a to 5f. The tilt angle detecting unit 61 sets the distance sensors 5a to 5f, in which the difference between the calculated angle θ1 in the running direction of the autonomous moving object 1 and the attachment angle θA to θF of the corresponding distance sensor 5a to 5f is less than the threshold value, as the distance sensor 5a to 5f disposed in the moving direction. The tilt angle detecting unit 61 selects the distances of three arbitrary distance sensors 5a to 5f out of the distance sensors 5a to 5f other than distance sensors 5a to 5f disposed in the running direction, and detects the tilt angle α of the moving object body 2 on the basis of the selected distance.
(2) When the distances sensors for measuring a horizontal plane area are selected, the tilt angle detecting unit 61 may detect the tilt angle α of the moving object body 2 on the basis of the distances of the distance sensors 5a to 5f for measuring the horizontal plane area determined already to be a horizontal road surface. The tilt angle detecting unit 61 detects the tilt angle α of the moving object body 2 on the basis of the distance sensors 5a to 5f for measuring the horizontal plane area determined to be the horizontal plane of the road surface on the basis of the distances measured in advance by the distance sensors 5a to 5f.
For example, as illustrated in
(3) When the autonomous moving object runs on a convex part, for example, as illustrated in
As illustrated in
The tilt angle detecting unit 61 detects the tilt angle α of the moving object body 2 on the basis of the distances of the distance sensors 5 on the rear side in the running direction after the predetermined time passes. The correction unit 62 corrects at least one of the distance of each distance sensor 5 on the front side in the running direction and the threshold value on the basis of the tilt angle α of the moving object body 2 detected by the tilt angle detecting unit 61.
The tilt angle detecting unit 61 calculates a plane on the basis of the distances measured by the three selected distance sensors 5 on the rear side in the running direction and calculates the normal line of the calculated plane. Then, the tilt angle detecting unit 61 detects the nit angle α of the moving object body 2 (step S102) on the basis of the calculated normal line. The correction unit 62 corrects, for example, the distances measured by the distance sensors 5 on the front side in the running direction depending on the tilt angle α of the moving object body 2 detected by the tilt angle detecting unit 61 (step S103).
The control unit 63 compares the distances of the distance sensors 5 on the front side in the running direction corrected by the Correction unit 62 with the threshold value and determines whether a level difference is present (step S104). When it is determined that a level difference is present (YES in step S104), the control unit 63 controls the motors 4, for example, so as to stop the autonomous moving object 1 (step S105). On the other hand, when it is determined that a level difference is not present (NO in step S104), the control unit 63 returns the control flow to step S101.
As described above, the autonomous moving object 1 according to this embodiment detects the tilt angle α of the moving object body 2 and corrects at least one of the distance measured by each distance sensor 5 and the threshold value depending on the detected tilt angle α of the moving object body 2. Accordingly, it is possible to accurately detect the distances without erroneously detecting the concave stepped portion even in the state where the autonomous moving object 1 runs on the convex part and is tilted.
The invention is not limited to the above-mentioned embodiment, but can be appropriately Modified in various forms without departing from the gist thereof. For example, in the above-mentioned embodiment, the tilt angle detecting unit 61 detects the tilt angle α of the moving object body 2 on the basis of the distances measured by the distance sensors 5, but the invention is not limited to this example. The tilt angle detecting unit 61 may detect the tilt angle α of the moving object body 2, for example, on the basis of sensor values measured by a gyro sensor disposed in the moving object body 2.
According to the embodiment of the invention, for example, the control flow illustrated in
The program can be supplied to a computer in a state where the program is stored on various types of non-transitory computer readable mediums. The non-transitory computer-readable medium includes various types of tangible storage mediums. Examples of the non-transitory computer-readable medium include a magnetic recording medium (such as a flexible disk, magnetic tape, or a hard disk drive), a magneto-optical recording medium (such as a magneto-optical disc), a CD-ROM (Read Only Memory), a CD-R, a CD-R/W, and a semiconductor memory (such as a mask ROM, a programmable ROM (PROM), erasable PROM (EMPROM), flash ROM, a random access memory (RAM)).
The program may be supplied to a computer through the use of various types of transitory computer-readable mediums. Examples of the transitory computer-readable medium include electric signals, optical signals, and electromagnetic waves. The transitory computer-readable medium can supply the program to a computer via a wired communication path such as an electrical cable or an optical fiber or a wireless communication path.
Number | Date | Country | Kind |
---|---|---|---|
2013-247527 | Nov 2013 | JP | national |