> But then I read (in the mouse over of "Wrap around"), that I need to set the SET_GLOBAL_OFFSETS_COMMAND. Where can I learn more about how to do this?
This is all automatic with I&S. Don't worry, you surely
already have it.
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/95cf87bd-ca4c-47fb-b04a-71a9c660b11bn%40googlegroups.com.
> Main scenario is that I want the second nozzle pick, to pick as soon as possible. With original, the chmt has a silicon tube that does not allow free articulation, so the nozzles have to rotate before picking. The cups let's the motor rotate freely, so with the settings above, the second nozzle pick can just pick, regardless of its current angle
Ah, I understand, thanks. For those reading along, he is tlking about Rotation Mode:
https://github.com/openpnp/openpnp/wiki/Nozzle-Rotation-Mode
Specifically the Minimal Rotation mode.
I can't say if this will "pay" in the end, if you have to reduce
acceleration rates as a trade-off due to friction. As a matter of
fact, there is another rotation in the Alignment step (assuming
"pre-rotate", as you should). So it is unclear which is worse in
the end.
Clearly, OpenPnP has potential for optimization too (to avoid the cups and friction):
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/887b5286-af61-4d13-ba7b-9478bfbe18fbn%40googlegroups.com.
> If I understood you correctly, the logic behind the
rotation is that it is not started until the move to the pick
location is started(?).
Yes.
(I'm also explaining for those reading along:)
For the first nozzle that is usually okay, as it is moving from the last placement location. i.e. a rather long move where rotation can take place in parallel. However, for the second nozzle, this is just the move from one feeder pick location to the other feeder pick location, those can be close together, and if you have two compatible nozzle tips it might even be from the same feeder, so the move is only the between-nozzles offset (plus/minus 2mm for 0402), i.e., not enough time to rotate.
The same happens in Alignment, above the bottom camera.
Technically, if you have two independent rotation motors on the
nozzles (as most machines have), OpenPnP could rotate the second
nozzle in parallel with the first nozzle, i.e., while moving to
the feeders/bottom camera. Advanced Motion Control actually can
do that (it wasn't possible before). But as I said, it would have
to peek ahead in the Job Processor, and that's not too easy...
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/577793b0-e71e-4c42-95c6-01daa5cbdc50n%40googlegroups.com.
> @Mark: how would one request additional movements at the AsyncGCodeDriver? MoveTo() only provides arguments for four axis. Are shared rotation situations handled automatically by the AsyncGCodeDriver or would that have to be done by the caller?
Yes, OpenPnP has the Location data type which is X, Y, Z, C only (4-axis).
But underneath, since I implemented Advanced Motion Control, it is all managed in AxesLocation, which supports an arbitrary number of axes.
Furthermore, motion is never immediately executed. Instead the
motion sequence is added to the motion planner. Only when the
situation requires motion to be complete (for instance when we
want to take a camera shot), then we tell the planner that we need
to wait for motion completion. This in turn forces the motion to
actually being processed and ultimately sent to controllers. The
planner can do arbitrary optimization to the path and also
distribute and coordinate the motion commands across multiple
drivers, in parallel. Remember, it actually can do Motion
Blending and other cool stuff (if only the controllers and
serial interfaces were fast enough 😕).
To move in more than 4 axes at a time, one would need to
implement a new MotionOption.Subordinate,
added here:
https://github.com/openpnp/openpnp/blob/develop/src/main/java/org/openpnp/model/Motion.java#L55
But instead of adding a new motion segment, it would have
accumulate AxesLocation coordinates to the previous motion
target, but never change axes that were already there. Somewhere
here:
But that is complicated by things such as backlash compensation. I.e. it would have to undo not only the last but also the second to last motion segment.
Usage in JobProcessor code (pseudo code off the top of my head):
currentPlacement.nozzle.moveTo(currentPlacement.targetLocationOfStep); for each (upcomingPlacement : upcomingPlacements) { upcomingPlacement.nozzle.moveTo(upcomingPlacement.targetLocationOfStep, MotionOption.Subordinate); }
You're right, with the drag operation it is even more
complicated. It now needs to look ahead from the Feed operation
not only into its won Pick operation, but also into those of the
other nozzle(s).
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/207d0e61-abba-4e84-9f34-04fb800dbfe9n%40googlegroups.com.
Good discussion. Yeah, I agree with this analysis, and yes, the polarity optimization might already bring the worst case down to rotations that are no longer (much) limiting the speed.
You could always also use real tube decouplers, even my
Liteplacer has one, and I don't believe it has much friction.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f0e144b9-7aa9-4352-acc0-eb4f0f9a6e05n%40googlegroups.com.
I just went to the workshop quickly and the coupling is really
going very easy, no friction that I can see. Remember, the
original machine needs to twist the silicon rubber tube, which is
not nothing. On the Liteplacer there is also some sort of tubing
(don't know if that is silicon) and the friction of the coupling
is so low that when I twist the tubing, it immediately snaps back
to the original rotation, no "creeping" or "sticking", whatsoever,
i.e. the twisting forces are way higher than any friction present.
Plus the thingy seems to be made out of very light plastic and hardly weighs anything. Even one nut of your head assembly probably weighs more. 🙂
I doubt this is significant at all.
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/640d30b3-955b-4e49-bb25-9ed288014b44n%40googlegroups.com.
what is the weight of your motors? do 9 grams really matter?
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/4b0963be-44af-41a0-9c65-0693958927f6n%40googlegroups.com.
> what is the weight of your motors? do 9 grams really matter?
> But if I put the 9grams on the fixed part of the head, with the existing silicon tube (just shortened a little) it does not matter.
I'm not sure I understand the situation correctly. If not, the
following might be completely wrong. 😇 A photo with any cover off
might help.
My assumptions: there is a short piece of tube from the Z-movable, rotating hollow shaft, up to a crossbar, where the coupling will be mounted, rigidly in Z (and X, Y).
So if that is true, the tube will be bent to take the Z
compression, and form a sort of snake-line. Quite a
"counter-spring".
And for rotation, you get a sort of "flex connecting rod", i.e. the rotation is "force-squished" through the silicon tubes, on top of the snake-line, likely forming some sort of "squish-spiral".
If this is true, it will surely create bad lateral forces on the
coupling, and even if the coupling could still take that
with little friction (long term), a lot of friction will result
from squishing the tubes themselves. I would even expect the
rotation to sputter with the residual sticky friction against
elasticity.
If that is even remotely true, I would definitely put the
couplings directly on the hollow shafts, and then use generous
tube lengths that can take the Z compression, and with some
bend-adjusting (if possible even above and beyond the head) you
can even balance-out half the lateral forces. No rotation
is squished into the tubes.
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/920c4f89-809c-4779-81d6-d6807930cc5fn%40googlegroups.com.
> since there is already a simple solution to the problem (by adding some kind of swivel junction) if one is interested in better performance.
This help in the feeder Pick, but not in Alignment.
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/8e932aab-3c26-4247-9c9e-644f76ae9233n%40googlegroups.com.
> Or maybe, like you say mount the coupling rigidly on the motors
You mean on the motor hollow shafts, right?
I.e. the underside of the coupling turns with the hollow shaft, the upper side with the tube stays (more or less) put.
Something like this:
https://www.aliexpress.us/item/3256804211715767.html
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/156a11d8-016f-402e-902c-48bf84a128b7n%40googlegroups.com.
> In my mind, this is much simpler code, than trying to look up ahead all nozzles/feeders/placements etc ahead.
Not sure at all.
You still need to anticipate the pre-rotate option, and if enabled (which is much recommended!) you need the PCB placement angle, including the PCB rotation and even fiducial adjustments, which is also not that easy, i.e., not sure if readily available inside the JobProcessor.
The ideal Job Planner would be able to fully simulate the
whole job, or at least groups of placements. It could then even
account for real world time cost, based on prior measurements on
that machine. This simulation could then also be used to find the
optimized combinations of picks, i.e., avoid that picks from
feeders are far from each other etc. It could also be used to
optimize in which order the nozzles are done. Looking ahead would
be as simple as "playing" that simulation.
Jan has already added a nozzle ordering optimization in the test version, but this too would even be better if it could look ahead.
Note, I just merged it into the OpenPnP testing version:
https://github.com/openpnp/openpnp/pull/1574
@Jan, please announce as planned.
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/062bc635-a8ef-4321-b8eb-615f5ffdb46en%40googlegroups.com.
>You mean on the motor hollow shafts, right?
>I.e. the underside of the coupling turns with the hollow shaft, the upper side with the tube stays (more or less) put.
>Something like this:
Well, if you do it like that, then there's no difference to reversing it, by putting the coupler on the other end of the tube, which I intended to do. Both times the tube will twist equally much. But by putting it on the other end, there's no weight on the motor.
If you put the coupler on the hollow axle, and then fixed the outer shell of the coupler to the motor body, you will not get any twist of the tube, only the Z. This is what I thought you meant. :-)
- Micael
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/80f2145f-7b32-42d5-b8e7-09bbdbe5e987n%40googlegroups.com.
On 30 Jan 2024, at 20.59, Mike Menci <mike....@gmail.com> wrote:
My PnP has it this way - fixed tube - nozzle turns with stepper shaft (Nema8 stepper with full shaft)