The phone holder was located at the end of the Create 3 to give a wider field of vision for the user.
The Irobot Create 3 was controlled using a Raspberry Pi that received linear x and angular z velocities from an Airtable
To control the values placed in the Airtable, an HTML website was created with sliders to set the absolute linear and angular velocities and arrow keys to set the direction.
The phone holder was dimensioned to hold an iPhone 14 and fabricated using a 3D printer
This project aimed to program a Raspberry Pi to use ROS2 to control the movements of an iRobot Create 3 from Airtable values. After identifying only linear x and angular z velocities were required to move the Create 3, code was generated using ChatGPT and human programming to fetch data from the Airtable, turn the values into Twist() messages, and then publish to /cmd_vel. Finally, an HTML website was generated using ChatGPT to set the absolute velocities and receive keyboard inputs to change the Airtable data.
When initially testing the website, the Pi would receive too much data over a short period of time, causing the program to be delayed. This was because the website sent too much data to the Airtable as the keyboard buttons were held down. To resolve the issue, the website was modified to change directions when the arrows were first pressed and stopped with the space bar. This resulted in smoother controls and little delay.
When printing the phone holder, the print kept failing at the base connection to the robot. This issue was solved by switching to another printer.
The iPhone holder was held down using 3mm bolts.
The Create 3 traveling through the obstacle course.
Initial tests of the Create 3 moving was done using a chair as an obstacle.
The website had two slides for the absolute angular and linear speeds and showed the driver the direction and speed of the robot
To improve, the phone holder would be changed to hold the phone sideways. In the obstacle course, the holder hit the top part of the finish chair. Additionally, the video feed used to watch the Create 3 movement was cut around the edges of the robot due to the phone being held vertically. This led to the Create 3 robot overcorrecting several turns to make sure the robot did not hit the obstacles. If the phone was held horizontally, both issues would've likely been resolved.
Another improvement would be to change the delay system to get the motors to run continuously. Although the robot was able to complete the obstacle course, the time delay used could have been reduced. The original time delay was created to prevent the Create 3 from being overloaded with data from the airtable. However, this issue was resolved when the website was changed to reduce the overall information sent to the Airtable.
The Create 3 Robot successfully drove through the obstacle course.
The peripheral vision of the cameras were smaller than the robot, causing some objects to be missed