Avidbots develops robots for the purpose of floor cleaning. I worked as the Coverage Planning Co-op, which focuses on how the robot plans its route to clean an entire floor. Given a floor map and localization estimates, the coverage planner then plans a path from its start pose to a goal pose, while ensuring that the path covers as much floor as possible.
Ultimately, I developed software to improve the performance, path-planning and decision-making capabilities of the robot. Some examples of features I implemented include improved collision checking when planning a route, automatic obstacle avoidance, and costmap clearing techniques to eliminate ghost obstacles. Other day-to-day tasks may include running simulations to test the features I create, and bug fixes for unhandled edge cases relating to path generation failure. The tasks I handle require a thorough understanding of the planning algorithms used, and the interactions between different components of the robot system.
In my final month at Avidbots, I initiated a research project to investigate new methods of performing coverage planning. In the context of robotics, coverage planning is a form of path-planning in which a robot must plan motions to cover an entire space. One application of coverage planning is in floor-cleaning robots, such as those at Avidbots. My project focused on coverage planning for irregularly-shaped maps. I researched a variety of techniques for coverage planning, and implemented algorithms to test a selected method. After testing the program on an irregularly-shaped map, the results yielded a 16% increase in coverage area.
Working at Avidbots, I developed many skills relevant to the field of robotics, such as the use of Robot Operating System (ROS), creating software that interfaces with the physical world, and a thorough understanding of path-planning algorithms and autonomy. I very much enjoyed the experience and would love to continue in this direction as a career path.