Greetings
I am using my Motoman SDA-10D (DX100) robot for a 3D printing application. The TCP travels through a bunch of waypoints, and the universal outputs on the DX100 tell the Arduino-controlled extruder what to do.
My current setup is a print-bed mounted to the robot arm, and a stationary extruder. This is a bit odd but that's the way it is for now.
My toolpaths are 3 dimensional and quite complex, and the position of the nozzle relative to the bed changes constantly. To avoid a heap of ugly calculations, I am using the SETTOOL function to re-define the tool at each point along the toolpath. The "tool" is sequentially updated and told to move to the nozzle exit with a set pose using the MOVL command.
Here is an example of the code:
MOVL C00002 V=0.500
SETTOOL TL#(11) P0008
MOVL C00002 V=0.500
SETTOOL TL#(11) P0009
MOVL C00002 V=0.500
SETTOOL TL#(11) P0010
Where C00002 is the position of the nozzle exit. The P000X points are the toolpath essentially, and are used to update the tool definition. These points can be between 0.2 and 1.5 mm apart.
Now to the problem: at each point the robot arm hesitates. The delay is about 70 ms. In this time the extruder is merrily extruding because it doesn't know the bed has stopped, and the result is a messy surface finish. I am not sure how much of the delay is due to the tool adjustment and how much is due to the reading of the MOVL command.
What I want is for the robot arm to move like an ordinary 3D printer, where there is no stop at each line in the GCode. Any suggestions for how this delay could be minimised/removed? I may work towards a robot-mounted extruder which would do away with the SETTOOL issue, but then there may still be a delay due to the MOVL function?
Any suggestions would be appreciated