> 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



------------------------------------------------------------------------------
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