There's the need to design a horizontal plane cleaning system that is controlled by positioning servos. Two in two of three floor rollers and three in the x, y, and z positioning of a wiping device. Cleaning fluid may be dispensed or vacuumed away, and the rollers can be concurrently locked so that the position of the cleaning system relative to the floor can be held steady or unlocked.

To keep device cost low, primitive lidar is used for ranging at each extremity most exposed by positioning extremes. For instance, ranging is detected pointing upward so that the position in z is sensitive to headroom, and ranging is detected on the front, left, and right sides of the wiping device to ensure it doesn't hit walls at full speed or knock over items on the horizontal plane surface.

There is no pixel based input to the AI. Ranges are reported as two 32 bit integers approximately representing two measurements in millimeters. One is the distance to the closest point of reflection and the other is the mean distance of reflection. Only by comparing them can walls can be distinguished from objects placed on the surface.

Positioning targets for the entire system rolling on the floor and for the wiping device relative to the entire system are provided as 32 bit integers to the driving systems of each servo.

What the system does to clean is roll over to a location, given a programmed of approach and line of movement in front of the horizontal surface, clean the surface area, constrained by the fixed parameters below, and roll back to the original system position.

Objects on the surface may change from cleaning to cleaning, but not walls. There may be a need to lock the rollers, wipe in several motions, unlock the rollers, move over, lock again, wipe some more, and do this a few times.

There are three things we need to minimize that could be used in a loss function.

  • Time to complete the cleaning of a horizontal surface
  • Cleaning fluid consumption
  • Variance in cleaning fluid distribution on the surface

What kind of network could learn to send the right positions to the servos to perform the cleaning? Is Q-learning best? How is the example data to be collected? Is there a way to learn without training, allowing performance to be poor at first but still get the job done and then improve each time afterward? How can AI be used to make this a practical cleaning system?

Technical Details

There are eight numbers programmed into the firmware.

  • The overlap of wiping in mm
  • The minimum time cleaning fluid remains on surface before vacuuming it up
  • The rate of cleaning fluid use in microns (One milliliter is one cubic centimeter, so one milliliter of fluid per square meter horizontal surface has the unit cm cubed over meters square, which is one cm over 10,000 square cm per square meter, which is one micron.)
  • The maximum speed and acceleration of wiping motion changes relative to the horizontal surface
  • The maximum speed and acceleration of movement of the device center relative to the floor
  • The maximum permissible speed when the wiping device reaches a wall
  • The minimum clearance to maintain between the wiping device from items on the horizontal surface to avoid knocking one over
  • 1
    $\begingroup$ This has not got any answers. A year later, reading the question, I think it is simply too broad. It states a problem domain reasonably well (although it would be nice to have some concrete data examples), but then asks for a lot of guidance, multiple questions to answer, it appears to start with very basic questions about general approach, yet still wanting detail. $\endgroup$ – Neil Slater Nov 17 at 16:38

Q-Learning is able to solve toy problems, for example controlling an inverse kinematics or avoid obstacles with an simulated 2d car. The task with the cleaning device is much more complicated. It is a real life control problem with many constraints. I see two possible alternatives: first is to reduce the problem to a smaller version. That means to invent a toy problem which has to do with cleaning the plane but without much additional features, or secondly use something which is more powerful than q-learning.

According to the amount of description i would assume that the top priority is the cleaning system and that means that an alternative to q-learning has to be found which is able to solve the task. That means, the constraints of the problem remains untouched and the technology has to deliver an answer. The best practice method in solving complex task is to avoid any kind of automation. That means, construct only the system which is controlled manually by a joystick. The idea is to put the human-operator in the loop. He has to decide which servo gets power, and under which situation the task is done. That means, the software side consists of a GUI interface which looks similar to crane in which the operator sees a display, has some buttons and must control everything in realtime. It is not a control problem, but it is an interface problem. That means, the system engineer has to answer the question which information the operator needs and which servos he should control with the joystick.


Not the answer you're looking for? Browse other questions tagged or ask your own question.