Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
External Axis to follow path
#1
Hi,

I have mounted my 1 rotational axis to the robot flange and generated a path for the robot arm to follow. I wish to make the rotational axis rotate to follow this path, as the path turns the rotation happens with it. See the attached image for a more clear understanding. If I was to start moving along the Y-axis then the rotating axis should follow the path keeping the Y-axis as its travelling direction.

Is using the external axis the best way to do this or is there a better way?

Thanks,
Tom


Attached Files Thumbnail(s)
   

.rdk   ABB_PumpFeed_Swivel.rdk (Size: 4.79 MB / Downloads: 22)
#2
How did you create the path?

For that to happen the way you want, I think the best option would be to have 2 points near one another at the corner. Like 1 point at the corner and one point 1 mm before the corner. You could also just have evenly distributed points along the path, the same result.

You could then use the "Tool orientation follows path" algorithm instead of "Minimum tool orientation change".
The problem with what you are proposing is "How do you unwind the tool"?

Jeremy
Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel


#3
Thanks Jeremy.

I built a tool in grasshopper to generate the paths.

Okay so by adding the extra point it will act as a trigger for the external axis to start turning? Because I want the arm and the head of the tool to move together (I understand 1mm is fine and will do the job) to follow the path.

As for how the tool unwinds, the hardware spins infinitely, the external axis is actually mounted to the tip of the tool and spins independently. That is why I wanted the robot and the tool to run the current path and kinematic positions produced through minimum tool orientation change and then run the external mechanism on a separate job. Could a better option be to write a script to use onAction and send I/O signals to a PLC which I am already using to run a separate system on the tool?
#4
Oh I see, I didn't pick that the external axis you were referring to was attached to the tool.
In this case, I'm not so sure how to do that. Not saying it can't be done.

Will your path always be a rectangle? I assume not.
Because what you really need to know is "What is the direction of the next point"...
Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel


#5
yes so the arm will run a path with the tool attached and then I require the external axis to maintain the same orientation around the path (If forward on Y axis then stay forward even when turning at different points).

No the path will vary in shape. Is there a way to get that information? Like could I have an onAction script that gets the position of the next point and orients the external axis to face that? If so would you have any examples of anything anyone else has done?
#6
It's not something I'm aware anyone else has done before.

But it's still something I think is achievable if you are ready for a bit of Python programming.

I wouldn't go the onAction route.
What I would do instead is "Modifying the program" once the 3D printing project is done in RoboDK but before post-processing it.
In other words, I would modify the "white" program generated. (You can "right-click" -> "Show instructions" on the white program to see the instructions in it.)

Here's an example of how to modify the instructions in a program: https://robodk.com/doc/en/PythonAPI/exam...structions
(You might want to try it out on a simple program you create manually (like 4 targets, 4 moves) before trying on a 3D printing program.)

My strategy would be to find the first relevant move, find the second relevant move, figure out the "angle or orientation" in-between the two, and add a program call to reorient the axis in the right direction in-between the 2 points. Rince and repeat in-between each point.
For the simulation, you can use a "start thread" instead of a "program call" as it's non-blocking.
For the real robot, it will depend on how you manage the external axis.

I wouldn't say it's an easy solution, but I think it shouldn't be too hard either.

Hope it helps.
Jeremy
Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel


#7
Thanks Jeremy, I will post here to let you know how I go.

Regards,
Tom
  




Users browsing this thread:
1 Guest(s)