Yasky-bot. An industrial robotic arm becomes open

In this project I'll show how I was able to restore and make functional an old Yaskawa motoman 6 dof industrial robot

Similar projects worth following
4 month ago I bought an old Yaskawa motoman MH5LF with a lot of missing parts (especially the controller). In this project I'll show how, by just using python, a little bit of math and a beckhoff IPC (industrial pc) is it possible to give life and fully control a robot without its native controllorer.

An industrial robot is generally a very complicated (and expensive) piece of engineering. It is mainly composed by a mechanical structure, that has to be quit rigid to avoid deformation but at the same time must be also light to reduce the inertia that the joints (motor) have to move.

Then there are the servomotors that, for each joint (there are 6 in total),  controls the movements. These motors are usually controlled in closed loop and they provide very good performances in terms of repeatability and accuracy. These motors are controlled by a servo drive, that is the real brain and heart of the motor itself. 

The drive read the feedback from the absolute encoder and, based on the commanded position imposed by the motion profile (I'll do a dedicated post to explain that), it switches the IGBT (or mosfet) to push the right ammount of current in the right coils. The servo drives are conneted to the controller trough a realtime fieldbus (profinet, ethercat, Etherenet/IP, ...). 

The controller sends the command positions, let's say every millisecond, to all the 6 drives. The drives then have to control the motor in order to track this position with the lowest error possible (this is often called position error or lag error). 

Usually we want the robot to be at a specific (x,y,z) position at a specific point in time with a particular orientation (pitch, roll, yaw). When we specify these coordinates we say that we are in the cartesian space. But how do we know at which angle every single servomotor has to be set in order to have a specific position and orientation for the end effector? 

We can do it by using the inverse kinematics. This is a mathematical approach that led a software to compute the joints angles by starting from the cartesian space. When we talks about joints we say, try to guess... that we are in the Joint space!

The inverse kinematics is a quite complicated matter and usually this is always solved by the robot manifacturer in their own robot controller. The final user has just to express everything in the cartesian space and the (closed) software takes care of everything (inverse kinematics, sigularities, faults, initialization, ....)

Since I had the arm with just the drives and their electrical cabinet (without any schematics) I had to reverse engineer a lot of components in order to make the guy moving.

In this project I'll share with you the journey I've made to make this robot alive again.

This is the mess of the first days with the whole robot lying on the ground a with a very little space left to live

  • Brushing your teeth has never been easier

    caltadaniel04/06/2020 at 21:34 0 comments

    What happens when you attach with a zip-tie a toothbrush to an anthropomorfic manipulator?

  • The useless box even more useless

    caltadaniel04/06/2020 at 21:18 0 comments

    Almost five years ago I've made a useless box by using an old Ikea drawer, few pieces of wood and two rc servomotors. 

    Now that I've a fully functional industrial robotic arm, capable to carry 5 Kg at very high speed I said to myself, hey Daniele why don't you make that old useless box even more useless by using the robot?

    But let's go back a while... A useless machine is not a simple fun machine made by the makers after arduino make its programming very easy. 

    This machine has a much more deeper significate. Its idea popped out by the great mind of Claude Shannon (yes is the same Shannon of the Nyquist-Shannon theorem for the reconstruction of a sampled signal) almost 70 years ago.

    Arthur C.Clarke, saw that machine on Shannon's desk and later he wrote, "There is something unspeakably sinister about a machine that does nothing—absolutely nothing—except switch itself off". This is exactly what we (at least I) feel when we see such a piece of engineering. 

    I decide to use the robot to make this concept even more deep. A robot that turn on an other robot made with the only purpose to turn himself off. This is a mindblowing concept.

    Here the video of Yasky (yes, this is how I've called the robot arm) performing the dance

  • Living with a robot

    caltadaniel04/06/2020 at 20:23 0 comments

    Let's start from the middle of the project... I know that a lot of projects starts and after a while they becomes or too complicated or people tends to tackle new ideas because the initial energy tends to become les and less while the time passes. 

    That's why I wanted to start from the middle. I want to show how the robot is performig nowadays, so I can better explain the journey I've made to reach this point.

    In this funny video I've made at home, you can see how the robots follows the prescribed 3d trajectory (that has been generated runtime in python and then loaded into the controller). The inverse kinematics has been solved in python too.

View all 3 project logs

Enjoy this project?



gbarbarov wrote 04/08/2020 at 23:30 point

Hey !!!! Maybe they are brothers!!! I also got a very cheap old Yaskawa robot a few months ago and resurrected it, I also didn't have a controller and a damaged encoder. I am designing a modular PCB to integrate everything, I have built it with 7 arduinos and 36 MOSFET. The control software is in Python to create Gcode.

  Are you sure? yes | no

Elliot Williams wrote 04/08/2020 at 13:29 point

Fantastic!  I'm sure folks would like to see some of the inner details too!  How are you programming it?  Code for the reverse kinematics?  Etc.  

The videos are brilliant.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates