Il giorno lun, 12/12/2011 alle 13.30 +0200, Alex Joni ha scritto:
> 
> > Il giorno lun, 12/12/2011 alle 12.02 +0100, Spiderdab ha scritto:
> >> Hi, there's one thing isn't clear for me with speed.
> >> I have an inverted tetrapod.
> >> I've set [AXIS_n]MAX_VELOCITY to 1000.0 (in my case mm/s)
> >> when i jog in teleop mode in X or Y or Z axis, i have this speed.
> >> but when i jog in XY direction jog velocity is the sum-vector between X
> >> and Y speed, so 1.4* resulting in something like 1400 mm/s.
> >> if then i jog to XYZ direction (all 3 dir together..) again the
> >> resulting speed is the sum-vector, so something near 1,8*, and the
> >> resulting speed is 1800 mm/s.
> >> Said that, what i see in [TRAJ]MAX_VELOCITY or MAX_LINEAR_VELOCITY
> >> should set the max speed independently of jog direction, but it doesn't
> >> change anything.
> >> As a result, when i jog at max speed to a diagonal direction, i have a
> >> following error, because jogging speed exceeds what the machine can do.
> >> What do you think about it?
> > To be precise, i just discovered that [TRAJ]MAX_LINEAR_VELOCITY works as
> > a general vel_limit if i write manual MDI command. But doesn't work as a
> > limiter for manual jogging speed.
> > I have to solve this, because i think that if you jog in teleop mode you
> > should have the same speed apart from the direction you're jogging. the
> > machine shouldn't go faster in diagonal movements!!
> 
> Yes, it should (kinda)!
> Remember we are talking about tooltip velocity here, not the velocity of the 
> individual motors.
> 
> The problem with the original emc2 code was that there was no difference 
> between motor velocity and axis velocity.
> [AXIS_n]MAX_VELOCITY - limited both motor and carthesian velocity
> That is certainly wrong (it is correct only for trivial kinematics where 
> motor 0 = X, motor 1 = Y, etc).
> In order to fix that we started ja3 a while ago, but it isn't finished.
> 
> The idea is to have separate [AXIS_n]MAX_VELOCITY - to limit carthesian 
> velocity, e.g. tooltip velocity
> and [JOINT_n]MAX_VELOCITY - to limit motor velocity.
> 
> When doing a move (doesn't matter if coordinated, e.g. G1 ..Fxx, or MDI or 
> by jogging) the planner should take all velocities into considerations.
> 
> The problem with this is the functions are not linear. That means that 
> during the move, one of the joints might need to go faster than it's limit. 
> That need can be for a very small portion of the move, that's why it's hard 
> to implement this.
> 
> There are basicly 2 approaches:
> 
> 1. simulate the move (before actually doing it), and look for max vels for 
> each joint. Then scale the move accordingly, so that none of the joint vels 
> is exceeded.
> 2. start the move with a certain speed, and when approaching a joint vel 
> limit, reduce the speed accordingly.
> 
> #1 will move the entire path slower
> #2 will move as fast as possible, and only slow down on trouble locations.
> 
> That said, afaik, currently none of them are implemented in ja3, and the 
> planner gladly violates joint vel limits if asked to.
> 
> JA3 is still the place to be for nontrivkins, because those fixes (#1 or #2) 
> are quite possible, opposed to the regular code where it's impossible to 
> implement any of them.
> 
> Regards,
> Alex
Hi Alex, and thanks for answering.
I understood the logic under ja3, and i really think that's the right
logic for every machine, also carthesians.
said that, i think your 2nd solution is what i expect machine should
behave, maybe adding an advice if planned vels couldn't be achieved.

But, what seems strange to me is that if i set i.e.: 
X max-vel to 1000
Y max-vel to 1000
Z max-vel to 1000
when i jog a traverse to +X+Y+Z direction speed goes to 1740! and it has
nothing to do with joints speed. It should be limited by
[TRAJ]MAX_LINEAR_VELOCITY. but this value only works with MDI commands.
So, apart from controlling that joint speed isn't violated into traj
planner, i think there's an error into the code that should be fixed to
make traj_max_vel work also on manual jog. 


------------------------------------------------------------------------------
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to