1st Place in 2015 Boston University Imagineering Design Competition
From Metal to Music: Cithara—A Robotic Guitarist
Cithara is the modern Greek word for guitar. As an exercise in robotics and systems design, cithara was a novel approach to develop a robotic arm and slider capable of playing a guitar. The arm plucked the strings while the slider held down the frets. My friend Mehmet Akbulut and I won 1st Place in the 2015 Boston University Imagineering Competition and later revised the project to improve its functionality.
We wanted Cithara to be quite different from other similar systems. Unlike most systems, Cithara was designed to be fairly universal—it is capable of playing almost any song with minimal effort. It converts guitar tabs that are entered as a one-dimensional array of strings and frets into time ordered coordinates. This feature makes Cithara fairly unique because other systems mandate hard coded songs and coordinates. Moreover, these systems do not play the instrument in the same fashion as a person. While most systems use compressed air to hit multiple notes at the same time, Cithara plucks each individual string like an actual guitar player.
The first iteration of Cithara began as a robotic arm with two degrees of freedom that was controlled via an Arduino Uno. Cithara had two modes: music mode and a play mode. In the play mode, the robotic arm can be controlled by a pair of joysticks. Music mode is where the robotic arm and the slider play the song loaded into the system. This music mode system is quasi open-loop because it could not check if a note has been successfully played. My teammate Mehmet wrote Python and C functions to convert the guitar tabs into a machine readable instruction set. For memory purposes, the Python functions were run on a PC and the output is uploaded to an Arduino Uno. The conversion can be performed on a microcontroller if it has more memory. This instruction set is computed real time into Cartesian coordinates. Finally the Cartesian points are converted into the angles for the base, shoulder, and elbow joints of the arm.
I designed and machined the arm and slider mechanism, which were operated by a variety of servo motors. Due to time constraints for the competition, many parts of the arm and slider were 3D-printed. However, this created many control and durability issues as the arm was quite large and heavy. As the arm moved further from its origin the bias uncertainty grew larger. To compensate for this, smart navigation paths were used. When we reworked Cithara, we made several major changes to the design of our system. The pulley system for our initial slider design was created hastily. The 3D-printed parts and fish wire were not very reliable or accurate. We switched these out for a stepper motor with an encoder on a rack and pinion system. This allowed for a higher level of precision and speed in the slider system movement. Moreover, the guitar slide itself was mounted on a servo that allowed for more control over its calibration with the guitar. The robotic arm was also upgraded by doubling the servos at each joint for significantly improved precision and the adjustable gripper was switched out for a custom clamp to better hold the guitar pic. Furthermore, the system was operated by an Adruino Mega and an Arduino Uno.
This project involved a lot of systems design because there was a lot of mechanical and electric engineering components to the project. Although we would like to improve the Cithara to better emulate a human guitarist, this project is not a key focus for my partner and I.
Special thanks to Mehmet Akbulut for all of his help on this project. You can explore some of his amazing work at akbulut.io