About the Bot
The Airport Buddy is an autonomously driven robot that is meant to follow around its user while pushing the user’s suitcase. This tiny robot is designed to be used in airports, but it could theoretically be used in a wide range of applications. The robot is primarily comprised of four swerve drive modules and a grabber claw that will interact with the suitcase (claw not pictured here). All of the gears and structural components were 3D printed or lasercut from materials we had on hand. This project began as a course project for ME 423 - Robotics at Cal Poly but I have since continued to iterate upon the design as my own personal project. I plan to develop the mechanical and electrical systems so that they may be used as a platform to test and improve my proficiency in robotic control theory.
Drag or zoom to interact with the 3D model below!
Swerve Drive Airport Buddy
Trajectory Planning
In order to drive our robot to rotate and translate at the same time, we can drive the robot to move along an arc of known radius. We can make radius and rotation direction functions of time to introduce more complexity to our robot’s motion. This essentially allows us to control our robot using path coordinates. Since our goal is for the robot to follow a human user, the human user will naturally trace out a path with their movement, avoiding obstacles as they walk. The robot can then follow this predefined path which will naturally allow our robot to avoid obstacles without the need of any additional sensors. The associated forwards kinematics derivations are shown to the left.
Inverse Kinematics
We based the inverse kinematics derivations for this project heavily on the swerve drive model that we found from an article called “How To Build a Swerve-Drive Robot” and the path to cartesian MATLAB functions that we developed in ME 326. By combining these codes, we created a MATLAB script that can generate a trajectory for our robot to follow in path coordinates, convert the positions, angles, and velocities to cartesian coordinates, and then use a Jacobian matrix to speeds and orientations required from each of the four swerve module wheels in order to produce robot movement that follows the desired path.