Mobile floor-cleaning robot with floor-type detection
Cleaning robots may use floor-type-detection techniques as a trigger for autonomously altering various floor-cleaning characteristics. In some examples, a controller circuit of the robot is configured to determine a flooring type as a function of a signal from a motion sensor indicative of a change in pitch caused by the robot crossing a flooring discontinuity. In some examples, the controller circuit is configured to determine a flooring type based on a power draw signal corresponding to the cleaning head assembly of the robot.
1. A cleaning robot, comprising:
a drive configured to drive the robot across a floor surface;
a cleaning head assembly positioned to engage the floor surface while the robot is maneuvered by the drive;
a motion sensor responsive to changes in pitch; and
a controller circuit in communication with the cleaning head assembly and the motion sensor, the controller circuit configured to determine a flooring type associated with a cleaning characteristic of the robot and configured to alter the cleaning characteristic of the robot as a function of a signal from the motion sensor indicative of a change in pitch caused by the robot crossing a flooring discontinuity.
2. The cleaning robot of claim 1 , wherein the cleaning head assembly comprises a motorized roller rotatably mounted parallel to the floor surface and configured to contact and agitate the floor surface during use.
3. The cleaning robot of claim 2 , wherein the motorized roller comprises a front roller, and wherein the cleaning head further comprises a rear roller rotatably mounted parallel to the floor surface and spaced apart from the front roller by a small elongated gap.
4. The cleaning robot of claim 1 , wherein the controller circuit is further configured to:
detect a change in pitch of the robot based on feedback from the motion sensor, the change in pitch caused by the robot crossing a flooring discontinuity;
detect a change in operation of the cleaning head assembly; and
identify a change in flooring type of the floor surface in response to detecting the change in operation of the cleaning head assembly within a predetermined time of detecting the change in pitch.
5. The cleaning robot of claim 4 , wherein the controller circuit is configured to detect a change in operation of the cleaning head assembly as a change in resistance to rotation of a motorized roller of the cleaning head.
6. The cleaning robot of claim 5 , wherein the controller circuit is configured to detect a change in resistance to rotation of the roller as a change in power generated by a motor driving the roller.
7. The cleaning robot of claim 6 , wherein the controller circuit is configured to monitor motor power as a function of one or more of motor current, battery voltage and motor speed.
8. The cleaning robot of claim 1 , further comprising a cleaning bin, and a motor driven fan located within the cleaning bin to provide a suction force that pulls debris into the cleaning bin, and
wherein altering a cleaning characteristic of the robot comprises altering the suction force.
9. The cleaning robot of claim 8 , wherein altering the suction force comprises increasing the suction force in response to an identification by the controller circuit of a change across the flooring discontinuity from a hard floor surface to a soft floor surface.
10. The cleaning robot of claim 8 , wherein altering the suction force comprises decreasing the suction force in response to an identification by the controller circuit of a change across the flooring discontinuity from a soft floor surface to a hard floor surface.
11. The cleaning robot of claim 1 , wherein the motion sensor is a six-axis inertial measurement unit and comprises at least one of a three-axis gyroscope and a three-axis accelerometer.
12. The cleaning robot of claim 1 , wherein the controller circuit is configured to identify a change in flooring type across the flooring discontinuity by determining a change in a class of the floor surface.
13. The cleaning robot of claim 12 , wherein the controller circuit is configured to determine a class of the floor surface based on a signal representing operation of the cleaning head assembly.
14. The cleaning robot of claim 13 , wherein the controller circuit is configured to determine a class of the floor surface by determining that a value of the signal is within one of a plurality of predetermined ranges of values.
15. The cleaning robot of claim 13 , wherein the controller circuit is configured to determine a class of the floor surface based on a probabilistic classifier model.
16. The cleaning robot of claim 15 , wherein the controller circuit is configured to alter the probabilistic classifier model in response to a detection of a change in pitch caused by the robot crossing a flooring discontinuity.
17. The cleaning robot of claim 16 , wherein altering the probabilistic classifier model comprises increasing a probability of a floor-type change.
18. The cleaning robot of claim 16 , wherein altering the probabilistic classifier model comprises resetting a current floor type.
19. The cleaning robot of claim 15 , wherein the probabilistic classifier model comprises a Bayesian filter.
20. The cleaning robot of claim 12 , wherein the controller is configured to suspend re-classification of the floor surface as the robot is driven in an arc by the drive.
21. A cleaning robot, comprising:
a drive configured to drive the robot across a floor surface;
a cleaning head assembly positioned to engage the floor surface while the robot is maneuvered by the drive; and
a controller circuit in communication with the cleaning head assembly, the controller circuit configured to:
determine a class of the floor surface based on a power draw signal corresponding to the cleaning head assembly;
identify a change in the class of the floor surface; and
in response to identifying the change in the class of the floor surface, modulating a cleaning characteristic of the robot,
wherein identifying the change in the class of floor surface comprises:
integrating data from a plurality of monitored inputs, the inputs including at least one of:
a cleaning head state signal;
a motion signal, and
an inertial measurement unit (IMU) signal;
determining that the robot is turning along a curved path on the floor surface based on the motion signal; and
in response to determining that the robot is turning, maintaining the cleaning characteristic at a current state.
22. The cleaning robot of claim 21 , further comprising a cleaning bin, and a motor driven fan located within the cleaning bin to provide a suction force that pulls debris into the cleaning bin, and
wherein modulating a cleaning characteristic of the robot comprises modulating the suction force.
23. The cleaning robot of claim 21 , wherein integrating data from the plurality of monitored inputs comprises calculating a probability that a change in the power draw signal corresponds to the change in the class of the floor surface based on each of the inputs.
24. The cleaning robot of claim 23 , wherein calculating a probability based on the motion signal comprises calculating a probability that the robot is performing at least one of a turn in place and an arched turn.
25. The cleaning robot of claim 23 , wherein calculating a probability based on the cleaning head state signal comprises calculating a probability that a motor driving the cleaning head assembly has stalled.
26. The cleaning robot of claim 23 , wherein calculating a probability based on the IMU signal comprises calculating a probability that the robot has crossed a flooring discontinuity.
27. The cleaning robot of claim 21 , wherein determining the class of the floor surface comprises determining a most likely floor class based on empirical data stored in computer memory of the controller.
28. The cleaning robot of claim 27 , wherein determining the most likely floor class comprises calculating a posterior probability distribution over a set of predefined floor-type classes based on a plurality of probability density functions stored in the computer memory.
29. The cleaning robot of claim 21 , wherein the cleaning head assembly comprises a motorized roller rotatably mounted parallel to the floor surface and configured to contact and agitate the floor surface during use.
30. The cleaning robot of claim 29 , wherein the motorized roller comprises a front roller, and wherein the cleaning head further comprises a rear roller rotatably mounted parallel to the floor surface and spaced apart from the front roller by a small elongated gap.
31. A cleaning robot, comprising:
a drive configured to drive the robot across a floor surface;
a cleaning head assembly positioned to engage the floor surface while the robot is maneuvered by the drive; and
a controller circuit in communication with the cleaning head assembly, the controller circuit configured to:
determine a class of the floor surface based on a power draw signal corresponding to the cleaning head assembly;
identify a change in the class of the floor surface; and
in response to identifying the change in the class of the floor surface, modulating a cleaning characteristic of the robot,
wherein identifying the change in the class of floor surface comprises:
integrating data from a plurality of monitored inputs, the inputs including at least one of:
a cleaning head state signal;
a motion signal, and
an inertial measurement unit (IMU) signal;
determining that the robot is rotating in place on the floor surface based on the motion signal; and
in response to determining that the robot is rotating and not moving across a floor surface interface, maintaining the cleaning characteristic at a current state.
32. The cleaning robot of claim 31 , wherein identifying the change in the class of the floor surface comprises:
determining a turning radius and drive speed of the robot based on the motion signal; and
altering the cleaning characteristic in proportion to a magnitude of the turning radius.
33. The cleaning robot of claim 31 , further comprising a cleaning bin, and a motor driven fan located within the cleaning bin to provide a suction force that pulls debris into the cleaning bin, and
wherein modulating a cleaning characteristic of the robot comprises modulating the suction force.
34. The cleaning robot of claim 31 , wherein integrating data from the plurality of monitored inputs comprises calculating a probability that a change in the power draw signal corresponds to the change in the class of the floor surface based on each of the inputs.
35. The cleaning robot of claim 34 , wherein calculating a probability based on the cleaning head state signal comprises calculating a probability that a motor driving the cleaning head assembly has stalled.
36. The cleaning robot of claim 34 , wherein calculating a probability based on the IMU signal comprises calculating a probability that the robot has crossed a flooring discontinuity.
37. The cleaning robot of claim 31 , wherein the cleaning head assembly comprises a motorized roller rotatably mounted parallel to the floor surface and configured to contact and agitate the floor surface during use.