/Robotic-Arm-Automation

OWI-535 Automation to pickup items and drop them in specific drop area

Primary LanguagePython

OWI-535 Automation

enter image description here

OWI-535 (also known as イスペット グリッパーアームロボット in Japan) is a cheap robot with 5-DoF. It can mainly be controlled through a wired remote control, but the company has released a USB controller to be connected to PC, which can be used to control the arm using Python.

enter image description here

The idea of this project was to attach an electromagnet to the arm's gripper to pickup metallic materials, but as a small electromagnet was used in this project, I've limited the metallic items to some colored stickers having some staples inside them.

enter image description here

To simplify the problem and decrease the degree of freedoms, a vertical camera was installed to convert it to a 2D problem.

enter image description here

The application is implemented on RaspberryPi3, which is attached to a touch screen. The camera shows the work-space with the items to the user, and he selects the item he wants to pickup. For the current moment, all the items are circular with specific colors, so the program starts to convert the space to HSV to segment the items (and the drop area), then detect the contours and the center of the circle.

enter image description here A laser module is installed on the robot arm to identify the arm position -It has been installed behind the magnet, to allow the camera to track the magnet position, even if the arm is down like the above picture-. So the arm starts first to move its base to stand in front of the center of the circle, then it starts to move the rest of the arm to reach the item. Once it reaches it, it enables the electromagnet to pickup the item, then start moving to the drop area to drop it.

The main drawback of this robot is having an open-loop system. As it uses DC motors, it's so hard to derive equations or to apply any kinematics methods to move the arm, because of the lacking of any feedback. The solution can be found on this link: https://www.instructables.com/id/Intro-and-what-youll-need/, where motor shield and some potentiometers can be used to determine to arm position.

enter image description here

Currently I'm still testing the feedback of the motors with the shield. Once I finish it, I can apply the following equations to move the arm to the item's position (Thanks to my friend Abdallah Ezzat who helped me with their derivation):

enter image description here

Demo for the arm's movement and center determining: https://j.gifs.com/2x47MJ.gif

D-H parameters and arm's forward kinematics: http://ijra.iaescore.com/index.php/IJRA/article/view/1001