The goal of this project was to use an Airtable API to communicate commands to a Create3 robot that would navigate a maze.
API
Airtable was used as a baseline spreadsheet database to remotely enter commands. These values could be acquired by a Raspberry Pi onboard the Create3. Since ROS was being used for the robot controller, two values were needed to create the correct vector for the robot's translational and rotational movement.
Code
Since the Create3 robot uses ROS, the Raspberry Pi needed to create a publisher node through which to send movement commands. At each point, the API values could be collected into a "Twist" object and sent to the Create3. The rate at which this occurred could be dynamically changed. The code for this interface can be found here.
Phone Support
There was a small support needed for a phone to rest on, which would be used as a camera for the robot. This meant that the person controlling the robot could be in another room and simply video call the phone, allowing them to see from its point of view. These supports were made and laser-cut from wood in the shape of some helpful friends.
Challenges
A few challenges arose in terms of communicating with the Create3. There is limited documentation on the specific channels through which ROS commands can be published, and many safety measures are in place that prevent backwards/extended movement of the robot.