Patent Description:
Conventionally, there is known an autonomous traveling body that autonomously travels according to path planning from a travel start position to a travel end position. As an example, an autonomous travel type floor cleaning machine reproduces a travel path and cleaning conditions taught by a user's operation, so as to autonomously travel the taught travel path while autonomously performing cleaning according to the taught cleaning conditions.

Further, in another path planning method, a traveling schedule is created by projecting a filling travel target area of an environmental map onto a grid coordinate of a predetermined size, and by determining order of passing through grid cells (see, for example, Patent Citation <NUM>).

In addition, there is known a travel path planning device that sets a working target area inside of an environmental area while setting an outer peripheral area for a harvester to change its direction in an outer periphery thereof (see, for example, Patent Citation <NUM>).

<CIT> addresses the problem of how to provide a traveling route generating device capable of appropriately generating a traveling route even when an outline of a field has a recess locally entering an inside. As solution, it is suggested: A traveling route generating device is comprised of: a circulating traveling route calculating unit for calculating a circulating traveling route for traveling around a circumference area of a field one or more times.

<CIT> discloses a travel route generating device that includes a cell manager configured to manage a plurality of cells obtained by generating meshes in a topographical map of the work field at a predetermined interval, a travel weighting allocator configured to allocate to one of the cells, as weights given to travels, a weight given to left-turn travel, a weight given to straight travel, and a weight given to right-turn travel, upon travel from the cell to an adjacent cell, a cell passing route determiner configured to determine a cell passing route of passing the cell in accordance with the weights allocated to the cell, a weighting changer configured to change the weights given to travels allocated to a cell influenced by passage of the cell, and a travel route generator configured to generate a travel route by connecting the cell passing routes sequentially determined by the cell passing route determiner.

<CIT> discloses: To provide an autonomous travel system which generates an auxiliary line which can be used as a path in a headland region to thereby allow a work vehicle to autonomously travel in the headland region properly.

In general, the body of the autonomous traveling body has different sizes between the length and the width, and has a rectangular shape in a plan view, for example. Therefore, if a filling travel path planning is grid-based, the body may be deviated outward from the peripheral boundary of the travel area when performing the filling travel, at a place where a body orientation in teaching travel is different from that in filling travel (e.g., at a place where the body turns around). In addition, if the planning of filling travel is performed within a range in which the body of the autonomous traveling body is not deviated (e.g. if the filling travel target area is simply reduced), an unfilled area may be generated near the outer periphery.

It is an object of the present invention to prevent the autonomous traveling body from being deviated outward from the peripheral boundary of the travel area in a grid-based autonomous travel path planning.

As means for solving the problem, a plurality of aspects are described below. These aspects can be arbitrarily combined as necessary.

An autonomous travel path planning method according to an aspect of the present invention is a method to plan a path according to claim <NUM>.

The turning movement distance means a movement locus of a wheel center when the body turns.

In this method, one or more inner rounding paths corresponding to at least a part of the deviation width are created, and further the filling travel path is created inside of the grid area. As a result, the travel path is planned, which enables the autonomous traveling body to travel without deviation from the peripheral boundary of the travel area, in the grid-based autonomous travel path.

If there are a plurality of inner rounding paths, they may be independent of each other, or some of them may be overlapped.

In creating the inner rounding paths, it may be possible to calculate the maximum number of the paths necessary to cover the entire deviation width. In this method, the entire deviation width is securely covered by the inner rounding paths. In other words, although the deviation width amount can differ depending on place, no unfilled place is generated by creating the inner rounding paths of the necessary number for covering the deviation width.

In obtaining the travel area, it may be possible to obtain the travel area by teaching the boundary of the travel area with the autonomous traveling body so as to create an outer periphery teaching path.

This method may further include determining the autonomous travel path by continuously connecting an outer rounding path created based on the outer periphery teaching path, the filling travel path, and the inner rounding path.

In this method, the autonomous travel path including the outer rounding path is planned.

In this way, the end position of the filling travel path is clarified. Furthermore, as the end position is set near the start position, continuous travel can be performed smoothly. In addition, by setting the end position at a position shifted inward from the start position, deviation of the path from a teaching range can be prevented when planning a path for returning to the end position (i.e., the start position) on the outer rounding path.

Conventionally, if an environmental change occurs in the filling travel, the travel is stopped so as to prevent the autonomous traveling body from losing its own position on the way and being unable to follow the planned travel path. In this case, it is necessary to teach the travel range and create the path again for unfilled places thereafter including periphery of the stop position. In this method, the autonomous traveling body travels the test travel path, thereby an environmental change can be detected prior to the filling travel. Therefore, unlike a conventional method, there is little influence of an environmental change in an actual autonomous travel.

This method may further include notifying the environmental change detected while the autonomous traveling body is traveling the test travel path.

In this method, a user can promptly know the environmental change.

This method may further include stopping the test travel after the environmental change is detected while the autonomous traveling body is traveling the test travel path.

In this method, the user can promptly start reteaching the travel range.

This method may further include returning the autonomous traveling body to a position on the test travel path after stopping the test travel.

This method may further include moving the autonomous traveling body to a position in the travel area after stopping the test travel.

In this method, if a test travel start position is different from the filling travel start position, for example, the autonomous traveling body can be moved to the filling travel start position.

In the autonomous travel path planning method according to the present invention, it is possible to prevent the autonomous traveling body from being deviated outward from the peripheral boundary of the travel area, in the grid-based autonomous travel path planning.

With reference to <FIG>, an overall structure of an autonomous traveling device <NUM> (an example of an autonomous traveling body) according to a first embodiment is described below. <FIG> is a diagram illustrating an overall structure of an example of the autonomous traveling device. The autonomous traveling device <NUM> is a cleaning machine that autonomously reproduces set cleaning conditions and travel path.

The autonomous traveling device <NUM> includes a travel unit <NUM>. The travel unit <NUM> is a device that causes the autonomous traveling device <NUM> to travel. The travel unit <NUM> has a main body B that constitutes a main body of the autonomous traveling device <NUM>. The travel unit <NUM> includes a travel motor <NUM> and a main wheel <NUM> connected to an output rotation shaft of the travel motor <NUM> so as to rotate along with rotation of the travel motor <NUM>, which are disposed on each of the left and right ends of a bottom part of the main body B.

The autonomous traveling device <NUM> includes a cleaning unit <NUM>. The cleaning unit <NUM> is a device provided to the bottom part of the main body B, so as to clean a floor surface F according to designated cleaning conditions. The cleaning unit <NUM> of this embodiment includes a cleaning liquid discharge port <NUM>, a squeegee <NUM>, and a cleaning member <NUM>.

The cleaning liquid discharge port <NUM> discharges cleaning liquid (e.g., water) supplied from a cleaning liquid supply tank <NUM> with a cleaning liquid supply pump <NUM> to the floor surface F on the front side of the main body B. The squeegee <NUM> is disposed on the rear side of the bottom surface of the main body B, so as to collect the cleaning liquid remaining on the floor surface F. The cleaning member <NUM> is disposed on the front side of the bottom surface of the main body B, so as to rotate on the floor surface F with the cleaning liquid along with rotation of a cleaning member rotating motor <NUM>, thereby cleaning the floor surface F.

With the cleaning unit <NUM> described above, the autonomous traveling device <NUM> can perform cleaning operation using the cleaning liquid, so as to polish the floor surface F with the cleaning member <NUM>.

In another embodiment, the squeegee <NUM> may be equipped with a suction port 33a. When a collecting member <NUM> is made negative pressure by a suction motor <NUM>, the suction port 33a can suck the cleaning liquid, dust, and the like collected by the squeegee <NUM> so as to send them to the collecting member <NUM>.

The autonomous traveling device <NUM> includes a control unit <NUM>. The control unit <NUM> is a computer system including a CPU, a storage device (such as a RAM, a ROM, a hard disk drive, and/or an SSD), and various interfaces. The control unit <NUM> performs various controls regarding to the autonomous traveling device <NUM> (as described later).

The autonomous traveling device <NUM> includes a travel path teaching unit <NUM>. The travel path teaching unit <NUM> is a device that receives an operator's operations to move the travel unit <NUM>. The travel path teaching unit <NUM> is mounted via an attachment member <NUM> to the upper rear side of the main body B. In this way, the operator can operate the travel unit <NUM> to move by operating the travel path teaching unit <NUM> (as described later).

As another embodiment, the travel path teaching unit <NUM> may not be mounted to the main body B. In this case, the travel path teaching unit <NUM> is a controller such as a joy stick, for example. In this way, the operator can remote control the autonomous traveling device <NUM>.

The autonomous traveling device <NUM> includes a setting unit <NUM>. The setting unit <NUM> is a console panel for various settings regarding to the autonomous traveling device <NUM>, and is mounted to the surface of the main body B on the upper rear side. In addition, the setting unit <NUM> is disposed near the travel path teaching unit <NUM>. In this way, the operator can operate the setting unit <NUM> while operating the travel path teaching unit <NUM> so as to control the travel unit <NUM>.

As another embodiment, the setting unit <NUM> may not be mounted to the main body B. In this case, the setting unit <NUM> may be a console such as a portable terminal that can perform wireless communication, for example. In this way, the operator can perform remote setting of the autonomous traveling device <NUM>.

With reference to <FIG>, an example of a structure of the travel path teaching unit <NUM> is described. <FIG> is a diagram illustrating an example of a structure of the travel path teaching unit.

The travel path teaching unit <NUM> includes handles 71a and 71b. The handles 71a and 71b are respectively mounted to the left and right side surfaces of a package <NUM>. The handles 71a and 71b are used when the operator controls the autonomous traveling device <NUM>.

For instance, the operator who holds the handles 71a and 71b can apply a force to the autonomous traveling device <NUM> either in a pulling direction toward the operator or in a pushing direction, using the handles 71a and 71b. By adjusting forces applied to the handles 71a and 71b, respectively, the operator can adjust the travel direction of the autonomous traveling device <NUM>. For instance, when a pulling force is applied to the right side handle 71a viewed from the front of the autonomous traveling device <NUM>, the autonomous traveling device <NUM> changes its direction to the left.

The handles 71a and 71b are mounted to the housing <NUM> in a rotatable manner. In addition, the handles 71a and 71b are connected to the control unit <NUM> via a travel control command calculation unit <NUM>. The travel control command calculation unit <NUM> converts rotations of the handles 71a and 71b into electric signals and outputs the signals to the control unit <NUM>. In this way, the operator can control the autonomous traveling device <NUM> (the travel unit <NUM>) by rotation operations of the handles 71a and 71b.

For instance, by adjusting rotation directions of the handles 71a and 71b, the operator may be able to switch the travel direction of the autonomous traveling device <NUM> between forward and backward. In addition, by adjusting rotation amounts of the handles 71a and 71b, a travel speed of the autonomous traveling device <NUM> may be adjustable. Furthermore, it may be possible to change the travel direction of the autonomous traveling device <NUM> by differentiating the rotation amounts between the handle 71a and the handle 71b.

With reference to <FIG>, a structure of the setting unit <NUM> is described. <FIG> is a diagram illustrating a structure of the setting unit.

The setting unit <NUM> includes a selection unit <NUM>. The selection unit <NUM> selects an operation mode of the autonomous traveling device <NUM>, and outputs the selected mode information to the control unit <NUM>. The operation modes of the autonomous traveling device <NUM> include an autonomous travel mode and a manual operation mode. The autonomous travel mode is an operation mode in which the autonomous traveling device <NUM> autonomously travels and cleans the floor surface F. The manual operation mode is an operation mode in which the autonomous traveling device <NUM> can be manually controlled by the operator. The selection unit <NUM> can be a selection switch as illustrated in <FIG>, for example.

The setting unit <NUM> includes a manual operation memory switch <NUM>. The manual operation memory switch <NUM> is a switch that starts or stops storing of the operator's manual operations of the autonomous traveling device <NUM>. Specifically, when the manual operation memory switch <NUM> is pressed after the operation mode is set to the manual operation mode by the selection unit <NUM>, a manual operation teaching mode is started as a sub operation mode of the manual operation mode, in which cleaning conditions and a travel path of the manual operation performed by the operator are taught to the autonomous traveling device <NUM>. On the other hand, when the manual operation memory switch <NUM> is switched while executing the manual operation teaching mode, the manual operation teaching mode is stopped.

The manual operation memory switch <NUM> can be a push button switch as illustrated in <FIG>, for example. In this case, the manual operation memory switch <NUM> is switched by pressing the push button switch.

The setting unit <NUM> includes a setting operation section <NUM>. The setting operation section <NUM> is a push switch, for example, which receives inputs of various settings regarding to the autonomous traveling device <NUM>, and outputs the received setting information to the control unit <NUM> via a setting conversion unit <NUM>. The setting conversion unit <NUM> is a signal conversion circuit or a computer system that converts the input received by the setting operation section <NUM> into a signal readable by the control unit <NUM>.

The setting unit <NUM> includes a display <NUM>. The display <NUM> displays various setting information regarding to the autonomous traveling device <NUM>, which are currently set. The display <NUM> is an LCD, an organic EL display, or the like, for example.

In another embodiment, the display <NUM> may further display a current operation mode (the autonomous travel mode, the manual operation mode, or the manual operation teaching mode), operating time, or a remaining level of battery for driving the autonomous traveling device <NUM>.

In still another embodiment, the display <NUM> may display various setting procedures when performing various settings of the autonomous traveling device <NUM> with the setting operation section <NUM>. In this way, it is possible to provide the user with information regarding to the autonomous traveling device <NUM> in a visual manner, so that the user can operate the setting unit <NUM> based on the displayed information.

In another embodiment, the display <NUM> may be equipped with a touch panel. In this case, the selection unit <NUM>, the manual operation memory switch <NUM>, and/or the setting operation section <NUM>, which are described above, may be realized by the touch panel.

The setting unit <NUM> may include a cleaning condition teaching unit <NUM>. The cleaning condition teaching unit <NUM> receives input of cleaning conditions from the operator, and output the same to a cleaning control command calculation unit <NUM>. The cleaning control command calculation unit <NUM> is a signal conversion circuit or a computer system that converts the cleaning conditions received by the cleaning condition teaching unit <NUM> into a signal readable by the control unit <NUM>, and outputs the signal to the control unit <NUM>.

With reference to <FIG>, an overall structure of the control unit <NUM> is described. <FIG> is a diagram illustrating an overall structure of the control unit. The whole or a part of function blocks of the control unit <NUM> described below may be realized by a program executable by a computer system constituting the control unit <NUM>. In this case, the program may be stored in a memory unit and/or a storage device. The whole or a part of the function blocks of the control unit <NUM> may be realized by a custom IC such as a system on chip (SoC).

The control unit <NUM> may include a single computer system or a plurality of computer systems. If the control unit <NUM> includes a plurality of computer systems, functions realized by the function blocks of the control unit <NUM> can be assigned to the computer systems at an arbitrary ratio for execution, for example.

The control unit <NUM> includes a cleaning control unit <NUM>. The cleaning control unit <NUM> supplies power to control a rotation speed, output, and the like for the cleaning member rotating motor <NUM>, the cleaning liquid supply pump <NUM>, and the suction motor <NUM>.

In the example in which the setting unit <NUM> includes the cleaning condition teaching unit <NUM>, the cleaning control unit <NUM> may receive taught cleaning conditions from the cleaning condition teaching unit <NUM> via the cleaning control command calculation unit <NUM>, and may control the cleaning member rotating motor <NUM>, the cleaning liquid supply pump <NUM>, and the suction motor <NUM>, based on the taught cleaning conditions.

In another embodiment, when executing the autonomous travel mode, the cleaning control unit <NUM> may receive reproduction cleaning conditions, which indicate set values of the cleaning conditions in the autonomous travel mode, from a general control unit <NUM>, and may control the cleaning unit <NUM> based on the reproduction cleaning conditions.

The control unit <NUM> includes a travel control unit <NUM>. The travel control unit <NUM> controls the travel motor <NUM> based on the travel control command based on rotation amounts and rotation directions of the handles 71a and 71b received from the travel path teaching unit <NUM>, or the travel control command received from the general control unit <NUM>. In addition, the travel control unit <NUM> calculates rotation speed of the travel motor <NUM> based on a pulse signal output from an encoder <NUM> attached to the output rotation shaft of the travel motor <NUM>.

The control unit <NUM> includes the general control unit <NUM>. The general control unit <NUM> generally controls traveling of the autonomous traveling device <NUM>. Specifically, based on information obtained by a front detector 5551a, a rear detector 5551b, and/or the encoder <NUM>, the general control unit <NUM> calculates position information indicating a position on the floor surface F where the autonomous traveling device <NUM> is traveling. The general control unit <NUM> creates a traveling schedule <NUM> using the position information when executing the manual operation teaching mode. In another embodiment, the general control unit <NUM> may calculate cleaning conditions in the autonomous travel mode so as to associate them with the traveling schedule <NUM>.

On the other hand, when executing the autonomous travel mode, the general control unit <NUM> calculates a reproduction travel control command based on data stored in the traveling schedule <NUM>, and outputs the same to the travel control unit <NUM>. In this way, when executing the autonomous travel mode, the travel control unit <NUM> controls the travel motor <NUM> based on the reproduction travel control command, so that the autonomous traveling device <NUM> can autonomously move.

In an embodiment where the traveling schedule <NUM> is associated with cleaning conditions, the general control unit <NUM> may control the cleaning control unit <NUM> based on the cleaning conditions stored in the traveling schedule <NUM> when executing the autonomous travel mode. In this way, the autonomous traveling device <NUM> can autonomously perform cleaning operation according to the cleaning conditions while autonomously traveling according to the traveling schedule <NUM>.

The control unit <NUM> includes a storage unit <NUM>. The storage unit <NUM> is a part or the whole of a storage area of the storage device of the computer system constituting the control unit <NUM>, and stores various information regarding to the autonomous traveling device <NUM>. Specifically, the storage unit <NUM> stores the traveling schedule <NUM> created by the general control unit <NUM>, and various settings regarding to the autonomous traveling device <NUM> received from the setting operation section <NUM> and the setting conversion unit <NUM>.

The travel control unit <NUM> and the general control unit <NUM> reads various settings regarding to the autonomous traveling device <NUM>, and/or the traveling schedule <NUM>, which are stored in the storage unit <NUM>, as necessary, and can perform various adjustments and controls based on them.

With reference to <FIG>, a structure of the travel control unit <NUM> is described in detail. <FIG> is a diagram illustrating a detailed structure of the travel control unit. The travel control unit <NUM> includes a travel selection unit <NUM>. The travel selection unit <NUM> has three terminals d, e, and f. The terminal d is connected to the travel path teaching unit <NUM>, the terminal e is connected to a motor control unit <NUM>, and the terminal f is connected to the general control unit <NUM>.

The travel selection unit <NUM> selects connection between the terminal e and the terminal d, or connection between the terminal e and the terminal f, based on the operation mode selected by the selection unit <NUM>. Specifically, if the manual operation mode is selected by the selection unit <NUM>, the travel selection unit <NUM> connects the terminal e and the terminal d, thereby the travel path teaching unit <NUM> is connected to the motor control unit <NUM>. In this way, when executing the manual operation mode or the manual operation teaching mode, the travel selection unit <NUM> can send a signal indicating rotation amounts and/or rotation directions of the handles 71a and 71b of the travel path teaching unit <NUM> to the motor control unit <NUM>.

On the other hand, if the autonomous travel mode is selected by the selection unit <NUM>, the travel selection unit <NUM> connects the terminal e and the terminal f, thereby the general control unit <NUM> is connected to the motor control unit <NUM>. In this way, when executing the autonomous travel mode, the travel selection unit <NUM> can send the reproduction travel control command output from the general control unit <NUM> to the motor control unit <NUM>.

The motor control unit <NUM> calculates a target rotation speed of the travel motor <NUM> based on the received rotation amounts and rotation directions of the handles 71a and 71b or the reproduction travel control command, and outputs to the travel motor <NUM> a drive power to rotate the travel motor <NUM> at the target rotation speed.

The motor control unit <NUM> calculates and feeds back an actual rotation speed of the travel motor <NUM> based on the pulse signal from the encoder <NUM>, and calculates a drive power to be output to the travel motor <NUM>. Therefore, the motor control unit <NUM> controls the travel motor <NUM> by using, for example, a proportional integral (PI) control theory, a proportional integral differential (PID) control theory, or the like.

In this embodiment, the travel motor <NUM> and the main wheel <NUM> are mounted to each of the left and right ends of the bottom part of the main body B. In this case, the motor control unit <NUM> controls the rotation speeds and the rotation directions of the left and right travel motors <NUM> independently, so as to determine the travel direction of the autonomous traveling device <NUM>.

In another embodiment, if the control unit <NUM> is a plurality of computer systems, the motor control unit <NUM> may be one of the computer systems. In other words, it may be possible that one computer system realizes only the function of the motor control unit <NUM>. In this case, the motor control unit <NUM> is a motor control device using the PI control theory or the PID control theory, for example.

With reference to <FIG>, a structure of the general control unit <NUM> is described in detail. <FIG> is a diagram illustrating a detailed structure of the general control unit. The general control unit <NUM> includes a travel area obtaining unit <NUM>. The travel area obtaining unit <NUM> receives from an SLAM unit <NUM> (described later) position information (described later) estimated by the SLAM unit <NUM>, every predetermined time interval (e.g., every control period of the control unit <NUM>) when executing the manual operation teaching mode.

The travel area obtaining unit <NUM> obtains a travel area TA indicating an area where the autonomous traveling device <NUM> travels in a travel environment, as a sequence of points of the obtained plurality of position information. The travel area obtaining unit <NUM> outputs to a travel area inside path creation unit <NUM> the sequence of points of the obtained plurality of position information, as a sequence of points indicating a peripheral boundary of the travel area TA.

In another embodiment, the travel area obtaining unit <NUM> may cause the display <NUM> to display a global map GM (i.e., map information indicating the travel environment) that is created in advance. In this case, the travel area obtaining unit <NUM> may urge the operator to draw a closed area indicating the travel area TA on the global map GM displayed on the display <NUM>.

The general control unit <NUM> includes the travel area inside path creation unit <NUM> (an example of a path planning device). The travel area inside path creation unit <NUM> creates the traveling schedule <NUM> for the autonomous traveling device <NUM> to travel the travel area TA uniformly (so as to fill the same), in the travel area TA obtained from the travel area obtaining unit <NUM>, and stores it in the storage unit <NUM>. As illustrated in <FIG>, the travel area inside path creation unit <NUM> includes a grid creation section <NUM>, a travel order determining section <NUM>, a deviation width calculation section <NUM>, a deviation determining section <NUM>, and a travel path planning section <NUM>.

The grid creation section <NUM> partitions a target area to perform the filling travel in the global map GM, by grid cells of a predetermined size. Specifically, the grid creation section <NUM> projects the global map GM onto a grid layer GL having coordinate axes different from those of the global map GM, so as to partition the target area by grid cells GR of a predetermined size on the grid layer GL. As the grid layer GL and the global map GM can be managed separately in this way, work efficiency can be better. Note that one or more of the target areas on the grid layer GL are set in the global map GM.

The travel order determining section <NUM> determines a travelling order of the grid cells GR as travel targets. Note that the travelling order means order of the grid cells GR through which the autonomous traveling device <NUM> passes.

The travel path planning section <NUM> plans a travel path to pass through selected grid cells as travel targets (as described later).

The general control unit <NUM> includes the SLAM unit <NUM>. The SLAM unit <NUM> estimates information about position of the autonomous traveling device <NUM> on a predetermined coordinate (i.e., position information), based on information about an obstacle in front of the autonomous traveling device <NUM> obtained by the front detector 5551a (<FIG>) disposed at the front part of the main body B, and information about an obstacle at the rear of the autonomous traveling device <NUM> obtained by the rear detector 5551b (<FIG>) disposed at the rear part of the main body B, and rotation amount of the travel motor <NUM> obtained by the encoder <NUM>.

The front detector 5551a and the rear detector 5551b are laser range finders (LRF) having a detection range of <NUM> degrees or more. If the laser range finder is used as the front detector 5551a and the rear detector 5551b, it obtains a distance between travel unit <NUM> and an obstacle and a direction to the obstacle, as the information about the obstacle.

The information obtained by the front detector 5551a and the rear detector 5551b may be two-dimensional information indicating position of the obstacle on a predetermined plane, or may be three-dimensional information further including position of the obstacle in the height direction.

The general control unit <NUM> includes a travel reproduction unit <NUM>. When executing the autonomous travel mode, the travel reproduction unit <NUM> calculates a control command (the reproduction travel control command) for the autonomous traveling device <NUM> to autonomously travel the travel path indicated in the traveling schedule <NUM>, based on the information stored in the traveling schedule <NUM> and the position information obtained from the SLAM unit <NUM>. The travel reproduction unit <NUM> outputs the calculated reproduction travel control command to the travel control unit <NUM>.

In another embodiment, the travel reproduction unit <NUM> may output the cleaning conditions associated with the traveling schedule <NUM> to the cleaning control unit <NUM>.

With reference to <FIG>, a detailed structure of the SLAM unit <NUM> is described. The SLAM unit <NUM> in this embodiment performs estimation of position (position information) of the travel unit <NUM> (autonomous traveling device <NUM>) and creation of the map information, by using a simultaneous localization and mapping (SLAM) method.

The SLAM unit <NUM> includes a map creation section <NUM>. The map creation section <NUM> creates the map information, by using information about a front obstacle (such as a wall) obtained by the front detector 5551a and information about a rear obstacle obtained by the rear detector 5551b. The map information is used when a position estimation section <NUM> estimates the position information. As the map information, there are a local map and the global map GM (an example of an environmental map).

The local map is map information about (positions of) obstacles around the travel unit <NUM>. The local map is created as necessary by coordinate conversion of the information about the front obstacle obtained by the front detector 5551a and the information about the rear obstacle obtained by the rear detector 5551b.

The global map GM is map information about (positions of) obstacles in an environment in which the travel unit <NUM> travels (i.e., the travel environment). In this embodiment, the global map GM is created based on the local map obtained when the sequence of points of the position information indicating the travel area TA is obtained when executing the manual operation teaching mode to travel by the operator's operation. In other words, the global map GM is created when the autonomous traveling device <NUM> performs teaching travel, and the target area to perform the filling travel is defined by travel locus when the teaching travel is performed.

Specifically, the map creation section <NUM> creates the global map GM by allocating the local map, which is obtained together with the sequence of points of the position information indicating the travel area TA, at the position corresponding to the position information.

When obtaining the sequence of points of the position information indicating the travel area TA, there may be an error between the position information obtained at an initial stage of the manual operation teaching mode and the position information obtained at an end stage of the manual operation teaching mode. Specifically, for example, when obtaining the travel area TA that is a closed area as the sequence of points of the position information, the estimated position information of the travel unit <NUM> are not the same between start and end of the manual operation teaching mode, although the actual positions thereof are the same between them (i.e., so-called circular path problem).

In order to solve the above mismatch of the estimated position information, the map creation section <NUM> corrects the global map GM created by allocating the local map at the corresponding position. Specifically, for example, the global map is corrected as follows.

First, the map creation section <NUM> obtains information about the obstacle obtained by the front detector 5551a and/or information about the obstacle obtained by the rear detector 5551b, at start and end of the manual operation teaching mode.

Next, the map creation section <NUM> calculates an actual position shift of the travel unit <NUM> between start and end of the manual operation teaching mode, based on difference between information about the obstacle obtained at a start of the manual operation teaching mode and information about the obstacle obtained at an end of the same, or the like.

After that, the map creation section <NUM> corrects the position to allocate the local map based on the calculated actual position shift, using an algorithm such as Graph SLAM, and allocates the local map at the corrected new position, so as to create a new global map GM.

At this time, the map creation section <NUM> may simultaneously correct position information (coordinate values) of the sequence of points indicating the travel area TA obtained by executing the manual operation teaching mode, by using the algorithm such as Graph SLAM, so as to use the corrected new sequence of points of the position information as the sequence of points indicating the travel area TA. By correcting the global map GM as described above, it is possible to create the global map GM indicating the travel environment more appropriately. In addition, when correcting the global map GM, by correcting the position information indicating the travel area TA, it is possible to obtain the sequence of points of the position information indicating the travel area TA as a closed area more appropriately.

In another embodiment, the global map GM may be created and stored in the storage unit <NUM> by using dedicated software or a CAD. In this case, the global map created by the software or the like is converted into data readable by the control unit <NUM> of the travel unit <NUM>.

The SLAM unit <NUM> includes the position estimation section <NUM>. The position estimation section <NUM> estimates position information about position of the travel unit <NUM> on the predetermined coordinate and a direction of the travel unit <NUM> at the position, based on the global map created by the map creation section <NUM>, the local map, and rotation amount of the travel motor <NUM>.

Specifically, the position information is estimated as follows. Here, as an example, suppose a case in which the travel unit <NUM> moves from a (estimated) position at a predetermined time point (referred to as time point tk) to reach a position at a next time point (referred to as time point tk+<NUM>), and the latter position is to be estimated.

First, the position estimation section <NUM> calculates rotation amount of the main wheel <NUM> between time point tk and time point tk+<NUM> from the number of pulses output from the encoder <NUM> between time point tk and time point tk+<NUM>, and estimates movement length and change of the direction of the travel unit <NUM> due to rotation of the main wheel <NUM> based on the rotation amount (dead reckoning).

Next, the position estimation section <NUM> moves posterior probability at time point tk (corresponding to probability distribution indicating a relationship between the position of the travel unit <NUM> and a probability that the travel unit <NUM> exists at the position at time point tk) by a movement length and the change of the direction of the travel unit <NUM> due to rotation of the main wheel <NUM>, so as to calculate prior probability at time point tk+<NUM>.

In another embodiment, the position estimation section <NUM> may increase the breadth of the probability distribution (standard deviation) of the posterior probability after moving by the movement length and the change of the direction due to rotation of the main wheel <NUM>, so as to calculate the prior probability at time point tk+<NUM>. In this way, it is possible to calculate the prior probability considering slip between the main wheel <NUM> and the floor surface F.

After that, the position estimation section <NUM> obtains the global map and the local map at time point tk+<NUM> from the map creation section <NUM>, and performs map matching between the local map and the global map GM at time point tk+<NUM>, so as to estimate the position information of the travel unit <NUM> at time point tk+<NUM>.

Specifically, for example, on the global map GM, the local map at time point tk+<NUM> is allocated at some positions near the estimated position calculated based on rotation amount of the main wheel <NUM>, and the local map is rotated about the center thereof by an angle corresponding to a possible change of direction, and the map matching is performed. Based on a result of the map matching, the position estimation section <NUM> calculates likelihood (corresponding to a relationship between a position at which the local map information is allocated and a matching degree between the global map GM and the local map information at the position).

After that, the position estimation section <NUM> multiplies the likelihood by the prior probability at time point tk+<NUM>, so as to calculate the posterior probability at time point tk+<NUM>. The position estimation section <NUM> estimates the position and the direction when the posterior probability at time point tk+<NUM> becomes maximum, namely the position at which the travel unit <NUM> is estimated to exist with the highest probability and the direction that the travel unit <NUM> can have with the highest probability at the position, as the position of the travel unit <NUM> (estimated position) at time point tk+<NUM> and the attitude (estimated attitude) at the position. The posterior probability at time point tk+<NUM> is used as the prior probability in the next position estimation.

As described above, the position estimation section <NUM> uses the movement length based on rotation amount of the main wheel <NUM> and map information obtained using the front detector 5551a and the rear detector 5551b, so as to perform position estimation. Thus, it is possible to perform accurate position estimation, by complementarily reducing an error included in the movement length based on rotation amount of the main wheel <NUM> (mainly due to slip between the main wheel <NUM> and the floor surface F), and an error included in the map information (mainly due to noise components included in the information obtained by the front detector 5551a and the rear detector 5551b).

The SLAM unit <NUM> includes an elapsed time determination section <NUM>. The elapsed time determination section <NUM> determines elapsed time from start of executing the autonomous travel mode. Specifically, the elapsed time determination section <NUM> determines elapsed time from start of executing the autonomous travel mode based on the position information estimated by the position estimation section <NUM>. More specifically, for example, time associated with the position information closest to the position information of the travel unit <NUM> estimated by the position estimation section <NUM>, among position information stored in the traveling schedule <NUM>, is determined as the elapsed time from start of executing the autonomous travel mode.

With reference to <FIG>, a basic operation of the autonomous traveling device <NUM> is described. <FIG> is a flowchart illustrating a basic operation of the autonomous traveling device. After the autonomous traveling device <NUM> starts operation, in Step S1 the control unit <NUM> checks status of the selection unit <NUM>. If "automatic" is selected by the selection unit <NUM> (in the case of the "autonomous travel mode"), the process proceeds to Step S2 in which the autonomous travel mode is executed. Specifically, the autonomous traveling device <NUM> autonomously performs the cleaning operation according to the traveling schedule <NUM> stored in the storage unit <NUM>.

On the other hand, if "manual" is selected by the selection unit <NUM> (in the case of the "manual operation mode"), the control unit <NUM> determines that the operation mode to be executed is the manual operation mode.

In Step S3, it is checked whether or not pressing of the manual operation memory switch <NUM> is detected during the manual operation mode. If it is detected, the process proceeds to Step S4 in which the operation mode is changed to the manual operation teaching mode. As a result, the operator's operations of the travel unit <NUM> are stored after the timing when the manual operation memory switch <NUM> is pressed.

In addition, in the manual operation teaching mode, the general control unit <NUM> creates the traveling schedule <NUM> for the autonomous traveling device <NUM> to travel in the travel area TA, as determined by the operator's operations of the travel unit <NUM>.

On the other hand, if pressing of the manual operation memory switch <NUM> is not detected, the process proceeds to Step S5 to maintain the manual operation mode in which the operator's operations are not stored.

In Step S4 described above, during execution of the manual operation teaching mode, the control unit <NUM> monitors whether or not the manual operation memory switch <NUM> is pressed. If the manual operation memory switch <NUM> is pressed during execution of the manual operation teaching mode, the operation mode is changed to the manual operation mode at the timing, and the cleaning operations after the timing are not stored in the traveling schedule <NUM>. In other words, by pressing the manual operation memory switch <NUM> during execution of the manual operation teaching mode, the operator can stop the storing (teaching) at any timing during the cleaning operation.

As described above, the autonomous traveling device <NUM> according to this embodiment can execute one of the autonomous travel mode, the manual operation mode, and the manual operation teaching mode, according to selection of the operation mode by the selection unit <NUM>, and whether or not the manual operation memory switch <NUM> is pressed.

With reference to <FIG>, there is described an operation of the manual operation teaching mode executed in Step S4 described above. <FIG> is a flowchart illustrating an operation of the manual operation teaching mode. <FIG> illustrates an example of the travel environment. <FIG> is a diagram illustrating a state where the grid layer is projected onto the global map and further the travel area is overlaid. <FIG> is a diagram illustrating an example of a state in which the travel area is defined on the global map. <FIG> is a diagram illustrating an example of the travel area inside path. In the following description, the travel area inside path is planned so as to uniformly "fill" the travel area TA set in the travel environment as illustrated in <FIG>, and the traveling schedule <NUM> is created.

In Step S11, when the traveling schedule <NUM> is created in the manual operation teaching mode, the general control unit <NUM> creates the global map GM indicating the travel environment.

First, when the manual operation of the autonomous traveling device <NUM> is started after the manual operation memory switch <NUM> is pressed, or when the manual operation memory switch <NUM> is pressed during the manual operation so as to start the manual operation teaching mode, the operator starts an operation of the autonomous traveling device <NUM> using the travel path teaching unit <NUM>. The operator causes the autonomous traveling device <NUM> to travel along the peripheral boundary of the travel area TA.

While the autonomous traveling device <NUM> travels by the operator's operation, the map creation section <NUM> obtains the local map every predetermined time interval. As illustrated in <FIG>, the autonomous traveling device <NUM> starts traveling at a start point ST, travels a closed path as the peripheral boundary of the travel area TA, and returns to the start point ST or vicinity thereof. After that, the map creation section <NUM> allocates the obtained local maps to corresponding positions so as to create the global map GM. After that, the map creation section <NUM> corrects the global map GM as necessary using the Graph SLAM algorithm or the like.

On the other hand, the grid layer GL corresponding to the global map GM is prepared. The grid layer GL is appropriately created by the grid creation section <NUM>. The grid layer GL is an aggregate of many grid cells GR. The grid cell GR corresponds to a small region having a predetermined area in the travel environment. The grid size is <NUM>×<NUM>, for example. Using the grid layer GL having coordinate axes different from those of the global map GM in this way, they can be managed separately, and hence work efficiency can be improved.

In addition, in the computer system of the control unit <NUM>, the grid cells GR can be defined as a "structure" having parameters regarding to the grid cell (such as a parameter for discriminating the grid cell GR, position information of the grid cell GR, valid or invalid of the grid cell GR, or a score assigned to the grid cell GR), for example.

In Step S12, after creating the global map GM, the travel area TA indicating an area for the autonomous traveling device <NUM> to travel in the travel environment is defined on the global map GM. Specifically, the travel area TA is defined on the global map GM as described below.

First, during execution of Step S11 described above, namely while causing the autonomous traveling device <NUM> to travel along the peripheral boundary of the travel area TA, the travel area obtaining unit <NUM> obtains the position information estimated by the position estimation section <NUM> every predetermined time interval, as points indicating the peripheral boundary of the travel area TA.

In this way, the travel area obtaining unit <NUM> can obtain the sequence of points indicating the peripheral boundary of the travel area TA, which is a plurality of position information obtained by the autonomous traveling device <NUM>, while it travels from the start point ST (<FIG>) along the path shown by the broken line, and returns to the start point ST or vicinity thereof. The travel area obtaining unit <NUM> outputs the sequence of points of the position information indicating the peripheral boundary of the travel area TA to the travel area inside path creation unit <NUM>.

Next, as illustrated in <FIG>, the travel area inside path creation unit <NUM> allocates the sequence of points indicating the peripheral boundary of the travel area TA on the global map GM (in reality, on the grid layer GL). Which grid cell on the grid layer GL the position information indicating the peripheral boundary of the travel area TA is allocated to can be determined based on which coordinate value the grid GR exists in the coordinate system defining the position information (the global map), for example.

After that, as illustrated in <FIG>, the travel area inside path creation unit <NUM> determines that the grid cells GR in the travel area TA (white color grid cells in <FIG>) and the grid cells on which the sequence of points of the travel area TA exists (white color grid cells in <FIG>) are valid grid cells, and determines that other grid cells GR are invalid grid cells (gray color grid cells in <FIG>).

In this way, the travel area inside path creation unit <NUM> newly determines the grid cells GR that are not included in the travel area TA to be the invalid grid cells, and hence can define the travel area TA as an area including many valid grid cells (white color grid cells GR in <FIG>) on the global map GM.

After defining the travel area TA on the global map GM, in Step S13 the travel area inside path creation unit <NUM> divides the travel area TA into areas of a rectangular shape (rectangular areas RA). When dividing the travel area TA into the rectangular areas RA, the travel area inside path creation unit <NUM> checks a part of the travel area TA in which the rectangular area RA exists.

After dividing the travel area TA into rectangular areas RA1 to RA3, in Step S14 the travel area inside path creation unit <NUM> determines a start grid cell of the rectangular area inside path (described later) in each of the rectangular areas RA1 to RA3, for each of the rectangular areas RA1 to RA3. The start grid cells of other rectangular areas RA2 and RA3 are determined in Step S17 as described later.

In Step S15, the travel area inside path creation unit <NUM> creates the rectangular area inside path that starts from the start grid cell and passes through all the valid grid cells included in the target rectangular area RA1 to RA3.

In Step S16, the travel area inside path creation unit <NUM> determines whether or not there is any rectangular area RA1 to RA3 for which the rectangular area inside path is not created. If there is no rectangular area RA1 to RA3 for which the rectangular area inside path is not created yet, the manual operation teaching mode is finished.

In contrast, if there is any rectangular area RA1 to RA3 for which the rectangular area inside path is not created, in Step S17 the rectangular area RA2 or RA3 in which the autonomous traveling device <NUM> travels next is determined.

In Step S18, the travel area inside path creation unit <NUM> creates a travel path (connection travel path) that connects an end grid cell of the rectangular area RA1 and the start grid cell of the rectangular area RA3 determined to travel next.

After that, Steps S15 to S18 described above are executed repeatedly until the rectangular area inside path is created for all the rectangular areas RA1 to RA3. As a result, the travel area inside path is finally created for the autonomous traveling device <NUM> to uniformly travel the set travel area TA as illustrated by the thick arrow lines in <FIG>, for the travel area TA illustrated in <FIG> or the like.

After creating the travel area inside path, the travel area inside path creation unit <NUM> converts the created travel area inside path into a set of passing points (e.g., sub goals) for the autonomous traveling device <NUM> to pass (as described later). After that, the travel area inside path creation unit <NUM> associates each of the passing points generated by conversion of the travel area inside path with a time point at which each passing point is passed, and further associates cleaning conditions at each passing point with the corresponding passing point, as necessary. Thus, the traveling schedule <NUM> is created.

In the manual operation teaching mode, by executing Steps S11 to S18 described above, it is possible to accurately create the travel path for the autonomous traveling device <NUM> to uniformly travel the travel area TA, namely the travel area inside path, by an easy method to specify the travel area TA on the global map GM indicating the travel environment.

With reference to <FIG>, there is described an operation of the autonomous traveling device <NUM> when executing the autonomous travel mode executed in Step S2 of <FIG>, so as to reproduce the travel area inside path created in the manual operation teaching mode. <FIG> is a flowchart illustrating the operation of the autonomous traveling device when executing the autonomous travel mode.

When "automatic" is selected by the selection unit <NUM> so as to execute the autonomous travel mode, the autonomous traveling device <NUM> starts the autonomous travel mode to perform autonomous travel according to the traveling schedule <NUM>. Specifically, the autonomous travel mode is executed as follows.

In the following description, it is supposed that travelling after start of executing the autonomous travel mode until elapsed time tm-<NUM> has been performed. Here, m indicates m-th travel control.

In Step S21, the SLAM unit <NUM> obtains information about a front obstacle and information about a rear obstacle from the front detector 5551a and the rear detector 5551b.

In Step S22, the position estimation section <NUM> estimates position of the travel unit <NUM> on the x-y coordinate, based on rotation amount of the travel motor <NUM> measured by the encoder <NUM>, the global map GM, and the local map obtained based on the information obtained in Step S21. For instance, it is supposed that position of the autonomous traveling device <NUM> is estimated to be (xm', ym', θm') on the x-y coordinate.

In Step S23, after the position of the travel unit <NUM> is estimated, the elapsed time determination section <NUM> determines elapsed time tm from start of executing the autonomous travel mode.

In Step S24, the travel reproduction unit <NUM> calculates the reproduction travel control command at the elapsed time tm as described below.

It is supposed that the elapsed time tm is determined to be time TL stored in the traveling schedule <NUM> (or to be closest to the time TL). In this case, the travel reproduction unit <NUM> reads position information (xL+<NUM>, yL+<NUM>, θL+<NUM>) associated with next time TL+<NUM> from the traveling schedule <NUM>, and calculates the reproduction travel control command at the elapsed time tm based on a difference (xL+<NUM> - xm', yL+<NUM> - ym', θL+<NUM> - θm') between the estimated position information and target position information.

In Step S25, after the reproduction travel control command is calculated, the travel reproduction unit <NUM> outputs the reproduction travel control command to the travel control unit <NUM>. In this way, the travel control unit <NUM> controls the travel motor <NUM> based on the received reproduction travel control command, so as to cause the travel unit <NUM> to autonomously move according to the traveling schedule <NUM>.

In another embodiment, if the cleaning conditions are associated with the traveling schedule <NUM>, the travel reproduction unit <NUM> may calculate the reproduction cleaning conditions and control the cleaning control unit <NUM> based on the reproduction cleaning conditions in Steps S24 and S25 described above.

Specifically, the travel reproduction unit <NUM> reads the cleaning conditions (SL, WL, PL) associated with the time TL from the traveling schedule <NUM>, and determines the cleaning conditions (SL, WL, PL) to be the reproduction cleaning conditions at the elapsed time tm. After that, the travel reproduction unit <NUM> outputs the reproduction cleaning conditions to the cleaning control unit <NUM>. In this way, it can control the cleaning unit <NUM> according to the reproduction cleaning conditions.

In Step S26, after controlling the travel unit <NUM> according to the reproduction travel control command, the travel reproduction unit <NUM> checks whether or not all traveling operations stored in the traveling schedule <NUM> are performed. Whether or not all traveling operations stored in the traveling schedule <NUM> are performed can be checked by detecting an identifier at the end of the traveling schedule <NUM> (such as an identifier indicating "end of file"), for example.

As long as it is determined that all traveling operations stored in the traveling schedule <NUM> are not performed ("No" in Step S26), Steps S21 to S25 described above are repeatedly executed.

On the other hand, if it is determined that all traveling operations stored in the traveling schedule <NUM> are performed, i.e., if it is determined that the autonomous traveling device <NUM> has traveled all the travel area inside path ("Yes" in Step S26), execution of the autonomous travel mode is finished. In this way, the autonomous traveling device <NUM> can faithfully reproduce the traveling operation stored in the traveling schedule <NUM>, so as to autonomously and uniformly travel the set travel area.

In another embodiment, execution of the autonomous travel mode may be stopped not only in the case where all traveling operations stored in the traveling schedule <NUM> are performed, but also in the case where an abnormality has occurred in the autonomous traveling device <NUM>, or the case where the user issues a command to stop execution of the autonomous travel mode, or other cases, for example.

As a variation of the manual operation teaching mode described above with reference to <FIG>, a control operation of rectangular area inside path creation is described with reference to <FIG>. Note that the following description corresponds to Step S15 in <FIG>. <FIG> is a flowchart illustrating the control operation of rectangular area inside path creation. <FIG> are schematic plan views illustrating a relationship among an outer periphery teaching path, a first grid area, a second grid area, an inner rounding path, and a filling travel path.

The global map GM is obtained when the autonomous traveling device <NUM> performs outer periphery teaching travel. For instance, <FIG> illustrates an outer rounding path <NUM> by the autonomous traveling device <NUM>, and the lower side of the outer rounding path <NUM> is the travel area TA. Note that the outer rounding path <NUM> is a path that goes around the outer periphery from the outer periphery teaching start position. This is not a grid path but a path planned by free path planning based on the outer periphery teaching path (an actual travel locus when the teaching travel is performed). Note that in this example, the outer periphery teaching path is used as the outer rounding path <NUM> without modification.

In a variation, the outer rounding path is created from the outer periphery teaching path. For instance, the travel area is specified on a GUI (i.e., the outer periphery teaching path is created), and next the outer rounding path is created based on the taught outer periphery. In this way, the autonomous traveling device <NUM> can travel smoothly.

The control operation of the rectangular area inside path creation is an autonomous travel path planning method of planning a path for the autonomous traveling device <NUM> to autonomously travel, and includes the following steps.

In Step S31, a first grid area GA1 is created corresponding to the travel area TA. At this time, the grid layer GL described above is used. Specifically, the grid creation section <NUM> (an example of a grid creation section) of the travel area inside path creation unit <NUM> determines a first rectangle including the outer periphery teaching path, for example, and next determines a second rectangle that is larger by a margin than the first rectangle, and next allocates a first grid cell GR at a position where the grid cell center is the same as that of the second rectangle, and finally a plurality of the grid cells GR are spread all over to the position including the second rectangle. In this way, the first grid area GA1 is generated. For instance, the first grid area GA1 is illustrated in <FIG>. Here, in the first grid area GA1, the outermost grid cells GR cover the outer rounding path <NUM>.

Note that the first grid area GA1 is formed independently of the travel area TA. The first grid area GA1 is formed to protrude from the travel area TA. In addition, the first grid area GA1 may be formed by invalidating a part of grid cells on the grid layer GL and validating the other grid cells.

In Step S32, a deviation width DW is calculated, which is a deviation of the main body B of the autonomous traveling device <NUM> from the outer rounding path <NUM> when the autonomous traveling device <NUM> changes its direction, based on a body size of the autonomous traveling device <NUM>, turning radius thereof, turning movement distance, and grid size. Specifically, the deviation width calculation section <NUM> performs the above calculation. For instance, <FIG> illustrates the deviation width DW (distance to maximum deviation area boundary BL) when the autonomous traveling device <NUM> deviates from the outer rounding path <NUM> due to direction change. The deviation width DW differs depending on position, and in this embodiment it is within a range between minimum deviation amount D1 and maximum deviation amount D2 (i.e., the minimum deviation amount D1 plus grid cell length GRL).

In Step S33, it is determined whether or not there was deviation. Specifically, the deviation determining section <NUM> performs the above determination. If there was deviation, the process proceeds to Step S34. If there was no deviation, the process skips Step S34 and proceeds to Step S35.

In Step S34, an inner rounding path <NUM> is created. Specifically, the travel path planning section <NUM> (an example of an inner rounding path creation unit) creates the inner rounding path <NUM>. The inner rounding path <NUM> is a path positioned inside the outer rounding path <NUM> by grid cell width (a reduced path of the outer rounding path <NUM>), and they are parallel to each other. The inner rounding path <NUM> is created by free path planning based on the outer rounding path <NUM>. For instance, <FIG> illustrates two inner rounding paths <NUM> extending in parallel. However, the distance between the two inner rounding paths <NUM> may not be the grid cell width, but it may be partly different and partly the same. Note that the inner rounding path <NUM> may be created by free path planning based on the outer periphery teaching path. In addition, the inner rounding path <NUM> may be processed by reducing and smoothing the outer rounding path <NUM>.

Note that in this step, there is calculated the maximum number of the inner rounding paths <NUM> necessary for preventing occurrence of an unfilled place. In other words, although a size of the deviation width DW may differ depending place, by creating the inner rounding paths <NUM> of the maximum number necessary for cover the deviation width DW, it is possible to plan the travel path that does not cause an unfilled place.

In Step S35, a second grid area GA2 (an example of a grid area) is created. The second grid area GA2 is a target area for which the filling travel path is planned. The second grid area GA2 is created using the innermost inner rounding path <NUM> and the first grid area GA1. Specifically, the grid cells GR in the first grid area GA1 that include the innermost inner rounding path <NUM> or that are inside thereof are determined to be the grid cells GR in the second grid area GA2. In other words, the second grid area GA2 is generated by invalidating a part of the first grid areas GA1 and validating the other part.

Note that as a variation, the grid cells GR in the first grid area GA1 that have the center C inside the innermost inner rounding path <NUM> or that are inside thereof may be determined to be the grid cells GR in the second grid area GA2.

In Step S36, a filling travel path <NUM> is created so as to fill the second grid area GA2. Specifically, the travel path planning section <NUM> (an example of a filling travel path creation unit) creates the filling travel path <NUM>. First, a travelling order of the grid cells GR on the grid layer GL is determined, and next a grid path passing through the centers C of the grid cells GR is created.

For instance, <FIG> illustrates a part of the filling travel path <NUM>. In this case, when the autonomous traveling device <NUM> changes its direction in the second grid area GA2, the autonomous traveling device <NUM> deviates from the second grid area GA2 as illustrated in the diagram, but the deviation part is positioned inside the outermost inner rounding path <NUM>.

Note that in Step S36, the filling travel path <NUM> may be formed to fill not only the second grid area GA2 but also the deviation width DW. In this case, in a condition where the grid cells are located to straddle a boundary of the outer periphery teaching path, grid cell location on the boundary, i.e., an actual boundary shape of the second grid area GA2 becomes linear, and hence linear filling travel paths having high efficiency are tend to be planned.

In Step S37, the outer rounding path <NUM> after the outer periphery teaching travel, the inner rounding path <NUM>, and the filling travel paths <NUM> are continuously connected. Specifically, the travel path planning section <NUM> performs the above determination. As a result, the autonomous travel path is completed.

In the above description, the start position of the filling travel path <NUM> is set on the outer rounding path <NUM>. In this way, the end position of the filling travel path <NUM> becomes clear, and retrieval of the autonomous traveling device <NUM> becomes easy. In addition, as the end position of the filling travel path becomes explicit to the user, a start position of teaching to be realized next is determined, for example, and hence the autonomous traveling device <NUM> can smoothly and continuously travel.

More specifically, in this case, the end position of the filling travel path <NUM> is set close (approximately a few tens centimeters) to the start position inside the outer rounding path <NUM>. As the end position is set at a position shifted inward from the start position, deviation from a teaching range can be prevented when planning the filling travel path <NUM> for returning to the end position (i.e., the start position) on the outer rounding path <NUM>. In contrast, if the start position equal to the end position, when planning a moving and returning path to the end position (i.e., the start position) on the outer rounding path <NUM>, the deviation described above is assumed to occur depending on shape of the travel unit <NUM> of the autonomous traveling device <NUM>.

As described above, the inner rounding path <NUM> to travel the deviation width DW is created, and next the second grid area GA2 is created, and further the filling travel path <NUM> is created in the second grid area GA2. As a result, the autonomous travel path is planned so that the autonomous traveling device <NUM> can travel without deviation from a peripheral boundary BO of the travel area TA in a grid-based autonomous travel path.

Note that a single of the inner rounding path <NUM> or a plurality of the inner rounding paths <NUM> may be created. If a plurality of the inner rounding paths <NUM> are created, they may be independent of each other or a part of them may be overlapped. The plurality of the inner rounding paths <NUM> may be parallel to each other, or a part or the whole of them may be not parallel to each other. In addition, the number of the inner rounding paths <NUM> may be a predetermined fixed value.

With reference to <FIG> and <FIG>, an actual travel path formed on the global map (environmental map) is described. <FIG> illustrates the environmental map on which the travel path is shown in the first embodiment. <FIG> illustrates the environmental map on which the travel path is shown in a conventional example. In <FIG>, according to this embodiment, there are the peripheral boundary BO, the outer rounding path <NUM>, the two inner rounding paths <NUM>, and the filling travel path <NUM>. In <FIG>, according to the conventional example, there are the outer rounding path <NUM> and the filling travel path <NUM>. In <FIG>, the area A shown by the double-dot-dashed line is an area in which the autonomous traveling device <NUM> travels due to direction change of the filling travel path <NUM>, and is deviated outward from the outer rounding path <NUM>.

In the first embodiment, before the inner rounding path creation and the second grid area creation, the first grid area is created. However, the first grid area creation (Step S31 in <FIG>) may be omitted. In other words, even if the first grid area is not created in the first embodiment, it is sufficient that the following steps are executed so as to form the second grid area GA2 (an example of a grid area, corresponding to the second grid area GA2 in the first embodiment).

Hereinafter, there is described a control operation in which Step S31 is eliminated from the flowchart of <FIG> of the first embodiment.

In Step S32, there is calculated the deviation width DW of the main body B of the autonomous traveling device <NUM> from the outer rounding path <NUM> when the autonomous traveling device <NUM> changes its direction, based on a body size of the autonomous traveling device <NUM>, a turning radius thereof, a turning movement distance, and a grid size. Specifically, the deviation width calculation section <NUM> performs the above calculation.

In Step S33, it is determined whether or not there was deviation. Specifically, the deviation determining section <NUM> performs the above determination. If there is deviation, the process proceeds to Step S34. If there is no deviation, the process skips Step S34 and proceeds to Step S35.

In Step S34, one or more inner rounding paths <NUM> corresponding to at least a part of the deviation are created. Specifically, the travel path planning section <NUM> (an example of an inner rounding path creation unit) creates the inner rounding path <NUM>. The inner rounding path <NUM> is a path positioned inside the outer rounding path <NUM> by the grid cell width (a reduced path of the outer rounding path <NUM>), and they are parallel to each other. The inner rounding path <NUM> is created by free path planning based on the outer rounding path <NUM>.

In Step S35, the second grid area GA2 is created. The second grid area GA2 is a target area for which the filling travel path is planned. Specifically, the grid creation section <NUM> (an example of the grid creation section) of the travel area inside path creation unit <NUM> creates the second grid area GA2 by invalidating a part of the grid cells on the grid layer GL and validating the other grid cells, for example.

More specifically, the second grid area GA2 is created using the innermost inner rounding path. In other words, the second grid area GA2 is formed in such a manner that the innermost inner rounding path <NUM> is in the outermost grid cells GR. Note that as a variation, the second grid area GA2 may be formed in such a manner that the innermost inner rounding path <NUM> is inner than the centers C of the outermost grid cells GR. The description of Steps S36 and S37 is the same as in the first embodiment, and hence the explanation of these steps is omitted.

Conventionally, if environmental change occurs in the filling travel, the travel is stopped so as to prevent the autonomous traveling device from losing its own position on the way and being unable to follow the planned travel path. Note that the environmental change means position movement (including addition and elimination) of the obstacle recorded on the environmental map in the teaching and the obstacle detected by the sensor in the autonomous travel.

In this case, it is necessary to reteach the travel range and recreate the path for an unfilled place thereafter, including vicinity of the stop position. A problem of the above technique is that an unfilled place (e.g., an uncleaned area) occurs after the stop position, and reteaching is necessary in order to cause the autonomous traveling device to perform the filling travel of the area, resulting in waste of filling travel time (cleaning time) necessary until detection of the environmental change. Therefore, it is preferred to detect the environmental change as early as possible to inform the user thereof.

In order to solve the above problem, in this embodiment, a test travel to detect environmental change is performed prior to the filling travel, so as to detect environmental change before performing the filling travel and enable to inform the user. Therefore, unlike the conventional method, the autonomous travel time before detecting environmental change is not wasted. Note that this embodiment can be performed not only after creating the autonomous travel path in the first embodiment but also before creating the same. Even before creating the autonomous travel path, the test travel path can be planned after obtaining the travel area. Hereinafter, with reference to <FIG>, the environmental change detection control operation is further described in detail. <FIG> is a flowchart illustrating the test travel path creation and the test travel control operation of a third embodiment.

After the autonomous travel path is planned, the environmental change detection operation is started by a designation method (such as UI) by which the user can explicitly select the test travel, for example. Note that in a case of an outer periphery direct teaching method, the test travel may be performed automatically if an interval between any time point between start and end of teaching and start time point of the filling travel is longer than a predetermined time.

In Step S41, a test travel path <NUM> to detect environmental change is created. Specifically, the travel area inside path creation unit <NUM> creates the test travel path <NUM>. As illustrated in <FIG>, the test travel path <NUM> coincides with an outer rounding path <NUM> in a whole area <NUM>. In this case, test travel time described later is shortened. <FIG> is a schematic plan view of the test travel path.

In the test travel, the following steps are performed.

In Step S42, the autonomous traveling device <NUM> starts the test travel path. Specifically, the travel control unit <NUM> performs the above operation.

In Step S43, it is determined whether or not the autonomous traveling device <NUM> has reached a goal G. Specifically, the general control unit <NUM> checks a status based on detection information from sensors (such as information about an obstacle in front of the autonomous traveling device <NUM> obtained by the front detector 5551a, and information about an obstacle in rear of the autonomous traveling device <NUM> obtained by the rear detector 5551b). If it has not reached the goal G, the process proceeds to Step S44. If it has reached the goal G, the process proceeds to Step S48.

In Step S44, it is determined whether or not there is an environmental change during the test travel. Specifically, the general control unit <NUM> performs the above determination as an environmental change determination unit, based on detection information from sensors. If there is an environmental change, the process proceeds to Step S45. If there is no environmental change, the process returns to Step S43. In this way, until the autonomous traveling device <NUM> reaches the goal G, it is normally checked whether or not there is an environmental change.

In Step S45, the environmental change detected during the test travel is notified to the user. Specifically, a notification unit (not shown) performs the notification. The notification means when an environmental change is detected it can be a screen display, sound, light, or email. In this way, the user can promptly know the environmental change. In Step S46, the test travel is stopped. Specifically, the travel control unit <NUM> performs the above operation.

In Step S47, the autonomous traveling device <NUM> returns to a start point S. Specifically, the travel control unit <NUM> performs the above operation. In this way, the user can quickly start the reteaching.

Note that the route to return to the start point S may be a route to move oppositely along the current path to return to the start point S (or vicinity thereof), or may be a route to move along the shortest path to return to the start point S. The former route enables safe return to the start point S without any environmental change. The latter route has a shorter returning time. Note that the autonomous traveling device <NUM> may be returned to any point on the test travel path without limiting to the start point of the test travel.

After that, the process proceeds to Step S48. In Step S48, the test travel is finished. After that, the filling travel is performed.

Note that as a variation, instead of the step of returning to the start point S (Step S47), it may be possible to perform the step of stopping at the position or the step of continuing the test travel. In another variation, it may be possible not to start the filling travel if there is an environmental change. In still another variation, it may be possible to perform cleaning also while performing the test travel.

Note that, if a filling area is divided, the test travel may be performed in each area. In this case, when detecting a change for the first time, it may be possible to perform one of or all of notification of the environmental change, stopping the test travel, returning the autonomous traveling device <NUM> to the start point of the test travel, and the like. Otherwise, it may be possible not to perform any of them but to perform the test travel until the final area. In addition, it may be possible to perform cleaning for an area where no environmental change is detected. situation can be recognized more accurately. Note that in <FIG>, in the case where the area is divided into two areas, the test travel path 41D is similar to a part of the outer rounding path 45A in the first area 43A and in the second area 43B.

In a fifth variation, a test travel path 41E is a travel path along the center part in the whole area <NUM> as illustrated in <FIG>. Specifically, the test travel path 41E extends linearly in a longitudinal direction of the whole area <NUM>. In this case, the inside situation can be recognized more accurately.

In a sixth variation, as illustrated in <FIG>, in the case where the area is divided into two areas, a test travel path 41F is continuously formed between the first area 43A and the second area 43B.

In a seventh variation, as illustrated in <FIG>, in the case where the area is divided into two areas, a test travel path <NUM> is formed separately in the first area 43A and in the second area 43B.

The autonomous traveling device may be any traveling device other than the cleaning machine that autonomously performs cleaning operation. For instance, the autonomous traveling device may be an advertising robot.

In a fourth variation, a test travel path 41D is one or more rounding paths obtained by shifting the outer rounding path inward as illustrated in <FIG>. In this case, the inside situation can be recognized more accurately. Note that in <FIG>, in the case where the area is divided into two areas, the test travel path 41D is similar to a part of the outer rounding path 45A in the first area 43A and in the second area 43B.

The autonomous traveling device may include only a travel unit (and a control unit that controls the same) for autonomous travel. In this case, for example, a robot (device) having desired functions can be constituted by combining the autonomous traveling device and a robot system exerting the desired functions.

In the first embodiment, the grid layer is a layer different from the global map, but it may be possible to manage them as a unit. This embodiment can be applied to any autonomous traveling body other than that having a body of a round shape so as to perform spin turn.

Claim 1:
An autonomous travel path planning method to plan a path that an autonomous traveling body (<NUM>) autonomously travels, the method comprising:
obtaining a travel area (TA) to perform filling travel in an environmental map;
creating (S31) a first grid area (GA1) covering an area corresponding to the travel area (TA) with a plurality of grid cells;
calculating (S32) a deviation width of a body of the autonomous traveling body (<NUM>) from the travel area when the autonomous traveling body (<NUM>) changes its direction and as a distance to a maximum deviation area boundary, based on a body size of the autonomous traveling body (<NUM>), a turning radius thereof, a turning movement distance, and a grid cell size;
creating (S34) one or more inner rounding paths (<NUM>) corresponding to at least a part of the deviation width to travel the deviation width;
creating (S35) a second grid area (GA2) having a boundary at a position corresponding to an innermost inner rounding path (<NUM>) by validating, of the plurality of grid cells included in the first grid area, a grid cell in which the innermost inner rounding path is included, and invalidating other grid cells of the first grid area (GA1), so that the grid cells in the first grid area (GA1) that include the innermost inner rounding path (<NUM>) or that are inside thereof are determined to be the grid cells in the second grid area (GA2); and
creating (S36) a filling travel path (<NUM>) so as to fill the inside of the second grid area (GA2) with the travel path.