The description relates to the area of autonomous mobile robots, particularly the planning and implementing of movements of an autonomous mobile robot of the general type.
Mobile robots, especially service robots, have been used with increasing frequency in the household sector in recent years, for example for cleaning or monitoring a home. The robots often have a round shape and a drive unit which enables them to rotate about a vertical axis. This simplifies path planning (trajectory planning) and control of these robots significantly, because their rotational degree of freedom is never limited by neighboring obstacles.
Due to the special requirements placed on the function of the robot, it may be desirable to deviate from the round (disc-shaped) shape. For example, the otherwise round shape of the robot may be flattened on one side such that the robot can move with the flat side parallel to a wall. For example, a cleaning unit (e.g. a brush) may be arranged on the flat side so that it can be guided as closely as possible to the wall. It may also be necessary or desirable to deviate from a round structure of the robot for other reasons.
A structure that is not round in relation to the base area of the robot may mean that the robot cannot rotate in place in every situation even if its drive unit essentially enables this. If the robot is positioned with its flat side very close to an obstacle (e.g. a wall), as in the previous example, the robot can no longer rotate as desired about its vertical axis without colliding with the obstacle. For planning and evaluating the movement options of the robot, the orientation of the robot thus must also be considered, in addition to the position of obstacles and of the robot in the robot's operational area. One approach for bypassing this problem is to use standard movement patterns for predefined situations. However, this approach is inflexible and prone to errors. In addition, it is difficult to predict all of the possible situations an autonomous robot may get into. A further approach is the precise planning of the movement of the robot, i.e. the change in position and orientation (jointly also known as pose) in order to go from a starting point to a target point. However, this is significantly more difficult than it is for a round robot, whereby the incidence of errors during implementation and the use of resources (computing time, processor capacity, memory requirements) increases for the necessary calculations.
The object of the invention is to enable simple but robust planning for the movement of an autonomous mobile robot of any shape.
The aforementioned object is achieved by means of the methods according to claims 1, 16, 28, 45, and 50. Various exemplary embodiments and refinements are the subject matter of the dependent claims.
The invention relates to a method for controlling an autonomous mobile robot which can operate in a first and at least one second contour-following mode, wherein, in each of the contour-following modes, the robot maintains a substantially constant distance away from a contour while it moves along the contour. According to one exemplary embodiment, the method comprises the following: starting the first contour-following mode, in which the robot follows the contour in a first direction of travel; detecting a dead-end situation, in which it is not possible to continue following the contour in the first contour-following mode without collision; starting a second contour-following mode, in which the robot follows the contour in a second direction of travel; and defining a criterion, the fulfilment of which terminates the second contour-following mode, and continually evaluating the criterion while the robot operates in the second contour-following mode.
Furthermore, a method for controlling an autonomous mobile robot in a contour-following mode is described, in which the robot substantially follows a contour at a contour-following distance. According to one exemplary embodiment, the method in contour-following mode consists of the following: evaluating at least three different basic movements by means of at least one definable criterion as well as executing one of the three basic movements based on the evaluation thereof. The first of the three basic movements is a purely translational movement of the robot; the second of the three basic movements includes a rotation of the robot toward the contour; and the third of the three basic movements involves a rotation of the robot away from the contour.
Moreover, a method for controlling an autonomous mobile robot is described, which has a first map of a robot's operational area, wherein said map at least contains data regarding the position of obstacles. According to one exemplary embodiment, the method comprises the planning of a path to a target point in the first map under the assumption of a simplified virtual shape of the robot. In some exemplary embodiments, the method may further comprise the following: movement of the robot along the planned path; recording of obstacles in the environment of the robot by means of a sensor unit of the robot, during which the robot moves along the planned path; and finally determining that the planned path cannot be traveled without collision due to an obstacle, while noting the actual robot shape; and continuing the movement of the robot while observing the actual robot shape.
Furthermore, a method for controlling an autonomous mobile robot with the aid of a map of the robot's operational area is described, wherein the map at least contains information regarding the position of real obstacles detected by means of a sensor unit as well as information on virtual obstacles. According to one exemplary embodiment, the method comprises controlling the robot in the vicinity of a real obstacle such that collision with the real obstacle is avoided, wherein the actual shape of the robot is considered; and controlling the robot in the vicinity of a virtual obstacle such that a collision with the virtual obstacle is prevented, wherein a simplified, virtual shape of the robot is considered.
Furthermore, a method for controlling an autonomous mobile robot in a contour-following mode is described, in which the robot substantially follows a contour at a contour-following distance. A robot map contains at least information on the position of real obstacles detected by means of a sensor unit as well as information on virtual obstacles. The robot is continually determining its position in said map, wherein the robot moves along a contour in the contour-following mode; and the contour is defined by the course of a real obstacle and the course of a virtual boundary of a virtual obstacle.
Various exemplary embodiments are explained in greater detail in the following by means of figures. The representations are not necessarily true-to-scale and the invention is not limited to only the aspects shown. Instead, more focus is placed on showing the underlying principles. The figures show the following:
Due to the special requirements placed on the function of a robot 100, it may be desirable or necessary to deviate from a substantially round, disc-shaped housing of the robot.
Before movement planning for autonomous mobile robots is addressed in more detail, the structure of an autonomous mobile robot should first be described.
The autonomous mobile robot 100 comprises a drive unit 170, which may have, for example, electric motors, gears, and wheels, whereby the robot 100 can approach, at least theoretically, any point of an operational area. The drive unit 170 is configured to execute commands or signals received by the control unit 150 in the form of a movement of the robot 100.
The autonomous mobile robot 100 furthermore comprises a communication unit 140 for establishing a communication connection 145 with a human-machine interface (HMI) 200 and/or other external devices 300. For example, the communication connection 145 is a direct wireless connection (e.g. Bluetooth), a local wireless network connection (e.g. WLAN or ZigBee), or an Internet connection (e.g. to a cloud service). The human-machine interface 200 can provide a user with information regarding the autonomous mobile robot 100, for example in visual or even acoustic form (e.g. battery status, current work order, map information such as a cleaning map, etc.) and receive user commands for a work order for the autonomous mobile robot 100. Examples of an HMI 200 include a tablet PC, smartphone, smartwatch, and other wearables, computer, smart TV, or head-mounted displays, etc. An HMI 200 can additionally or alternatively be integrated directly into the robot, whereby the robot 100 can be operated, for example, via keyboards, gestures, and/or speech input and output.
Examples of external devices 300 are computers and servers, to which calculations and/or data are supplied, external sensors, which provide additional information, or other household devices (e.g. other autonomous mobile robots), with which the autonomous mobile robot 100 can work or exchange information.
The autonomous mobile robot 100 may have a work unit 160 such as, for example, a processing unit for processing a surface area and particularly for cleaning a surface area (e.g. brush, suction device) or a gripping arm for grasping and transporting objects.
In some cases, such as, for example, with a telepresence robot or a surveillance robot, a different unit is used for fulfilling the intended tasks, and a work unit 160 is not necessary. Thus, a telepresence robot may have a communication unit 140 coupled to the HMI which may be equipped, for example, with a multimedia unit, which may comprise, for example, a microphone, camera, and monitor, in order to enable communication between several people some spatial distance apart. A surveillance robot determines unusual events (e.g. fire, light, unauthorized persons, etc.) on monitoring runs with the aid of its sensors and reports back, for example, to a control center. In this case, a monitoring unit is provided with sensors for monitoring the robot's operational area instead of the work unit 160.
The autonomous mobile robot 100 comprises a sensor unit 120 with different sensors, for example one or more sensors for recording information about the environment of the robot in its operational area such as, for example, the position and extent of obstacles or other landmarks in the operational area. Sensors for recording information about the environment, for example, are sensors for measuring distances from objects (e.g. walls or other obstacles, etc.) in the environment of the robot such as, for example, an optic or acoustic sensor which can measure distances by means of triangulation or travel-time measurement of an emitted signal (triangulation sensor, 3D camera, laser scanner, ultrasound sensors, etc.). Alternatively or additionally, a camera can be used to collect information about the environment. The position and extent of an object can likewise be determined, particularly when an object is observed from two or more positions.
In addition, the robot may have sensors in order to detect (usually unintentional) contact (or collision) with an obstacle. This can be implemented using accelerometers (which detect, e.g., the change in speed of the robot in the event of a collision), contact switches, capacitive sensors, or other tactile and/or touch-sensitive sensors. In addition, the robot may have floor sensors in order to detect an edge in the floor, for example a stairstep. Further typical sensors in the autonomous mobile robot sector are sensors for determining the speed and/or the distance traveled by the robot such as, e.g., odometers and/or inertial sensors (acceleration sensor, rotational speed sensor) for determining changes in position and movement of the robot as well as wheel contact switches in order to detect contact between the wheel and the floor.
The autonomous mobile robot 100 may be assigned to a base station 110, at which it can charge its energy storage units (batteries) for example. The robot 100 can return to this base station 110 after completing a task. Once the robot has no further tasks to process, it can wait for a new task at the base station 110.
The control unit 150 may be designed to provide all the functions the robot needs in order to autonomously move into its operational area and to perform a task. To this end, the control unit 150 comprises, for example, the processor 155 and the memory module 156 in order to run software. Based on the information obtained by the sensor unit 120 and the communication unit 140, the control unit 150 can generate control commands (e.g. control signals) for the work unit 160 and the drive unit 170. As previously explained, the drive unit 170 can convert these control signals and/or control commands into a movement of the robot. The software contained in the memory 156 may also be modular. A navigation module 152 provides, for example, functions for automatic creation of a map of the robot's operational area as well as for movement planning of the robot 100. The control software module 151 provides, for example, general (global) control functions and may form an interface between the individual modules.
To ensure that the robot can autonomously perform a task, the control unit 150 comprises functions for navigation of the robot in its operational area, said functions being provided by the previously mentioned navigation module 152. These are known functions and may comprise, inter alia, one of the following:
With the aid of the navigation module 152 and based on the information from the sensor unit 120, the control unit 150 can continually update a map of the robot's operational area, for example, during operation of the robot, e.g. if the environment of the robot changes (obstacle is moved, door is opened, etc.). A current map can then also be used by the control unit 150 for short-term and/or long-term movement planning for the robot. The planning horizon can be any path that the control unit 150 calculates ahead of time to perform a (target) movement of the robot before it is actually executed. The exemplary embodiments described herein relate, inter alia, to various approaches and strategies for movement planning in certain situations, e.g. in situations in which certain maneuvers are blocked by obstacles and thus cannot be executed.
In general, a (electronic) map usable by the robot 100 is a collection of map data (e.g. a database) for storing location-based information about an operational area of the robot and the environment relevant to the robot in this operational area. In this context, “location-based” means that the stored information is assigned to a position or a pose in a map. Thus, a map represents a plurality of data sets with map data, and the map data may contain any sort of location-based information. In this case, the location-based information may be stored at different levels of detail and abstraction, wherein it can be adapted to a specific function. In particular, individual pieces of information can be stored redundantly. Frequently, a compilation of several maps related to the same area can be stored but in different format (data structure); this is also characterized as “a map.”
Non-round robots—introduction:
Furthermore, the robots 100 each have a drive unit 170 with two wheels 170R, 170L driven independently of one another. In general, mobile robots may have a preferred direction of travel (defined as a forward direction without limiting the generality), which is indicated by an arrow. This preferred direction of travel and/or forward direction may be defined by the arrangement of the work unit in or on the housing but also by the arrangement of sensors (e.g. the sensor unit 120). For example, a cleaning unit can be attached upstream of the drive unit 170 to handle dirt (e.g. suction device) so that less dirt gets into the wheels. Furthermore, a cleaning unit, for example, for applying a cleaning liquid or for polishing a surface area, can be attached downstream of the drive unit 170 so that the wheels do not leave any dirt behind on the cleaned surface area. For example, sensors are arranged such that they primarily detect the environment in the preferred direction of travel of the robot (i.e. in front of the robot 100). However, the robot 100 can also move opposite (i.e. backward) the preferred direction of travel (under some circumstances with certain limitations). With respect to the aforementioned preferred direction—even with robots essentially having a round shape (when viewed from above)—the orientation of the robot in a particular position plays a role and rotational movements, such as toward a contour (e.g. a wall) and away from a contour, can be clearly differentiated, even if the position of the robot does not change (upon a rotation about the axis of symmetry).
When the two driven wheels 170R, 170L rotate in the opposite direction, the robot rotates in place about the central point marked by an “×” (kinematic center, center of rotation) about its vertical axis and thus executes a purely rotational movement (i.e. without translational movement components).
Diagram (a) from
Diagram (b) from
Diagram (c) from
Diagram (d) from
Diagram (e) from
A situation in which the robot, as shown in diagrams (b) to (e) of
Contour following run: A simple approach to local planning of a path (a trajectory) for an autonomous mobile robot 100 is that the robot simply follows a contour of one or more obstacles (contour-following run) at a substantially constant contour-following distance d. An operating mode in which the robot is moved, oriented based on a contour of an obstacle, along a contour at a substantially constant distance is characterized in the following as contour-following mode or obstacle-following mode. The movement executed by the robot in contour-following mode is characterized as a contour-following run, and the distance away from the contour is characterized as the contour-following distance. The use of a contour-following mode is known and it is used, for example, to avoid obstacles (see, e.g., J. Fasola et al., “Fast Goal Navigation with Obstacle Avoidance using a Dynamic Local Visual Model,” in: Proc. VII. Simpósio Brasileiro de Automação Inteligente, São Luis, Sept. 2005). Methods for implementing contour-following runs can be based, inter alia, on the concepts of behavior-based robotics or reactive robotics, wherein current sensor measurements (particularly regarding the position of an obstacle relative to the robot and/or the distance of the robot away from an obstacle) can be implemented directly into control commands for the drive unit.
The contour may be defined by the shape of a wall, by a large obstacle, but also by several small obstacles close together. An edge over which a robot can crash (drop-off edge), such as a stairstep, for example, is also considered in this context to be an obstacle with a contour which the robot can follow. In addition, the contour-forming obstacles may be markings (for example in the form of magnetic strips, current loops, or beam transmitters) which the robot can detect with a corresponding sensor. A boundary (e.g. the course of the magnetic strip and/or the current loop, course of the emitted light beam) which the robot cannot cross over autonomously can be derived from this sensor data. This boundary can also be used as the contour which the robot can follow. Furthermore, virtual obstacles can be shown in the map data; these obstacles indicate areas which the robot is not allowed to enter autonomously (also characterized as blocked-off areas, keep-out areas, or no-go areas). Additionally or alternatively, a virtual obstacle and particularly its virtual contour can be temporarily used to confine the robot to an area intended for processing or to guide it until the processing is complete. The virtual contours of such a virtual obstacle can likewise be used as a contour the robot can follow in a contour-following mode.
The contour-following distance d is dependent on the size and the task of the robot; however, it can remain substantially constant in a specific contour-following mode. Unintentional collisions, for example due to driving errors, are easier to avoid (with greater probability) with a greater distance. A contour-following mode can be used for processing close to walls and other obstacles with robots intended to process (especially clean) a surface area. Consequently, such robots can move very close to obstacles in order to achieve high surface-area coverage and particularly a thorough cleaning in corners and at edges. Exemplary values for small cleaning robots in the household sector are between 2.5 mm and 20 mm in this case. There are also cleaning robots which establish and maintain direct contact (i.e. through touch) between a part of the robot and the contour to be followed during a contour-following run. For large robots, the contour-following distance d may be significantly greater than with comparable small robots.
In order to control the robot during a contour-following run, the robot may have sensors for detecting the direct environment of the robot (see
Alternatively or additionally, the control of the robot during a contour-following run can be based on map data, wherein sensor measurements are stored and further processed for determining the position and orientation (pose) of the robot and of obstacles. Map-based planning enables predictive trajectory planning and robot control and also considers information regarding obstacles which specifically cannot be detected by one of the sensors (“blind spot” of a sensor). In particular, information can be considered which cannot be detected with sensors such as, for example, virtual obstacles indicated in the map (e.g. blocked-off areas) that the robot is not allowed to travel into, traverse, and/or process autonomously. With the exemplary embodiments described herein, the criteria, for example, which are used to switch from one contour-following mode into another contour-following mode (or to terminate a contour-following mode) can be evaluated based on the map. For example, a criterion for terminating a contour-following mode may be that the robot can rotate in the direction of a target point without collision. This criterion, which is known as “Robot can rotate to the target point without collision,” can be evaluated, for example, by means of the current map data of the robot.
For navigation and map creation, sensors with a comparatively large range are typically used to detect obstacles, said sensors being capable of detecting obstacles farther away very well but frequently being unsuitable at close range. For example, a triangulation sensor can be used which can determine the distance away from said obstacle H by emitting structured light (e.g. a laser beam or split laser beam) and detecting the light scattered back by an obstacle H. Normally, the measurement of the distance away from the obstacle becomes more precise as the distance decreases. However, a minimum distance is also possible, in which the backscattered light can no longer be received by a sensor because it is outside of its field-of-view. For example, sensors can be used which measure the travel-time measurement of an emitted signal (light, sound); these sensors normally also have a minimum distance for detecting an obstacle. With cameras, there may also be problems at close range due to a limited field-of-view as well as limited focusing.
Despite the limited sensor system, the robot can navigate close to obstacles without an additional sensor being required for the contour-following run by using map data. In addition, a control opposite the preferred direction of travel (i.e. in the backward direction) is easily made possible without complex additional sensors being used in the rearward part of the robot.
Handling dead-end situations—backward travel: As shown by example in
A simple option for navigating out of a dead-end situation is for the robot to move backward, precisely on the path on which the robot moved (forward) into the dead end. This means that the most recently created control commands for the drive unit would be executed again in the reverse order and in inverted form until a terminate condition is fulfilled (e.g. the robot can rotate in place).
To implement the previously mentioned reverse run in order to navigate out of a dead-and situation, additional information regarding the control commands and/or the path traveled (e.g. waypoints) of the robot must be stored, whereby the memory needs increase. Furthermore, an inverted control signal does not necessarily lead to an inverted movement. For example, ongoing errors of movement (for example caused by slip and drift of the drive unit and particularly the wheels) which do not have to be directly proportional to the theoretical undisturbed movement mean that an inverse actuation of the drive for the reverse run does not lead to the same trajectory as was previously traveled in the forward direction. Furthermore, there may be situations in which a mobile obstacle that has caused the dead-and situation changes its position. In this and other situations, a fixed, predefined driving maneuver (backward travel for a particular distance) does not always lead to “appropriate” behavior of the robot.
In order to overcome this problem, new control commands are created based on the map information in order to control the robot in the backward direction. In this case, particularly the contour the robot followed to get into the dead-and situation can be followed. This continues until it is determined that the dead end can be exited and/or has been exited.
Diagrams (a) to (d) in
The path is considered to be blocked when the obstacle H is (only) a particular clearance ds away from the obstacle H, and a rotation of the robot 100 is no longer possible. It is understood that the rotational degree of freedom of the robot is not limited by an obstacle located in front of the robot when the safety distance ds is selected to be sufficiently large; however, particularly with robots for processing floors, the safety distance ds is selected to be as small as possible (significantly smaller than the outer dimensions of the robot itself) in order to achieve the best possible surface-area coverage when processing the surface area. Thus, the safety distance ds may be selected, for example, such that the robot can rotate safely without collision or that it cannot rotate without collision. In many applications, the latter is the case. The safety distance ds may be, for example, less than or equal to the contour-following distance d (ds≤d). For example, the safety distance ds can be dispensed with entirely (i.e. ds=0 mm) such that the robot would follow the contour W until it makes contact with an obstacle H in front of the robot. The contact can be detected, for example, by means of a tactile sensor (sensor that responds to touch).
In order to move out of this position, the robot controller 150 switches into a second contour-following mode, in which the robot 100 follows the contour of the wall W in the opposite direction (see diagram (b) from
According to the examples described herein, the criterion for terminating the second contour-following mode may be that the robot can again move more or less freely and particularly can continue the first contour-following run along the contour of a new obstacle. This means, inter alia, that the robot's rotational degree of freedom is no longer blocked. However, it is a priori unclear in this case how far the robot must rotate in order to continue the contour-following run. An example of this is shown in diagrams (c) and (d) of
Diagram (c) of
Diagram (d) from
The examples shown in diagrams (c) and (d) from
One possible criterion for the evaluation (by the robot) as to whether the second contour-following mode can be terminated and the previous contour-following run (in the first contour-following mode) can appropriately be continued is, for example, that the root can move forward in a straight line after a successful rotation (i.e. into the direction of travel of the first contour-following mode). This is indicated in
In some exemplary embodiments, the criterion for terminating the second contour-following mode is merely the possibility of a straight, forward movement. For example, the criterion may be that the robot must be able to travel forward the distance that is traveled backward in the second contour-following mode, plus a further definable distance (e.g. distance d) in a definable direction. To be able to align itself in this definable direction, the robot normally has to rotate. The possibility of rotation does not have to be an explicit component of the criterion for terminating the second contour-following mode. In some situations, the robot can reach a corresponding direction without an additional rotation when the robot moves along a curved contour (backward), for example, during the second contour-following mode. A further example in which a rotation may not be necessary is a dynamic change in the environment. For example, a user may remove the obstacle H that triggered the second contour-following mode. Consequently, the forward movement of the robot is no longer limited, and the second contour-following mode can be terminated with a straight movement without rotation.
Additionally or alternatively, when evaluating the criterion leading to termination of the second contour-following mode, the position of the obstacle H which led to a cancellation in the first contour-following mode or the position of a different obstacle H′ can be checked after a possible rotation. Thus, there should be no obstacle a definable distance away in front of the robot. At the same time, any obstacle which previously led to the dead-end situation should be positioned relative to the robot after the rotation such that it can follow the contour of said obstacle H at the defined contour-following distance d in the first contour-following mode. In particular, this means that, after a movement forward by length l, a part of the contour of the obstacle is at the contour-following distance d away from the robot (cf. diagram (c) from
As previously explained using diagram (d) from
The setting of the criterion for terminating the second contour-following mode can thus be dependent on the position (e.g. is stored in a map of the robot) of the obstacles in the environment of the robot. In particular, a first criterion can be defined and used when at least one point of an obstacle is within a definable sector S particularly close to the robot, and otherwise a second criterion. According to both criteria, a rotation of the robot, for example, into a position away from the contour should be possible, wherein, at least with the first criterion, the angle of rotation may be greater than a definable minimum angle. If both criteria contain a minimum angle, the minimum angle according to the first criterion is greater than the minimum angle according to the second criterion.
The decision as to whether such a minimum angle is necessary can be determined, for example, based on the position, shape, and size of the first obstacle H. Alternatively, the specifying of a minimum angle can be dispensed with (as in the example shown in diagram (d) of
In addition to the evaluation of a potential movement based on the information regarding the robot environment (particularly the map data), the criterion for terminating the second contour-following mode may additionally comprise the collision-free implementation of said planned movement. This means that the second contour-following mode would not terminate until successful implementation of the movement. If an unexpected collision occurs during the movement, the second contour-following mode would directly continue control of the robot 100 along the contour of the wall W (in the backward direction). The information on the collision would be included in the information regarding the robot environment and particularly in the map data and would thus be available for controlling the robot subsequently. It should be noted that the part of the movement implemented up to the point of collision normally can be undone in the second contour-following mode even though this is not explicitly implemented. Instead, it is a property of the counter-following mode which guides the robot 100 into an extensively parallel alignment with the contour to be followed.
In the examples shown in
While the robot follows the contour of the wall W (or another obstacle) in the second contour-following mode, it is possible that the second contour-following mode likewise does not enable any further movement. For example, this is possible when an obstacle is positioned on three sides of the robot, i.e. particularly the wall W, the contour of which is being followed, an obstacle preventing further backward movement, as well as obstacle H′, such that the criterion necessary for terminating the second contour-following mode is not fulfilled. In this case, the direction can be changed again such that the robot moves back to the original direction in a third contour-following mode. In order to extensively prevent repetition of the same previous driving pattern which led to the dead end, the side on which the robot is following the contour, for example, can be changed. The robot hereby frees itself from the contour W in order to follow, for example, the contour of obstacle H′ (which is blocking fulfillment of the criterion necessary for terminating the second contour-following mode), and reach a position which enables, for example, a continuation of the first contour-following mode. A new criterion can be set for terminating the third contour-following mode. Alternatively, the previously set criterion for terminating the second contour-following mode may be retained and/or adopted.
The process in this case substantially corresponds to the process described in
By changing the contour-following distance d and/or the safety distance ds (decreasing or increasing), the robot can have more clearance for movement. In a similar manner, the accuracy of navigation can be increased by adapting the speed of the robot, whereby the robot, for example, can navigate more easily through narrow points or can better respond to driving errors, for example, caused by the floor covering (e.g. friction and drift).
The robot shape to be noted must be reflected correspondingly when the direction of travel changes. For example, the rotational degree of freedom with a D-shaped robot may be limited during the contour-following run (depending, inter alia, on the contour-following distance d). If the flat side is pointing in the direction of travel in this case, a rotation toward the contour is no longer possible or only to a limited extent. On the other hand, if the flat side is pointing opposite the direction of travel, a rotation (in place) away from the contour is limited. This directly means that the rules for creating the movement along the contour are also changed accordingly.
In some exemplary embodiments, it is possible that the robot 100 cannot find a way out of the dead end with a strategy avoiding collision. This can be detected, for example, when the robot unsuccessfully changes the contour-following mode multiple times (particularly in the direction of and/or on the side of the robot facing a contour), without it being possible to fulfill the criterion for terminating the respective contour-following mode. The cause of this may be, for example, faulty sensor and/or map data, whereby the robot sees a point in the real environment as being blocked by an obstacle, but it is actually free for movement. In such a case, the collision-avoiding strategy can be abandoned and replaced by a strategy moving toward contact.
The points at which the robot makes contact with an obstacle in this case can likewise be stored in the map data and used for further control the robot. In one exemplary implementation of the method for controlling the robot in a contour-following mode, the first contour-following mode and the second contour-following mode (as well as further contour-following modes) may each be independent software modules. Alternatively or additionally, several contour-following modes may be implemented in one software module, which can be started with differently set parameters.
It should be noted that the robot may also find itself in a dead-end situation without having previously implemented a contour-following run. In this case, it is also useful to follow a contour backward until the robot determines that it can move out or has moved out of the dead end. For example, for planning the function of the robot, a prioritized control instance can start a first contour-following mode which should guide the robot in the preferred direction (forward direction) along the contour. Before the robot executes a movement, it is possible it determines that no movement can be executed in this first contour-following mode, which is why a second contour-following mode is started in the opposite direction and a criterion for terminating same is defined and used. Alternatively or additionally, the prioritized control instance for planning the function of the robot can directly start the second contour-following mode and terminate it again according to definable criteria.
As a response to this second dead-end situation, the second contour-following mode is also terminated and the controller 150 of the robot 100 switches into a third contour-following mode, in which both the direction of travel and the side of the robot on which the contour is located (which should be followed at distance d) is inverted as compared to the second contour-following mode (forward movement instead of backward movement, contour to the left instead of to the right). The response of the robot is shown in diagrams (f) to (g) in
Diagram (k) from
Basic movements: In the following, a possible form of the control of an autonomous mobile robot 100 is shown in a contour-following run. In order to reduce the complexity of the numerous possibilities for moving the robot 100, at least three basic movements are introduced which are suitable for moving the robot into a desired direction along a contour at a definable contour-following distance. These basic movements are evaluated based on the information regarding the robot environment and particularly based on the map data. The basic movement with the best evaluation is selected. Control commands for the drive unit 170 are created based on the selected basic movement. This method uses the advantages of planned movements and simultaneously enables a quick response to changes in the environment (e.g. movement of people or animals) or driving errors, for example due to the floor covering (friction, drift), in that there is only a short planning horizon and fast repetitions of planning.
In evaluating the basic movements, it can be determined that none of the basic movements can be or should be executed. For example, it can be determined based on the map data that none of the basic movements can be executed without collision. Based on further selection rules, it can be determined that none of the basic movements can be suitably executed. An example of this is a dead-end situation described more precisely in the following in which the first contour-following mode does not enable any further movement in the preferred direction along the contour.
In order to guide the robot out of a dead-end situation, a new contour-following mode is started, wherein principally the same or similar basic movements can be used, but the direction of the movement is inverted. The rules for evaluating the basic movements can be redefined or retained extensively unchanged. If the rules for evaluating the basic movement remain unchanged, it must only be noted that the contour of the housing of the robot moving backward is used (with the D-shaped robot for example, the semicircular side is thus in the direction of travel).
The direction of rotation of the third basic movement is thus opposite the direction of rotation of the second basic movement. Which side of the robot 100 should be facing the contour to be followed can be defined by a prioritized planning instance, by means of which the contour-following run is triggered. Alternatively or additionally, the side of the robot having a contour which can or should be followed can be determined at the start of the contour-following mode (for example based on map information). If the robot should follow a wall, the side that the robot should turn toward (contour) should normally be obvious. If the robot is supposed to avoid an obstacle, the robot can theoretically move clockwise or counterclockwise around the obstacle, wherein a preferred direction (e.g. clockwise) can be predefined, which is only deviated from by exception.
Through suitable actuation of the drive wheels, the robot can also be rotated about other points, wherein the central point “×” always moves in a circle. By selecting a suitable rotational movement, particularly the desired properties of the movement of the work unit 160 (not shown) can be achieved. For example, it may be desirable in a normal case that the work unit 160 of the robot 100 always moves forward, which can be achieved, for example, by means of a movement shown in diagram (c) of
The angle of rotation to be traveled during the second and/or third basic movement may be a fixed angle, for example, of from 0.5° to 5°. For more flexibility, particularly for aligning the robot parallel to the contour to be followed, a suitable angle of rotation can be determined during the evaluation of movements. In this case, a minimum and/or maximum angle of rotation, for example, for the movement can be considered. The rotational movement used during the second and the third basic movement may be substantially the same, wherein only the direction of rotation differs. For example, the rotation in place shown in
Alternatively, the second and third basic movements may be selected to be different (i.e., not only is the direction of rotation different but also another feature of the movement). The characteristics of the movement can hereby be more easily adapted to the different requirements. Thus, the second basic movement may include a small movement backward according to
Further basic movements may also be considered. For example, basic movements against the current direction of travel (backward) can also be considered. In order to achieve a smooth movement, the control commands, which are to be created for the planned basic movements, for implementing the basic movements may be additionally smoothed.
Evaluating the movements: Various methods are known for evaluating movements for controlling an autonomous mobile robot 100. For example, “virtual forces,” “virtual potentials,” or “virtual costs” can be determined based on obstacles detected in the environment of the robot. They can be used to evaluate the basic movement, wherein the movement following a definable optimum is selected (e.g. movement along the virtual force, minimizing of virtual potentials or virtual costs). The selection of the method for evaluating the movement is not essential for executing the exemplary embodiments described herein.
During the evaluation of the basic movements, it is possible for two or more basic movements to be evaluated equally. In this case, the basic movement which is guided along the contour is preferred. For the movements shown herein, this means that a rotation toward the contour (second basic movement) is preferably executed in the event of an equal evaluation. With an evaluation of the straight movement (first basic movement) and the rotation away from the contour (third basic movement), the straight movement along the contour is selected (first basic movement).
One or more previous basic movements can be considered in the evaluation of the basic movements. Thus, for example, it may be “forbidden” to undo the last movement. Particularly when the second and the third basic movement (rotation toward the contour and away from the contour) is a rotation in place (cf. diagram (b) in
An essential aspect when evaluating the movement is the avoidance of collisions. For example, a movement that would lead to a collision with at least one point of an obstacle is generally excluded or assigned very high costs. In addition, it may be suitable to consider the position of the contour of the obstacle to be followed during the evaluation of the movement.
As shown in diagram (d) of
The orientation O of the contour W can be determined, for example, as a connection vector of two points of the contour, as a regression line of a selection at several points, as a tangent to the contour, or the like. Mapping of the environment can take place, for example, by means of an algorithm for feature extraction, in which parts of the contour of an obstacle (particularly of a wall) are detected and stored as a line (or surface). The orientation O of the contour normally has a natural direction which results, for example, from the direction from which the obstacle was observed and/or from the direction which the robot should follow along the contour. If the contour is represented as an unaligned object (e.g. line), the alignment of the robot parallel to the contour is still clearly defined by the selection of the side of the robot which the robot should be facing during the contour-following run of the contour W (and thus also by defining the direction of rotation of the second basic movement).
The environment of the robot can be divided into individual sectors for evaluating a basic movement. One potential division comprises, for example, one sector in which there is no obstacle for collision-free execution of the basic movement, one sector for analyzing the contour to be followed, and/or one sector for analyzing further movement options. The subdivision of the environment of the robot into sectors is shown by example in diagrams (a) to (c) of
Diagram (a) of
Sector I (shown shaded in diagram (a)) describes the surface that the robot needs for straight (forward) movement by the minimum length lmin. If at least one part or one point of an obstacle is in this sector, the movement cannot be executed without collision and would thus be excluded.
Sector II is an area next to the robot on the side of the contour to be followed. Starting from the robot side, this sector, for example, is as wide as the contour-following distance d. If at least a part or a point of an obstacle is within this sector II, this is not necessarily an exclusion criterion for executing the movement. However, there can be a check, for example, during the evaluation to determine whether the robot should increase the distance away from the contour W to be followed, for example, by means of the third basic movement. For example, if the contour W protrudes significantly into sector II, the evaluation may mean, for example, that the robot moves away from the contour. However, if only a small corner or an individual point is positioned close to the edge in sector II, this should not lead to an invasive movement in order to prevent a faltering movement. To this end, for example in the case of a cost-based evaluation of the third basic movement, definable basic costs can be considered which correspond to the costs of a small corner protruding into sector II. For example, the costs may be determined based on the length and/or the surface-area portion of the part of the contour protruding into sector II. If parts of the contour to be followed are located on the edge of sector II, this may result in a bonus (e.g. negative costs). If there is no contour in sector II and particularly in the edge area of the contour to be followed, this can likewise be assigned costs.
Sector III is an area in which a further potential movement of the robot is checked. For example, there is a check to determine whether and the extent to which the robot can move further forward in a straight line without this resulting in a collision. This is limited, for example, by a maximum planning horizon 1max. Within said sector III, the robot can determine, for example, a distance 1min<1<1max that it can travel without collision. In this case, a safety distance ds away from an obstacle line in front of the robot, for example, can be considered.
Sector IV is an area next to the robot 100 on the side of the robot facing away from the contour. Normally, there is no obstacle here. If at least a part of an obstacle is located here, this information can be used to move the robot 100 through the corridor between this obstacle toward the contour W.
Diagram (b) from
Sector I shown shaded in diagram (b) of
In addition, the option of a movement such as a straight movement after completion of the rotational movement can be included in the evaluation with sector III. In this case, obstacles can also be evaluated in sectors II and IV next to the robot. For example, it may be provided to only evaluate a rotation toward the contour W (second basic movement) as being suitable when a subsequent straight movement by a definable distance (e.g. 1min) can be executed. The angle of rotation and the distance 1min of the translational movement following the rotation may be matched to one another. For example, if the robot is further away from the contour than the contour-following distance, the robot should be able to rotate toward the contour; when the distance between the robot and the contour is less than or equal to the contour-following distance, a selection of a basic movement toward the contour should be prevented (because movement in a straight line is no longer possible after a rotation) This behavior can be achieved by matching 1min and angle of rotation to one another.
It should be noted that when a straight movement is no longer possible after a rotation, the planned basic movement (i.e. the rotation) might have to be undone, which is normally undesirable and should be avoided. This can be prevented with the mentioned condition that a straight movement at a definable distance should be possible after the rotation. This does not mean that the straight movement has to be actually executed directly following. Alternatively or additionally, the robot can also check a further additional rotation, similar to the straight movement by distance 1min in the example shown in
In some applications of autonomous mobile robots, it is desirable that the robot has to move backward as little as possible. The frequency of backward runs can be reduced when the robot checks, for each (basic) movement, particularly each straight movement (first basic movement), whether a complete or partial rotation without collision is possible after execution of the straight-line movement through sector I. Sector III shows an example of the sector in which there is no obstacle which means that the robot can rotate about the central point. Sector III′ shows an example of the sector in which there is no obstacle which means that the robot can execute a circular movement about a point above the central point (cf. the case from diagram (c) of
In addition, for example with cleaning robots, the processed surface (i.e. the surface traveled by the processing unit 160) can be stored as map information and used to evaluate the movements of the robot. Simultaneously, a gain in processing can be determined for a basic movement to be evaluated and used for the evaluation thereof. For example, in this manner, it can be detected when the robot has traveled along the contour completely and again reached a previously processed area (particularly but not exclusively the starting point of the contour-following run). A processing gain assigned to a (basic) movement may be, for example, the (not yet processed) surface area which would additionally be processed upon execution of the movement. This surface area may also be weighted (e.g., depending on the floor covering or the room in which the robot is located).
For example, the robot may maintain a greater distance to a contour it has previously already cleaned but along which it still must travel again. Furthermore, a greater contour-following distance may require less accuracy in navigation in order to prevent unintentional collisions. Thus, for example, the planning horizon and/or the speed of the robot could be increased. For example, a greater distance can be maintained away from obstacles in front of the robot, whereby the robot no longer moves so frequently and so far into corners and other tight spots (potential dead ends)
Parameter selection: The examples described herein relating to a method for controlling a robot by means of three or more different basic movements and the evaluation of these movements according to simple, definable rules is a very powerful tool with which essentially numerous movement profiles can be created in a contour-following run for different application purposes. However, the selection of the numerous parameters (evaluation rules, point of rotation of the rotational movement, distances traveled and angle of rotation) can quickly become confusing and complex. With the aid of simulations, the behavior of a robot can essentially be analyzed with a given parameter set and adapted to a desired behavior.
In addition, the use of optimization methods such as, for example, machine learning methods, enables an at least partially automated determination of the parameters. For example, certain scenarios (various arrangements of obstacles such as walls and chair legs) can be specified and optimized with definable measure functions. For example, the processed surface in the vicinity of a wall can be maximized or the time required can be minimized. Additionally or alternatively, movement patterns desired by a person can be specified (e.g. determined based on market studies). The parameters can be optimized to the extent that the robot path (simulated and/or in testing) is as close as possible to the specified movement pattern.
Nonvisible obstacles: The contour-following run can be planned and executed as described to be extensively collision-free based on the information in the environment and also based on the map data. In particular, the evaluation of basic movements or the criteria for terminating a contour-following mode can take place based on mapping. In addition, the robot may have suitable emergency routines (e.g. software module executed by the control unit 150, cf.
Such an unforeseen event is, for example, the detection of a drop-off edge such as with a stairstep which is only detected with a corresponding sensor when the robot gets close to the edge and/or has traveled it at least partially. A further example of an unforeseen event is contact with an obstacle (e.g. a collision). This can occur because the obstacle was previously not detected with the navigation sensor and/or included in the map data. This can occur with low-lying, transparent, or reflective obstacles. In some cases, a driving maneuver also may not be executed as planned, for example, due to poor flooring, whereby the robot unintentionally collides with a previously detected obstacle. It is also possible for an obstacle to move (e.g. from the influence of a person or an animal) and thereby cause a collision.
In addition to the immediate stop of the robot, a further standardized movement adapted to the unexpected event (which triggered the emergency routine) can be executed within the scope of the emergency routine. For example, the last movement can be inverted (reversed) at least to the extent that the robot maintains a safer distance away from a detected drop-off edge and/or that a tactile sensor for detecting a collision or contact with an obstacle is again reset (i.e. obstacle no longer detected). For example, the robot can move a few centimeters backward. If the unexpected event occurs during a rotation, the robot can rotate in the opposite direction.
After completion of the standardized movement, the normal contour-following run can be resumed. The cause of the unexpected event can be entered into the map so that it can be considered for the further evaluation of the movement of the robot. This might be, for example, the location at which the drop-off edge was detected. This location can be determined based on the pose (position and orientation) of the robot and the position of the sensor (in the robot) which detected the drop-off edge. In general, this is one or more points which can be handled like points of a contour of an obstacle.
An unexpected event occurring due to contact and/or collision is likewise entered into the map. In doing so, it may be desirable that the tactile sensor for detecting a collision or contact has comparatively good spatial resolution such that the position at which contact occurred with the obstacle can be entered into the map with a high degree of accuracy. In practice, tactile sensors, however, often have only a very coarse resolution. In this case, the entire portion of the outer contour of the tactile sensor of the robot, on which an obstacle may have generated the measured sensor signal, can be entered into the map (as a geometric figure or in the form of sampling points). For example, this may be a contact switch for various independent sectors of the robot. It should be noted that additional information regarding the location of the collision can be derived from the triggering of two contact switches in close chronological order, which can be entered into the map in a suitable manner.
Because the information hereby included in the map does not directly correspond to the position of obstacles, it may be necessary to handle it differently than the previously described information regarding obstacles. During the evaluation of the basic movement, this means that the type of obstacle can be considered as well as the sensor that detected the contour of the obstacle (or a part thereof). For example, the information can be interpreted optimistically. For the evaluation of a basic movement, this means that the smallest-possible obstacle can be assumed with the position causing the least interference, as has been established by the sensor information. This may lead to further contact with the obstacle, whereby the number of pieces of tactile information regarding the undetected obstacle increases. The robot can hereby move along the obstacle with a scanning movement.
As previously mentioned in reference to handling dead-end situations, it may be necessary to start a contour-following mode in which a collision is intentionally risked. This means that the information detected with the navigation sensor regarding the environment of the robot and/or the map data cannot be used or only to a limited extent. The previously described emergency routine thus contains a method as well for tactile exploration of the environment, based on which the robot can move along a contour in a contour-following mode.
In some exemplary embodiments, the robot can be designed such that the risk of a collision with a detected, moving obstacle or due to a driving maneuver not executed according to plan is detected before there is an actual collision or contact with the obstacle. Subsequently, the robot can be stopped immediately, whereby a collision can be prevented.
Virtual obstacles: Further examples of obstacles of various types which can be considered in special form during the evaluation of the basic movement are markings in the environment provided by a user with the goal of limiting the sectors of the robot's operational area that the robot is excluded from traveling. Such markings are, for example, magnetic strips and current loops which establish a magnetic field detectable by the robot or light beam emitters which emit a light beam (e.g. infrared laser beam) detectable by the robot. These markings can be detected using a corresponding sensor of the sensor unit 120 of the robot 100 (cf.
Because a collision with a (e.g. magnetic or optical) marking is not possible, they can be handled differently in the evaluation of basic movements than obstacles, for example, that have been detected by means of distance measurement or with a camera. Thus, this is sufficient for preventing traversing of the marking while a limitation of the rotational degree of freedom is not necessary. Thus, for example, it can be accepted that a corner of a D-shaped robot (cf.
An advantage in using map data for the control of the robot, particularly in a contour-following mode, is the availability of virtual obstacles which mark areas in the map over which the robot cannot independently travel and/or traverse. These areas can be entered, for example, by a user via the HMI 200 or created independently by the robot (“learned”). In this manner, the robot can note areas that it will not travel, for example, because safe operation is not ensured here. A user can hereby block, for example, an area temporarily or permanently for the robot without having to provide physical markings to the environment. This is significantly more flexible and less disruptive than real markings.
The same thing applies to such purely virtual obstacles as for obstacles created by markings. Because a real collision is not possible, simplified handling is sufficient. It can be designed solely to prevent traversing of the virtual boundary of the virtual obstacle and particularly the traveling into the blocked area. This method is explained for virtual obstacles by means of example.
In the example shown in diagram (a) from
Due to the fact that only a simplified shape 101 of the robot 100 is considered during the handling of virtual obstacles, the corner formed by contours W and V will not lead to a dead-end situation; the robot can rotate away from contour W of the wall without limitation (e.g. as a rotation in place by means of a sequence of the third basic movement), whereby it is possible for the robot 100 to align itself parallel to contour V of the virtual obstacle. As shown in diagram (b) of
In the example in diagram (c) of
It should be noted that the contour-following distance and the safety distance are intended to prevent unintentional collisions, particularly in robots for processing a surface area. Because such collisions with a virtual obstacle are not possible, the contour-following distance and/or the safety distance can likewise be set depending on the type of obstacle. Especially for virtual obstacles, the contour-following distance and/or the safety distance can be set as less than that for other obstacles or even all the way to zero. Particularly a contour-following distance and/or safety distance of zero for virtual obstacles can mean less complexity for calculations and evaluations.
The biggest simplification possible of the virtual shape 101 of the robot 100 is to represent the robot with a single point. This point is preferably the central point “×” (kinematic center, center of rotation). For example, the robot can be controlled in a contour-following mode such that the robot, which is simplified into one point (point-shaped), moves on contour V of the virtual obstacle as precisely as possible. In particular, the contour-following distance d and the safety distance ds can be set to zero in this case (i.e. not considered). This means that the boundary of the obstacle describes the path of the robot (and/or of the kinematic center) which is currently being excluded such that the area blocked for the robot is not traversed. This can be considered when defining the blocked area. For example, the user can enter the area which should not be traversed via the HMI 200. Based on this input, the virtual boundaries of the virtual obstacle can then be determined such that the robot can reliably follow this boundary and a contour-following mode with its central point “×”.
Within the scope of, e.g., a cost-based evaluation of basic movements for the simplified virtual shape 101 of the robot 100, any movement, for example, away from the virtual contour V can be assigned costs. A movement in the blocked area can be excluded in this case or assigned higher costs than a movement in the area that is free to traverse. This is essentially similar to an evaluation based on the contour-following distance.
For robots with a very elongated shape (cf. diagram (e) from
For example, the virtual shape 101 may be selected as a convex shape (i.e. any two points can be connected by a distance within the shape). For example, the virtual shape 101 is selected such that it is completely contained in the real shape. Areas of the robot that are outside of the virtual shape can thus exceed the virtual contour of the virtual obstacle, at least temporarily, e.g. during a rotation. Thus, movements, particularly rotations, which would lead to a collision with real obstacles, are enabled relative to virtual obstacles.
For example, the virtual shape 101 can be selected such that a maximum distance is not exceeded between the points of the real shape of the robot 100 and the virtual shape 100 of the robot. Similar to the simplification down to one point, the virtual shape may be a line, wherein a point on the line is the central point “×” (kinematic center). For example, it is one of the end points of the line. The second end point could then consider the elongated shape of a robot (cf. diagram (e) from
It should be noted that the concept of the simplified virtual shape 101 of a robot 100 can generally describe the complete three-dimensional shape of the robot. For example, a simplified three-dimensional shape is a cone or another rotational body. In particular, the three-dimensional problem can be attributed to the two-dimensional case described herein due to suitable projection into the plane.
Simplified path planning for non-round robots:
The approach illustrated in
The problem of path planning for robots with more complex shapes can be simplified, for example, in that known methods of path planning are used for a simplified “virtual” shape of the robot for large-scale areas, particularly areas that are extensively free. Local planning while noting the exact robot shape is used at bottlenecks. For example, the methods described herein for implementing a contour-following run can be used in order to determine, for example, a path through the area with the complex environment as shown in diagram (a) of
An exemplary situation is shown in
As further previously described in relation to the handling of dead-end situations, this would mean that the robot moves a distance opposite the preferred direction of travel (i.e. backward) until it can rotate freely. A prioritized control instance could then determine, for example, that the robot can then align itself along the planned path and follow it, which is why the contour-following mode is terminated. A specially predefined driving maneuver with which the robot can navigate away from the wall moving backward is not necessary. In a similar manner, complex path planning considering the complete contour of the robot is not necessary for this small maneuver. The approaches to path planning described herein are thus flexible, robust, and require less resources.
The simplified virtual shape of the robot in this case corresponds particularly to a round shape with the center lying in central point “×” (kinematic center). For example, the approaches to path planning sketched in
Path planning is generally based on map data which describes the operational area more or less completely. The accuracy of the detected details is frequently reduced in these global maps in order to limit the memory requirements and/or the complexity of calculations. Examples of such maps include:
For the control of the robot along the path, the robot may have a second map and/or second form of map data containing more details and current environment information detected with the sensors from the sensor unit 120. In particular, current information on the environment can be entered into this second map with a high degree of accuracy while the robot moves along the path P. The information entered into the second map can then be deleted after a certain amount of time in order to reduce the memory requirements and the processing complexity. Alternatively, the content of information of the second map can be reduced after a certain time through interpretation and/or simplification, whereby the memory requirements and the processing complexity are likewise reduced.
Based on the second map and the environment information detected with the sensors of the sensor unit 120, it can be determined in some situations, for example, that continued following of the planned path may lead to a collision with at least one obstacle H. Particularly the complete shape of the robot is considered for this. The determination that the planned path cannot be traveled without collision due to an obstacle can also take place by means of detecting an actual collision.
One reason for this potential pending collision may particularly be that the simplified virtual shape 101 of the robot 100 would not collide with the obstacle (virtual) and only this simplified shape was considered during planning. Other reasons that particularly can be considered as well with round robots may be the following: incorrect or imprecise map data, limited accuracy in planning large-scale movements of the robot, change in position of an obstacle (e.g. through the use of a chair), and/or a new obstacle.
Once such a pending collision has been detected, the robot can react to this so as to avoid the collision. In doing so, the complete contour of the shape of the robot, for example, can be considered. For example, the control unit 150 can provide control in a contour-following mode such that it follows the contour of the obstacle until the robot is again on the originally planned path, a target point can be reached, or a terminate condition is fulfilled.
For example, an additional target point can be set before the start of the contour-following mode. This can be part of the originally planned path such that the robot can follow it further starting from this point. The additional target point is set after the obstacle to be avoided (to the extent possible). The target point is then reachable, for example, when there is no obstacle between the robot and the target point, and the robot can rotate to the target point without collision.
A terminate condition is, for example, that the target point is not reachable because it is within the obstacle. A further terminate condition may be that the distance between the robot and the target point becomes greater than a definable value and/or that the distance between the robot and the original path becomes greater than a definable value. The contour of the obstacle would thus lead the robot unusually far away from its original course. The definable value of the maximum distance is, for example, the width of the robot or double the width of the robot. A further terminate condition is, for example, the time needed and/or the path traveled during the contour-following run.
Once a terminate condition has been fulfilled, the robot stops and checks whether there is a different path from its current position to the target point. To this end, the information is included in the map data that the previously planned path could not be successfully traveled and the position at which and/or area in which the interruption and the cancellation of the movement along the path P occurred. In particular, the information is stored when a path can be traversed for the simplified shape 101 but not for the complete shape of the robot for future path planning with the simplified virtual shape of the robot.
Path planning of a path P may also be “pessimistic” in nature, wherein the robot always reaches the target with planning based on an ideal map (without errors or limited accuracy). This occurs, for example, due to the selection of the simplified virtual shape of the robot as an outline of the robot. This means that all points of the robot are completely in the circle and the center corresponds to the central point (cf. also
Alternatively or additionally, the planning of a path P may be “optimistic” in nature. In this case, a circular shape is assumed for the simplified virtual contour, the diameter of said shape corresponding to the width of the robot. This hereby ensures that the robot moves between and through at least two obstacles when the path leads through the center thereof. It should be noted that this only applies to ideal map data. In reality, it is possible that it is determined upon arrival in front of the two obstacles that there is not enough space to follow the path between the two obstacles. In addition, it is possible when the shape of the robot is complex that the necessary rotations cannot be executed in order to follow the planned path P.
The disadvantage of the pessimistic approach is that no path is found from a starting point to a target point in some environments and/or maps corresponding thereto, even though it would be possible in practice. The disadvantage of the optimistic approach is that paths are found which in reality cannot be traversed by the robot or only with difficulty. Any stages between the optimistic and the pessimistic approach can be selected by means of the specific selection of the simplified virtual contour.
Path planning in this case can take place by means of a suitable combination of the approaches mentioned (optimistic, pessimistic). For example, initially pessimistic planning can occur. If this is not successful, optimistic planning is implemented in order to check whether there is even a potential path. For example, one pessimistic and one optimistic planning simulation can be implemented in order to compare the results with one another. The planned paths can be evaluated, for example, according to definable criteria, and the path is selected that has the best evaluation (e.g. the lowest “costs”). The definable criteria may consider, for example, the length of the path and/or its distance away from obstacles. For example, if the pessimistic planning leads to a path that is only “insignificantly longer” than the optimistic planned path, the pessimistic path can be selected. “Insignificantly longer” in this case may mean a fixed potential detour of, for example, 0.1 m to 10 m and/or a fixed factor of, for example, 1.5-3 times as long. Optionally, further planning simulations with other variants of the virtual shape can be considered in the comparison.
Alternatively, the pessimistic (e.g. first virtual robot shape, which completely includes the robot) and the optimistic approach (e.g. second virtual robot shape, which does not fully include the robot) can be combined in one planning approach. A simple example of this is shown in
A path between two obstacles close to one another (optimistic) can be assigned higher costs than the path associated with a detour around the obstacles (pessimistic). Due to the selection of costs for the movement of the robot close to obstacles, the acceptable detour is defined and can be considered a result of an optimization task. The advantage of such an approach is that it always provides a result when the optimistic approach leads to a path. At the same time, the path thusly obtained is always a balance between the bottlenecks between the starting point and the target point and the necessary detours in order to avoid the bottlenecks. In the example according to
If a potential collision with an obstacle H is detected during the run of the robot 100 along its path P, the robot can follow the path up to the obstacle (e.g. with consideration of a safety distance) and then directly switch into contour-following mode. Alternatively, the robot can check whether there is a deviating path passed the obstacle which leads back to the original path P.
In particular, the reaction to a potential collision with an obstacle H can take place as a function of the current task of the robot. For example, with an autonomous mobile robot for processing a surface area, the robot can move as close as possible to the obstacle during processing of a planned robot path and then process the surface along the contour of the obstacle. On the other hand, the same robot can travel through areas that are not intended to be processed during a run to an assigned area to be processed or a base station. In this case, a deviating path around the obstacle H can be determined such that the target (e.g. assigned area, base station) is reached more quickly.
In order to determine the deviating path, the complete shape of the robot 100 can be considered directly. Alternatively or additionally, preplanning can occur based on the simplified virtual shape 101 of the robot 100 as to whether a path around the obstacle is even possible. This is particularly helpful when the path would lead through two obstacles close together. In this case, it can be determined that the simplified virtual shape 101 could not follow the originally planned path, which is why more large-scale detouring and associated path planning is necessary. In this case, it can be determined that the simplified virtual shape 101 can follow the originally planned path through the two obstacles. In this case, the robot can move between the obstacles and through, for example with the contour-following mode, with consideration of the complete shape of the robot.
The result of the determination of the deviating path may be that the obstacle can be safely bypassed at a certain distance. This is particularly the case for a single obstacle located in an otherwise extensively free area. A further potential result is that the obstacle can be avoided in a contour-following mode (in that the complete shape of the robot is considered).
Particularly when using a contour-following mode based on map data, one variant for checking whether the robot can bypass the obstacle and find its way back to the original path P is the pre-calculation (or simulation) of the course of the contour-following run. This can also be used, inter alia, when there are various options of the start of the contour-following mode (particularly avoidance to the right or left) in order to find the path most quickly leading back to the target.
Map data which describe the environment with great accuracy are used for planning the deviating path. This takes place, for example, by means of the information on the environment collected in the second map. In order to limit the use of resources for memory requirements and computing capacity, the planning of the deviating path can be limited to a small area (e.g. circle around the robot with a radius of 0.5 to 2 m).
Number | Date | Country | Kind |
---|---|---|---|
10 2017 120 218.8 | Sep 2017 | DE | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2018/073497 | 8/31/2018 | WO | 00 |