Alex’s Status Report 4/5
This week, I was mostly working on the internal data flow and data structures. The normal BreezySLAM output is a .pgm file, but since we wanted to do extra processing on top of the map, I modified the BreezySLAM script to output a binary file, which is read back in to our data structures. We are working in object-oriented Python, with the bulk of control & data stored in the Map class. The Map class compresses the high-resolution map into a grid. Then, we store two versions of the grid: one representing the “heatmap”, or “exploredness” of each square on the map, and one representing the location of walls/obstacles to be used by path planning. Map also stores the current location of the robot and the projected next destination.
Here is an example of the map generated by overlaying our processed data on top of the heatmap:
Next week, I will be working on implementing a version of Djikstra’s algorithm to plan a route from a given start and end point. I plan to use the standard version of Djikstra’s by representing each grid as a node, connected to each cardinal neighbor by an edge of length 1. To avoid walls, I will start out by representing each edge to that wall as infinity so that path is never chosen. Later, I plan to work with Shanel to optimize the algorithm that will actually choose the destination.
Overall, I feel the project is making much bigger strides. Each of us is making headway in our chosen areas, and the integration is being carefully planned at each step, at each meeting. I am no longer concerned about finishing the project on time, but I am unsure if we will have time for major optimizations if we don’t reach our requirements.