Kinematics flag KINEMATIC_NO_INCLINE_ROTATION

Kinematics flag KINEMATIC_NO_INCLINE_ROTATION

iago_mf
Not applicable
47 Views
6 Replies
Message 1 of 7

Kinematics flag KINEMATIC_NO_INCLINE_ROTATION

iago_mf
Not applicable

[ FlexSim 23.1.4 ]

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

0 Likes
Accepted solutions (1)
48 Views
6 Replies
Replies (6)
Message 2 of 7

moehlmann_fe
Explorer
Explorer
Accepted solution

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.

Message 3 of 7

iago_mf
Not applicable

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
Message 4 of 7

jason_lightfootVL7B4
Autodesk
Autodesk

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.

Message 5 of 7

iago_mf
Not applicable
Perfect, i didn't know how to work with more than one flag. Thanks!
0 Likes
Message 6 of 7

jason_lightfootVL7B4
Autodesk
Autodesk

From the header file:

#define KINEMATIC_MANAGE_ROTATIONS 0x1
#define KINEMATIC_DO_NOT_PRUNE 0x2
#define KINEMATIC_NO_UPDATE 0x4
#define KINEMATIC_RELATIVE_LOCS 0x8
#define KINEMATIC_RESET_BUFFER 0x10
#define KINEMATIC_MANAGE_ROT_OVERRIDE 0x20
#define KINEMATIC_NO_INCLINE_ROTATION 0x40
Message 7 of 7

moehlmann_fe
Explorer
Explorer

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)