This addon allows converting robot programs from Visual Components to native robot language. The addon is constructed so that new translators e.g. for other robot brands or controller versions can be added.
Translators included in this package:
IRL (VC Example)
Install the addon by extracting the zip file to My Commands folder. Then restart the application and the “Post Process” button shows up on the Program ribbon tab. Be sure to read ReadMe.txt included in the package for more information.
The post processor command includes the post processor launcher and separate translators for different robot languages. The translators can be found in a sub folder called “Translators”. New translators can be added to the “Translator” folder. New translator will automatically show up in the Post Processor save dialog as a new file type. The translator must be named with following naming convention so that it shows up in the save dialog properly:
Post processors calls a function named "postProcess" in the chosen translator. That function must be defined in the translator and following arguments are passed for it:
app (of type vcApplication)
program (of type vcProgram)
uri (file uri of type string)
See existing translators for a reference. IRL translator is the simplest example. It doesn't support control flow (like while, if, break, etc statements).
The command tries to match robot model with a correct post-processor by searching manufacturer on BOM Description or by matching a controller name with known names (e.g. IRC5 => ABB). If match is not found user chooses PP on action panel settings.
Attachment contains the same translators as OP but also a new translator for Yaskawa Motoman robots (DX100/DX200 controller).
Check the header in Yaskawa Motoman_JBI.py file to see detailed info about the scope of the translator. By default it produces rectangular coordinate jobs but pulse format is supported if pulse ratios and zero positions are added on the robot model.
Attachment contains translators with new KUKA translator added into the pack.
Kuka translator was written and tested with fairly new KRC4 controlled robot so it may or may not be compatible with older controller version. Translator has few different options that affect the format in .src and .dat file. Options are boolean variables that can be changed in “setPostProcessorOptions” method in KUKA_src.py source file. These options are:
use_inline_form: True=Wrap commands into folds, False=Pure KRL without folds
comment_out_frames: True=base/tool frame assignments are commented out at the beginning of main, False=base/tool frames are assigned at the beginning of main (beware that this will override current frames)
i will testing the Kuka Post Processor but i get this error:
Mapping Null to BASE_DATA.
Mapping Null to TOOL_DATA.
Mapping Mitte_Greifer to TOOL_DATA.
Mapping Magazin to BASE_DATA.
Mapping Maka1_li to BASE_DATA.
Mapping Maka1_re to BASE_DATA.
Mapping Maka2_li to BASE_DATA.
Mapping Maka2_re to BASE_DATA.
Mapping Monostanze to BASE_DATA.
Mapping Aufstechst to BASE_DATA.
Mapping Datron to BASE_DATA.
Traceback (most recent call last):
File “file:///C:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\PostProcessLauncher.py::”, line 73, in firstState
File “C:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\Translators\KUKA_src.py”, line 70, in postProcess
File “C:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\Translators\KUKA_src.py”, line 118, in writeRoutine
File “C:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\Translators\KUKA_src.py”, line 547, in writeLinMotion
File “C:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\Translators\KUKA_src.py”, line 661, in writeMotion
% (ldat, motiontarget.CartesianSpeed / 1000.0, motiontarget.CartesianAcceleration, motiontarget.AccuracyValue))
NameError: Attribute or method ‘CartesianAcceleration’ not found.
Thanks for feedback. I tested KUKA PP on VC 4.1 family and it seems that on 4.0 vcMotionTarget doesn’t have that property CartesianAcceleration and that why it failed. I modified the PP and now it should work also with 4.0 series products. New version 1.01 of KUKA PP is attached to the zip file on the original post.
Thanks so much Keke, I’m making good progress in generating the robot code, my pulse values are way off though (I’m guessing the RC1G980 is the 980th value under the ‘///RCIG’ notation in ‘ALL.prm’ file? I think it’s just a matter of calibration if you have anything to help with that? Also, it would be really helpful if I could take a program from the robot controller (programmed on the pendant) and load it into the simulation (an inverse post processor I guess) I found this really helpful when using other software.
No problem Richard. We don’t have uploaders yet for any brand but that is something that is asked a lot so it is in the wishlist so to speak.
Yes those parameters are like you mentioned in ALL.prm. Usually I just open a notepad++ and copy paste all the values under the header into a new file and then I can track those specific entries using line numbers. So RC1G972-977 are on line 98 and RC1G980-985 are on line 99. See the picture below. You can see that the non-zero values are the used joints.
Also sometimes you need to fiddle with joint signs and zero offsets. Try to post some basic poses such as home position to get a grasp of what is wrong in the calibration. But start with the ratios and then fix signs and offsets if needed.
I added the files to My Commands (including the translators) and the Post Process button does appear, however my generated output files are always empty and only contain the template data, but no points etc.
For example, this is what all my generated UR programs looks like:
How do I fix this? Is it related to the fact that I use KUKA.Sim Pro instead of VC?