Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONCRETE SURFACE MAPPING ROBOTS, SYSTEMS, AND METHODS FOR PROCESSING CONCRETE SURFACES
Document Type and Number:
WIPO Patent Application WO/2022/132022
Kind Code:
A1
Abstract:
A concrete surface processing machine (100) for processing a concrete surface, wherein the machine comprises means for self-locomotion and a control unit (110) arranged to control the means for self-locomotion, wherein the machine comprises one or more surface quality sensors connected to the control unit (110) and arranged to determine a local surface quality of the concrete surface, and wherein the control unit (110) is arranged to control a self-locomotion of the machine to determine a plurality of local surface quality values associated with respective different locations on the concrete surface.

Inventors:
JÖNSSON ANDREAS (SE)
STUHRMANN MIKAEL (SE)
LAWENIUS MATS (SE)
SANDSTRÖM PER (SE)
LINDEBERG MAGNUS (SE)
OTTOSSON LINUS (SE)
SVÄRD HENRIK (SE)
NYSTRÖM ROBERT (SE)
LEFF-HALLSTEIN JOAKIM (SE)
HUBER MARTIN (SE)
Application Number:
PCT/SE2021/051278
Publication Date:
June 23, 2022
Filing Date:
December 17, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUSQVARNA AB (SE)
International Classes:
E04F21/24; B24B7/18; G01B11/30; G01K13/00; G01N27/22; G01N33/38; G01S17/08; G01S17/48; G01S17/88; G05D1/02
Domestic Patent References:
WO2020102458A12020-05-22
WO2019176733A12019-09-19
WO2021206603A12021-10-14
Foreign References:
US20190154442A12019-05-23
US20050220541A12005-10-06
US20180004217A12018-01-04
JP2007197987A2007-08-09
DE10261787B32004-01-22
US20170076458A12017-03-16
Other References:
"Pattern Recognition : 5th Asian Conference, ACPR 2019, Auckland, New Zealand, November 26–29, 2019, Revised Selected Papers, Part II", vol. 1351, 1 January 1997, SPRINGER INTERNATIONAL PUBLISHING, Cham, ISBN: 978-3-030-41298-2, ISSN: 0302-9743, article DAUM M., DUDEK G.: "Out of the dark: Using shadows to reconstruct 3D surfaces", pages: 72 - 79, XP055951387, DOI: 10.1007/3-540-63930-6_106
DAUM M., DUDEK G.: "On 3-D surface reconstruction using shape from shadows", COMPUTER VISION AND PATTERN RECOGNITION, 1998. PROCEEDINGS. 1998 IEEE COMPUTER SOCIETY CONFERENCE ON SANTA BARBARA, CA, USA 23-25 JUNE 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 23 June 1998 (1998-06-23) - 25 June 1998 (1998-06-25), US , pages 461 - 468, XP010291610, ISBN: 978-0-8186-8497-5, DOI: 10.1109/CVPR.1998.698646
Download PDF:
Claims:
CLAIMS

1 . A concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) for processing a concrete surface (310), wherein the machine comprises means for self-locomotion and a control unit (1 10) arranged to control the means for self-locomotion, wherein the machine comprises one or more surface quality sensors (710, 720) connected to the control unit (110) and arranged to determine a local surface quality of the concrete surface (310), wherein the control unit (1 10) is arranged to control a self-locomotion of the machine to determine a plurality of local surface quality values associated with respective different locations on the concrete surface (310), and wherein the one or more surface quality sensors comprises a three- dimensional, 3D, camera sensor.

2. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to claim 1 , wherein the local surface quality is indicative of the presence of scratch marks, cracks in the surface, and/or a level of surface gloss.

3. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the one or more surface quality sensors comprises a radar sensor and an inertial measurement unit, IMU, wherein the control unit (1 10) is arranged to compensate an output signal from the radar sensor for vibration in the machine based on an output signal from the IMU.

4. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the one or more surface quality sensors comprises a laser scanner.

5. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the one or more surface quality sensors comprises a gloss sensor.

6. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the control unit (1 10) is arranged to compare the plurality of local surface quality values to a preconfigured specification, and to output a validation result based on the comparison.

7. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, further comprising a particle sensor arranged to determine an amount of particles in the air surrounding the machine, wherein the control unit (1 10) is arranged to trigger generation of a warning signal in case the amount of particles exceeds a preconfigured threshold value.

8. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, further comprising a gas sensor, such as a carbon dioxide sensor arranged to determine an amount of carbon dioxide in the air surrounding the machine, wherein the control unit (1 10) is arranged to trigger generation of a warning signal in case the amount of carbon dioxide exceeds a preconfigured threshold value.

9. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, further comprising a moisture sensor arranged to determine a moisture level of the concrete surface (310).

10. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, further comprising a temperature sensor arranged to determine a temperature of the concrete surface (310).

11. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any of claims 9 or 10, wherein the control unit (1 10) is arranged to determine a maturity level of the concrete surface in dependence of the moisture level and/or in dependence of the temperature of the concrete surface (310).

12. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising a durometer and/or a device arranged to form a scratch in the concrete surface, arranged to determine a surface hardness level of the concrete surface (310).

13. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising a radar transceiver, wherein the control unit (1 10) is arranged to detect cracks and pores in the concrete surface (310) based on an output signal from the radar transceiver.

14. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the control unit (1 10) is arranged to generate a desired tool selection based on the determined local surface quality values.

15. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising a suction device (920) arranged to collect dust from the concrete surface (310), and a dust container (910) for holding an amount of collected dust.

16. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the 3D camera sensor is arranged closer than about 30 cm from the concrete surface (310), and preferably closer than 20 cm from the concrete surface (310), in a normal operating position of the concrete surface processing machine.

17. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the 3D camera sensor comprises a plurality of spatially separated light sources and one or more image sensors.

18. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to claim 17, wherein the 3D camera sensor comprises a plurality of image sensors arranged for stereoscopic vision.

19. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any of claims 17-18, wherein the control unit (1 10) is arranged to control the light sources and the at least one image sensor in a shape from shadow, SFS, process to generate a 3D representation of a section of the concrete surface (300).

20. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any of claims 17-19, wherein the control unit (1 10) is arranged to generate a plurality of 3D representations of the section of the concrete surface (300) by a plurality of image sensors, where the control unit is arranged to perform a stereoscopic procedure to determine a 3D representation of the concrete surface comprising depth information.

21. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any of claims 17-20, wherein the control unit (1 10) is arranged to perform a plurality of SFS processes and corresponding stereoscopic process for each elevation angle out of a predetermined plurality of elevation angles (cp).

22. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, wherein the 3D camera sensor comprises an image sensor with a resolution at or above 13 megapixels, MP.

23. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising a pressurized gas system for dispensing pressurized gas, such as air or carbon dioxide, into an interior of the 3D camera sensor and/or onto the concrete surface (300).

24. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising a pressurized gas system for dispensing pressurized gas, such as air or carbon dioxide, onto an image sensor of the 3D camera sensor.

25. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising an on-board data storage device for storing image data captured by the 3D camera sensor.

26. The concrete surface processing machine (100, 600, 700, 900, 1 100, 1200) according to any previous claim, comprising a light blocking skirt or cover arranged extending over the camera sensor down to the base plane (101 ) to enclose an image sensor and/or a light source of the 3D camera sensor.

27. A concrete surface processing system (800, 1000) comprising a plurality of concrete surface processing machines according to any previous claim.

28. The concrete surface processing system (800, 1000) according to claim 27, further comprising a remote device (360) arranged communicatively coupled to at least one of the concrete surface processing machines.

29. The concrete surface processing system (800, 1000) according to claim 27 or 28, wherein the concrete surface processing machines are arranged to exchange the determined local surface quality values with each other over wireless links (820).

30. A method for inspecting a concrete surface (310), comprising configuring a three-dimensional, 3D, camera sensor comprising a plurality of spatially separated light sources (1910) and a plurality of image sensors (1920), performing a shape-from-shadow, SFS, process based on image data captured by the image sensors, and performing a stereo matching process based on an output of the SFS process.

31 . A method for processing a concrete surface (310), comprising configuring (Sc1 ) a concrete surface processing machine (100, 600, 700, 900, 1100) for processing the concrete surface (310), wherein the machine comprises means for self-locomotion and a control unit (1 10) arranged to control the means for self-locomotion, connecting (Sc2) one or more surface quality sensors (710, 720) to the control unit (1 10), wherein the surface quality sensors are arranged to determine a local surface quality of the concrete surface (310), wherein the one or more surface quality sensors comprises a three-dimensional, 3D, camera sensor, and controlling (Sc3) self-locomotion of the machine by the control unit (110) to determine a plurality of local surface quality values associated with respective different locations on the concrete surface (310).

Description:
TITLE

CONCRETE SURFACE MAPPING ROBOTS, SYSTEMS, AND METHODS FOR PROCESSING CONCRETE SURFACES

TECHNICAL FIELD

The present disclosure relates to machines for processing concrete and stone surfaces, such as troweling machines, floor grinders and vacuum cleaners, and also to surface inspection robots. The disclosed machines comprise means for self-locomotion and are suitable for autonomous or remote controlled operation. At least some of the machines disclosed herein are also arranged for autonomous mapping of a concrete surface.

BACKGROUND

Concrete surfaces are commonly used for flooring in both domestic and industrial facilities. The sizes of concrete surface floors range from a few square meters for a domestic garage floor to thousands of square meters in larger industrial facilities. Concrete surfaces offer a cost efficient and durable flooring alternative and have therefore gained popularity over recent years.

Concrete surface preparation is performed in steps. After the concrete is poured, the surface is first troweled and then grinded flat after the surface has reached a sufficient level of maturity. A matured concrete surface can then be polished to a glossy finish if desired. A floor grinder and/or a power trowel machine can be used to process the concrete surface efficiently.

Increased efficiency can be obtained if the different processing steps are automated by the use of autonomous or semi-autonomous concrete surface processing machines. This type of processing normally requires some type of map of the surface. Reliable, efficient, and cost effective techniques for mapping and also inspecting a concrete surface are desired. US20180004217 A1 discloses a method for mapping an area for processing by autonomous robot vehicles but does not fully solve the challenges involved.

W020201 02458 A1 shows an autonomous power trowel machine. The machine comprises an advanced sensor arrangement configured to monitor machine surroundings, including camera sensors arranged pointing at the concrete surface to detect blemishes on the concrete surface, but this machine also does not fully solve the challenges involved.

SUMMARY

It is an object of the present disclosure to provide improved concrete surface processing machines arranged for automated or remote controlled processing of a concrete surface.

This object is obtained by a concrete surface processing machine for processing a concrete surface. The machine comprises means for selflocomotion and a control unit arranged to control the means for selflocomotion. The machine also comprises one or more surface quality sensors connected to the control unit and arranged to determine a local surface quality of the concrete surface. The control unit is arranged to control a selflocomotion of the machine to determine a plurality of local surface quality values associated with respective different locations on the concrete surface. The one or more surface quality sensors comprise a three-dimensional (3D) camera sensor arranged to acquire a three-dimensional high resolution representation of the concrete surface, from which a surface quality of the surface can be inferred.

Thus, there is provided a machine which is able to move across a concrete surface and determine local surface quality at one or more locations across the surface. This means that the machine can be used as a surface inspection robot.

According to aspects, the local surface quality is indicative of the presence of scratch marks, cracks in the surface, and/or a level of surface gloss. Thus, the machine can be used to inspect a concrete surface after grinding and/or polishing operations to determine is a desired result has been achieved or if further concrete surface processing is required. The machine can also be used to inspect a concrete surface prior to initiating a concrete processing operation in order to plan the operation.

According to aspects, the one or more surface quality sensors comprises a three-dimensional (3D) camera sensor. A 3D camera may be obtained with high resolution to detect also very small scratch marks and other defects in a concrete surface. A high resolution image capture device used in a 3D camera arrangement may, e.g., have a resolution above 10 mega pixels (MP), such as about 13 MP. The 3D camera sensor is also preferably arrangeable relatively close to the concrete surface, such as within 30 cm from the surface, and preferably closer than 20 cm from the concrete surface.

The 3D camera is advantageously combined with a system of light sources that can be controlled from a control unit, in order to perform a surface-from- shadow (SFS) or a surface-from-shading procedure to determine a 3D structure of the surface. The output from the SFS procedure can be further refined by means of stereoscopic vision, as will be detailed below.

The 3D camera optionally also comprises a light source arrangement configured to illuminate a part of the concrete surface from a controllable elevation angle, and from different directions. This type of controllable light source allows for adapting the operation of the 3D camera-based surface inspection to different types of surfaces and to different types of defects in the concrete surface.

According to aspects, the one or more surface quality sensors also comprises a radar sensor and an inertial measurement unit (IMU) and the control unit is arranged to compensate an output signal from the radar sensor for vibration in the machine based on an output signal from the IMU. A radar sensor may not be very useful on its own if mounted on a concrete surface processing machine since the concrete surface processing machine often vibrates and moves around in an unpredictable manner. However, the IMU can be used to measure the vibrations, which data can then be used to compensate the radar signal for the vibration. This way a radar with performance sufficient to detect also very small defects in the concrete surface can be obtained at a reasonable cost.

According to aspects, the one or more surface quality sensors comprises a laser scanner. Laser scanners are associated with high accuracy, which is an advantage.

According to aspects, the one or more surface quality sensors comprises a gloss sensor. This way the concrete surface processing machine can also measure gloss over the surface, e.g., to verify that a polishing operation over the surface has resulted in a surface which meets specifications. If a section of the surface is found which does not have the required level of gloss (be it too high or too low gloss level), this section can be tagged for further processing at a later point in time.

According to aspects, the concrete surface processing machine comprises a durometer, and/or a device arranged to form a scratch or mark in the concrete surface, arranged to determine a surface hardness level of the concrete surface. It is an advantage to know the hardness level of a concrete surface since this simplifies planning of when to start different concrete surface processing operations.

Generally, a radar sensor, a laser scanner, a durometer and/or a gloss sensor can be used with advantage as a complement to the 3D camera when inspecting the concrete surface.

According to aspects, the control unit is arranged to compare the plurality of local surface quality values to a pre-configured specification, and to output a validation result based on the comparison. This means that the concrete surface processing machine functions as a verification device which is able to provide efficient verification or validation of a concrete surface processing operation.

According to aspects, the concrete surface processing machine further comprises a particle sensor arranged to determine an amount of particles in the air surrounding the machine and the control unit is arranged to trigger generation of a warning signal in case the amount of particles exceeds a preconfigured threshold value. Thus, the function of an air quality measurement and warning device is obtained, which is an advantage.

According to aspects, the concrete surface processing machine further comprises a gas sensor, such as a carbon dioxide sensor arranged to determine an amount of carbon dioxide in the air surrounding the machine, and the control unit is arranged to trigger generation of a warning signal in case the amount of carbon dioxide exceeds a preconfigured threshold value. It is an advantage that the machine provides an integrated gas sensor in an efficient manner.

According to aspects, the concrete surface processing machine further comprises a moisture sensor arranged to determine a moisture level of the concrete surface and/or a temperature sensor arranged to determine a temperature of the concrete surface. Having knowledge of the moisture and/or temperature allows an operator or an automated system to determine a maturity level of the concrete surface, which is helpful in order to plan different concrete processing operations which are associated with a maturity window, i.e., the operation is preferably performed while the concrete is not too soft and not too hard. Having knowledge of the moisture level also simplifies the determination of a suitable time to apply certain chemicals to the surface, which chemicals require a certain concrete surface moisture level in order to be effective.

According to aspects, the control unit is arranged to generate a desired tool selection based on the determined local surface quality values. This provides for a more efficient concrete processing operation since the operator is assisted in the tool selection. The tool selection support may also result in a better end result due to more correct selection of tools. Also, the tool selection support may inform an operator about the availability of suitable tools which the operator was not aware of.

According to aspects, the concrete surface processing machine comprises a suction device arranged to collect dust from the concrete surface, and a dust container for holding an amount of collected dust. Thus, advantageously, a dust extractor having a surface inspection function is provided.

There is also disclosed herein concrete surface processing systems comprising a plurality of concrete surface processing machines according to the above, and optionally also a remote device arranged communicatively coupled to at least one of the concrete surface processing machines.

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, apparatus, component, means, step, etc." are to be interpreted openly as referring to at least one instance of the element, apparatus, 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. Further features of, and advantages with, the present invention will become apparent when studying the appended claims and the following description. The skilled person realizes that different features of the present invention may be combined to create embodiments other than those described in the following, without departing from the scope of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will now be described in more detail with reference to the appended drawings, where

Figures 1 A-D show an example self-propelled floor grinding machine;

Figure 2 shows another example self-propelled floor grinding machine;

Figure 3 schematically illustrates a mapping system;

Figures 4-5 illustrate a principle of machine locomotion;

Figure 6 shows an example floor grinding machine;

Figure 7 schematically illustrates a machine for surface inspection;

Figure 8 shows a swarm of concrete surface processing machines; Figure 9 illustrates a machine with dust collecting capability;

Figure 10 shows a swarm of concrete surface processing machines;

Figure 1 1 illustrates a dust collecting machine;

Figure 12 schematically illustrates a surface inspection system;

Figures 13A-B show example concrete surface processing control devices;

Figures 14 illustrates a sequence of concrete processing operations;

Figures 15A-C are flow charts illustrating methods;

Figure 16 schematically illustrates a control unit;

Figure 17 shows a computer program product;

Figure 18 schematically illustrates an image sensor and a light source;

Figures 19-21 illustrate an example 3D camera sensor; and

Figure 22 is a flow chart illustrating a method for surface inspection.

DETAILED DESCRIPTION

The invention will now be described more fully hereinafter with reference to the accompanying drawings, in which certain aspects 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 and aspects set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout the description.

It is to be understood that the present invention is not limited to the embodiments described herein and illustrated in the drawings; rather, the skilled person will recognize that many changes and modifications may be made within the scope of the appended claims.

Figures 1A-D illustrate a machine 100 for processing concrete surfaces. The machine is supported on the concrete surface by four rotatable tool heads. Each tool head comprises a tool such as a grinding disc or the like, which is held by a tool carrier 150. This particular machine comprises four tool carriers 150 arranged in a square configuration about a machine centroid C, as illustrated in Figure 1 C. An example machine 600 comprising three tool carriers will be discussed in more detail below in connection to Figures 6, and more than four tool carriers can also be used. The tool heads arranged to process the concrete surface extend in a base plane 101 of the machine 100. This base plane coincides with the concrete surface to be processed during operation of the machine 100. In other words, the base plane essentially constitutes the bottom surface of the machine 100.

This particular machine 100 differs from known machines in that it is relatively small in both size and weight and does not comprise any manual control means such as a manual control handle or the like which an operator can use to steer the machine. Instead, this machine is self-propelled and comprises an on-board control unit 1 10, which control the various operations of the machine without an operator having to go near the machine. The control unit 1 10 will be discussed in more detail below in connection to Figure 16. An example machine, like the machine 100 illustrated in Figures 1A-D, may be associated with a total weight less than 30kg, and preferably no more than 25kg. The machine footprint, i.e., the part of the surface 310 covered by the grinder, is comprised in a square of dimensions 100cm by 100cm, and preferably no more than 70cm by 70 cm. The machine 100 is light enough to be carried by an operator, e.g., by the handles 170 arranged on the cover body 140 of the machine. This means that the machine is very easy to deploy and can be moved between work-sites in a convenient manner, e.g., in the back of a truck of even a small car.

Although the surface inspection techniques discussed herein are particularly suitable for smaller sized robots, such as robots supported on broad wheels able to traverse also a relatively immature concrete surface, the techniques and sensor systems are in no way limited to such machines. Rather, the techniques and sensor systems discussed herein can also be mounted on larger concrete surface processing machines, such as traditional floor grinders and power trowels.

A concrete surface processing machine 1200 in the form of an inspection robot carried on wheels will be discussed in more detail below in connection to Figure 12. This type of robot may advantageously be used as a dedicated inspection robot, or a combined mapping and inspection robot.

The machines discussed herein may be used for any of smoothing the concrete surface, troweling the concrete surface, grinding the concrete surface, and/or polishing the concrete surface. Thus, the machine 100 with the tool carriers 150 can be used for different types of concrete processing operations, such as troweling and grinding, by a convenient replacement of the tools on the rotatable tool carriers 150.

The machine 100 shown in Figures 1A-C may conveniently be equipped for floor grinding or floor polishing. The tool carriers 150 then hold tools arranged for abrasive operation, such as diamond tools for abrading the concrete surface. The abrasive tools can be of varying grit for different operations, i.e., course grit for leveling and fine grit for polishing. These tools may also be referred to as grinding heads.

Tool carriers holding tools for a troweling operation, i.e., troweling blades 160 are shown in Figure 1 D. Similar tool carriers may be used to hold brushes on a dust collecting machine. Machines with dust collecting ability will be discussed below in connection to Figure 9.

In general, a tool carrier is a structure arranged to hold a concrete processing tool such as a grinding disc or a set of troweling blades. A tool carrier with an attached tool may be referred to as a tool head. A grinding head is a tool head arranged for grinding or polishing a concrete surface, while a troweling head is a tool head arranged for a troweling operation.

The tool carriers 150 can also be equipped with soft or resilient discs, such as rubber discs, which are designed to provide self-locomotion with a minimum degree of damage to the concrete surface. These transportation mode discs can be fitted to the machine in case the machine needs to traverse a sensitive concrete surface which has not fully matured yet. The radius of the discs may be configured to be larger than the radius of the grinding tools, to reduce impact to the concrete surface.

The transportation mode discs can also be used by the machine for surveying a concrete surface, i.e., by using one or more sensors configured to measure one or more properties of the concrete surface, such as any of a radar sensor, a vision-based sensor, and/or a lidar sensor configured to detect scratch marks, uneven surface segments, discoloration, or damage in the concrete surface such as cracks. The one or more sensors may also comprise a surface temperature sensor and/or a moisture sensor, where the control unit is arranged to determine a degree of concrete maturity associated with a segment of the concrete surface. The concrete maturity level can, e.g., be determined from a look-up table indexed by temperature and moisture level, or just temperature or moisture. Normally, the concrete maturity level can be determined with sufficient accuracy from temperature alone, although moisture data may improve on the estimation accuracy in some case. These applications will be discussed in more detail below.

Data from a moisture sensor may also be useful in determining when to apply chemicals to the concrete surface, e.g., to prevent formation of coloring differences over the surface. Some forms of polishing operations require that the concrete surface is associated with a moisture level below a threshold value. For instance, the residual moisture of the concrete surface may be required to be below about 4 CM%, otherwise coloring differences could appear later. CM stands for “Carbide Method”. This is one of several scales of measurement used when measuring moisture in concrete.

The machine 100 optionally comprises a cover body 140 with one or more proximity sensors and/or impact sensors configured to detect when the cover body approaches and/or comes into contact with an obstacle. The machine control unit 1 10 may then be arranged to perform a situation avoidance maneuver in response to the one or more sensors detecting proximity and/or contact with the obstacle. This sensory system can be configured to halt the machine when it comes into contact with an obstacle, or even before it actually hits the obstacle. Pressure sensors can be used to detect when the body hits an obstacle, while radar sensors and/or ultrasound sensors can be arranged to detect when an obstacle is about to be hit by the machine. The situation avoidance maneuver may comprise bringing the grinder to a stop, or possibly executing an avoidance maneuver to avoid colliding with the obstacle.

The machine 100 is preferably although not necessarily battery powered or powered by one or more fuel cells. Electrical connectors 160 can be arranged on the top side of the machine for convenient access by a battery charger cable.

For larger jobs, i.e., to process larger surfaces, a plurality of machines 100 can be used in a floor grinding system. This type of system will be discussed in more detail below in connection to Figures 8 and 10.

The machines discussed herein comprise various features and abilities. Among these features is an ability to determine a height of the concrete surface on which the machine is currently supported, by a relatively low cost linear photo sensor. This allows the machine, or an external control unit connected to the machine, to generate a topology map over the concrete surface. This topology map indicates, e.g., sections of the concrete surface which are higher or lower than the average surface height.

Another interesting ability is a simultaneous localization and mapping function. A key component of this feature is a laser range finder arranged pointing in a fixed direction from the machine. By rotating the entire machine about an axle normal to the concrete surface, an omnidirectional image of the surroundings is generated. The data obtained from this relatively low cost sensor is similar to that obtained from a 360 degree lidar scanner, although this is a much more expensive sensor.

A third feature of the machines disclosed herein is a concrete surface inspection feature. This feature allows a machine to inspect the concrete surface and to determine one or more quality parameters of the surface, such as if the surface comprises scratch marks or cracks. A fourth feature of the concrete surface processing machines discussed herein is a dust collecting ability. By arranging suction devices and dust containers on the machine, an ability to collect dust from the concrete surface is obtained.

A fifth feature of the concrete surface processing machines discussed herein is the ability to dispense a mist of, e.g., water, in connection to the concrete surface processing. The purpose of this feature is to keep the abrasive tools cool and to prevent over-heating which may result in tool glazing and inefficient concrete processing.

It is appreciated that all of these abilities may be freely combined in the concrete surface processing machine. Thus, although some features are discussed in combination, this does not mean that they cannot be used separately, as will be readily understood by the skilled person.

The machines discussed herein may be powered by one or more rechargeable batteries configured to power one or more electric machines on the machine 100. These batteries may advantageously be charged using an inductive charging circuit arranged to interface with an external power source and to recharge the one or more rechargeable batteries. For instance, a coil may be embedded directly into the concrete surface which is to be processed by the machine. An example of such a power source 840 will be discussed in more detail below in connection to Figure 8. The machine can then access the power source as needed, much like a robotic lawn mower.

The concrete surface processing machines disclosed herein are arranged to be supported on the concrete surface by one or more support elements which may be tool carriers 150 or wheels 11 10 as will be discussed below in connection to Figure 11 and Figure 12. The support elements extend in a base plane 101 of the machine parallel to the concrete surface 310.

The concrete surface processing machines may comprise a control unit 1 10 connected to at least one linear photo sensor 130 or linear image sensor extending transversally to the base plane 101. This linear photo sensor is arranged to register an incoming laser beam, such as an incoming laser beam from a rotary laser. Rotary lasers are devices arranged to generate a laser beam parallel to some reference surface. Rotary lasers which generate horizontally aligned laser beams are often referred to as laser levels.

Basically, a linear photo sensor is a vertical array of photo sensors. A laser beam hitting a photo sensor in the array will trigger generation of a signal from that photo sensor. A control unit 1 10 connected to the linear photo sensor can therefore detect the height at which a laser beam strikes the linear photo sensor. A linear photo sensor may also comprise photo sensors arranged in matrix configuration, i.e., in two or more adjacent arrays of photo sensing elements. Such as array may not only detect the height at which an incoming laser beam strikes the array but may potentially also detect a tilt of the machine relative to, e.g., the horizontal plane.

With reference to Figure 1A, the control unit 110 is arranged to detect a height h of an incoming laser beam H relative to the base plane 101 , or relative to some configured target height value, based on a point of incidence of the incoming laser beam H on the linear photo sensor 130. Rotary lasers are commonly used to establish a horizontal frame of reference at, e.g., construction sites and the like. The rotary laser is deployed at a surface and aligned to transmit a rotating laser beam parallel to the surface. The combination of the linear photo sensor 130 and the control unit 1 10 arranged to detect the height h enables the machine 100 to determine a surface topology of the concrete surface. By moving around on the concrete surface and measuring the height h, a topology map can be created. This topology map can then be used to plan or control concrete surface processing in order to arrive at a desired result, such as a flat concrete surface, or a concrete surface which has been grinded down by an equal amount over the surface.

According to aspects, the control unit 110 is arranged to average the detected height h over time to determine an average detected height. The control unit 110 may also receive height data from other machines located on the same concrete surface. For instance, a swarm of concrete surface processing machines (see Figure 8 discussed below) may be used to process the concrete surface. These machines may then collaborate to generate a topology map of the concrete surface with higher accuracy due to the averaging. This averaging of course requires that the height data be timestamped and tagged with location. The time stamp can be used to weight the height data, where older data items are given less weight, since it becomes more likely that the section of surface has been processed by other machines since the height measurement was made.

One or more linear photo sensors 130 may be arranged on a part of the machine extending upwards from the concrete surface, as shown in Figure 1 A. Alternatively, or as a complement, one or more of the linear photo sensors 130 may also be arranged integrated with the cover 140, as illustrated in Figure 2.

The concrete surface processing machine illustrated in Figure 2 comprises two linear photo sensors arranged separated along a line parallel to the base plane 101. The control unit 1 10 can then be arranged to determine a tilt of the machine with respect to the concrete surface based on a difference in the detected height h of the incoming laser beam H at the two linear photo sensors.

With reference to Figure 1 B, the concrete surface processing machine 100 may also be arranged to rotate R about an axis C normal to the base plane 101 by the one or more support elements 150, 1 1 10. The axis C may be a central axis of the machine 100, or some other axis. An eccentric rotation pattern is of course also possible. If the control unit 1 10 is connected to at least one laser range finder 120 arranged pointing in a fixed direction from the concrete surface processing machine, a function similar to that of a 360 degree lidar device is obtained, albeit at a much lower cost. As the machine 100 rotates about the axis C, the laser range finder scans the surrounding environment and determines the range to the nearest object in all directions. Thus, an “image” or representation of the surrounding environment is obtained. The control unit 1 10 can then be arranged to determine a boundary geometry 320 of the concrete surface 310 based on a sequence of ranges obtained by the laser range finder 120. It is appreciated that each complete revolution by the machine generates a sequence of ranges, which sequence of ranges will repeat itself if the machine remains at a given location or will shift slightly between full rotations if the machine moves in some direction. The control unit 110 may perform simultaneous localization and mapping (SLAM) based on the sequence of rangers obtained from the laser range finder. Different SLAM methods will be discussed in more detail below in connection to Figure 3.

The concrete surface processing machine 100 may also comprise a downward looking sensor (not shown in Figures 1 A-D), such as a downward looking radar transceiver or laser rangefinder, arranged to detect a distance to the concrete surface 310 along a normal vector to the concrete surface. This downward looking rangefinder essentially measures the height of the support elements 150 mounted on the machine. If the machine is used for grinding, then the detected range by the downward looking rangefinder will decrease over time as the grinding tools get worn down. The control unit 1 10 may therefore adjust the detected height h of the concrete surface based on the detected distance to the concrete surface 310. Thus, tool type and tool wear will have little or no effect on the detected height h, which means that a topology map over the concrete surface 310 will be generated independently of tool wear and thus with higher accuracy compared to the case where tool wear is not accounted for. It is also appreciated that this sensor can be used to adjust the determined height for different types of tools. There is no longer a need to configure an exact tool height a-priori since the control unit 1 10 can use the data from the downward looking sensor to compensate for variation in tool height.

According to an example use-case, the machine 100 may first be calibrated without tools attached by placing it on the concrete surface 310. The downward looking sensor then determines the distance to the surface without tools attached. The height of the tool, after it has been attached, can then be determined based on a difference in height detected by the sensor.

The control unit 1 10 is optionally also arranged to trigger generation of a signal indicating a tool wear in dependence of the detected distance to the concrete surface 310. Thus, by constantly monitoring the distance from the sensor to the concrete surface, the control unit can detect when a given tool has been worn down enough to merit tool replacement. This feature is particularly useful when grinding concrete surfaces using abrasive tools. The control unit 1 10 may, e.g., trigger transmission of a tool replacement notification signal to a remote device, such as a remote control device of other type of wireless device. Examples of such devices 1310, 1320 are shown in Figures 13A and 13B. Alternatively, or in addition to the detected distance, the control unit 1 10 comprises a timer which measures to total accumulated grinding time for a given tool. The control unit can determine when a given tool has been worn down enough to merit tool replacement by comparing the timer value to a preconfigured usage time associated with a given tool.

The machine 100 may comprise a plurality of laser range finders 120 arranged pointing in different respective directions from the concrete surface processing machine (four laser range finders 120 are shown in Figure 1 B), or just a single laser range finder (as illustrated in Figure 3, discussed below). The advantage of having more than one laser range finder is, of course, that more distance measurements can be made, which allows a greater degree of averaging and therefore also an increased accuracy in the range estimates. The range finders are preferably arranged integrated in the cover body 140, as shown in Figure 1A. However, one or more laser range finders can also be arranged in, e.g., a central housing extending upwards from the machine as shown in Figure 2. It is appreciated that the laser range finders can be mounted in various locations on the machine 100.

Any of the machines disclosed herein may comprise more than one range finder, and in particular two or more different types of laser range finders. For instance, a first laser range finder in the plurality of laser range finders may be configured for detecting range at a higher resolution compared to a second laser range finder in the plurality of laser range finders. The first laser range finder in the plurality of laser range finders may perhaps be configured for detecting range at a shorter distance compared to a second laser range finder in the plurality of laser range finders, but in return provide range data with higher resolution. This way high resolution close range distance data can be obtained from some of the laser range finders, while other range finders provide a lower resolution but increased range. Optionally, one laser range finder in the plurality of laser range finders is configured in a different directional attitude compared to another laser range finder in the plurality of laser range finders 120. This way a better view of the surrounding environment can be obtained in the altitude dimension, i.e., in the dimension normal to the concrete surface. Some obstacles may, for instance, be protruding from a wall, where they cannot be seen by a laser range finder directed parallel to the concrete surface and close to the surface. However, a laser range finder directed with an attitude, i.e., pointing with an angle upwards from the concrete surface may be able to detect the obstacle. It is appreciated that obstacles located distanced from the concrete surface by a distance larger than a total height of the machine 100 will not present an obstacle to the machine. However, such obstacles may still be of interest if a map of the area is generated.

Optionally, at least one laser range finder 120 is arranged to scan in an elevation direction. This means that the laser range finder has an attitude which changes over time, preferably rapidly, to generate distance data over a range of attitude angles.

Figure 3 shows an example application 300 of a concrete surface processing machine 100 which is processing a concrete surface 310. The surface is delimited by a boundary 320, this boundary can be a wall or some other type of structure, or it can be an imaginary boundary marked by boundary markers, such as laser reflectors (mirrors), radar reflectors, visual markers, or other types of markers. Thus, an operator can define the area to be mapped and processed, or a natural boundary like the walls of a room can be used to delimit the area.

A rotary laser 330 is deployed on the concrete surface. This rotary laser generates a laser beam H which impinges on the machine 100. Thus, the machine 100 may determine a height of the concrete surface section where the machine is located by means of the linear photo sensor 130 discussed above. The height of the concrete surface 310 varies as illustrated by the equidistance lines 340, i.e., the surface is not perfectly flat. Some obstacles 350 are also present on the surface. The machines disclosed herein can be used to generate a topology map of the surface, including detecting the boundary geometry 320 and the differences in height 340 over the surface. This topology map can then be used by an operator to plan a concrete processing operation, and/or to evaluate the result of an already performed concrete processing operation. As will be discussed in more detail below, the concrete surface processing machine disclosed herein can also be used to evaluate a quality of the concrete surface, such as if the concrete surface comprises scratch marks, cracks, pores, or if the gloss is not according to specification. It is appreciated that obstacles, such as crates and other temporarily deployed tools, form part of the boundary geometry.

According to some aspects, the control unit 110 is arranged to obtain a position of the machine on the surface, and to associate the height h to the position on the surface. This data essentially constitutes a topology map of the surface. The topology map data can either be used internally by the machine 100, and it can also be communicated to a remote device 360, such as one of the wireless devices 1310, 1320 illustrated in Figures 13A and 13B.

According to some aspects, the control unit 1 10 is arranged to transmit topology information comprising the height h to a remote device 360, or to some other type of wireless device 1310, 1320 like those illustrated in Figures 13A and 13B.

One interesting application where the machine 100 can be applied with advantage is an autonomous concrete processing operation. The control unit 110 is then arranged to control a self-locomotion of the machine based on a difference between the detected height h and a desired height over the surface. Thus, as the machine 100 moves over the surface which can be either autonomously mapped using the laser range finders or described by a preconfigured map accessible from the control unit 110, the current height h of the surface is detected and compared to the desired surface height. If there is a discrepancy between the current height and the desired height, the machine will process the surface until this discrepancy is reduced to a value below a tolerance setting. The concrete processing machine can then move across the surface and process it until a desired result has been obtained.

The desired height may be an absolute pre-configured height over some horizontal reference plane, in which case the machine 100 will process the surface until it is absolutely flat, or at least until it has a flatness below the tolerance level. Alternatively, the desired height is a relative height determined in dependence of an initially detected height. This means that a fixed amount of material is to be removed from the concrete surface. For instance, if the concrete processing operation targets a glossy finish, but total flatness is not so important, then the machine can be configured to remove, say 1 -5mm of material from the surface, where about 2-3mm may be a preferred value.

There are several ways in which the control unit 1 10 can establish a map of the concrete surface, comprising information about the boundary 320 and optionally also of any obstacles 350 present in the area.

According to some aspects, the control unit 1 10 comprises means for positioning the machine on the surface, such as a GPS or some form of indoor positioning system, e.g., based on radio beacons or lasers. In other words, the control unit 110 is optionally arranged to obtain a position of the machine on the surface 310, and to associate each determined range (or each determined sequence of ranges if the machine remains stationary while rotating) to a respective position of the machine on the surface. The machine may further comprise any of an electronic compass, a gyroscope and/or an inertial measurement unit, IMU, arranged to determine an angle of rotation of the concrete surface processing machine, wherein the control unit 1 10 is arranged to associate each determined range by the laser range finder to a respective angle of rotation of the concrete surface processing machine. Thus, the control unit is able to associate each range measurement by the laser range finder to an angle originating from a location on the surface, which means that the control unit 1 10 can easily establish a map over the surface. The control unit 1 10 is optionally also arranged to determine a rotation velocity of the machine based on a frequency analysis of the determined ranges from the range finder. This is possible since the sequences of determined ranges will exhibit a repetitive pattern as the machine completes full rotations about the axle of rotation. By applying a frequency analysis to the determined range data, such as a Fast Fourier T ransform or the like, the repetition frequency can be determined and consequently a rotational velocity of the machine 100 can be determined from the identified repetition frequency.

More advanced methods for simultaneous localization and mapping are known.

According to some optional aspects, the machine comprises one or more vision-based sensors. The control unit 1 10 can then be arranged to record vision sensor data in dependence of machine pose and location, and potentially also communicate data from the vision-based sensors to a remote device 360, as shown in Figure 3. This data may, e.g., be used by an operator in a virtual reality (VR) application, where the operator may inspect the concrete surface without physically visiting the location. Techniques for VR are known and will therefore not be discussed in more detail herein.

With reference to Figure 4, the machine 100 is self-propelled to move in a direction F in a controlled manner. This locomotion is generated by tilting one or more of the tool carrier axles A at an angle (|) relative to the base plane 101 . This tilting generates a difference in normal force N over the tool carrier such that the rotating motion r by the tool carrier 1 10 generates a force F in a direction perpendicular to the tilting direction.

This tilting may be achieved by tilting the entire drive unit. Alternatively, a pulley or the like fixedly connected to the tool carrier 150 can be tilted to obtain the desired effect.

Figure 5 illustrates the tilting principle in more detail. Here, the tilt is illustrated by vector T in two dimensions. The generated force F is perpendicular to the direction of the tilt T, and the magnitude of the force depends on the level of tilt, such that a large tilt results in a relatively large force F while a smaller tilt, i.e., by a smaller angle, results in a smaller force F. The rotational velocity w also affects the generated force. For most grinding discs, the generated force increases more or less linearly with rotational speed up to a peak where the generated force starts to drop with rotational velocity. The tool head type in use and the maturity level of the concrete, i.e., the friction between tool head and concrete surface also has an effect on the magnitude of the generated force F. The control unit 1 10 may thus control the generated forces by controlling the direction of the tilt and the magnitude of the tilt by sending control signals to the tilt actuators.

This propulsion concept involving tool head tilting is associated with several advantages. For instance, since the forces are generated by tilting, the tool carriers can be arranged to rotate at the same absolute rotational velocity w. This means that the electric machines can be optimized for a given fixed speed, where no speed control arrangements, or at least no complicated speed control arrangements, are required. Having at least three tool heads provides a level of stability to the machine which makes it suitable for operatorless control such as by remote control or autonomous operation. However, four or more tool heads are preferred since this also simplifies control of the propulsion and increases machine stability further.

At least one of the tool carriers 150 may furthermore be arranged to rotate with a variable rotational velocity w, and the control unit can be arranged to control the variable rotational velocity w of the tool head by the control signal to provide locomotion by the machine relative to the surface. It is appreciated that the speed of rotation has a similar effect on the machine force distribution as the normal load on the tool heads. Thus, the control unit 1 10 can generate a control signal to control rotational velocity and thereby obtain a desired motion by the machine relative to the concrete surface.

As illustrated in Figure 5, four tool carrier axes A may advantageously be arranged tiltable T with respect to the base plane 101. This means that four respective locomotion forces Fi, F2, F3, F4 are generated. A combined total force Ftotai is generated to provide locomotion and also a torque M z about the machine mass center 510. A particular advantage with the arrangement 500 in Figure 5 is that the tool heads are arranged in pairs with opposite direction of rotation. The two tool heads in a pair provide a more straight forward motion control since they stabilize each other.

Each force F £ is a two-dimensional vector force in the plane 101 . Its direction is, as discussed above, determined from the direction of rotation of the tool head and by the tilt angle T, as well as by the relative load on the tool head compared to other tool heads. The magnitude of the force depends on many different factors. Some of the more important factors include the normal force which depends on the weight wi on the tool head. This normal force can be adjusted in case a variable height suspension system is installed in connection to one or more of the tool heads. Thus, at least one of the tool carriers 150 may be configured with a variable height suspension configured to adjust a normal load associated with the tool carrier.

The magnitude of the force also depends on the rotational velocity of the grinding disc as discussed above. The relationship between these factors and the generated force is given by a function

Ft = f(T t,a)t, Wt where Tt is the two-dimensional tilt vector representing direction and magnitude of the tilt of the /-th tool head, <w £ is the rotational velocity of the /-th tool head, and w £ is the weight on the /-th tool head which is indicative of the normal force of the tool head. This function is normally an approximation of the true relationship between parameters and the resulting force. This approximation can be arrived at by, e.g., a combination of analytical derivation and laboratory experimentation. A calibration routine can be carried out in order to adjust the function to match a given device and operating condition.

Generally, rotation about the mass center 510 is generated by the torque Mz where N=4 in Figure 5. A turning motion by the machine can be achieved by varying the forces F t such that a non-zero torque Mz is generated. Thus, turning of the machine, or motion along an arcuate path, can be achieved by varying the set of tilt angles {arg(7 )} £=1 4 or the set of tilt magnitudes {|T £ |} £=1 4 in a controlled manner, and/or by varying rotational velocity { o £ } £=1 4 and/or by varying normal load {w £ } £=1 4 . It is appreciated that rotational velocity and weight are entirely optional control parameters. Only control of the tilt { £ } £=1 4 is required to obtain basic functionality.

The total force F tot (disregarding friction forces and the like) is given by

This quantity determines the direction of motion as well as the speed of the machine. The control unit 110 can be configured to generate a desired total force to move the machine in a desired direction, and/or a desired torque to rotate the floor grinder by generating one or more control signals to the different actuators on the machine 100. A combination of a non-zero total force and a non-zero torque about the mass center will generate a motion by the machine along an arcuate path. F tot is preferably optimized for a given floor surfacing operation by the control unit 1 10.

The machines disclosed herein may be associated with different modes of operation. When in a transport mode of operation the machine may be configured by the control unit 1 10 to move relatively fast along a straight path towards a target destination without rotating about the machine centroid. This mode of operation is preferably used when moving the machine 100 from one place to another place. The transportation mode of operation may be optimized for transporting the machine 100 without leaving marks on the concrete surface, which may not be fully matured.

The machine 100 may also be associated with a work mode or active mode of operation. This mode is used, e.g., when grinding or troweling a concrete surface. The work mode of operation may comprise a rotation about the machine centroid in combination with a forward motion. The work mode of operation may be optimized for grinding performance or for troweling performance.

The force allocation by the control unit can be performed in a number of different ways. One way to perform the force allocation is to solve the system of force equations and torque equations analytically. Another, less computationally intensive way to perform the force allocation and tool head coordination is to maintain a set of look-up tables (LUT) with suitable tilt values for different operations. Of course, these LUTs may need to be calibrated regularly.

Another method of force allocation and tool head coordination is to implement a feedback system where one or more sensors are used to detect a current motion behavior by the machine. Such sensors may comprise, e.g., any of inertial measurement units (IMU), electronic compasses, radar transceivers, global positioning system (GPS) and indoor location system transceivers. The control unit can then control the set of tilt angles {arg(7 )} £=1 4 and/or the set of tilt magnitudes {|7 |} £=1 4 to obtain a desired motion by the machine. A set of rules can be formulated for how to obtain a desired effect. For instance, to increase speed in the forward direction, an increased tilt can be applied as shown in Figure 5. To reduce torque about the mass center, i.e., to drive more straight, tilt angles on one side can be changed, or tilt magnitudes on one side can be changed.

Depending on the surface processing task at hand, a limit on maximum allowable tilt angle may be imposed. This is because too large tilt angles may generate marks in the concrete surface, which of course is undesired.

Figure 6 illustrates another example machine 600 where the herein disclosed techniques may be used with advantage. This machine comprises three tool carriers 150, but versions with four or more tool carriers are also possible. The tool carriers 150 are arranged to be driven by a central electric machine 640 (a first motor) via a belt, chain, or gear drive arrangement. The first motor 640 is here shown as an electric machine, although a combustion engine can also be used. The entire bottom structure 610, often referred to as the “planet”, is rotated R about a center axis by a second motor 650. This type of dual drive machines is previously known and will therefore not be discussed in more detail herein.

The machine 600 comprises three tool carriers 150 arranged to rotate about respective tool carrier axes A, wherein at least one tool carrier axis is arranged tiltable in two dimensions with respect to a base plane of the machine to generate locomotion by the machine relative to the surface. This tilting can be achieved, e.g., by using a set of servomechanisms and excentre members as discussed above to tilt the pulleys. However, the control of the tilting is a bit more advanced compared to the example discussed above in connection to Figure 5, since the rotation angle of the planet must also be accounted for.

In general, a control unit 1 10 can be configured to distribute forces over the tool heads to obtain a desired motion by the machine 600, e.g., a given speed in a given direction, perhaps complemented by a non-zero torque to obtain a planetary motion by the machine. The control unit then considers the following relationships and determines a solution comprising a distribution of forces. Given a distribution of forces {F £ }, the control unit then configures tool head parameters comprising tilt angle T and optionally also /?, <D £ , w t where [i may be a function of time, <w £ is a rotational velocity of the i-th tool head, and w £ is a weight associated with the /-th tool head which can be adjusted by, e.g., controlling a variable height suspension system of a tool head. It is appreciated that rotational velocity and weight are entirely optional control parameters. Only control of the tilt { £ } £=1 3 is required to obtain basic functionality.

The planetary motion may be generated in either clock-wise or counterclockwise direction depending on the force allocation {F £ } £=1 3 and tool head coordination. The planetary motion is preferably complemented by a forward motion by the machine 800 to move across the concrete surface as it grinds the concrete surface in a controlled manner.

The machine 600 comprises any of the laser range finder 120 and/or the linear photo sensor 130. Thus, the machine 600 may be arranged to perform all of the functions discussed above in connection to the machine 100, such as determining surface height in a topology map, and boundary geometry in a SLAM method.

It has been realized that the herein disclosed machines can also be used for investigating the quality of the concrete surface 310. By arranging various sensors to determine surface quality, a concrete surface can be surveyed before the concrete processing operation starts in order to provide input to operation planning, and the result of a concrete processing operation can be determined in order to make sure that the results is as expected, i.e., meets a specification.

Figure 7 illustrates a concrete surface processing machine 700, such as any of the machine 100, 600, for processing a concrete surface 310. The machine comprises means for self-locomotion and a control unit 1 10 arranged to control the means for self-locomotion. The means for self-locomotion may, e.g., comprise the tiltable tool holders discussed above in connection to, e.g., Figure 5, or driven wheels as illustrated in Figure 1 1 . The machine 700 comprises one or more surface quality sensors 710, 720 connected to the control unit 1 10 and arranged to determine a local surface quality of the concrete surface 310. The local surface quality may, e.g., be indicative of the presence of scratch marks, cracks in the surface, and/or a level of surface gloss.

The one or more surface quality sensors may, as mentioned above, comprise a three-dimensional (3D) camera sensor which can be used to inspect a section of the concrete surface in order to detect if there are cracks or undesired unevenness in the concrete surface.

A 3D camera used as surface quality sensor 710 is preferably located relatively close to the concrete surface, as indicated in Figure 7 and in Figure 12, i.e., closer than about 30 cm from the surface, and preferably closer than 20 cm from the concrete surface.

A 3D camera for concrete surface inspection purposes optionally comprises a plurality of spatially separated light sources and one or more image sensors, preferably at least two or three image sensors.

An image sensor is a sensor that detects and conveys information used to make an image, which can be a color image, a greyscale image, or a representation of infrared radiation from the surface. Two common types of electronic image sensors are the charge-coupled device (CCD) and the activepixel sensor (CMOS sensor). Both CCD and CMOS sensors are based on metal-oxide-semiconductor (MOS) technology, with CCDs based on MOS capacitors and CMOS sensors based on MOSFET (MOS field-effect transistor) amplifiers. The control unit 1 10 can detect minute scratch marks and other undesired traits in the concrete surface by the output from the 3D camera. The 3D camera sensor is preferably of high resolution, e.g., has a resolution above 10 mega pixels (MP), such as about 13 MP or more.

Figure 18 illustrates one example technique by which a 3D camera arrangement for concrete surface inspection may operate, known as shape- from-shadow (SFS). SFS is a passive noncontact technique for the inference of shape information of a surface or object, such as the topology of the surface, or just the surface heights at different locations and/or the surface normal vectors at different locations. SFS may be used to detect scratches and other imperfections in a processed concrete surface. Shape from shadows utilizes the casting of shadows onto a surface to infer the shape of the surface based on how the surface casts shadow when illuminated from different angles. In SFS a static image sensor 1810 is normally used to capture several images of a scene as a light source 1820 moves over the scene. The light source is preferably a collimated light source, although other types of light sources can also be used. A plurality of fixed light sources can also be used in sequence to illuminate the scene from different directions, i.e., from different angles 0 in the base plane 101 and also different angles <p measured relative to a normal vector 1830 to the base plane 101 . With reference to Figure 18, the angle 0 of a light source will henceforth be referred to as a base plane angle, while the angle <p will be referred to as an elevation angle.

M. Daum and G. Dudek, provides a description in “Out of the dark: Using shadows to reconstruct 3d surfaces,” published in Computer Vision — ACCV’98, Springer Berlin Heidelberg, 1997, pp. 72-79, isbn: 978-3-540- 69669-8.

M. Daum and G. Dudek also discuss SFS in “On 3-d surface reconstruction using shape from shadows,” in Proceedings. 1998 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1998, pp. 461-468. doi: 10.1109/CVPR.1998.698646.

Thus, although SFS has not been previously applied to concrete surface inspection in the manner discussed herein, it is a relatively well-known technique and will therefore not be discussed in detail herein.

Figures 19-21 illustrate an example 3D camera arrangement 1900 which comprises a plurality of light sources arranged for SFS operation, or at least a plurality of attachment points configured to hold respective light sources arranged for SFS operation. The light sources are arranged at different base plane angles 0 and elevation angles cp.

The light sources are preferably collimated LED light sources arranged on arms 1910 which extend from a center location or hub 1915 intersected by a centrum axis 1940 and downward towards the base plane 101. Processing circuitry 1930 and image sensors 1920 are arranged in connection to the center location 1915. The processing circuitry 1930 may be arranged to control both the light sources and the image sensors. The processing circuitry 1930 may also be arranged to perform signal processing for surface inspection, although this functionality may also be performed by some other processing resource, perhaps at a remote device, although the amount of data to be transferred to this type of remote processing resource may be prohibitively large.

The arms 1910 in the example 1900 are of arcuate form and each arm 1910 is arranged to carry 6 LED light sources at different elevation angles from about 10 degrees to about 60 degrees. Since there are eight arms in the example 1900, the base plane angles are separated by 45 degrees. It has been found that a relatively high elevation angle is advantageous when performing concrete surface inspection. However, it may be even better to use more than one elevation angle in the analysis. The whole image sensor and light source arrangement is preferably shielded from ambient light, e.g., by a light protecting skirt wall (not shown in Figures 19-21 ).

Figure 20 illustrates the LED light source arrangement in more detail. The light sources 1950 are here arranged at elevation angles of 8, 19, 30, 41 , 52 and 63 degrees. The light sources are individually controllable from the processing circuitry 1930. Thus, it is possible to illuminate a section of the concrete surface from 48 different angles. It has been realized that illumination from different elevation angles may result in different performance depending on the type of defect that is to be analyzed. Deep narrow cracks for instance, are often better seen when illuminated from a large elevation angle, i.e., about 40-60 degrees, while smaller protruding parts on the surface are more clearly seen when illuminated from smaller elevation angles, such as by a light source at an elevation angle of about 10-20 degrees.

It is appreciated that the dome shape in Figures 19-21 is just an example. A pyramid shape or some other form of volume can also be used. The main concept being that the light sources are spatially separated and arranged to illuminate the concrete surface from different pre-determined directions. The light protection is also an important feature which improves the signal to noise ratio in the image data captured by the image sensors 1920.

A plurality of image sensors 1920 are directed towards the base plane 101 , as shown in Figure 20. In this case two image sensors are used, although three or more image sensors can also be used. Each image sensor has a field of view of about 16 degrees in this example.

The image sensors are configured to capture a square image of the concrete surface corresponding to about 40mm by 40 mm, and are arranged in known relation to each other and to the concrete surface. This known spatial relationship enables stereoscopic vision, as will be explained in the following.

Figure 22 is a flow chart 2000 illustrating an example method for generating input data to a concrete surface inspection process. The example comprises three image sensors C1 , C2, C3 but any plural number of image sensors can be used.

First, for all cameras C1 , C2, C3 an SFS procedure 2020 is executed based on four or more images captured with different light configurations 2010a, 2010b, 2010c, which results in respective 3D reconstructions of the surface.

Each SFS surface reconstruction is then paired with one other SFS surface reconstruction and fed to a stereo matching module 2030, which determines depth over the concrete surface. In traditional stereo vision, two image sensors, displaced horizontally from one another are used to obtain two differing views on a scene, in a manner similar to human binocular vision. By comparing these two images, the relative depth information can be obtained in the form of a disparity map, which encodes the difference in horizontal coordinates of corresponding image points. The values in this disparity map are inversely proportional to the scene depth at the corresponding pixel location.

The output from the different stereo matching processes is then fed to a depth estimation stage 2040. The depth estimation stage merges the information obtained from the different stereo matching processes into a final 3D reconstruction of the concrete surface section, which was in view of the image sensors C1 , C2, and C3. The data from the depth estimation stage, i.e., an estimated topology of the concrete surface section, is then fed to a data analysis module which formats the data and performs further analysis of the concrete surface section, as discussed herein. The function of the camera sensor 1900 in Figure 19 is much improved if a light blocking skirt or cover is arranged extending over the camera sensor down to the base plane 101 to enclose the arms 1910 and the image sensors 1920. This light blocking skirt prevents ambient light from entering into the interior of the 3D camera sensor, which could otherwise distort the captured images by the image sensors.

The 3D camera sensor may furthermore comprise a pressurized gas system for dispensing pressurized gas, such as air or carbon dioxide, into the camera sensor interior and onto the concrete surface. The flow of pressurized gas is configured to clean the concrete surface section to be inspected from any dust and debris which would otherwise appear as surface unevenness, which of course is undesired. Towards this end, the 3D camera sensor may comprise an on-board gas bottle or canister for dispensing the pressurized gas in direction of the concrete surface.

The pressurized gas can of course also be at least in part directed at the image sensors, in order to clean the lenses from dust. Thus, both the concrete surface and the image sensors can be cleaned by compressed gas which forces the dust out of the dome and ensures no dust accumulates on the lens.

The captured image data, and the resulting 3D reconstructions may consume considerable data storage resources. In order to store all the data, the concrete surface processing machine may comprise an on-board data storage device, such as a hard drive or a memory card. The capacity of this memory may be on the order of terabytes or more. The on-board data storage may be arranged to be accessed from the outside via a high-speed data port on the concrete surface processing machine.

The one or more surface quality sensors may also comprise a radar sensor and an inertial measurement unit (IMU). The control unit 1 10 can detect irregularities such as scratches and cracks in the surface using the radar sensor. However, the vibration in the machine is likely to have a detrimental effect on the quality of the output data from the radar sensor. Thus, the control unit 1 10 can be arranged to compensate the output signal from the radar sensor for vibration in the machine based on an output signal from the IMU. The control unit 1 10 may also be arranged to stop the machine before the surface quality is evaluated, i.e., stop all motors and other vibration generating devices on the machine, in order to minimize vibration during, e.g., image capture.

The control unit 1 10 is furthermore arranged to control a self-locomotion of the machine to determine a plurality of local surface quality values associated with respective different locations on the concrete surface 310.

The control unit 1 10 may advantageously be arranged to compare the plurality of local surface quality values to a pre-configured specification, and to output a validation result based on the comparison. Thus, the machine 700 can be used to perform an initial survey of a concrete surface and determine if the surface is ready for a given type of processing. For instance, the machine 700 can be used to survey a concrete surface in order to determine if the surface is ready for processing by a finer grit, or if more processing by a courser grit abrasive tool is necessary due to the presence of scratches and the like. The machine 700 can also be used to validate the result of a concrete processing operation, i.e., to verify that an intended result has been achieved, or if additional processing is required in order to fulfil a requirement specification.

The control unit 1 10 is arranged to generate a desired tool selection based on the determined local surface quality values. The tool selection may be displayed on a remote device like the devices 1310, 1320 illustrated in Figure 13A and 13B.

As shown in Figure 7, the machine 700 may optionally comprise any of the linear photo array for determining height h, and/or the laser range finder 120 for determining distances to surrounding objects like walls and other obstacles.

The machine 700 may be a stand-alone surface quality inspection robot which only performs the function of surveying the concrete surface using the surface quality sensors 710, 720. Alternatively, the machine 700 may be arranged to perform additional functions, such as one or more concrete processing operations comprising troweling, grinding, polishing, and the like. The machine 700 may also be arranged to perform SLAM operations, i.e., to not only survey the quality of the concrete surface, but also perform simultaneous localization of itself on the concrete surface and mapping of the concrete surface, as discussed above in connection to, e.g., Figure 3.

The one or more surface quality sensors may also comprise a laser scanner and/or a gloss sensor. Both laser scanners and gloss sensors are known and will therefore not be discussed in more detail herein. A radar transceiver can also be used to evaluate surface quality, and also structural integrity of the concrete below the surface. The control unit 1 10 can then be arranged to detect cracks and pores in the concrete surface 310 based on an output signal from the radar transceiver.

The machine 700 may further comprise a particle sensor arranged to determine an amount of particles in the air surrounding the machine. The control unit 1 10 may then be arranged to trigger generation of a warning signal in case the amount of particles exceeds a preconfigured threshold value.

The machine 700 may optionally also comprise a gas sensor, such as a carbon dioxide and/or carbon monoxide sensor arranged to determine an amount of carbon dioxide in the air surrounding the machine, wherein the control unit 1 10 is arranged to trigger generation of a warning signal in case the amount of carbon dioxide exceeds a preconfigured threshold value.

The warning signals may, e.g., be transmitted from the control unit 1 10 to a remote device such as the remote device 360 discussed above in connection to Figure 3, or to a remote device such as the devices 1310, 1320 shown in Figures 13A and 13B. An operator may, for instance, configure an acceptable level of particles in the air, and/or level of carbon dioxide and/or level of carbon monoxide or other harmful or undesired gases, and receive a warning from the machine 700 in case the relevant level in the area goes above this threshold. The threshold levels may also be configured in dependence of construction site requirements. Of course, other air quality sensors are also possible to mount on the machine 700, such as sensors for detecting various forms of gasses, Geiger counters, and the like. The machines 700 discussed herein may also comprise a moisture sensor and/or a temperature sensor arranged to determine a moisture level and temperature, respectively, of the concrete surface 310. The moisture and temperature data can be used to estimate a maturity level of the concrete surface, which can be used in determining when to start a given concrete processing operation. The moisture level can also be used to determine a suitable time to apply chemicals and the like which require a certain moisture level to work efficiently.

The machine 700 may furthermore comprise a durometer arranged to determine a surface hardness level of the concrete surface 310. The durometer may comprise a hammer device arranged for determining concrete hardness by determining a rebound energy.

Alternatively or in combination with the durometer, the machine 700 may comprise a device arranged to form a scratch in the concrete surface. The depth of this scratch can then be detected and used to determine a surface hardness level of the concrete surface 310. The depth may be determined using a vision-based sensor such as a camera, or a laser sensor.

Figure 8 illustrates an example concrete surface processing system 800 comprising a plurality of machines 100 according to the above discussion. The plurality of machines may be of the same type, i.e., either small machines such as the machine 100, or larger machines such as the machine 600. However, additional advantages may be obtained if a combination of different machines are used to process a larger concrete surface. The smaller machines may then process areas which require a lot of maneuvering and which may be hard to access for the larger machines, while the larger machines may perform tasks where larger size is an advantage.

Figure 8 illustrates an example concrete surface processing system 800 comprising a plurality of concrete surface processing machines according to the discussions herein, and a rotary laser device 330 arranged to generate a laser beam H parallel to the concrete surface. The system optionally comprises a remote device 360 arranged communicatively coupled to at least one of the concrete surface processing machines.

One or more of the machines may be configured with transportation mode tool heads allowing the machine to traverse segments of the concrete surface which have not yet matured enough for processing. These machines may then act as scouts, surveying the concrete surface, and reporting back to the other machines when a sufficient level of maturity has been reached on a given concrete segment for a given concrete processing operation.

The machines comprise a control unit 1 10 with a radio transceiver arranged to establish a communication link 820 to at least one other machine, or to a remote control device. This way the plurality of machines can form a mesh network in order to exchange information and perform arbitration in case of any control conflicts which arise.

The plurality of machines may also be communicatively coupled, e.g., by wireless radio link, to a central control unit 360 arranged to control a floor grinding operation over a concrete surface 310. This central control unit 360 may control the “swarm” of machines to complete a larger floor grinding task.

The machines may furthermore comprise a positioning system arranged to position the respective machines in a coordinate system relative to the concrete surface 310. This positioning data can be used by the external control unit 360 in order to control the floor processing operation. The machines may also be arranged for autonomous operation, i.e., for processing the concrete surface in a collaborative manner without guidance from a central control unit 360.

An inductive charging station 840 may be embedded into the concrete surface. The machines 100 may then regularly return to the charging station to replenish the energy storage, i.e., charge the on-board batteries.

One or more concrete maturity sensors 830 may also be embedded into the concrete surface. This sensor measures, e.g., temperature and moisture in the concrete slab and is thus able to determine a current concrete maturity level of the concrete surface 310. Based on a time sequence of data samples, the maturity sensor, or the control unit 1 10, may extrapolate to estimate a future concrete maturity level over the concrete surface. This allows the swarm of machines to work where it is as most efficient given the maturity levels over the concrete surface.

Figure 9 illustrates some other aspects of the disclosed machines for concrete surface processing. This machine 900 comprises a dust container 910 arranged to hold a quantity of dust. The machine also comprises a suction device 920 which is only schematically illustrated in Figure 9. The suction device 920 and the dust container 910 allow the machine 900 to collect dust from the concrete surface 310, such as dust generated during grinding.

The machine 900 may comprise tools for grinding, i.e., rotatable discs for abrasive operation. The machine 900 then performs both grinding as well as collecting the dust generated by the grinding.

The machine 900 may also be configured as a dedicated dust collector machine. In this case there are no grinding tools attached. Instead, the machine may comprise brushes configured on the tool holders 150. One possible realization of this type of dust collecting machine is obtained if the troweling blades in Figure 1 D is replaced by brushes. The dust container 910 may be used as supporting structure for one or more of the sensors on the machine, as schematically illustrated in Figure 9.

Figure 10 illustrates a concrete surface processing system 1000. The system comprises a plurality of machines 100, 900 which are processing the concrete surface in a collaborative manner. The system is similar to the concrete surface processing system discussed in connection to Figure 8, but this system also comprises one or more machines 900 with the suction device 920 arranged to collect dust from the concrete surface 310, and the dust container 910 for holding an amount of collected dust. The system also comprises a central dust collection station 1010 which is arranged to empty the dust containers of the machines with dust collecting ability. The machines then navigate to the central dust collection station 1010 whereupon the dust container is emptied via a hose or other form of connector. The dust containers 910 may of course also be manually emptied by an operator. In this case, the control unit 1 10 may transmit a signal to, e.g., a remote wireless device 1310, 1320 indicating a need for emptying the dust container 910.

The teachings herein may also be applied to more conventional types of dust containers, such as the dust collector 1 100 illustrated in Figure 1 1. This machine 1 100 has been equipped with the same type of control unit 110 as discussed above and may comprise any of the linear photo array sensor 130 and/or the range finder 120, enabling it to determine a topology map, and also to perform SLAM based on the range data from the range finder sensor 120. The control unit 1 10 may control motion of the dust collector 1100 by driven wheels 1 1 10, powered by electrical machines. Thus, a conventional dust collector such as the dust collector 1 100 may be equipped with sensor systems 120, 130 and a control unit 1 10, to perform topology map generation, as well as surface mapping and potentially also surface quality analysis. Figure 12 shows a version of the machine discussed above in connection to Figure 7, but now based on a machine supported on wheels, such as the dust collector 1100 in Figure 1 1. The machine 1200 has the same capabilities as the machine in Figure 7 when it comes to surveying the concrete surface 310.

The machine 1200 may also comprise means for weighting the amount of collected dust and slurry from the concrete surface. This amount of dust ad slurry can be used to estimate a cutting rate/performance of used abrasive tools.

Figures 13A and 13B illustrate example remote controls 1310, 1320 which can be used to control the different machines 100, 600, 700, 900, 1 100 discussed herein. The remote control device 1310 is a conventional remote control device which connects to the control unit 1 10 of the machine via wireless radio link. The remote control device 1320 in Figure 13B is a tablet or smartphone which connects to the control unit 1 10 to issue control commands and/or to receive status reports and other information back from the control unit 1 10. Figure 14 illustrates a process 1400 for processing a concrete surface 310. This process may be performed by different types of machines or by the same machine. The process comprises surveying 1410 the concrete surface in preparation for processing the concrete surface. This step may comprise, e.g., evaluating a quality of the concrete surface, determining, and suggesting suitable tools for performing concrete processing, and perhaps indicating suitable time windows for each processing step. The process then comprises a step 1420 where the surface processing system is configured. This step may comprise, e.g., inputting directives to a swarm of concrete surface processing machines or programming a single concrete surface processing machine. The process then continues with a step 1430 where the concrete surface is processed. This step may comprise troweling the surface, grinding the surface, and/or polishing the surface. A final step 1440 comprises verifying that an intended result has been achieved. This step may comprise evaluating surface quality by, e.g., the machine 700 discussed in connection to Figure 7.

Figure 15A is a flow chart illustrating a method for processing a concrete surface 310. The method comprises deploying Sa1 a rotary laser device 330 on or in connection to the concrete surface 310. The rotary laser device 330 may either be placed directly onto the floor or mounted onto a wall or the like in connection to the concrete surface of interest. The rotary laser device is arranged to generate a laser beam H. The method also comprises configuring Sa2 a concrete surface processing machine 100, 600, 900, 1 100 supported on the concrete surface by one or more support elements 150, 1 1 10 extending in a base plane 101 of the machine parallel to the concrete surface 310, connecting Sa3 a control unit 1 10 of the machine to at least one linear photo sensor 130 on the machine extending transversally to the base plane 101 , and detecting Sa4 a height h of the laser beam H relative to the base plane 101 , by the linear photo sensor 130, based on a point of incidence of the incoming laser beam H on the linear photo sensor 130.

Figure 15B is a flow chart illustrating a method for processing a concrete surface 310. The method comprises configuring Sb1 a concrete surface processing machine 100, 600, 900, 1 100 supported on the concrete surface by one or more support elements 150, 1 1 10 extending in a base plane 101 of the machine parallel to the concrete surface 310, controlling Sb2 the concrete surface processing machine to rotate R about an axis C normal to the base plane 101 by the one or more support elements 150, 11 10, connecting Sb3 a control unit 1 10 on the machine to at least one laser range finder 120 arranged pointing in a fixed direction from the concrete surface processing machine, and determining Sb4 a boundary geometry 320 of the concrete surface 310 based on a sequence of ranges obtained by the laser range finder 120.

Figure 15C is a flow chart illustrating a method for processing a concrete surface 310. The method comprises configuring Sc1 a concrete surface processing machine 100, 600, 900, 1 100 for processing the concrete surface 310, wherein the machine comprises means for self-locomotion and a control unit 1 10 arranged to control the means for self-locomotion, connecting Sc2 one or more surface quality sensors 710, 720 to the control unit 110, wherein the surface quality sensors are arranged to determine a local surface quality of the concrete surface 310, and controlling Sc3 self-locomotion of the machine by the control unit 1 10 to determine a plurality of local surface quality values associated with respective different locations on the concrete surface 310.

Figure 16 schematically illustrates, in terms of a number of functional units, the general components of a control unit 1 10, 1600. Processing circuitry 1610 is provided using any combination of one or more of a suitable central processing unit CPU, multiprocessor, microcontroller, digital signal processor DSP, etc., capable of executing software instructions stored in a computer program product, e.g. in the form of a storage medium 1630. The processing circuitry 1610 may further be provided as at least one application specific integrated circuit ASIC, or field programmable gate array FPGA.

Particularly, the processing circuitry 1610 is configured to cause the device 180 to perform a set of operations, or steps, such as the methods discussed in connection to Figures 15A-C and the discussions above. For example, the storage medium 1630 may store the set of operations, and the processing circuitry 1610 may be configured to retrieve the set of operations from the storage medium 1630 to cause the device to perform the set of operations. The set of operations may be provided as a set of executable instructions. Thus, the processing circuitry 1610 is thereby arranged to execute methods as herein disclosed.

The storage medium 1630 may also comprise persistent storage, which, for example, can be any single one or combination of magnetic memory, optical memory, solid state memory or even remotely mounted memory.

The device 1600 may further comprise an interface 1620 for communications with at least one external device. As such the interface 1620 may comprise one or more transmitters and receivers, comprising analogue and digital components and a suitable number of ports for wireline or wireless communication.

The processing circuitry 1610 controls the general operation of the control unit 1600, e.g., by sending data and control signals to the interface 1620 and the storage medium 1630, by receiving data and reports from the interface 1620, and by retrieving data and instructions from the storage medium 1630.

The control unit 1 10, 1600 may be configured to perform all of the functions discussed above, e.g., in relation to controlling tilt angles and the like to move the machines in relation to a concrete surface.

Figure 17 illustrates a computer readable medium 1710 carrying a computer program comprising program code means 1720 for performing the methods illustrated in Figures 15A-C, when said program product is run on a computer. The computer readable medium and the code means may together form a computer program product 1700.