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:
ABB
Comau
Doosan
Epson
Fanuc
Hyundai
Igus
Kassow
Kawasaki
Kuka
Kuka Sunrise
Mitsubishi
Techman/Omron
Universal Robots
Yaskawa
IRL (VC Example)
Install the addon by extracting the zip file to âMy Commands\Python 2â 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:
Naming convention:
ROBOTBRAND_FILETYPE.py
For example:
ABB_mod.py
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[1].
Mapping Null to TOOL_DATA[1].
Mapping Mitte_Greifer to TOOL_DATA[2].
Mapping Magazin to BASE_DATA[2].
Mapping Maka1_li to BASE_DATA[3].
Mapping Maka1_re to BASE_DATA[4].
Mapping Maka2_li to BASE_DATA[5].
Mapping Maka2_re to BASE_DATA[6].
Mapping Monostanze to BASE_DATA[7].
Mapping Aufstechst to BASE_DATA[8].
Mapping Datron to BASE_DATA[9].
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
writeRoutine(routine, routine.Name)
File âC:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\Translators\KUKA_src.pyâ, line 118, in writeRoutine
write_statementstatement.Type
File âC:\Users\Public\Documents\OCTOPUZ2.0\Commands\OctopuzCore\Translators\KUKA_src.pyâ, line 547, in writeLinMotion
writeMotion(pos_name)
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:
def Testprogram():
end #Testprogram
Testprogram()
How do I fix this? Is it related to the fact that I use KUKA.Sim Pro instead of VC?
@Hsm02000, We currently donât have pre-processors (uploaders) for any brands yet. But those are requested a lot so they are on the wishlist so to speak.
@Plop, Kuka.Sim uses different motion statements (custom statement type) so those are not supported by these Post-Processors.