The present invention relates to a mobile robot.
One of methods for moving a mobile robot to a destination under the environment that obstacles are present is composed of the steps of detecting locations of obstacles by a plurality of obstacle detection sensors mounted on the mobile robot, calculating a travel route for the mobile robot to avoid the obstacles based on information on a present location of the mobile robot and information on the locations of the obstacles detected by the obstacle detection sensors, and moving the mobile robot along the route (see, e.g., Patent Document 1 (Japanese Unexamined Patent Publication No. H07-110711)).
Herein, the outline of a mobile robot in a conventional example 1 disclosed in the Patent Document 1 will be described with reference to
As shown in
Such a travel route of the mobile robot 171 is determined as shown in, for example,
However, while the mobile robot 171 is moving, for example, if an obstacle 184 finds its way into the detection region 182 of the obstacle detection sensor 177 in the direction of travel as shown in
There is another method in which unlike the mobile robot 171 shown in
Herein, the outline of the mobile robot in a conventional example 2 disclosed in the Patent Document 2 will be described with reference to
As shown in
The travel route of the mobile robot 201 is determined as shown in
However, in the case of the mobile robot 171 in the conventional example 1 shown in
The detail thereof will be described with reference to
As shown in
However, since the detection region 182 of the obstacle detection sensor 177 in the mobile robot 171 is limited to around the mobile robot 171 as described before, the mobile robot 171 detects the presence of obstacles on both sides of the mobile robot 171 in the vicinity of the aperture portion 197 of the hollow of the obstacle 194, and if the width of the aperture portion 197 is large enough for the mobile robot 171 to pass, then the mobile robot 171 follows the route 195 and goes deep into the inmost recess from the aperture portion 197. At this point, the dead end 198 of the hollow is not yet detected. Then, the mobile robot 171 follows the route 195 and it is possible, after the mobile robot 171 reaches the dead end 198, that it can detect impassability, escape the hollow, and select a different route. Moreover, in the worst case, a movement component to prompt movement in the direction of the route 195 and a component to prompt avoidance of the dead end may be combined to trap the mobile robot 171 in the dead end, thereby creating the deadlock state.
In the meanwhile, in the case of the mobile robot 201 in the conventional example 2 shown in
For example, it is known that calculation of the shortest route from a certain point to a travel destination 303 requires a calculation amount proportional to the square of reference points (reference area/movement accuracy) from the graph theory as shown in the above example. For example, movement of only 1 m square per 1 cm accuracy requires 100×100, i.e., 10000 reference points, and a calculation amount necessary for the route calculation in this case becomes as huge as K×108 (K is a proportionality constant). For comparison, a calculation amount in the case of the robot in the conventional example 1 is in proportion to the number of sensors.
An object of the present invention is to provide a mobile robot moving under the environment that obstacles are present, the mobile robot capable of achieving real time and efficient travels to destinations to solve those issues.
In order to accomplish the object, the present invention is described as shown below.
According to a first aspect of the present invention, there is provided a mobile robot comprising:
According to a second aspect of the present invention, there is provided the mobile robot as defined in the first aspect, further comprising an obstacle detection sensor for detecting an obstacle in a detection region around the main unit section, wherein the route calculation unit calculates the travel route for the main unit section to travel based on detection information from the obstacle detection sensor in addition to the obstacle information extracted by the obstacle information extraction section.
According to a third aspect of the present invention, there is provided the mobile robot as defined in the second aspect, further comprising a conversion unit for converting the obstacle information extracted by the obstacle information extraction section into a signal identical to a signal outputted as the detection information into the route calculation unit by the obstacle detection sensor and outputting the converted signal to the route calculation unit.
According to a fourth aspect of the present invention, there is provided the mobile robot as defined in the first aspect, further comprising a virtual sensor setting change unit for changing extraction conditions for the obstacle information extraction section to extract the obstacle information.
According to a fifth aspect of the present invention, there is provided the mobile robot as defined in the second aspect, further comprising a virtual sensor setting change unit for changing extraction conditions for the obstacle information extraction section to extract the obstacle information.
According to a sixth aspect of the present invention, there is provided the mobile robot as defined in the third aspect, further comprising a virtual sensor setting change unit for changing extraction conditions for the obstacle information extraction section to extract the obstacle information.
According to a seventh aspect of the present invention, there is provided the mobile robot as defined in the fifth aspect, wherein the virtual sensor setting change unit changes extraction conditions for the obstacle information extraction section to extract the obstacle information based on at least any one of the map information stored in the map database, the self location information measured by the self location measurement unit, the obstacle information extracted by the obstacle information extraction section, the detection information by the obstacle detection sensor, and the travel route calculated by the route calculation unit.
According to an eighth aspect of the present invention, there is provided the mobile robot as defined in the sixth aspect, wherein the virtual sensor setting change unit changes extraction conditions for the obstacle information extraction section to extract the obstacle information based on at least any one of the map information stored in the map database, the self location information measured by the self location measurement unit, the obstacle information extracted by the obstacle information extraction section, the detection information by the obstacle detection sensor, and the travel route calculated by the route calculation unit.
According to the thus-structured configuration, the sensor information is virtually calculated based on the map information, which eliminates such physical restrictions peculiar to actual obstacle detection sensors that “the distance and range to detectable obstacles are limited”, “the surface physicality of obstacles disturbs detection”, and “interference between sensors disturbs detection”. This makes it possible to set free detection regions according to obstacle environments so as to allow accurate obstacle detection. Therefore, efficient travels to destinations can be implemented compared to the case of using actual obstacle detection sensors only. Moreover, the total calculation amount necessary for the route calculation in the present invention is the sum of a calculation amount proportional to (sensor detection region/movement accuracy) since the calculation in the obstacle information extraction section becomes the calculation to determine whether or not obstacles are present in the detection region and a calculation amount of the route calculation in the conventional example 1, which allows drastic reduction in calculation amount from the case in which the route is directly calculated from the map, thereby enabling such processors as being mounted on small-size mobile robots to perform real time processing.
According to the present invention, extracting the obstacle information in the detection region of the virtual sensor from the map information makes it possible to detect the obstacles which cannot be detected by actual obstacle sensors due to physical restrictions. Further, since a calculation amount during route calculation is considerably reduced from the case in which the route is directly calculated from the map information, the processors mounted on small-size mobile robots can perform real time processing.
These and other aspects and features of the present invention will become clear from the following description taken in conjunction with the preferred embodiments thereof with reference to the accompanying drawings, in which:
Before the description of the present invention proceeds, it is to be noted that like parts are designated by like reference numerals throughout the accompanying drawings.
Hereinbelow, embodiments of the present invention will be described with reference to the figures in detail.
A mobile robot in one embodiment of the present invention will be described with reference to
As shown in
The main unit portion 2 is movably structured to have four wheels 2w necessary for movement of the mobile robot 20 and a drive unit 7 such as motors.
The plurality of the obstacle detection sensors 4 (four sensors are disposed at the upper portions on both sides of the main unit portion 2 in
The self location measurement unit 5 measures a present location of the robot 20 (hereinbelow referred to as a self location) through calculation of encoder values, which are measured by encoders mounted on wheel shafts of the wheels 2w for example, by means of an odometry calculation unit.
The map database 11 has information about the location of a destination 8, location information on obstacles 9, 16 where the obstacles 9, 16 are present, and map information in the travel range of the main unit portion 2.
The obstacle recognition unit 22 detects known obstacles 9, 16 which are stored in the map database 11 in a memory region 12 and are present in the second detection region 21 of the virtual sensor.
The route calculation unit 6 calculates a bypass route (route to avoid obstacles and reach a travel destination) B for the mobile robot 20, based on the information on the obstacles 9, 16 recognized by the obstacle recognition unit 22, information on an unknown obstacle 23 (see
The drive unit 7 moves the main unit portion 2 along the calculated bypass route B.
The obstacle recognition unit 22 creates a map (map information) 13 as map graphic data for map in the memory region 12, forms the known obstacles 9, 16 and the main unit portion 2 on the map 13, and sets the virtual sensor having the second detection region 21 capable of detecting the known obstacles 9, 16 present in the second detection region 21 different from the first detection region 3 in the main unit portion 2 so as to detect the obstacles 9, 16 present in the second detection region 21 of the virtual sensor on the map 13.
The virtual sensor is not a real sensor but a sensor allowing the second detection region 21 having a detection function equal to the sensor to be set virtually on the map 13, which enables the obstacle recognition unit 22 to recognize and extract the known obstacles 9, 16 present in the second detection region 21. More specifically, the second detection region 21 of the virtual sensor is preferably a triangular or rectangular region located in front of the mobile robot 20, having a width large enough to house a circle drawn by the mobile robot 20 during its rotation necessary for turning operation (turning operation for avoiding obstacles and the like) (a width two or more times larger than the rotation radius), and having a distance longer than the depth of a hollow of an obstacle having the maximum hollow among the known obstacles on the map 13 viewed from the mobile robot 20. In one mode, this region may be set as a maximum region and the maximum region may be set as the second detection region 21 of the virtual sensor as a default. In another mode, as described in detail later, when any obstacle is not detected, a region smaller than the maximum region, having a length equal to a distance that the mobile robot 20 moves till the mobile robot 20 stops upon reception of a stop instruction while the mobile robot 20 is moving along the travel route (the distance varies depending on the speed of the mobile robot 20), and having a width large enough for a circle drawn by the mobile robot 20 during its rotation for its turning operation (turning operation for avoiding obstacles and the like) to pass (a width two or more times larger than the rotation radius) may be set as a minimum region, and the minimum region may be set as the second detection region 21, and when an obstacle is detected, the setting of the second detection region 21 may be changed to the maximum region. Further, a region (e.g., a region presumed to have a relatively small number of obstacles) where the second detection region 21 of the virtual sensor is set as the minimum region, and a region (e.g., a region presumed to have a relatively large number of obstacles) where the second detection region 21 of the virtual sensor is set as the maximum region may be preset on the map 13.
According to such a virtual sensor, unlike the real sensor, the region and the detection accuracy can be freely set without being subjected to physical conditions of constraint. For example, long distance regions, large regions, regions on the back side of objects, and complicated and labyrinthine regions which are undetectable by real sensors can be detected by the virtual sensor. Further, information which accuracy is too high to be acquired by real sensors is available by the virtual sensor. Moreover, the virtual sensor is free from the problem of interference between sensors, and the virtual sensor does not have to give consideration to issues generated when real sensors are used such as mounting positions, drive sources, interconnections, and piping. Further, the virtual sensor makes it possible to freely change the setting of the sensor such as the detection region and the detection accuracy by switching a program for setting the virtual sensor to another program or by changing parameter values used in the program for setting the virtual sensor. Therefore, with the virtual sensor in use, it is possible to select a low accuracy detection mode during normal time and to change the mode to a high accuracy detection mode upon discovery of an obstacle. Further, with the virtual sensor in use, it is possible to select a mode to detect only in the narrow front region of the robot 20 during normal time and to change the mode to a mode having a wider detection region so as to detect all around the robot 20 when in the places known in advance that a large number of obstacles are present. Thus, according to need, in other words, according to time and place, the detection accuracy and region of the virtual sensor can be set.
Detection of obstacles by the thus-structured virtual sensor is achieved by partial acquisition of information on respective spots in the second detection region 21 on the map 13 (information on presence of obstacles in each spot such as information on the presence/absence of obstacles in the second detection region 21, shapes of the obstacles present in the second detection region 21, distances and directions between the mobile robot 20 to the obstacles in the second detection region 21) from the map database 11. Consequently, while a normal obstacle detection sensor 4 sometimes cannot detect a region on the back side of the obstacle 9 from the mobile robot 20 as shown by reference numeral X in
Moreover, as described above, the obstacle recognition unit 22 recognizes only the obstacles present in the second detection region 21 and does not recognize those obstacles present outside the second detection region 21. This makes it possible to set only a part of the map 13 in the range of the second detection region 21 as a calculation target for calculation of the bypass route of the mobile robot 20.
With the thus-structured configuration, a method for calculating the bypass route B for preventing the mobile robot 20 from going into the inside of an obstacle 16 having no exit will be described. It is to be noted that the location information on the obstacle 16 is already registered in the map database 11.
In this case, as shown in
Such a travel route of the mobile robot 20 is calculated in such a way that, for example, if there is no obstacle found its way into the first detection region 3 of the obstacle detection sensor 4 in the traveling direction while the mobile robot 20 is moving toward the destination 8, then the mobile robot 20 calculates a route toward the destination 8 in the route calculation unit 6 based on the self location measured by the self location measurement unit 5 and the location information on the destination 8, and the mobile robot 20 travels along the calculated route.
At this point, the obstacle detection sensor 4 in the traveling mobile robot 20 detects a part of the aperture portion-16a-side of the obstacle 16 and a part of the obstacle 23. In the case where the route calculation unit 6 in the mobile robot 20 calculates a bypass route based only on the information on the obstacle 23 detected by the obstacle detection sensor 4, it is not possible to predict ahead the calculated route as the range of the first detection region 3 of the obstacle detection sensor 4 is limited as described in the conventional art, and therefore as shown in
However, in the mobile robot 20 in the present embodiment, as shown in
Thus, using the real obstacle detection sensor 4 makes it possible to detect the unknown obstacle 23 undetectable by the virtual sensor, i.e., not registered in the map database 11, and using the virtual sensor makes it possible to detect the spot of the known obstacle 16 uncovered by the first detection region 3 of the obstacle detection sensor 4. Therefore, using the virtual sensor allows obstacle detection with high accuracy compared to the case using only the obstacle detection sensor 4.
Then, the self location information measured by the self location measurement unit 5, information on the obstacle 23 acquired by the obstacle detection sensor 4 and not registered in advance in the map database 11, and information on the known obstacle 16 detected by the obstacle recognition unit 22 are sent to the route calculation unit 6.
Then, in the route calculation unit 6, as shown in
At this point, as described above, the obstacle recognition unit 22 recognizes only the obstacles present in the second detection region 21 and does not recognize those obstacles present outside the second detection region 21. This makes it possible to set only a part of the map 13 in the range of the second detection region 21 as a calculation target for calculation of the bypass route of the mobile robot 20, which allows considerable reduction in calculation amount from the case in which the bypass route is calculated with the entire range of the map 13 as a calculation target.
By this, even the processors mounted on small-size mobile robots can promptly calculate bypass routes. Moreover, when a new obstacle is detected during travel, and calculation of a new bypass route becomes necessary again, the new bypass route can be calculated swiftly as the calculation amount is considerably reduced as described above. It is to be noted that in route calculation, both the detection information from the virtual sensor and the detection information from the obstacle detection sensor 4 can be handled as similar sensor information, and the route calculation is performed by solving functions inputted as the sensor information (e.g., as stated in the conventional example 1, functions for calculating a route of the mobile robot by adding a correction amount in a movement component to a movement component toward the destination in conformity with the sensor information, i.e., the direction and the distance to the obstacle). One example of such functions is shown below.
Do(robot route)=F([sensor information])
Example: F([sensor information])=Dt (movement component toward destination)+G (avoidance gain) * L1 (distance to obstacle 1)*
D1 (direction of obstacle 1)+G (avoidance gain) * L2 (distance to obstacle 2)*
D1 (direction of obstacle 2)+ . . .
Although in the mobile robot 20 shown in
Moreover, as shown in
According to the above embodiment, by creating map graphic data (map information) based on the map database 11, forming the known obstacles and the main unit portion 2 on the graphic data, and setting the virtual sensor capable of detecting the known obstacles 9, 16 present in the second detection region 21 different from the first detection region 3 of the real sensor in the main unit portion 2, for example, the known obstacles 9, 16 whose location information is stored in the map database 11 can be detected by the virtual sensor even in the spots uncovered by the first detection region 3 of the obstacle detection sensor 4 mounted on the main unit portion 2, and using the virtual sensor allows obstacle detection with high accuracy compared to the case in which only the obstacle detection sensor 4 mounted on the main unit portion 2 is used. Moreover, the second detection region 21 in the virtual sensor is used for detecting the known obstacles 9, 16 coming into the second detection region 21 and not for detecting the known obstacles 9, 16 present outside the second detection region 21, and therefore at the time of calculating the bypass route, the route calculation unit 6 can calculate a bypass route based on the information on the known obstacles 9, 16 coming into the second detection region 21 of the virtual sensor and the information on an unknown obstacle among the obstacles detected by the obstacle detection sensor 4 in the main unit portion 2, which allows considerable reduction in calculation amount from the case in which, for example, all the graphic data is set as a calculation target during route calculation.
Therefore, providing the virtual sensor for calculation of the bypass route leads to considerable reduction in calculation amount during route calculation, which enables even the processors mounted on small-size mobile robots to perform real time calculation of bypass routes. Moreover, when a new obstacle is detected during travel and calculation of a new bypass route becomes necessary again, the new bypass route can be calculated in real time in the same manner.
Description is now given of a mobile robot as a more specific example of the embodiment in the present invention with reference to
As shown in
Herein, the main unit portion 2 of the mobile robot 20 in
It is understood that the obstacle detection sensor 56 may detect obstacles in an arbitrary detection region around the main unit section 51a, and the route calculation unit 55 may calculate travel routes based on the detection information by the obstacle detection sensor 56 in addition to the virtual sensor calculation information.
It is further understood that the mobile robot 51 has the virtual sensor setting change unit 57 for changing calculation conditions for the virtual sensor information calculation unit 54 to calculate virtual sensor calculation information, and the virtual sensor setting change unit 57 makes it possible to change the calculation conditions for calculating the virtual sensor calculation information based on the map information stored in the map database 52, the self location information 73 measured by the self location measurement unit 53, the virtual sensor calculation information calculated by the virtual sensor information calculation unit 54, the detection information by the obstacle detection sensor 56, and the travel route calculated by the route calculation unit 55.
Herein, it is understood that as an example of detailed specifications of the robot 51, the movable main unit section 51a in
The self location measurement unit 53 is constituted of encoders 62 attached to rotary drive shafts of two drive wheels 59 and an odometry calculation unit 63 for calculating a self location from values of the encoders 62, and the route calculation unit 55 performs odometry calculation based on rotation speeds of the two drive wheels 59 acquired from these two encoders 62 so as to calculate the self location information 73 of the robot 51 in real time. The calculated location measurement information is specifically composed of a location of the main unit section 51a of the robot 51 and a posture (travel direction) thereof. A time-series difference of the self location information 73 additionally allows calculation of speed information on the robot 51.
As the obstacle detection sensor 56 for obstacle detection, a plurality of photoelectric sensors 64 and ultrasonic sensors 65 are used.
As shown in
Moreover, as shown in
As for how to set the setting of the calculation conditions of the virtual sensor (the setting of a second detection region 41 of the virtual sensor (corresponding to the second detection region 21 of the virtual sensor in the mobile robot 20 in
The mobile robot 51 has the virtual sensor setting change unit 57 for changing the calculation conditions for the virtual sensor information calculation unit 54 to calculate the virtual sensor calculation information, and therefore once the second detection region 41 of the virtual sensor is set upon start of traveling of the mobile robot 51, it is possible to keep the setting of the region 41 or it is also possible to change the setting of the second detection region 41 of the virtual sensor in the virtual sensor setting change unit 57 with use of various information including obstacle information inputted into the virtual sensor setting change unit 57 from the obstacle detection sensor 56 while the robot 51 travels.
Description is given of an example of changing the setting of the second detection region 41 of the virtual sensor with use of various information such as obstacle discovery information while the mobile robot 51 travels.
During normal movement operation of the mobile robot 51 (before discovery of obstacles), the second detection region 41 of the virtual sensor may be set, for example, as shown in
Then, as shown in
It is to be noted that when the mobile robot 51 avoided the obstacle and then returned to the normal movement operation state (the state before obstacle discovery) as shown in
While detection is performed with use of the above-set second detection region 41 of the virtual sensor, virtual sensor calculation information is calculated by the virtual sensor information calculation unit 54, and the virtual sensor calculation information refers to information on obstacles to movement of the robot 51 in the second detection region 41 of the virtual sensor set on the map information 70, the information being extracted based on the self location information 73 of the robot 51 measured by the self location measurement unit 53 and the map information 70 stored in the map database 52. A specific example of the virtual sensor calculation information is information which allows the robot 51 to avoid obstacles and allows the robot 51 to move in consideration of information on the obstacles, and which is composed of a distance between the mobile robot 51 and the obstacle 40 and a range of movable angles of the mobile robot 51. Such information as the distance from the mobile robot 51 to the obstacle 40 and the range of movable angles of the mobile robot 51 is calculated depending on the presence/absence of obstacles in the second detection region 41 as described below as shown in
(1) As shown in
(2) As shown in
(3) As shown in
(4) As shown in
Next in the route calculation unit 55, the travel route of the mobile robot 51 is calculated as shown in
First, in the case (as shown in
As described above, calculating such a movement speed in the route calculation unit 55 allows travel along the travel route 51b-6. The travel speed calculated in the route calculation unit 55 is inputted into the drive unit 61 and at the travel speed, the mobile robot 51 travels. It is to be noted that if there is no obstacle and the like, then the robot 51 travels at its maximum speed.
Herein, the direction 71b-3 toward a destination 71b-2 connecting the mobile robot 51 and the destination 71b-2 can be obtained in the virtual sensor information calculation unit 54 or in the route calculation unit 55 separately where necessary. In the virtual sensor information calculation unit 54, calculation of the direction 71b-3 toward the destination 71b-2 is performed in the case where a region in the direction 71b-3 toward the destination 71b-2 is set as the second detection region 41 in the detection setting of the virtual sensor and the like. In this case, from the self location information sent to the virtual sensor and information on the destination in the map information, the direction 71b-3 toward the destination 71b-2 can be calculated in the virtual sensor information calculation unit 54. In the route calculation unit 55, the direction 71b-3 toward the destination 71b-2 is calculated for the purpose of using it for route calculation (herein it is also used for calculation of a difference in angle between the present travel direction of the robot 51 and its target (destination 71b-2)), or the like. As with the case of the virtual sensor information calculation unit 54, the direction 71b-3 can also be calculated in the route calculation unit 55 based on the self location information and the information on the destination in the map information. Moreover, when the present travel direction 51b-4 of the mobile robot 51 is obtained by the self location measurement unit 53, a method called odometry, for example, can be used for calculation. In the case of the present example, integrating the rotation speeds on both the wheels of the robot 51 allows calculation of the location and the direction of the robot 51.
Moreover, both the turning speed component 51b-5 and the linear travel speed component can be obtained by the route calculation unit 55. It is to be noted that while the setting of various gains may be set as parameters, necessary values are herein included in the algorism in advance and therefore description of setting units and the like is omitted to simplify explanation. As for the turning speed component, as stated in the present specification, a value obtained by obtaining a difference between “present travel direction” and “direction of destination” (or obtaining a difference between “travel direction” and “movable angle closest to the destination direction except an impassable region”) and by multiplying the difference by a proportional gain is regarded as a turning speed component. By this, direction control is performed so that the robot 51 faces the direction of its destination. The linear speed component may be calculated as shown below. First, a travel speed is set in conformity with a distance to the destination or a distance to an obstacle. As for the travel speed, a speed obtained at a maximum rotation speed that a motor of the robot can continuously provide is regarded as “maximum speed”, and in the vicinity of the destination or in close proximity to an obstacle, a distance from the robot 51 to the point that the robot 51 starts slowdown is Xd while a distance from the robot 51 to the destination or the obstacle is x, for example. If the destination nor the obstacle is not present in the distance Xd, then 100% of the maximum speed is set as the travel speed. If the destination or the obstacle is present in the distance Xd, then the travel speed is obtained by the following formula:
[travel speed]=[maximum speed]*(1−[slowdown gain]*(Xd−x))
As for the linear speed component, when the travel is attempted at high linear speed with a large turning component, there is a possibility that the robot might fall down to the outside of the turning direction due to centrifugal force, and therefore the travel speed is obtained by the following formula:
[linear speed component]=[travel speed]*(1−[turning slowdown gain]*|turning speed component|)
As for the maximum speed, as described above, a speed obtained at the maximum rotation speed that the motor of the robot 51 can continuously provide is regarded as “maximum speed”. More specifically, the maximum speed can be calculated in the following formula in this example:
[maximum speed]=[radius of wheel]*[maximum continuous rotation number of motor]*[gear ratio]
The settings regarding the maximum speed are included in the algorism of the route calculation unit 55 as described above.
Moreover, as shown in
As shown in
It is to be noted that the turning speed component 51c-5 and the linear travel speed component are obtained in the same way as described above. As for the turning speed component, as stated in the present specification, a value obtained by obtaining a difference between “present travel direction” and “movable angle closest to the destination direction except an impassable region” and by multiplying the difference by a proportional gain is regarded as a turning speed component.
The linear speed component may be calculated as shown below. First, a travel speed is set in conformity with a distance to the destination or a distance to an obstacle. As for the travel speed, a speed obtained at a maximum rotation speed that a motor of the robot 51 can continuously provide is regarded as “maximum speed”, and in the vicinity of the destination or in close proximity to an obstacle, a distance from the robot 51 to the point that the robot 51 starts slowdown is Xd while a distance from the robot 51 to the destination or the obstacle is x, for example. If the destination nor the obstacle is not present in the distance Xd, then 100% of the maximum speed is set as the travel speed. If the destination or the obstacle is present in the distance Xd, then the travel speed is obtained by the following formula:
[travel speed]=[maximum speed]*(1−[slowdown gain]*(Xd−x))
As for the linear speed component, when the travel is attempted at high linear speed with a large turning component, there is a possibility that the robot 51 might fall down to the outside of the turning direction due to centrifugal force, and therefore the linear speed component is obtained by the following formula:
[linear speed component]=[travel speed]*(1−[turning slowdown gain]*|turning speed component|)
Thus, when the obstacle 40 is present in the travel direction of the mobile robot 51, a travel route for the mobile robot 51 to avoid the obstacle 40 is taken, and after the mobile robot 51 passes the obstacle 40 (in other words, immediately after the obstacle disappears from the first and second detection regions), a route toward the destination 71c-2 is taken (calculation as shown in
It is to be noted that movement of the mobile robot 51 along the travel route calculated by the route calculation unit 55 is implemented by controlling the rotation speeds of the left-side and right-side drive wheels 59 of the left-side and right-side motors 61a in the drive unit 61 as shown below. That is, the linear travel speed component is obtained as an average speed of the left-side and the right-side two drive wheels 59, while the turning speed component is obtained as a speed difference between the left-side and the right-side two drive wheels 59.
The basic processing flow of the mobile robot 51 having the thus-described configuration is shown below with reference to
In the case where the mobile robot 51 does not change the setting of the second detection region 41 of the virtual sensor during travel operation, the processing is executed according to the basic flow as shown in
Step S1: first, a travel destination of the robot 51 is inputted into the map database 52 by the input device 39. The destination on the map information 70 is updated upon the input and the following steps till arrival at the destination are executed. It is to be noted that when the travel destination is inputted, a coordinate of the destination and an arrival condition distance for use in arrival determination are inputted.
Step S2: self location information 73 of the robot 51 is obtained by the self location measurement unit 53.
Step S3: virtual sensor calculation information is calculated by the virtual sensor information calculation unit 54 based on the self location information 73 obtained in step S2 and the map information 70.
Step S4: the self location information 73 of the robot 51 obtained in step S2 and information on the destination in the map information 70 are compared by the route calculation unit 55 to determine whether or not the robot 51 has arrived at the destination. At this point, a distance from the self location (present location) of the robot 51 to the destination is calculated from a coordinate of the self location (present location) and a coordination of the destination by the route calculation unit 55, and if the route calculation unit 55 determines that the distance is within the arrival condition distance inputted in step S1, then it is determined that the robot 51 has arrived at the destination. With the determination, the information on the destination is cleared from the map information 70, moving operation of the robot 51 is ended by the drive unit 61 (step S7), and the robot 51 is put into a standby state for new destination input (step S1).
Step S5: if the robot 51 does not yet arrive at the destination, that is, if the route calculation unit 55 determines that the distance from the self location of the robot 51 to the destination is larger than the arrival condition distance, then a travel route of the robot 51 is calculated by the route calculation unit 55 based on the information calculated in steps S2 and S3.
Step S6: the movement of the robot 51 is controlled by the drive unit 61 so as to allow the robot 51 to travel along the travel route calculated in step S4. After the execution of step S5, the procedure returns to step S2.
Further, in the case where the mobile robot 51 changes the setting of the second detection region 41 of the virtual sensor during the travel operation by using the obstacle detection sensor 56 and the virtual sensor setting change unit 57, processing is executed according to the flow as shown in
Step S11: first, a travel destination of the robot 51 is inputted into the map database 52 by the input device 39. The destination on the map information 70 is updated upon the input and the following steps till arrival at the destination are executed. It is to be noted that when the travel destination is inputted, a coordinate of the destination and an arrival condition distance for use in arrival determination are inputted.
Step S12: various information is obtained by the obstacle detection sensor 56 and the self location measurement unit 53. More specifically, the following steps 12-1 and 12-2 are executed.
Step S12-1: self location information 73 of the robot 51 is obtained by the self location measurement unit 53.
Step S12-2: detection information on obstacles is obtained by the obstacle detection sensor 56.
Step S13: calculation conditions of the virtual sensor calculation information are set based on the information obtained in step S12, and the virtual sensor calculation information is calculated by the virtual sensor information calculation unit 54. More specifically, the following steps S13-1, S13-2, and S13-3 are executed.
Step S13-1: if necessary, the setting of the calculation conditions of the virtual sensor calculation information is changed by the virtual sensor setting change unit 57 based on the self location information 73 obtained in step S12, the detection information on obstacles, and the map information 70 stored in the map database 52.
Step S13-2: the virtual sensor calculation information is calculated by the virtual sensor information calculation unit 54 based on the self location information 73 obtained in step S12, under the calculation conditions from the virtual sensor setting change unit 57 and with use of the map information 70 stored in the map database 52.
Step S13-3, if necessary, the setting of the calculation conditions of the virtual sensor calculation information is changed by the virtual sensor setting change unit 57 based on the virtual sensor calculation information calculated in step S13-2, and virtual sensor calculation information is calculated again by the virtual sensor information calculation unit 54 under the changed calculation conditions from the virtual sensor setting change unit 57 and with use of the map information 70 stored in the map database 52.
Step S14: the self location information 73 of the robot 51 obtained in step S12 and the information on the destination in the map information 70 are compared by the route calculation unit 55 to determine whether or not the robot 51 has arrived at the destination. At this point, a distance from the self location (present location) of the robot 51 to the destination is calculated from a coordinate of the self location (present location) and a coordination of the destination by the route calculation unit 55, and if the route calculation unit 55 determines that the distance is within the arrival condition distance inputted in step S11, then it is determined that the robot 51 has arrived at the destination. With the determination, the information on the destination is cleared from the map information 70, moving operation of the robot 51 is ended by the drive unit 61 (step S17), and the robot 51 is put into a standby state for new destination input (step S1).
Step S15: if the robot 51 does not yet arrive at the destination, that is, if the route calculation unit 55 determines that the distance from the self location of the robot 51 to the destination is larger than the arrival condition distance, then a travel route of the robot 51 is calculated by the route calculation unit 55 based on the information calculated in steps S12 and S13.
Step S16: the movement of the robot 51 is controlled by the drive unit 61 so as to allow the robot 51 to travel along the travel route calculated in step S15. After the execution of step S16, the procedure returns to step S12.
With such a mechanism of the mobile robot 51, obstacles present in long distance or wide range which cannot be detected by the real obstacle detection sensor 56 due to physical properties of the sensor can be detected in the second detection region 41 of the virtual sensor in accordance with the basic flow in which the setting of the second detection region 41 of the virtual sensor is not changed during travel operation. For example, dead-end paths can be detected in advance by the second detection region 41 of the virtual sensor, which makes it possible to avoid these paths in advance, thereby allowing prevention of the robot 51 from accidentally entering the dead-end paths and performing inefficient movement or being caught in a deadlock. As for the calculation amount in route calculation, the calculation amount in virtual sensor calculation is proportional to (retrieval calculation of the detection area of the second detection region 41 of the virtual sensor=detection area/accuracy), and therefore, at worst, if the entire travel range is set as a detection region, the calculation can be conducted with a considerably small calculation amount compared to the conventional example 2 in which the calculation amount is proportional to the square of (detection area/accuracy) Therefore, in the mobile robot under the environments that obstacles are present, real time and efficient travels to destinations are implemented.
In the present invention, the virtual sensor can be set, and so the properties (e.g., size and direction of the detection region) can be freely set without being restricted to physical detection properties of real sensors in particular. Consequently, it is possible to obtain information undetectable by real sensors, that is for example, the back sides of obstacles or remote spots can be retrieved, the shapes of obstacles can be recognized based on the map information 70 in the map database 52 as described in the above example to detect the surroundings of the recognized obstacles. Further, it becomes unnecessary to give consideration to issues which can arise when real sensors are mounted such as an issue of detection accuracy and detection region, an issue of the number of sensors and installation, an issue of interference between sensors, and an issue of influence of surrounding environments.
Further, by combining the virtual sensor with the obstacle detection sensor 56 that is a real sensor, unknown obstacles not registered in the map database 52 and moving obstacles can be detected by the obstacle detection sensor 56, allowing the robot to avoid these unknown obstacles and moving obstacles. Further, the obstacles detected by the real obstacle detection sensor 56 may be registered in the map information in the map database 52 by a map registration unit 69 (see
Moreover, mounting the virtual sensor setting change unit 57 makes it possible to change the calculation setting in accordance with the state of the robot or the surrounding conditions, and so in the spot where smaller number of obstacles are present, it is possible to set the detection region to be small and the accuracy to be low, which allows implementation of high-accuracy detection while the entire calculation amount is kept small by increasing the detection region or increasing the accuracy only when needs arise. Not only the accuracy and the detection region, but also the properties can be changed if necessary, and it is also possible, for example, to give functions of a plurality of sensors to the virtual sensor only by switching the calculation setting.
Herein, a method for optimum setting of the virtual sensor in the present invention is to set the detection region and the accuracy to be requisite minimum in conformity with the movement properties of the robot and the properties of obstacles as stated in the above example. Smaller detection region and lower detection accuracy decrease the calculation amount and reduces a load on processing units such as calculation units. Further, the optimum setting is preferably provided not only to the detection region but also to the detection properties if necessary.
Herein the detection properties refer to those “extractable (detectable)” as information by the virtual sensor, and are exemplified by the followings.
(1) Information on the presence/absence of obstacles in the second detection region of the virtual sensor. Information on location and direction of the closest obstacle.
This allows the virtual sensor to be used like a real sensor.
(2) Information for determining whether or not paths are passable.
Information for the virtual sensor to determine whether or not the robot can pass blind alleys or labyrinths.
(The second detection region is expanded in sequence in the direction of the travel route of the robot to detect whether or not an exist of the path is found.)
(3) Information on types of obstacles (e.g., weight and material)
The information may be registered as the properties of the obstacles in the map database together with the location and the shape of obstacles.
In the case of light obstacles, it is possible to select an option of pushing them aside by the robot.
In the case of obstacles made of fragile materials, the information is used to determine if the robot avoids them cautiously or not.
Moreover, in the case where the obstacle detection sensor 56 and the virtual sensor are combined, it is possible to allot their roles while making the most of advantages of both the real obstacle detection sensor 56 and the virtual sensor. For example, the real obstacle detection sensor 56 as described in the above example is preferably used for detection in the detection region around the robot 51 for the purpose of ultimate security and detection in a long range ahead of the robot 51 for avoidance of unknown obstacles, while the virtual sensor is preferably used for detection in the region difficult to detect by the real sensor, that is, for detecting obstacles on the travel route of the robot 51 in response to the travel situation of the robot 51 and collecting detailed information on the surrounding of an obstacle during obstacle detection operation.
As for a method for calculating an optimum travel route, the method for route calculation based on the information by the real obstacle detection sensor 56 is preferably used without modification. This is because the virtual sensor calculation information itself has the same information contents as the real obstacle detection sensor 56 and so it is not necessary to distinguish the information, and also because when a virtual sensor is used in place of an actual obstacle detection sensor 56 in the development stage, and a sensor having desired specifications becomes commercially available, the virtual sensor (e.g., a replaceable virtual sensor 56z composed of a virtual sensor information calculation unit 54 and a conversion unit 50 shown in
By utilizing the properties of the virtual sensor, it is also possible to provide a conversion unit 50 as shown in
Herein, for comparison with the virtual sensor, the real obstacle detection sensor is exemplified by the followings.
The virtual sensor mentioned in the present example in
More particularly, detection information obtained based on the information detected by physical devices in a sensor can be called “detection information” by the sensor.
The “calculation information” of the virtual sensor refers to “information extracted from information stored in map database”. While the real sensors are subject to physical restrictions of the real sensors themselves, the virtual sensors can extract any information as long as information is preset in the map database, or to put it the other way around, what is necessary is to register necessary data in the database. Consequently, there is no limit on detectable information, and as a result, the “calculation information” of the virtual sensor includes the contents of the “detection information” of the real sensor.
Detailed description will be herein given of the case in which, as described above, the calculation conditions for calculating the virtual sensor calculation information are changed by the virtual sensor setting change unit 57 based on the map information stored in the map database 52, the self location information 73 measured by the self location measurement unit 53, the virtual sensor calculation information calculated by the virtual sensor information calculation unit 54, the detection information by the obstacle detection sensor 56, and the travel route calculated by the route calculation unit 55.
First, description will be given of the case in which the calculation conditions are changed by the virtual sensor setting change unit 57 based on the map information. When the normal state of the second detection region 41 is as shown in
Description is now given of the case in which the calculation conditions are changed by the virtual sensor setting change unit 57 based on the self location information (e.g., speed information). When a normal second detection region 41 is as shown in
Next, in the case where the calculation conditions are changed by the virtual sensor setting change unit 57 based on the virtual sensor calculation information, as already described above, when the virtual sensor detects an obstacle (when an obstacle is present in the second detection region 41), the calculation conditions are changed by the virtual sensor setting change unit 57 from the setting state of the normal second detection region 41g (
Next, in the case where the calculation conditions are changed by the virtual sensor setting change unit 57 based on the travel route, when the robot 51 is turned, the calculation conditions are changed, depending on the length of a distance that the robot 51 travels along the travel route of the robot 51 till the robot 51 stops upon reception of a stop instruction (the distance varies depending on the speed of the mobile robot), from the setting state of the normal second detection region 41g (
Description is now given of the case in which the calculation conditions are changed by the virtual sensor setting change unit 57 based on the detection information by the obstacle detection sensor 56.
Although the mobile robot assumed in the present embodiment is an independently driven two-wheel mobile robot with auxiliary wheels, other mobile mechanisms may be employed. The present embodiment is applicable to, for example, mobile mechanisms which take curves by a steering handle like automobiles, legged-walking type mobile mechanisms without wheels, and ship-type mobile robots which travel by sea. In such cases, in conformity with the properties of individual mobile mechanisms, virtual sensor settings and travel route calculation methods may be adopted. Further, although the assumed travel type in the present embodiment is travel on two-dimensional plane, the present embodiment may be applied to travel in three-dimensional space. In this case, the virtual sensor can easily adapt to the three-dimensional travel by setting the detection region in three dimension. Therefore, the technology of the present invention is applicable to airframes such as airships and airplanes as well as to movement of the head section of manipulators.
By properly combining the arbitrary embodiments of the aforementioned various embodiments, the effects possessed by the embodiments can be produced.
The mobile robot in the present invention is capable of implementing real-time and efficient travels to destinations under the environment that obstacles are present, and therefore is applicable to robots which operate in a self-reliant manner in public places such as factories, stations, and airports as well as to household robots.
Although the present invention has been fully described in connection with the preferred embodiments thereof with reference to the accompanying drawings, it is to be noted that various changes and modifications are apparent to those skilled in the art. Such changes and modifications are to be understood as included within the scope of the present invention as defined by the appended claims unless they depart therefrom.
Number | Date | Country | Kind |
---|---|---|---|
2004-264769 | Sep 2004 | JP | national |