Hello,
I would like to use an IRB 4600 robot for 3D printing. However, when I send the robot multiple points to achieve with the function “abb.send”, the robot stops at each point. Is there a solution to this issue?
Hello,
I would like to use an IRB 4600 robot for 3D printing. However, when I send the robot multiple points to achieve with the function “abb.send”, the robot stops at each point. Is there a solution to this issue?
Hi David, could you please paste the full code snippet that is causing this problem? thx
Hi Gonzalo, here you have the code that I use to move the robot:
import compas_rrc as rrc
import math
if init:
for i in pos:
abb.send(rrc.MoveToFrame(pos,200,rrc.Zone.FINE, rrc.Motion.JOINT))
If you need more details about the code, I can send you the complete code. I want to clarify that the robot completes the entire trajectory. The problem we want to solve is the one-second stop that the robot makes at each point.
Thanks
Hi David.
Zone.Fine makes the stop, change to a zone like Zone.Z10 (10mm blend radius) and then the robot should move smooth.
Zone.Fine defines the movement to terminate as a stop point all other Zone.Z… are defined as fly-by point. (a fine point is important if you want to grip something, with fine you can make sure that the following statements like set signal for the gripper is not executed before the robot is in the gripping position.
Hi,
I tried using the zone you mentioned and it has improved, thanks. Just to make sure, is there any possibility to send a path complete instead of points?
Hi David,
There’s no dedicated function/method to send a full path, but if there were, it would basically be the same thing you have sending all its points without waiting in between. So a hypothetical new instruction called MoveToFrames
(plural) could look like this:
# sending all without wait
abb.send(rrc.MoveToFrames(frames, speed=speed, zone=zone, motion_type=motion_type))
# or sending all and wait for the last one
abb.send_and_wait(rrc.MoveToFrames(frames, speed=speed, zone=zone, motion_type=motion_type))
Internally it would be looping over all frames and sending them just like you do now, so it wouldn’t add anything that is not possible now. But if you consider that the syntax with a new instruction like this would be better/more readable, we will consider adding it.
Cheers