Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Milling program cutting corners/deviating from Fusion and RoboDK paths

#4
(04-07-2022, 05:25 PM)Jeremy Wrote:Hi David,

I did a quick test and indeed the circular moves are not supported by the Staubli Adept VPlus post-processor.
I'm surprised you didn't see this message when you generated the program.
This is clearly your issue, or at least part of it.



Do you have the programming manual of the controller? Or at least an example of what a circular motion looks like with those controllers?
I could try to add this feature for you.

Jeremy

(04-28-2022, 07:08 AM)davidturnswood Wrote:
(04-07-2022, 05:25 PM)Jeremy Wrote:Hi David,

I did a quick test and indeed the circular moves are not supported by the Staubli Adept VPlus post-processor.
I'm surprised you didn't see this message when you generated the program.
This is clearly your issue, or at least part of it.



Do you have the programming manual of the controller? Or at least an example of what a circular motion looks like with those controllers?
I could try to add this feature for you.

Jeremy

Jeremy,

Yes, I get a "circular motions not supported" message.

Circular motions would be really helpful in giving me smoother, more efficient trajectories and no doubt be easier on my robot. How hard is it to implement this kind of motion in the post processor? While it would be really nice for me, I suspect you guys might want to focus on newer machines, as these older Staubli's aren't so common. If you do find the time, I'm sure I'll make good use of it.

Meanwhile,

I think I am getting somewhere with all my experiments.

To get smoother motions / smaller files for clearing operations I am using a rounding value of 2. This is fine, provided I leave some extra un-cut material, and the only issue I'm having with that is my speed seems too low. I've tried changing this in various locations (options, as well as in the robot parameters), but the post always gives me the same speed in my program. - SPEED 13.3, 100 MMPS ALWAYS

To avoid the problem of rounding over sharp corners I am increasing point density in Fusion, and checking over the simulations carefully to ensure I don't have any large arcs that would translate to straigh-line movements in RDK. Next I'm using a web based text file splitting tool to break down large files into 23,000 point programs (the most a floppy will fit). ---https://textfilesplitter.com/

This is a pain, as the floppies take a while to load. I just ordered a floppy emulator. Hopefully I can get it to talk to my robot controller. I recently added a flash hdd to it as the original was toast. The upshot to ridiculous files sizes is better detail, thankfully.

While I know it's possible to describe most any arc in V+, my math skills are not good enough to know how to do that efficiently, or in a format that makes sense to the Adept controller.

I did find some language to convert cartesian coordinates to joint positions for the Staubli, but I know it's the shape of the arc we want, in addition to the locations.

The Staubli does want to allow for a continuous path (smoothed corners) motion - but that will only work using a "move" command, as opposed to a "moves" command used in the Adept V+ post. Despite it not being exactly what I need, being able to set the "move" command instead of "moves" might be useful for clearing operations.

These are the two Adept V+ manuals I find most useful. I've added a few snippets from them below.

https://www.engr.colostate.edu/me/facil/.../v_lrg.pdf
http://bdml.stanford.edu/twiki/pub/Hapti...sGuide.pdf

I have also made some programs to draw spirals, which may or may not be of any use to you, but if if they are let me know and I'll send a few along.


I found this on page 608 of the V+ language reference guide:

Examples
If r is the radius of a circle and angle is the angle of rotation about the circle, then
the transformation:
TRANS(r*COS(angle), r*SIN(angle), 0, 0, 0, 0)
will yield points on that circle.
If frame is a transformation defining the position of the center of the circle and the
plane in which it lies, the following program segment will move the robot tool
point around the circle in steps of 1 degree.
FOR angle = 0 TO 360−1
MOVE frame:TRANS(r*COS(angle), r*SIN(angle), 0, 0, 0, 0)
END


More from the V+ Language User Guide:

Basic Motion Operations
Joint-Interpolated Motion vs. Straight-Line Motion
The path a motion device takes when moving from one location to another can be
either a joint-interpolated motion or a straight-line motion. Joint-interpolated
motions move each joint at a constant velocity (except during the
acceleration/deceleration phases—see “Robot Speed” on page 203). Typically,
机器人工具提示将在一系列的弧线represents the least processing—
intensive path the trajectory generator can formulate. Straight-line motions
ensure that the robot tool tip traces a straight line, useful for cutting a straight line
or laying a bead of sealant. The instruction:
MOVE pick
will cause the robot to move to the location pick using joint-interpolated motion.
The instruction:
MOVES pick
will cause the robot to move the pick using a straight-line motion (page 197)

Page 199:

Continuous-Path Trajectories
When a single motion instruction is processed, such as the instruction:
MOVE pick
the robot begins moving toward the location by accelerating smoothly to the
commanded speed. Sometime later, when the robot is close to the destination
location pick, the robot will decelerate smoothly to a stop at location pick. This
motion is referred to as a single motion segment, since it is produced by a single
运动指令。
When a sequence of motion instructions is executed, such as:
MOVE loc.1
MOVE loc.2
the robot begins moving toward loc.1 by accelerating smoothly to the
commanded speed1 just as before. However, the robot will not decelerate to a stop
when it gets close to loc.1. Instead, it will smoothly change its direction and begin
moving toward loc.2. Finally, when the robot is close to loc.2, it will decelerate
smoothly to a stop at loc.2. This motion consists of two motion segments since it is
generated by two motion instructions.
1 See the SPEED monitor command and SPEED program instructions.
Chapter 8 Motion Control Instructions
200 V+ Language User Guide, Rev A
Making smooth transitions between motion segments, without stopping the robot
motion, is called continuous-path operation. That is the normal method V+ uses
to perform robot motions. If desired, continuous-path operation can be disabled
with the CP switch. When the CP switch is disabled, the robot will decelerate and
stop at the end of each motion segment before beginning to move to the next
location.
NOTE: Disabling continuous-path operation does not affect
forward processing (the parallel operation of robot motion and
program execution).
Continuous-path transitions can occur between any combination of straight-line
and joint-interpolated motions. For example, a continuous motion could consist
of a straight-line motion (for example, DEPARTS) followed by a joint-interpolated
motion (for example, APPRO) and a final straight-line motion (for example,
MOVES). Any number of motion segments can be combined this way.


page 215:

SOLVE.ANGLES PI Compute the robot joint positions (for the current robot)
that are equivalent to a specified transformation.
SOLVE.FLAGS RF Return bit flags representing the robot configuration
specified by an array of joint positions.
SOLVE.TRANS PI Compute the transformation equivalent to a given set of
joint positions for the current robot.


Thanks for looking into this! I realize you probably have bigger fish to fry, but I can't tell you how much I appreciate the assistance. If you do find the time to work on it, I hope it improves your product in some way. There are certainly quite a few of these older staubli's around, and I know I'm not the only one who appreciates it.

Best,

David Earle


Messages In This Thread
RE: Milling program cutting corners/deviating from Fusion and RoboDK paths - bydavidturnswood- 04-28-2022, 07:08 AM



Users browsing this thread:
1 Guest(s)