Unique Cylinder Poses In the case of Symmetrical objects like spheres, cylinders and cuboids, several poses can produce the same shape of the object (when looking from a certain frame of reference, like from a camera frame as shown in figure). For example: a lying cylinder rotated 90deg around the world's x-axis, then 10deg around the world's z-axis has the same shape when rotated 190deg around the world's z-axis (as shown in the figure).
When adding some constraints on the pose representation this issue can somehow be resolved. for example, for spheres, the whole orientation part of the pose can be fixed to a Quaternion of (1,0,0,0), for lying cylinders the orientation can be fixed to 90 deg roll angle, 0 deg pitch angle and a random angle between [0-180]deg yaw. However for other cases of completely random poses for all three Euler angles I am a bit confused.
So the question is whether constraining the range of Euler angles between [0-180]deg will produce unique poses for symmetrical objects (cylinders, cuboids) that can be later used for pose estimation applications like pose regression? or is there a better way to do that?
Any pointers are appreciated. Thanks

 A: Full axis symmetries are easy to fix. If your body has a symmetry axis, switch to the angle order that this axis goes first and fix the angle to zero. For example, in case of a cylinder with $z$ symmetry axis, the order might be $z,y,x$ with $\theta_z=0$.
For 180° symmetry (like ends of cylinder), if you choose the symmetry rotational axis to be the middle axis, then you may restrain the middle axis rotation to $[0°, 180°]$. In the case of a cylinder, you can rotate it 180° around $y$ axis to get the same shape, so the order might be $z,y,x$ and you restrain $\theta_y\in[0°, 180°]$.
However, symmetries can be more complicated than that. Take a dodecahedron for example. It's impossible to parameterize unique rotations of dodecahedron ($SO(3)/I$) with a cuboid in Euler angle space.
And even in case of simple symmetries like 180° rotational symmetry above, you compromise on continuity of your orientation space. For example, if you want to interpolate between the position $\theta_y=179°$ and $\theta_y=1°$, instead of rotating forward by $2°$, the software will rotate backward by $178°$.
