For our final project in Robotics, we were tasked with creating a robot that could consistently pick up a piece out of the operation board. Our robot had to be resilient to the operation board moving around and completely autonomous.
My partner Remy and I decided that we would make our robot especially resistant to the board moving by creating a frame for the operation board and embedding our robot into the frame.
My professor had the previous president of Tufts, Tony Monaco, come in as a guest judge for the competition. He liked our design and said securing the patient is essential to a successful surgery.
Our robot utilizes magnets to pull the piece out of the slot. The magnet is attached to a pulley and to the piece.
Onshape rendering of my design
The design for the cat robot was made in Onshape, all parts were laser cut out of black acrylic and epoxied together. I am proud of this design. It is one of my cleanest designs.
The tail of the cat is the pulley system. The system works using a stepper motor to rotate the whole robot. A larger MG995 metal gear servo moves the tail up and down. A small micro servo pulls the pulley in and out. I designed the system so that the more robust motors were pulling the largest amounts of weight.
The electronics for this system are fairly simple because it only uses 3 motors.
NEMA17 stepper motor for rotation
MG995 metal gear servo motor for the tail
SG90 servo for the pulley
This allowed us to only use the robopico board and directly attach all of the motors to that directly rather than using any breadboard.
Hardware wiring diagram
Robopico board attached to the mechanism
Using MQTT the Raspberry Pi Pico connects to the computer running image processing code using OpenCV.
The image processing code finds the location of the blue object (we wrapped our spare ribs part in tape).
The center of the orange tape is found and a line is drawn across the board.
The code then determines if the piece is above or below the large piece of orange tape.
If the object is above the piece of tape a command is sent to the pico over MQTT to run the “upper “ code which angles the motors to retrieve the piece from the upper position.
If the object is below the line a command is sent to lower the magnet in range of the object.
After this, the motors return to their set location off of the board.
The image processing code tracks the location of the blue piece and determines if it was successfully retrieved by the magnet.
If the piece is successfully retrieved the message “success” will be displayed across the screen.
If the piece has not been retrieved then another command will be sent to the pico to attempt to retrieve it again.
The entirety of the code is documented in my GitHub.