Below are recordings of a mining agent that I'd programmed to use an online graph slam algorithm to maintain its position in space while discovering its surroundings using sensor data. This is the final project of the "Artificial Intelligence for Robotics" graduate course at Georgia Tech.
The red point is the agent's position. The grey points are gems to be mined, with the gem types (letters) above them. The black point is the agent's next destination. The agent needs to explore the space (which it does using an achimedian spiral) until finds and extracts all the gems of specific types that it requires. When it finds any gem, it can use as a reference point for its position for future movement.
The agent gets data from noisy movement and landmark distance sensors and updates a graph of Omega (weights) and Sigma (scalars) matrices with the information. With each movement step, the online algorithm extends the matrices to integrate the information and then removes the old movement data, reducing the matrix sizes back to its prior size. This ensures that the graph will never grow too large regardless of the number of timesteps.
Similar to a Kalman filter, the graph slam algorithm works via the gaussian equation, however graph slam extends the equation to use a matrix to handle multiple constraints. This allows the agent to explore the space, adding new information about landmarks and movement (mapping) to the matrix while using prior and current instrument measurements to maintain where the agent is in this mapped space (localization).
No comments:
Post a Comment