Inspiration
With the advent of the space age, we have begun sending robots to foreign planets. In fact, as of today, we are only a few days away from the first powered flight on a different planet! As we continue to reach for the stars, we will encounter many engineering challenges. Autonomous robots must be robust and self sufficient because it is not feasible to send a repair team to fix them. Communication can take a very long time depending on where the planets are located and whether there are any obstructions in the communication path. Due to the lack of GPS satellites orbiting different planets, autonomous robots must rely on sparse maps and other methods to reliably localize themselves and map the area. This challenge has inspired us to develop a system capable of exploring an unknown environment without the aid of GPS. We are also choosing to use cooperative systems as many smaller robots are typically more robust than a single larger robot and can also cover more ground in the same amount of time. A team of robots also allows us to use both ground and aerial vehicles to improve the robustness and efficiency of data gathered.
What it does
Our system utilizes techniques from simultaneous localization and mapping (SLAM) and optimal control to generate safe and efficient trajectories that maximize the space being explored while minimizing fuel and other resource usage. We tested our system on a team of two robots: a ground robot and a quadcopter.
How we built it
We designed an optimal trajectory generation framework using the BeBOT library to generate optimal trajectories for our two test vehicles. The two test vehicles we chose were a Turtlebot3 Burger ground vehicle and a Parrot Mambo drone. We also implemented a simultaneous localization and mapping (SLAM) framework and connected it to the trajectory generation framework in order to explore an unknown environment.
We utilized Robot Operating System (ROS) to manage the communication between different nodes and also for access to existing packages such as the one used to control the Turtlebot3. Since a ROS package did not already exist for the Parrot Mambo, we instead relied on the pyparrot Python package and created a wrapper within ROS to control the drone.
Challenges we ran into
This project presented several challenges. First, the desired SLAM framework was a graph-based framework presented in the paper "Multiple Relative Pose Graphs for Robust Cooperative Mapping". Unfortunately due to time constraints, we instead had to rely on an existing SLAM framework. Next, communicating with the Parrot Mambo proved to be more difficult than originally anticipated due to timing issues with the Bluetooth Low Energy (BLE) drivers. This was solved by avoiding threading when making calls to the BLE communication drivers. Finally, the complexity of the problem was vast given the timeframe. Despite this, we believe that we were able to produce an excellent proof of concept.
Accomplishments that we're proud of
We are incredibly proud that we were able to demonstrate a working concept for such a complex problem in a very limited time frame. Our combined hard work and determination coupled with our knowledge of control systems made it possible to accomplish our goals. We managed to implement a working SLAM algorithm along with autonomously controlling both the Turtlebot3 and Parrot Mambo. In addition to the implementation, we were able to create code that can be used in future research in a much shorter timescale that we would have done otherwise.
What we learned
We learned how to quickly decide on which features are important and which ones should be dismissed for the sake of creating a final project. We also learned how to utilize ROS packages in an efficient manner. Finally, we learned much more about the topics of optimal trajectory generation and SLAM.
What's next for Optimal Exploration of Foreign Planets
In the future, we aim to refine our algorithms to better reduce the variance in our map estimate and improve communication between robots. We would also like to attempt controlling a larger team of robots. Once we have proven the efficacy of our methods, we will implement our algorithms on more realistic hardware in more realistic scenarios such as controlling small rovers outside in rugged environments.
Log in or sign up for Devpost to join the conversation.