# Localize a Mobile Robot on a Mirror

I am currently busy with a project which requires me to construct a robot capable of cleaning a heliostat (movable mirror used to redirect sunlight). Heliostats are basically large flat mirrors that track and reflect the sun. In order to be cleaned, the heliostats would be stowed in a horizontal position so that the robot may drive over its surface.

My question is then how or what sensors would i use to localize the robot on the mirror. From what i have seen many robotic sensors are unable to effectively detect glass, which seems to be a problem as the systems only real reference is the mirror. I am considering using a type of cliff sensor similar to the ones on robotic vacuum cleaners, but how would i localize the robot when its in the middle region of the mirror? Will the cliff sensors and wheel odometers be enough to fully localize this robot or not? i.e. What sensors would work?

I have attached both a basic image of the robot as well as an image of a typical heliostat the robot will need to clean. Mirror sizes may vary but this size is roughly 1m x 2m Please let me know if i must provide more information to clarify the question.

• If you‘re aware of the exact dimensions of the mirror, you can easily localize much the same way you would find the center of a circle using Euclid methods. See ‚The Elements‘ book for countless examples of solving geometry questions when knowing only geometric references. Commented Oct 3, 2019 at 16:57
• Thank you morbo, I will take a look. The size of the mirror is definitely known, so i will look into these methods. Commented Oct 3, 2019 at 19:55
• Why do you need to localize yourself? Just bouncing around randomly might be fine... What level of accuracy do you need?
– Ben
Commented Oct 4, 2019 at 12:42
• Hi @Ben. I would like to be as accurate as possible, the idea is to try clean as many mirrors in as little time as possible, or to be as efficient as possible. I think accurate navigation can save alot of time. Commented Oct 4, 2019 at 21:20
• Hi jsoltola. It seemed the question was lost into the depths of the website and didn't receive quite the answers I was looking for, so I thought I'd try again. Won't do it again though! Commented Oct 4, 2019 at 21:21

I don’t think you need any complex sensing device. You could extend the body of your robot to include a housing which holds an LED, aimed toward the mirror and tilted slightly to the interior of your robot. The extended body would block outside light from interfering with the LED signal. You could place a photodiode in your robot to give a binary signal for detecting the presence of the LED signal. When the edge of the mirror is encountered, the LED signal would cease to be reflected to the photodiode.

• Hi SteveO. This sounds like a good idea. I was thinking of using multiple ultrasonic sensors as a type of cliff sensor, but would need many sensors to get an idea od the robots orientation relative to the edge of the mirror. I was thinking 5 sensors per edge. What about using a single forward mounted camera and trying to implement edge detection? Do you think the camera would be able to identify the edges? Edit: Sorry I'm still relatively new to sensor selection and implementation so please forgive any naive questions :) Commented Oct 6, 2019 at 15:35
• That could work but would be more complex to implement. You could also create a unique target pattern for the camera to detect in the robot’s reflection. Commented Oct 6, 2019 at 15:37
• Thanks again. I've also considered using a landmark off the mirror with some sort of QR code or unique identifier. And by knowing the orientation of the mirror relative to the landmark using it to navigate around the mirror. Commented Oct 6, 2019 at 15:42
• That's simply a cliff sensor so the robot won't wall off the surface, but it won't help with localization. Commented Nov 5, 2019 at 16:24

You could attach wires to two corners of the surface and mount two motorized spools on the robot so that the wires can be kept under tension. The distances to the two corners define the position of the robot uniquely. The design is very similar to this plotter bot: https://www.youtube.com/watch?v=T0jwdrgVBBc

Maybe this answer comes a bit too late:

How about using a wide angle camera that sees the whole surface of the mirror? It would be on a separate fixed mount next to the mirror.

Using only image processing to determine the robot position assuming that the camera can see the mirrors edges and the robot can be definitely distinct from the mirror (has an outstanding color for example).

I don't know how the robot is transported from mirror to mirror, but the same transportation means could be used for the camera mount as for the robot. If the robot is not transported, but fixed per mirror, you can have a retractable mount for each mirror.