HAMR
Holonomic Affordable Multi-terrain Robot
HAMR is a holonomic robotic base using a unique drive mechanism that minimizes the number of actuators to reduce costs while using conventional wheels for improved terrain handling. Tested for ADA compliance and achieving a sub-$1000 build cost, a fraction of the price of the cheapest commercial holonomic base, HAMR is an ideal platform for research and applications requiring low cost holonomic bases.
My primary technical roles included the development of the holonomic control software, design and implementation of embedded systems, and testing.
This project was completed in a 4 member team for my Senior Design Project at the University of Pennsylvania in 2015-2016.
What is "holonomic"?
A holonomic robot has the ability to instantaneously translate or rotate in any direction in any of its configurations. HAMR achieves holonomic motion using the RAMSIS II drive mechanism developed at ETH Zurich. HAMR is the first documented implementation of this mechanism.
This mechanism consists of two parts, a lower differential drive and rotating upper turret. The control software, utilizing the RAMSIS II kinematic equations, synchronizes the two parts, enabling holonomic motion.
This schematic from "Comparing Different Holonomic Mobile Robots" by El-Shenawy et al. details the RAMSIS II configuration.
In the following video, HAMR is shown executing a square trajectory while maintaining a constant orientation, a motion only possible with a holonomic robot. The blue arrow shows the motion of the top, which maintains its orientation, and the red arrow is the lower drive. Note that the blue arrow always maintains its orientation regardless of the motion of the robot.
The arrows help visualize the motion of the two rotating components. The component with the red arrow provides translation, but is unable to control its orientation. The component with the blue arrow corrects for this orientation.
Embedded Systems
Testing
To facilitate testing, I developed a live plotting software in Python using the matplotlib library. The software allowed us to monitor and log the relevant parameters of the robot from a separate computer, including global velocities and motor velocities, in addition to providing control over the robot's movements and control parameters through the GUI. The code for the liveplot was designed to be extensible, allowing any number of plots to be displayed or any number of values (including non-plotted values) to be recorded simultaneously. Integration with a 3D controller further simplified operation. This software was critical in reducing time for testing and PID tuning.
Sources
RAMSIS II schematic
24V RS775 Motor
Pololu G2 High-Power Motor Driver
AS5145B Quadrature 12-bit Encoder
AS5134 Quadrature 8-bit Encoder
HCTL-2021-A00 Quadrature Decoder
Adafruit 9-DOF IMU
Arduino Mega 2560
Turnigy 7.2V 2200 mA Battery
Powersonic Sealed Lead Acid Battery
Logitech Controller