Made during McGill's Robohacks, the SpaceArm project is a scaled down and simplified prototype of a robotic arm designed to simplify object manipulation in outerspace.
Name | University | Major |
---|---|---|
Henry Wang | Waterloo University | Computer Engineering |
Haowie Zhao | McGill University | Computer Science |
Brian Zhang | Carleton University | Software Engineering |
Richard Salas | University of Toronto | Mechanical Engineering |
Mike Zhang | University of Toronto | Mechanical Engineering |
Duy-Bao Nguyen | McGill University |
- Leap Motion V2
- Ino (Arduino)
- Python
- Jupyter Notebook
- SolidWorks
- Mega Arduino 2560
- 5 Servo Motors
- Leap Motion Sensor
- Acrylic
- Bread Board
The robot arm was designed on SolidWorks and assembled by hand. The arm mostly composed of laser cut acrylic glass. The base of the arm has two servo motors, the body has two more and the pincers has the remaining one. The microcontroller used to control the robot arm is the Mega Arduino 2560 where pints 5 through 9 were used to rotate the motors.
Leap Motion was used to gather the wrist and finger positional data and feed it to the Arduino via python scripts where it would then use the gathered data to rotate the motors in relation to the wrist and finger movements using inverse kinematics calculations. The information was fed through a serial connection. SpaceArm has several built in commands: its pincers close and open when the right fist closes or opens and SpaceArm resets all its motor position to 0 (where two of its major parts are perpendicular to each other) when the left hand is presented.
The movement of SpaceArm was made through various test scripts that automated motor movement. After the arm properly moved accordingly, it was connected to Leap Motion. The desired movement of the Arm compared to the user's arm was tested by printing out the data into a csv file to then graph using matplotlib and Jupyter Notebooks. Using this data, the inverse kinematics calculations were adjusted accordingly.
We encountered a LOT of problems, and most of them near demo.
- Leap Motion Orion is Windows only and we were more or less developing exclusively in Unix environments and had to resort to using a previous version of Leap Motion (V2).
- The only laptop that could pair with the bluetooth shield of the Arduino could not actually connect to it so we resorted to using serial as time constraint would not permit an extensive fix for this.
- The Arduino only properly processed inputs with a delay of 1.6 seconds so we fixed the python script to sleep 1.6 seconds after every output.
- The batteries could not handle the volts required to run the motors so we switched to a power adaptor.
- The lower body became unglued so we drilled a hole to more securely attach it.
- The servo motor died so we reassembled the pieces to replace the servo motor.
- The adaptor wires weren't functioning. We confirmed it by testing out its output voltage so we cut the wires before reattaching them.