question

Iago MF avatar image
0 Likes"
Iago MF asked Felix Möhlmann commented

Kinematics flag KINEMATIC_NO_INCLINE_ROTATION

Hi,

I was doing some test with kinematics when I saw this flag in global macros:

KINEMATIC_NO_INCLINE_ROTATION.

I expected that if i use this the task executer is supposed to rotate only in Z-axis, but the behaviour is the same as if i use no flags.

I actually don't know what is supposed to do because i could't find documentation about this, but if the behaviour is what I understand, ¿what i'm doing wrong?

I attach a dummy model (I know flying is not supported by any agv manufacturer yet).

23.1 No Incline Rotation.fsm

Thanks in advance!

Iago

FlexSim 23.1.4
kinematicsrotationflags
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Felix Möhlmann commented

When used in conjunction with the "Manage Rotations" flag, it keeps the AGV pointing in the direction of travel in the XY plane only.

agvlooping.gif

Both TEs have the "Manage Rotations" flag set. TE1 also has the "No Incline Rotation" flag.


agvlooping.gif (1.2 MiB)
· 5
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Iago MF avatar image Iago MF commented ·

Thanks Felix, ¿but where did you set those flags? I'm using this function:

initkinematics(token.taskExecuter.find(">variables/kinematics"),token.taskExecuter,KINEMATIC_NO_INCLINE_ROTATION);

But I can only set one flag here.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦ Iago MF commented ·

Use the binary OR operator '|' between the macros.

I'll send in a note to add this in the documentation and to add those flags to the process flow activity list of options.

1 Like 1 ·
Iago MF avatar image Iago MF Jason Lightfoot ♦ commented ·
Perfect, i didn't know how to work with more than one flag. Thanks!
0 Likes 0 ·
Show more comments
Felix Möhlmann avatar image Felix Möhlmann Iago MF commented ·

You can combine multiple flags in the parameter. Either just add them together or use the bitwise OR operator "|".

initkinematics(node, object, KINEMATIC_NO_INCLINE_ROTATION + KINEMATIC_MANAGE_ROTATIONS)

initkinematics(node, object, KINEMATIC_NO_INCLINE_ROTATION | KINEMATIC_MANAGE_ROTATIONS)

Each flag is a power of two, so which flags are set is encoded in the bits of the resulting binary number. MANAGE_ROTATIONS is 1 and NO_INCLINE_ROTATION is 64, for example. (65 in decimal = 01000001 in binary)

1 Like 1 ·