A separate research project
Lightweight Visual Positioning System
LVPS is a non-GPS positioning system for resource-constrained and embedded machines. It turns a known area into a Cartesian grid using vision and landmarks, not satellites.
Almost any object an object-detection model can recognize can be registered as a landmark. When two or more landmarks are in view of the onboard camera, LVPS estimates an X, Y position and heading. That is enough for a small robot to plan a route.
The project started as a master’s degree challenge in A.I., aimed at the common algorithms underneath current systems rather than coursework alone. To test it, the work also included a simple Arduino-based drive controller, a way to hand work to groups of machines, a reinforcement-learning model, and a simulation for both positioning and control.
How a map is defined
A map is a 2D grid laid over an area. It does not need a full model of the room. It needs, at any moment, a view of at least two landmarks whose X, Y size and position are known. Landmarks can sit inside or outside the working area.
Each landmark carries an object type, the detection model that recognizes it, height and width for distance-from-apparent-size, whether lidar might see it, a confidence floor, and a priority used when several landmarks are visible. The positioning software does the rest. You do not draw the map graphic.
The original example was a basement map: a windmill, a cat tree, IR patterns, and blocked regions such as a pool table, described in JSON. That document is in the technical writeup.
Demo hardware
The public demo ran on a Raspberry Pi and an Nvidia Jetson Nano. At the time of the video, positioning was consistent enough to start fine-tuning an autonomous search model on top of it.
All related repositories are under github.com/mattcalhoun1.