online-programming & connection between extruder (Duet-2-Board), RoboDK & KUKA KRC4- Printable Version +- RoboDK Forum (//m.sinclairbody.com/forum) +-- Forum: RoboDK (EN) (//m.sinclairbody.com/forum/Forum-RoboDK-EN) +--- Forum: RoboDK API (//m.sinclairbody.com/forum/Forum-RoboDK-API) +--- Thread: online-programming & connection between extruder (Duet-2-Board), RoboDK & KUKA KRC4 (/Thread-online-programming-connection-between-extruder-Duet-2-Board-RoboDK-KUKA-KRC4) |
online-programming & connection between extruder (Duet-2-Board), RoboDK & KUKA KRC4-Sakerfalke-12-19-2019 Hey to all forum members and dear RoboDK Team, I am working on a 3D printing project to print with an extruder connected to a KUKA-Robot (KR-210 L-150-2 with a KRC4). This thread got a little long, but please read it completely. It contains a lot of RoboDK code from your documentations, but I had to paste it in here, so that you know, what exactly I am talking about. What we have achieved/done so far:
I need to synchronize the material-extrusion-speed/steps of the extruder (which is controlled via a Duet-2-Board) with the movement speed of the TCP. That is why I first have to edit your kRC4-Post-processor like indicated on your documentation here: //m.sinclairbody.com/doc/en/Robot-Machining.html#Print3D At RunCode we added (like you suggested) this part:
Code:
def RunCode(self, code, is_function_call = False):
Your documentation then proceeds with:
We need to trigger a function call namednew_movewith each new linear movement instruction. We can add this call at the beggining of the MoveL command:
Code:
def MoveL(self, pose, joints, conf_RLF=None):
As I am not that much into Python yet, I am still trying to figure out all the different functions/ code-snippets that you defined. I found some explanations here://m.sinclairbody.com/doc/en/PythonAPI/postprocessor.html#post-processor-methods
I actually don't know, what exact code I can use here for
Code:
self.new_move(pose)
你能给我一些提示如何proc吗eed here and where to search for the right informations?
In order to be able to help here, you might also need some more detailed informations about our connections:
On your documentation you define an analog output from the KUKA-KRC4.
In our case we neither use an analog, nor a digital output of the KRC4, but we want to use the ethernet-cable connection (TCP communication) of the Duetboard to both RoboDK AND the KRC4 by using a third static IP. For instance:
https://wiki.python.org/moin/TcpCommunication
All we need to propper sychronize the extruder-steps with the Kuka-speed as a string with the E-Value, which can go directly to the duet-board to control the stepper motor. This means the E-Value of the G-Code actually doesn't have to be converted to Kuka-code, but maybe it might still be necessary for a good synchronization, what do you think?
你如果是的,你如何定义这个公司nnection properly in the KRC4-post-processor? My question also is: Do we have to define it in the post processor or somewhere else in RoboDK, as the extruder could also be controlled via RoboDK directly. But it shell use the actual position and/or speed of the robot for highest accuracy.
In the post processor there is a part with the connections:
Code:
def setDO(self, io_var, io_value):
Here we probably have to define a TCP-connection, but we don't know how. It would a great help, if you could provide us some informations about how and where to update the code in RoboDK! Thank you very much in advance. Merry Christmas and a happy new year by the way! |