I am using the Robotics Systems Toolbox and its rotm2eul() function only takes in 3 possible rotation orders, XYZ, ZYX, and ZYZ. With permutations of these types there are 12 possibilities and matlab only works with a quarter of them. Adding support for the others is trivial thanks to the intelligent way the others were programmed. I only need to add 9 lines of code and remove a number of duplicated code statements in various code blocks. % Pre-populate settings for different axis orderings % Each setting has 4 values: % 1. firstAxis : The right-most axis of the rotation order. Here, X=1, % Y=2, and Z=3. % 2. repetition : If the first axis and the last axis are equal in % the sequence, then repetition = 1; otherwise repetition = 0. % 3. parity : Parity is 0 if the right two axes in the sequence are % YX, ZY, or XZ. Otherwise, parity is 1. % 4. movingFrame : movingFrame = 1 if the rotations are with % reference to a moving frame. Otherwise (in the case of a static % frame), movingFrame = 0. seqSettings.ZYX = [1, 0, 0, 1]; seqSettings.YZX = [1, 0, 1, 1]; % ADDED seqSettings.XYX = [1, 1, 0, 1]; % ADDED seqSettings.XZX = [1, 1, 1, 1]; % ADDED seqSettings.XZY = [2, 0, 0, 1]; % ADDED seqSettings.ZXY = [2, 0, 1, 1]; % ADDED seqSettings.YZY = [2, 1, 0, 1]; % ADDED seqSettings.YXY = [2, 1, 1, 1]; % ADDED seqSettings.YXZ = [3, 0, 0, 1]; % ADDED seqSettings.XYZ = [3, 0, 1, 1]; seqSettings.ZXZ = [3, 1, 0, 1]; % ADDED seqSettings.ZYZ = [3, 1, 1, 1];
Neeta Dsouza answered .
2025-11-20