Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
IMPROVED DETERMINATION OF POSE FOR A ROBOTIC WORK TOOL
Document Type and Number:
WIPO Patent Application WO/2024/010503
Kind Code:
A1
Abstract:
A robotic work tool system comprising a robotic work tool (100) arranged to operate in an operational area (205), the operational area (205) having a surface that is at least partially irregular, and the robotic work tool comprising controller (110), a memory (120), three or more wheels (130), deduced reckoning sensors (180), the memory (120) being configured to store a map application (120A) and to store data regarding the positions of the wheels (130) on the robotic work tool (100), and wherein the controller (110) is configured to receive sensor input from the deduced reckoning sensors (180); determine a curvature (C) for the surface of the operational area (205); determine a pose based on the sensor input, wherein the pose is determined based on an analysis of the sensor input, the analysis being constrained by that the position of the three or more wheels being on the surface of the operational area, wherein the controller is further configured to determine that a wheel is on the surface taking into account the curvature (C) of the surface.

Inventors:
DAHAN ODI (IL)
LIFLANDSKY SERGEY (IL)
Application Number:
PCT/SE2023/050369
Publication Date:
January 11, 2024
Filing Date:
April 21, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUSQVARNA AB (SE)
International Classes:
G05D1/02
Foreign References:
US11199853B12021-12-14
SE2050416A12021-10-15
EP2874037B12020-02-12
US5410478A1995-04-25
Other References:
BURG VAN DER J ET AL: "ANTI-LOCK BRAKING AND TRACTION CONTROL CONCEPT FOR ALL-TERRAIN ROBOTIC VEHICLES", PROCEEDINGS OF THE 1997 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION. ALBUQUERQUE, APR. 20 - 25, 1997; [PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION], NEW YORK, IEEE, US, vol. CONF. 14, 20 April 1997 (1997-04-20), pages 1400 - 1405, XP000774380, ISBN: 978-0-7803-3613-1
Download PDF:
Claims:
CLAIMS

1. A robotic work tool system comprising a robotic work tool (100) arranged to operate in an operational area (205), the operational area (205) having a surface that is at least partially irregular, and the robotic work tool comprising controller (110), a memory (120), three or more wheels (130), deduced reckoning sensors (180), the memory (120) being configured to store a map application (120A) and to store data regarding the positions of the wheels (130) on the robotic work tool (100), and wherein the controller (110) is configured to receive sensor input from the deduced reckoning sensors (180); determine a curvature (C) for the surface of the operational area (205); determine a pose based on the sensor input, wherein the pose is determined based on an analysis of the sensor input, the analysis being constrained by that the position of the three or more wheels being on the surface of the operational area, wherein the controller is further configured to determine that a wheel is on the surface taking into account the curvature (C) of the surface.

2. The robotic work tool system (300) according to claim 1, wherein the robotic work tool further comprises a visual odometry sensor being a mono camera (185) and wherein the sensor input comprises at least one image, and wherein the controller is further configured to determine the pose based on the at least one image, wherein the pose is determined based on an analysis of the image.

3. The robotic work tool system (300) according to claim 1 or 2, wherein the controller is further configured to determine the curvature based on Gauss-Bonnet theorem.

4. The robotic work tool system (300) according to any preceding claim, wherein the pose includes rotation and translation.

5. The robotic work tool system (300) according to any preceding claim, wherein an initial pose is determined based on the sensor input. 6. The robotic work tool system (300) according to any preceding claim, wherein the controller is further configured to determine a curvature (C) for the surface of the operational area (205) based on the received sensor input in combination with mapping the operational area.

7. The robotic work tool system (300) according to any of claims 1 to 5, wherein the controller is further configured to determine a curvature (C) for the surface of the operational area (205) based on the map application (120 A).

8. The robotic work tool system (300) according to claim 7, wherein the map application comprises indications of the curvature (C).

9. The robotic work tool system (300) according to any preceding claim, wherein the sensor input is stored in the memory and the sensor input is received from the deduced reckoning sensors through having been stored in the memory (120) as part of the map application (120A) stored as part of a mapping of the operational area (205).

10. The robotic work tool system (300) according to any preceding claim, wherein the robotic work tool (100) is a robotic lawnmower (100).

11. A method for use in a robotic work tool system comprising a robotic work tool (100) arranged to operate in an operational area (205), the operational area (205) having a surface that is at least partially irregular, and the robotic work tool comprising controller (110), a memory (120), three or more wheels (130), deduced reckoning sensors (180), the memory (120) being configured to store a map application (120A) and to store data regarding the positions of the wheels (130) on the robotic work tool (100), and wherein the method comprises: receiving sensor input from the deduced reckoning sensors (180); determining a curvature (C) for the surface of the operational area (205); determining a pose based on the sensor input, wherein the pose is determined based on an analysis of the sensor input, the analysis being constrained by that the position of the three or more wheels being on the surface of the operational area, wherein the method further comprises determining that a wheel is on the surface taking into account the curvature (C) of the surface.

12. A computer-readable medium (600) carrying computer instructions (610) that when loaded into and executed by a controller (110) of a robotic work tool (100) enables the robotic work tool (100) to implement the method according to claim 11.

Description:
IMPROVED DETERMINATION OF POSE FOR A ROBOTIC WORK TOOL

TECHNICAL FIELD

This application relates to a robotic work tool, such as a lawnmower, and a method for providing an improved determination of a pose for the robotic work tool, and in particular to a robotic work tool, such as a lawnmower, and a method for providing an improved determination of a pose for the robotic work tool utilizing deduced reckoning, and in particular to utilizing a mono camera as a visual odometry device.

BACKGROUND

Automated or robotic work tools such as robotic lawnmowers are becoming increasingly more popular and so is the use of the robotic work tool in various types of operational areas.

Such operational areas, in particular for robotic work tools being robotic lawnmowers, often include irregular surfaces such as slopes. Utilizing navigation techniques relying on odometry such as through deduced reckoning in such irregular areas suffer from drawbacks in such irregular areas, as the assumptions made in various odometry -based navigation techniques are based on a flat operating surface. Furthermore navigation techniques relying on visual odometry, such as for Visual Simultaneous Localization and Mapping (V-SLAM), also suffer from drawbacks in that advanced cameras are needed for establishing a scale of an observed area as without a proper scale, the interpretation is difficult to match to a map. Such advanced cameras increase the cost of the robotic work tool.

Thus, there is a need for an improved manner of providing advanced navigational functionality utilizing odometry-based navigation while still utilizing cheap or uncomplicated sensors, such as a mono camera.

SUMMARY

It is therefore an object of the teachings of this application to overcome or at least reduce those problems by providing a robotic work tool system comprising a robotic work tool arranged to operate in an operational area, the operational area having a surface that is at least partially irregular, and the robotic work tool comprising controller, a memory, three or more wheels, deduced reckoning sensors, the memory being configured to store a map application and to store data regarding the positions of the wheels on the robotic work tool, and wherein the controller is configured to receive sensor input from the deduced reckoning sensors; determine a curvature for the surface of the operational area; determine a pose based on the sensor input, wherein the pose is determined based on an analysis of the sensor input, the analysis being constrained by that the position of the three or more wheels being on the surface of the operational area, wherein the controller is further configured to determine that a wheel is on the surface taking into account the curvature of the surface.

In some embodiments the robotic work tool further comprises a visual odometry sensor being a mono camera and wherein the sensor input comprises at least one image, and wherein the controller is further configured to determine the pose based on the at least one image, wherein the pose is determined based on an analysis of the image.

In some embodiments the controller is further configured to determine the curvature based on Gauss-Bonnet theorem.

In some embodiments the pose includes rotation and translation.

In some embodiments an initial pose is determined based on the sensor input.

In some embodiments the controller is further configured to determine a curvature for the surface of the operational area based on the received sensor input in combination with mapping the operational area.

In some embodiments the controller is further configured to determine a curvature for the surface of the operational area based on the map application.

In some embodiments the map application comprises indications of the curvature.

In some embodiments the sensor input is stored in the memory and the sensor input is received from the deduced reckoning sensors through having been stored in the memory as part of the map application stored as part of a mapping of the operational area.

In some embodiments the robotic work tool is a robotic lawnmower.

It is also an object of the teachings of this application to overcome the problems by providing a method for use in a robotic work tool system comprising a robotic work tool arranged to operate in an operational area, the operational area having a surface that is at least partially irregular, and the robotic work tool comprising controller, a memory, three or more wheels, deduced reckoning sensors, the memory being configured to store a map application and to store data regarding the positions of the wheels on the robotic work tool, and wherein the method comprises: receiving sensor input from the deduced reckoning sensors; determining a curvature for the surface of the operational area; determining a pose based on the sensor input, wherein the pose is determined based on an analysis of the sensor input, the analysis being constrained by that the position of the three or more wheels being on the surface of the operational area, wherein the method further comprises determining that a wheel is on the surface taking into account the curvature of the surface.

It is also an object of the teachings of this application to overcome the problems by providing a computer-readable medium carrying computer instructions that when loaded into and executed by a controller of a robotic work tool enables the robotic work tool to implement the method according to herein.

Further embodiments and aspects are as in the attached patent claims and as discussed in the detailed description.

Other features and advantages of the disclosed embodiments will appear from the following detailed disclosure, from the attached dependent claims as well as from the drawings. Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to "a/an/the [element, device, component, means, step, etc.]" are to be interpreted openly as referring to at least one instance of the element, device, component, means, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described in further detail under reference to the accompanying drawings in which: Figure 1 A shows a schematic view of the components of an example of a robotic work tool being a robotic lawnmower according to some example embodiments of the teachings herein;

Figure IB shows a schematic side-view of an example of a robotic work tool operating on a flat surface;

Figure 1C shows a schematic side-view of an example of a robotic work tool operating on an irregular surface;

Figure 2 shows a schematic view of a robotic work tool system according to some example embodiments of the teachings herein;

Figure 3 shows a schematic view of a robotic work tool system according to some example embodiments of the teachings herein;

Figure 4A shows a schematic view of graph of geodesics according to some example embodiments of the teachings herein;

Figure 4B shows a schematic view of graph of geodesics according to some example embodiments of the teachings herein;

Figure 5 shows a corresponding flowchart for a method according to some example embodiments of the teachings herein; and

Figure 6 shows a schematic view of a computer-readable medium carrying computer instructions that when loaded into and executed by a controller of a robotic work tool, enables the robotic work tool to implement the teachings herein.

DETAILED DESCRIPTION

The disclosed embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Like reference numbers refer to like elements throughout.

It should be noted that even though the description given herein will be focused on robotic lawnmowers, the teachings herein may also be applied to, robotic ball collectors, robotic mine sweepers, robotic farming equipment, or other robotic work tools. Figure 1 A shows a schematic overview of a robotic work tool 100, here exemplified by a robotic lawnmower 100. The robotic work tool 100 may be a multichassis type or a mono-chassis type (as in figure 1 A). A multi-chassis type comprises more than one main body parts that are movable with respect to one another. A monochassis type comprises only one main body part.

It should be noted that robotic lawnmower may be of different sizes, where the size ranges from merely a few decimetres for small garden robots, to even more than 1 meter for large robots arranged to service for example airfields.

It should be noted that even though the description herein is focussed on the example of a robotic lawnmower, the teachings may equally be applied to other types of robotic work tools, such as robotic watering tools, robotic golfball collectors, and robotic mulchers to mention a few examples.

In some embodiments, and as will be discussed below, the robotic work tool is a semi-controlled or at least supervised autonomous work tool, such as farming equipment or large lawnmowers, for example riders or comprising tractors being autonomously controlled.

It should also be noted that the robotic work tool is a self-propelled robotic work tool, capable of autonomous navigation within an operational area, where the robotic work tool propels itself across or around the operational area in a pattern (random or predetermined).

The robotic work tool 100, exemplified as a robotic lawnmower 100, has a main body part 140, possibly comprising a chassis 140 and an outer shell 140A, and a plurality of wheels 130 (in this example four wheels 130, but other number of wheels are also possible, such as three or six).

The main body part 140 substantially houses all components of the robotic lawnmower 100. At least some of the wheels 130 are drivably connected to at least one electric motor 155 powered by a battery 150. It should be noted that even if the description herein is focused on electric motors, combustion engines may alternatively be used, possibly in combination with an electric motor. In the example of figure 1, each of the wheels 130 is connected to a common or to a respective electric motor 155 for driving the wheels 130 to navigate the robotic lawnmower 100 in different manners. The wheels, the motor 155 and possibly the battery 150 are thus examples of components making up a propulsion device. By controlling the motors 155, the propulsion device may be controlled to propel the robotic lawnmower 100 in a desired manner, and the propulsion device will therefore be seen as synonymous with the motor(s) 150. It should be noted that wheels 130 driven by electric motors is only one example of a propulsion system and other variants are possible such as caterpillar tracks.

The robotic lawnmower 100 also comprises a controller 110 and a computer readable storage medium or memory 120. The controller 110 may be implemented using instructions that enable hardware functionality, for example, by using executable computer program instructions in a general -purpose or special-purpose processor that may be stored on the memory 120 to be executed by such a processor. The controller 110 is configured to read instructions from the memory 120 and execute these instructions to control the operation of the robotic lawnmower 100 including, but not being limited to, the propulsion and navigation of the robotic lawnmower.

The controller 110 in combination with the electric motor 155 and the wheels 130 forms the base of a navigation system (possibly comprising further components) for the robotic lawnmower, enabling it to be self-propelled as discussed.

The controller 110 may be implemented using any suitable, available processor or Programmable Logic Circuit (PLC). The memory 120 may be implemented using any commonly known technology for computer-readable memories such as ROM, FLASH, DDR, or some other memory technology.

The robotic lawnmower 100 is further arranged with a wireless communication interface 115 for communicating with other devices, such as a server, a personal computer, a smartphone, the charging station, and/or other robotic work tools. Examples of such wireless communication devices are Bluetooth®, WiFi® (IEEE802.1 lb), Global System Mobile (GSM) and LTE (Long Term Evolution), to name a few. The robotic lawnmower 100 may be arranged to communicate with a user equipment (not shown but will be regarded as being an example of a server, as an example of a connected device) as discussed in relation to figure 2 below for providing information regarding status, location, and progress of operation to the user equipment as well as receiving commands or settings from the user equipment. Alternatively or additionally, the robotic lawnmower 100 may be arranged to communicate with a server (referenced 240 in figure 2) for providing information regarding status, location, and progress of operation as well as receiving commands or settings.

The robotic lawnmower 100 also comprises a work tool 160, which in the example of the robotic lawnmower 100 is a grass cutting device 160, such as a rotating blade 160/2 driven by a cutter motor 160/1. In embodiments where the robotic work tool 100 is exemplified as an automatic grinder, the work tool 160 is a rotating grinding disc.

For enabling the robotic lawnmower 100 to navigate with reference to a wire, such as a boundary wire or a guide wire, emitting a magnetic field caused by a control signal transmitted through the wire, the robotic lawnmower 100 is, in some embodiments, configured to have at least one magnetic field sensor 170 arranged to detect the magnetic field and for detecting the wire and/or for receiving (and possibly also sending) information to/from a signal generator. In some embodiments, such a magnetic boundary is used to provide a border (not shown explicitly in figure 2, but deemed to be included in the boundary 220) enclosing an operational area (referenced 205 in figure 2).

In some embodiments the robotic lawnmower 100 comprises a satellite signal navigation sensor 175 configured to provide navigational information (such as position) based on receiving one or more signals from a satellite - possibly in combination with receiving a signal from a base station. In some embodiments the satellite navigation sensor is a GPS (Global Positioning System) device or other Global Navigation Satellite System (GNSS) device. In some embodiments the satellite navigation sensor 175 is a RTK sensor. This enables the robotic work tool to operate in an operational area bounded by a virtual border (not shown explicitly in figure 2 but deemed to be included in the boundary 220).

The robotic lawnmower 100 also comprises deduced reckoning sensors 180. The deduced reckoning sensors may be odometers, accelerometers or other deduced reckoning sensors. In some embodiments, the robotic work tool comprises a visual odometery sensor 185, possibly comprised in or connected to the deduced reckoning sensors 180. In some embodiments, the visual odometry sensor is a mono-camera 185, wherein mono relates to a camera having a single Field-Of-View (FOV) in contrast to a stereo camera. Such cameras have the benefit of being cheap.

In some embodiments, the deduced reckoning sensors are comprised in the propulsion device, wherein a deduced reckoning navigation may be provided by knowing the current supplied to a motor and the time the current is supplied, which will give an indication of the speed and thereby distance for the corresponding wheel.

The deduced reckoning sensors 180, especially in combination with the visual odometry sensor 185, enables the root to operate according to a map of the operational area. In some such embodiments, the navigation is based on SLAM, and in some embodiments, where a visual odometry sensor (such as a camera) 185 is utilized, the navigation is based on V-SLAM.

The robotic lawnmower 100 is in some embodiments arranged to operate according to a map application (indicated in figure 2 and referenced 120 A) representing one or more operational areas (and possibly the surroundings of the operational area(s)) as well as features of the operational area(s) stored in the memory 120 of the robotic lawnmower 100. In some embodiments, the map is also or alternatively stored in the memory of a server (referenced 240 in figure 2). The map application may be generated or supplemented as the robotic lawnmower 100 operates or otherwise moves around in the operational area. In some embodiments, the map application is downloaded, possibly from the server. In some embodiments, the map application also includes one or more transport areas. The robotic work tool 100 is arranged to navigate according to the map based on the deduced reckoning sensors 180.

In some embodiments the robotic work tool is arranged or configured to traverse and operate in operational areas that are not essentially flat, but contain terrain that is of varying altitude, such as undulating, comprising hills or slopes or such. The ground of such terrain is not flat and it is not straightforward how to determine an angle between a sensor mounted on the robotic work tool and the ground. The robotic work tool is also or alternatively arranged or configured to traverse and operate in an operational area that contains obstacles that are not easily discerned from the ground. Examples of such are grass or moss-covered rocks, roots or other obstacles that are close to ground and of a similar colour or texture as the ground. The robotic work tool is also or alternatively arranged or configured to traverse and operate in an operational area that contains obstacles that are overhanging, i.e. obstacles that may not be detectable from the ground up, such as low hanging branches of trees or bushes. Such a garden is thus not simply a flat lawn to be mowed or similar, but an operational area of unpredictable structure and characteristics. The operational area exemplified with referenced to figure 2, may thus be such a non-uniform operational area as disclosed in this paragraph that the robotic work tool is arranged to traverse and/or operate in.

Figure IB shows a situation where the robotic work tool 100 is navigating a flat surface of an operational area utilizing a (mono) camera 185. Knowing one or more angles a, 0 of the Field-Of-View (FOV) of the camera 185 as well as knowing the height of the camera’s placement form the ground, enables for an accurate determination of the length L of the area covered by the FOV, which in turn enables for an easy determination of any scale S in the FOV. It should eb noted that it is not needed to know exactly the height and/or the angles a, 0 indicated in figure IB, but the same may be determined based on other measurements. However, the disclosure herein will focus on these measurements to illustrate how a problem is overcome.

Figure 1C shows a situation where the robotic work tool 100 is navigating an irregular surface of an operational area utilizing a (mono) camera 185. Knowing the measurements will not enable the robotic work tool 100 to determine a proper scale S’ in the FOV as the measurements no longer correlate. Also, simply determining the angle of the robotic work tool 100 (utilizing for example a gyro or other IMU), will not solve the problem as such a determination will also require that the surface is sloping at a same slope, and not be irregular as in figure 1C. In the situation of figure 1C, the robotic work tool 100 will thus not be able - or at least experience difficulties - to determine a current pose of the robotic work tool 100, the pose including the current orientation as well as the location of the robotic work tool 100. This will reduce the accuracy of any SLAM-based navigation as the SLAM-navigation is dependent on determining poses for the robotic work tool 100 over time.

Figure 2 shows a robotic work tool system 200 in some embodiments. The schematic view is not to scale. The robotic work tool system 200 comprises one or more robotic work tools 100 according to the teachings herein arranged to operate in one or more operational areas 205 possibly bounded by a boundary 220. It should be noted that the operational area 205 shown in figure 2 is simplified for illustrative purposes.

The view of the operational area 205 is also intended to be an illustration or graphical representation of the map application 120A discussed in the above.

A server 240 is shown as an optional connected device for the robotic work tool 100 to communicate with - possibly for rece4iving maps or map updates. The server 240 comprises a controller 240A for controlling the operation of the server 240, a memory 240B for storing instructions and data relating to the operation of the server 240 and a communication interface 240C for enabling the server 240 to communicate with other entities, such as the robotic work tool 100, and/or a User Equipment such as a mobile phone. The controller, the memory and the communication interface may be of similar types as discussed in relation to figure 1 for the robotic work tool 100.

As with figure 1, the robotic work tool(s) is exemplified by a robotic lawnmower, whereby the robotic work tool system may be a robotic lawnmower system or a system comprising a combinations of robotic work tools, one being a robotic lawnmower, but the teachings herein may also be applied to other robotic work tools adapted to operate within an operational area.

As is shown in figure 2 there may be obstacles such as houses, structures, trees to mention a few examples in the operational area 205. In figure 2 such obstacles are indicated and referenced H (as in house). There may also be one or more irregularities in the surface of the operational area, which are exemplified in figure 2 as two slopes SI, S2

It should be noted that any processing may be done in any, some or all of the controller 110 of the robotic work tool 100 and/or the controller 240A of the server 240 and that the processing may also be done partially in one controller 110/240A for supplemental processing in the other controller 110/240A. This is indicated in figure 2 A in that a dashed arrow is shown between the server 240and the robotic work tool 100 for indicating that information may be passed freely between them for (partial) processing.

The inventors have realized that by knowing - at least certain features of - the geometry of the robotic work tool 100, certain restraints can be put on the determination of the pose, based on the sensor input received from the deduced reckoning sensors 180, and possibly from the camera 185.

As discussed in the above, the scale is difficult to determine when the robotic work tool is operating on an irregular surface. As the scale is difficult to determine, so is the pose of the robotic work tool, and as the pose is difficult to determine, it will also be difficult to correlate the movements of the robotic work tool 100 to a map application. For example, if an incorrect orientation of the robotic work tool 100 is determined, any sensor input, for example relating to wheel turn counts, will result in a translation of the robotic work tool 100 in the wrong direction. Furthermore, and as the inventors have realized, an orientation in a direction pointing away from the surface, will result in the robotic work tool having a determined position that is impossible.

Figure 3 shows a situation where a robotic work tool 100 is navigating an irregular surface. The pose P of the robotic work tool 100 is to be determined based on the deduced reckoning sensors 180, and/or the camera 185, even when operating on an irregular surface.

As mentioned above, the inventors have realized that by knowing - at least some features of - the geometry of the robotic work tool 100, certain constraints may be put on the determinations. IN the example of figure 3, the two features of the geometry is to know the location of the wheels, WP1, WP2 of the wheels 130 of the robotic work tool 100. The constraints put on the determinations based on these geometry features are that the wheels have to be on the surface.

As discussed in the above, the robotic work tool 100 is arranged to operate according to a map application 120A. The map application 120A is in some embodiments generated by the robotic work tool 100 itself, in some embodiments downloaded from the server 240 or in some embodiments being generated, such as through V-SLAM.

As the controller 110 determines the pose P of the robotic work tool (the pose including the location as well as the orientation), the pose is correlated to the map application 120 A.

As mentioned in the above, the correlation is made based on the constraints. In order to be able to do this - utilizing only input form the deduced reckoning sensors 180 and/or possibly the (mono) camera 185, the inventors have proposed to enable the controller 110 to determine a curvature C at a current position or region in the map application 120A. The curvature C is in some embodiments determined by the controller 110 based on map features. The curvature C is in some embodiments determined by the controller 110 by being retrieved from the map application 120 A, whereby the curvature of a position or region is stored in the map application 120A.

As mentioned in the above, the pose P includes the position as well as the orientation of the robotic work tool 100. In some embodiments the position and the orientation is represented by a rotation matrix R, and a translation vector T from which the current orientation and position of a pose is determined based on a previous pose.

The robotic work tool 100 is thus enabled or configured to - for the purpose of locating the robotic work tool 100 in the map application 120A - estimate the pose of the robot by such a rotation matrix R and a translation vector T. The rotation matrix R representing a total rotation from some initial or previous pose orientation and the translation vector T representing a total translation relative to some initial or previous pose position.

The controller 110 is thus enabled to determine a pose of the robotic work tool, based on the curvature C of the current region that the robotic work tool 100 is in of the operational area 205 and by applying the constraints inferred by the geometry of the robotic work tool 100. In some embodiments the curvature is determined based on the Gauss-Bonnet theorem.

Figure 4 shows a schematic view of a graph of a determined curvature for a position or region of a map application. As discussed above, the robotic work tool is configured to determine the pose of the robotic work tool relative real-world world coordinates, and (as would be understood by a skilled person) by solving a system of equations verify if the constraints are met. In this example to verify that the wheels 130 of the robotic work tool 100 are tangent to the surface. The problem is relatively simple in the planar case, but its generalization to curved or irregular surfaces is rather involved. If the constraint, in this example the tangency of the wheels condition, is not satisfied the robotic work tool is configured to solve an optimization problem on pose refinement.

In order to solve this optimization problem, the controller 110 is configured to determine a rotation matrix R’ and a translation vector T’ that are close to R and T respectively, that satisfy the tangency condition and the nonholonomic constraint that arises from the motion on the surface as will be described later. This new estimate is then fed into a Kalman filter. In case of an accurate mapping of the environment such a correction is supposed to be correct on average and improve the estimate.

In one example, the distance from one (rear) wheel dl is 223 mm to a center line (referenced “axis” in figure 1 A) of the robotic work tool 100, the distance from another (front) wheel d2 is 150 mm to the center line of the robotic work tool 100. The distance a between the wheels’ axis is 331 mm and the radius r of a wheel is 119 mm. In this example, the points (referenced WP in figure 3) of contact of the wheels with the ground (or at least the lowest points on the wheels) are expressed in the a coordinate system of the robotic work tool 100 as pl = (0, dl, - r) for the right rear wheel, p2 = (0, -dl, -r) for the left rear wheel, p3 = (a, d2, -r) for the front right wheel, and p4 = (a, -d2, -r) for the front left wheel.

Assuming that the operation of the robotic work tool 100 is not in an irregular area, an initial pose is determined based on the sensor input from the deduced reckoning sensors 180, and/or the camera 185, hereafter referred to as the (visual) odometry. This is a fair assumption as the robotic work tool most likely starts to operate from a charging station that is located in a flat area. A relative rotation and translation are updated continuously or at (regular) intervals by the controller 110 during operation in the operational area 205.

In the following the relative rotation matrix from the initial position will be denoted R and the relative translation vector from the initial position will be denoted T. This enables the robotic work tool 100 to localize the pose in the real -world coordinates system or rather the coordinate system of the map application 120 A.

In addition, consecutive sensor input, such as camera or image frames, are in some embodiments utilized to create a 3 dimensional point cloud of matched feature points in the consecutive sensor input, or in consecutive image frames, when the scale of the translation T is known, it is possible to localize the point cloud in 3D space in global 3D coordinates, which will be referred to as world coordinate system in which the area of operation of the robotic work tool is most naturally represented, i.e. the coordinate system of the map application 120A. When a sufficiently large point cloud is collected it becomes possible to extrapolate the area by spline approximations.

The spline approximation enables more compact storage of the geometry of the operating area a where the representation of hundreds of points can be replaced by storing only of 6 to 10 coefficients for a patch. Such a representation gives on average a more curate representation of the geometry of the area in which the robot operates.

In situations where the operating environment of the robot is unchanging and the robot performs an action repetitively at the same location, this knowledge of the surface geometry can be used

It is also possible to boost on average the precision of the position estimation by enforcing the geometry constraints. Suppose that in global coordinates patch the point cloud is approximated by the equation

(X, Y, Z(X, Y) ). In addition, suppose that the total pose transformation of the robot is given by [R,T]. Then the coordinates of the wheels contact points in the real world are given by

Rewriting the components we obtain a system of equations

Z(Pl_x(R,T), Pl_y(R,T)) = Pl_z(R,T)

Z(P2_x(R,T), P2_y(R,T)) = P2_z(R,T)

Z(P3_x(R,T), P3_y(R,T)) = P3_z(R,T)

Z(P4_x(R,T), P4_y(R,T)) = P4_z(R,T)

We assume that the R,T that are computed by the visual odometry are pretty close to the optimum, we could therefore solve this system of equations by gradient descent method once the Rotation matrix R is parametrized by quaternions to enforce the constraint of the rotation matrix. We therefore solve the minimization problem by solving the minimization problem min f(R(q), T) where q and T are free parameters by gradient descend, where the initial point is R(q0), TO estimated by the visual odometry. The process should converge to the minimum fast as the visual odometry provides a good initial guess.

In order to impose or apply the various constraints, such as a motion constraint, the equation for the geodesics GD shown in figure 4, the estimated translation vector T, and the angles are estimated. For each patch of surface, we store the corresponding equation in a symbolic representation, as well as a numerical one. This allows to easily construct and solve the equations for the geodesic lines connecting the points which will be used to enforce the constraint related to the motion on the surface. This can be done by letting r(u,v) = (x(u,v), y(u,v), z(u,v)) be a regular parametrization of a patch of regular surface. In such a case we have two linearly independent tangent vectors:

The following coefficients are called the coefficients of the first fundamental form or the matric. The Christoffel symbols can then be computed by

Using the estimated initial and final points, we can find the unique shortest geodesic connecting the points. By solving numerically the geodesic equation

There is a theorem that guarantees the existence of such a geodesic. We then obtain the geodesic triangle as appears in the image above. This triangle is in fact a geodesic triangle and we use the Gauss-Bonnet theorem to impose a constraint that relates the angles of the triangle.

The Gauss-Bonnet theorem implies that for a geodesic triangle T on a smooth 2- dimentional Riemannian manifold holds Where alpha, beta, and gamma are the angle of the triangle, and K is the Gauss curvature that for the surface (X,Y, Z(X,Y)) can be computed by the formula

In general case we can also use the Christoffel symbols

Knowing the angles allows to refine the rotation and the translation. To find the third vertex of the triangle we compute the intersection point of the two geodesics at the initial positions which are normal to the direction of motion as described in figure 4B.

The angle theta can be inferred from the rotation matrix R. If we assume that on the average the base angle of the geodesic triangle will be equal, then the direction angle of the translation vector T is

This imposes an additional constraint on the translation vector T and relates it to the rotation and the total motion on the curved surface.

This is a natural generalization of the planar case which is a special case of this formula for K=0. Imposing this constraint and fusing this estimation with the visual odometry result using Kalman filter will improve on average the positioning accuracy.

Figure 5 shows a flowchart for a general method according to herein. The method is for use in a robotic work tool as in figure 1 A in a manner as discussed above in relation to figures 2, 3, 4A and 4B, namely for use in a robotic work tool system comprising a robotic work tool 100 arranged to operate in an operational area 205, the operational area 205 having a surface that is at least partially irregular, and the robotic work tool comprising controller 110, a memory 120, three or more wheels 130, deduced reckoning sensors 180, the memory 120 being configured to store a map application 120A and to store data regarding the positions WP of the wheels 130 on the robotic work tool 100, The method comprises a controller of the robotic work tool system receiving 510 sensor input from the deduced reckoning sensors 180 and determining 520 a curvature C for the surface of the operational area 205. The method also comprises determining 530 a pose based on the sensor input, wherein the pose is determined 540 based on an analysis of the sensor input, the analysis being constrained 540 by that the position of the three or more wheels being on the surface of the operational area, wherein the method further comprises determining 550 that constraints are met, such as that a wheel is on the surface taking into account the curvature (C) of the surface.

In some embodiments, and as discussed in the above, the robotic work tool may further comprise a visual odometry sensor being a camera 185, in which case the sensor input comprises at least one image. In such embodiments, the method comprises receiving image data 515 and determining the pose based on the at least one image, wherein the pose is determined based on an analysis of the image.

In some embodiments, and as discussed in the above, the method comprises determining the curvature based on Gauss-Bonnet theorem.

In some embodiments, and as discussed in the above, the robotic work tool is configured to map the area as it is traversed. In such embodiments the method comprises determining the curvature (C) for the surface of the operational area (205) based on the received sensor input in combination with mapping the operational area.

In some embodiments, and as also discussed in the above, the robotic work tool is also configured to retrieve the map from the memory and in such embodiments the method comprises determining the curvature (C) for the surface of the operational area 205 based on the map application 120 A. In some such embodiments the map application (120A) comprises indications of the curvature (C) and the controller simply determines the curvature based on the (pre-calculated) indications, which may have been calculated when making the map or prior to downloading the map.

In some such embodiments, the sensor input may also be - at least supplemental^ - stored in the memory. In such cases the method comprises receiving sensor input from the deduced reckoning sensors through having been stored in the memory 120 as part of the map application 120A stored as part of a mapping of the operational area 205. As discussed herein and assumed under figure 5, the determinations are made by the robotic work tool 100. In such embodiments the controller is the controller 110 of the robotic work tool 100.

In some embodiments, and as also discussed in the above, some processing may be done by the server and in such embodiments the controller is the controller 240A of the server 240.

And, in some embodiments the controller is the controller 110 of the robotic work tool 100 for performing some of the processing and the controller 240 A of the server 240 for performing some of the processing for a shared processing, where some tasks are performed by one controller, and the remaining tasks by the other controller.

Figure 6 shows a schematic view of a computer-readable medium 600 carrying computer instructions 610 that when loaded into and executed by a controller of a device, such as a robotic work tool 100 or a server 240, enables the device to implement the teachings herein. In the example of figure 6, the device will be exemplified as the robotic work tool 100. The computer-readable medium 600 may be tangible such as a hard drive or a flash memory, for example a USB memory stick or a cloud server. Alternatively, the computer-readable medium 600 may be intangible such as a signal carrying the computer instructions enabling the computer instructions to be downloaded through a network connection, such as an internet connection. In the example of figure 6, a computer-readable medium 600 is shown as being a hard drive or computer disc 600 carrying computer-readable computer instructions 610, being inserted in a computer disc reader 620. The computer disc reader 620 may be part of a cloud server 630 - or other server - or the computer disc reader 620 may be connected to a cloud server 630 - or other server. The cloud server 630 may be part of the internet or at least connected to the internet. The cloud server 630 may alternatively be connected through a proprietary or dedicated connection. In one example embodiment, the computer instructions are stored at a remote server 630 and be downloaded to the memory 120 of the robotic work tool 100 for being executed by the controller 110.

The computer disc reader 620 may also or alternatively be connected to (or possibly inserted into) a robotic work tool 100 for transferring the computer-readable computer instructions 610 to a controller of the robotic work tool 100 (presumably via a memory of the robotic work tool 100).

Figure 6 shows both the situation when a robotic work tool 100 receives the computer-readable computer instructions 610 via a server connection and the situation when another robotic work tool 100 receives the computer-readable computer instructions 610 through a wired interface. This enables for computer-readable computer instructions 610 being downloaded into a robotic work tool 100 thereby enabling the robotic work tool 100 to operate according to and implement the invention as disclosed herein.