Moving a Create3
Mar 2024
GOAL: remotely navigate a course by controlling a Create 3 robot via Airtable
SKILLS: ROS2, python programming (classes and methods), using Airtable
By hooking a Raspberry Pi up to a Create3 Robot, we essentially have a Roomba that can be operate with ros2 topics and actions.
Video
Robot Operation Code

HTML page Code

Operation Code Summary
We created a class called RobotController with several methods:
__init__(self)
constructor: __init__(self)
fetch_commands_from_airtable(self)
getting data from Airtable:
execute_command(self, command, value, status)
uses collected info from Airtable to set the correct command to the correct speed
timer_callback(self)
main operation
calls fetch_commands_from_airtable
calls execute_command
In main, the code initializes an instance of RobotController and "spins" the class in a while loop to continuously update from the Airtable data.
HTML Page
The buttons change the On/Off cells in the Airtable table to turn on and off the commands.
the user can click the buttons on the screen, or use the keyboard
up arrow: forward
down arrow: backward
left arrow: rotate counter-clockwise
right arrow: rotate clockwise
s: stop
Things to adjust in the future:
find a way to lessen the lag
embedded livestream in the HMTL page so don't need to do split-screen zoom
mount the camera better/less camera shake