Adding ABB IRB2600 to the Robot Workbench

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
noema
Posts: 7
Joined: Sun Oct 28, 2012 9:54 pm

Adding ABB IRB2600 to the Robot Workbench

Postby noema » Fri May 10, 2013 1:26 pm

Hi guys, I am trying to add an abb irb2600 robot to freecad for simulation. It's a robot that is quite similar to the Kuka kr16. Can anybody help me creating the csv and wrl file. Specifically I need a way to test the Denavit-Hartenberg table without bothering about the vrml file. I read that freecad can automatically generate a minimal representation. How?

I am working off the guide in the wiki:
http://www.freecadweb.org/wiki/index.ph ... Axis_Robot

and I have the robot specs in a pdf (page 11):
http://www.exparch.at/wiki/index.php/Da ... evA_en.pdf

I started with the closest Kuka robot (Mod/Robot/Lib/Kuka/kr_16.csv) and replaced values according to the irb2600 specs.

So this (kr16):

Code: Select all

    a    ,alpha ,d    ,theta,rotDir,maxAngle ,minAngle ,AxisVelocity
    260  ,-90   ,675  ,0    ,-1    ,+185     ,-185     ,156         
    680  ,0     ,0    ,0    , 1    ,+35      ,-155     ,156         
    -35  ,+90   ,0    ,-90  , 1    ,+154     ,-130     ,156         
    0    ,-90   ,-670 ,0    , 1    ,+350     ,-350     ,330         
    0    ,+90   ,0    ,0    , 1    ,+130     ,-130     ,330         
    0    ,+180  ,-158 ,180  , 1    ,+350     ,-350     ,615         
Becomes this (irb2600):

Code: Select all

    a    ,alpha ,d    ,theta  ,rotDir  ,maxAngle ,minAngle ,AxisVelocity
    150  ,-90   ,445  ,0      ,-1      ,180      ,-180     ,175
    700  ,0     ,0    ,-90    ,1       ,155      ,-95      ,175
    0    ,90    ,0    ,0      ,1       ,75       ,-180     ,175
    0    ,-90   ,-795 ,0      ,1       ,400      ,-400     ,360
    0    ,90    ,0    ,0      ,1       ,120      ,-120     ,360
    -85  ,180   ,0    ,0      ,1       ,400      ,-400     ,500
When I try this with the kr16 vrml model is way off the trajectory (to some degree this might be due to using the wrong model). I am also confused about the fact that the kr16 table is quite different (see "a" and "theta") in the wiki guide:

kr16 in wiki guide:

Code: Select all

    theta   d     a     alpha   theta_min   theta_max   Axis Speed 
    0       675   260   -90     -185        185         156
    0       0     680   0       -155        35          156
    -90     0     0     90      -130        154         156
    0       -670  0     -90     -350        350         330
    0       0     0     90      -130        130         330
    0      -158   0     180     -350        350         615
User avatar
jriegel
Site Admin
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Re: Adding ABB IRB2600 to the Robot Workbench

Postby jriegel » Fri May 10, 2013 1:40 pm

I read that freecad can automatically generate a minimal representation. How?
Unfortunately, its not implemented yet....

I just validated the KR 200 and 500 series. Thats the only machines I have access to. the KR 16 I just added and never checked. The Kuka robots should be pretty similar, but I don't know about the ABB's.

Using just a KR16 VRML model will probaly not working cause of "rotDir". The Kuka models have some twists in the rotation direction of the VRML nodes, which I compensate with the rotDir value. All the VRML models can be different :( They are basically a mess...

For the future I plan to get ride of the VRML models and use proper Assembly design robots for the simulation. But I can not say when ;)
Stop whining - start coding!
noema
Posts: 7
Joined: Sun Oct 28, 2012 9:54 pm

Re: Adding ABB IRB2600 to the Robot Workbench

Postby noema » Fri May 10, 2013 10:07 pm

Thanks for the quick reply. I see.
I think I got my Denavit-Hartenberg paramters working. When I run it with the KR16 vrml file it's just a bit off.

Unfortunately I am totally stuck with the vrml file. When I use the template from the guide and paste simple quads as geometry I get nothing that resemples robot motion. Is this template still compatible with FreeCAD v0.13?

How do I make a simple vrml file with FreeCAD transformation nodes where I can then plug in any robot link geometry. I am asking because ABB supplies their robot models in STEP format, one file per armature link.

Help very much appreciated,

PS:
my latest DH table for the ABB IRB 2600-20-1.65

Code: Select all

a,   alpha,   d,   theta,   rotDir,   maxAngle,   minAngle,   axisVel
150.0,   -90.0,   445.0,   0.0,   -1,   185.0,   -185.0,   156.0
700.0,   0.0,   0.0,   0.0,   1,   35.0,   -155.0,   156.0
-115.0,   90.0,   0.0,   -90.0,   1,   154.0,   -130.0,   156.0
0.0,   -90.0,   -795.0,   0.0,   1,   350.0,   -350.0,   330.0
0.0,   90.0,   0.0,   0.0,   1,   130.0,   -130.0,   330.0
0.0,   180.0,   -85.0,   180.0,   1,   350.0,   -350.0,   615.0
User avatar
jriegel
Site Admin
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Re: Adding ABB IRB2600 to the Robot Workbench

Postby jriegel » Sat May 11, 2013 11:09 am

Its basically quit simple. You need a VRML model with 6 special named rotation nodes. This rotation nodes need to resemble the 6 axis of the robot. The rest is freely to choose. Surly the distances between the axis has to fit the kinematic of the Robot..
Stop whining - start coding!
noema
Posts: 7
Joined: Sun Oct 28, 2012 9:54 pm

Re: Adding ABB IRB2600 to the Robot Workbench

Postby noema » Sun May 19, 2013 1:12 pm

A cakewalk ;)

So I have a verified model of an ABB IRB2600 now.
*throwing confetti*

http://www.flickr.com/photos/stfnix/873 ... hotostream

If anybody is interested here are the wrl and csv files along with a python script that simplifies compiling the vrml file from the ABB model files.
http://file.nortd.com/gx/other/abb_robot_generator.zip

I was about to add this link to the robot page but the openid login mechanism is just throwing blank pages at me. Is there a way I can get a regular wiki account?

Also what are the plans for the robot workbench. Is there an outline somewhere. Maybe I find some time to help out. While the basic functionality is there it could take some love. Specifically for my workflow it would be great to be able to control the simulation from python. This would save me a lot of clicking. It could also sync a bit better between UI, view, and api.

Otherwise I am having a lot of fun with FreeCAD. Thanks for all work you guys put into this.
User avatar
jriegel
Site Admin
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Re: Adding ABB IRB2600 to the Robot Workbench

Postby jriegel » Wed May 22, 2013 1:12 pm

Great!
We can think of integrate your model in our distribution. The question is always about the license of your VRML file.

There is already a python interface for the simulation. The object is called Robot6Axis and can do the whole reverse kinematic stuff. With the axis retriven from that object you can steer the VRML model or the Robot document object.

For the future I think mainly about using the upcoming Assembly module to make it easier to assemble a new robot.

And yes, help is always appreciated! And all modules of FreeCAD still need a lot of love!!! ;)
Stop whining - start coding!
luiscarter1987
Posts: 4
Joined: Tue May 12, 2015 2:28 pm

Re: Adding ABB IRB2600 to the Robot Workbench

Postby luiscarter1987 » Tue May 12, 2015 4:10 pm

Hi my name is Luigi and i'm just doing the same thing with a Motoman HP20, and i'd like to share my problems with you. i like Vrml code and i'have never seen until now but my problem are different:

i have the motoman step file but it's build up with more of 516 elelements and i don't how to export correctly the wrl file. cause i believe the unix let the file dirty and it's not recognizable from a notepad or other text editor.

More over, i didn't understand in vrml how to configurate the rotation i mean the logic. I read we need 6 rotation for every axes, but nothing more.
could you me explain which is the logic of the vrml file cause reading tutorial for me was unintelligible.
User avatar
microelly2
Posts: 4560
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Adding ABB IRB2600 to the Robot Workbench

Postby microelly2 » Wed May 13, 2015 8:29 am

Look for a free copy of this standard book
http://www.wiley.com/legacy/compbooks/v ... /cover.htm
there is a nice example of a desktop lamp .
luiscarter1987
Posts: 4
Joined: Tue May 12, 2015 2:28 pm

Re: Adding ABB IRB2600 to the Robot Workbench

Postby luiscarter1987 » Wed May 13, 2015 2:50 pm

I gave an eye to the site and i understood quite a lot things, so interesting. But my problem is another: i have a robot axe that is defined from about 500 different part and i should merge them in order to export a single part in vrml format. This why if i select all the about 500 parts and i export the vrml file is not readble opening it with notepad++.

I found that is possible use two function in the freecad gui : part enviroment, using the fusion function and the "make a simple copy" one I can obtain iterating the operation in a coerent manner (that i don't know which is) a single part that it's easy to export in vrml only selecting the object.

Any Help about this ?

thanks a lot.
User avatar
microelly2
Posts: 4560
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Adding ABB IRB2600 to the Robot Workbench

Postby microelly2 » Wed May 13, 2015 3:19 pm

use the vrml inline node to connect to large data files
(see chapter 12)