12-13-2021, 08:44 PM
Hi there,
I'm using online programming to 3D print.
I've generated RoboDK programs using the 3D print configuration module. Also, I'm using a serial connection between my computer (windows) and the extruder controller (Marlin firmware on a RAMBo board) to send G-Codes for the extruder control.
Since I need to establish a serial connection to Marlin, I've used a separate Python program to send G-Codes. Consequently, I used an 'Extruder.py' program in RoboDK to get callbacks from the RoboDK program and dump them into a database which then will be read by that separate Python program.
Now, my problem is that when I start running the main RoboDK program, RoboDK does not wait for the actual robot to finish the linear moves then send the extruder commands. This makes everything out-of-sync.
As can be seen in the attached photo, the sequence of execution of a part of the program (for one layer of a 4-segmented path) is like this: MoveL54 moves the robot to the beginning of the layer, then there's an extrusion command and MoveL55 command for the 1st segment of the path. But the problem starts when there's no wait after MoveL55, and RoboDK sends another extrusion command corresponding to the 2nd segment of the path. Once all these three commands (denoted as 2 in the photo) are executed, RoboDK waits for the robot to complete the movement and then executes MoveL56 and the 3rd extrusion command. And it continues out-of-sync like this.
My approach is to add a command/instruction before Extruder() callbacks to wait for the robot to finish the task. I used WaitBusy(), WaitMove(), and WaitFinished() methods of the Python API but couldn't implement the expected behavior.
I appreciate it if you can help me out with this problem. I'm struggling with it for weeks. it's really frustrating to be this close to printing with the Kuka robot but not do it properly. Let me know if more information is needed.
Thanks,
Poe
I'm using online programming to 3D print.
I've generated RoboDK programs using the 3D print configuration module. Also, I'm using a serial connection between my computer (windows) and the extruder controller (Marlin firmware on a RAMBo board) to send G-Codes for the extruder control.
Since I need to establish a serial connection to Marlin, I've used a separate Python program to send G-Codes. Consequently, I used an 'Extruder.py' program in RoboDK to get callbacks from the RoboDK program and dump them into a database which then will be read by that separate Python program.
Now, my problem is that when I start running the main RoboDK program, RoboDK does not wait for the actual robot to finish the linear moves then send the extruder commands. This makes everything out-of-sync.
As can be seen in the attached photo, the sequence of execution of a part of the program (for one layer of a 4-segmented path) is like this: MoveL54 moves the robot to the beginning of the layer, then there's an extrusion command and MoveL55 command for the 1st segment of the path. But the problem starts when there's no wait after MoveL55, and RoboDK sends another extrusion command corresponding to the 2nd segment of the path. Once all these three commands (denoted as 2 in the photo) are executed, RoboDK waits for the robot to complete the movement and then executes MoveL56 and the 3rd extrusion command. And it continues out-of-sync like this.
My approach is to add a command/instruction before Extruder() callbacks to wait for the robot to finish the task. I used WaitBusy(), WaitMove(), and WaitFinished() methods of the Python API but couldn't implement the expected behavior.
I appreciate it if you can help me out with this problem. I'm struggling with it for weeks. it's really frustrating to be this close to printing with the Kuka robot but not do it properly. Let me know if more information is needed.
Thanks,
Poe