The Robot Arm looks for Screws and picks them up. That's about all there is to it.
The robot arm controller is a Raspberry Pi 2 Model B. The Servomotors are Dynamixel AX-12A. There is a Raspberry Pi camera module mounted on the top for image processing.
The image processing algorithms applied here are all very simple. I wanted to write them by my own. Two important libraries which I used are pythons "picamera" and a library called "ax12". "picamera" provides an easy way to get greyscale pixeldata from the Raspberry Pi camera module. "ax12" is used for the communication with the Dynamixel AX-12A servos. I did write some code to make the servomotors move smoother (starting and stopping in a smooth sinusoidal manner). And then there was a bit of code to actually get the junctions into positions, which would allow the electromagnet to pick up the metallic things. In other words, this was about getting the thing to move correctly given some x and y values which were extracted from the image earlier.
My Blog about the thing:
https://electrondust.com/2017/10/28/r...
Sourcecode:
https://github.com/T-Kuhn/ScrewPicker
Music:
"As Colorful As Ever" by Broke For Free
http://www.brokeforfree.com