 So, I want to fix this problem I want to pick a different parameterization or a different expression of 3D rotations that might be a little less intuitive at first, but it fixes all of these problems and once you become comfortable with it it ends up being very very natural. So, it ends up being the way to do things um. One first step to that is Euler's rotation theorem which is that all 3D rotations have what is called an axis angle representation. So, what do I mean by that um if I consider the orientation of a rigid body in space no matter what orientation it ends up in I can describe that as a single rotation about some axis through the origin that axis might not be aligned with any of the coordinate axes just some arbitrary axis that goes through the origin I give it a twist by some amount some amount theta let us say and that describes the orientation of the body. So, that is Euler's observation interestingly that is what lets you get away from Euler angles and into a better representation. So, Euler's name is all over in mathematics, but in this case the representation theorem establishes this very important observation about orientation. So, that means that when I look at oops when I when I look at um sorry draw a little bit wrong here let us do it again put up my three coordinate axes. So, when I look at the orientation of an object or a body then all I need to do is find some axis through the origin let us say that is an axis V and then there is some amount of rotation about that axis I will use counter clockwise as the standard convention. So, some amount of rotation theta about that axis and that describes the orientation of the body. And so, if we do it in that way and we make an entire algebra that uses as the basic elements a representation that is axis and angle and as I start combining rotations I always keep figuring out what the axis and angle is we end up with something very nice very consistent and we avoid these strange problems of kinematic singularities that come from combining these yaw pitches and rolls which seem very intuitive by themselves, but when you combine them you end up with some kind of trouble. So, it is better to make an algebra that consistently reasons about or represents the axis and the angle. So, that makes some kind of sense. So, that is what we are going to do and so. So, generally I have some I have some axis now and it is an axis through the origin it is very important always through the origin. So, this vector V you write as V 1 V 2 V 3 has three components the length of the vector is not critical here. So, we may as well just use a unit length vector I mean could normalize it it is really the direction that matters and then there is some amount theta. So, could say that the norm of this vector is equal to 1 sum of squares of the compound is equal to 1. There is one fundamental observation I should make at this point which is that this could be the axis. So, if I have this axis of rotation and I say that the orientation of the body is some amount of rotation about this axis I could just as easily turn the axis in the opposite direction and rotate by a negative amount and I will get the same result does that make sense. So, that is something that is arbitrary just by the basic fact that when I look at this vector it appears to be pointing in some direction what if I pointed in the opposite direction that should work also. So, that is one unfortunate let us say ambiguity and it eventually goes and causes trouble somewhere and this nothing that can be done about it is just a basic fact about 3D rotations is that they all have an axis angle representation they in fact have two of them and they correspond to opposites. So, it is like a mirror image problem, but not exactly right. So, just they correspond opposites. So, there is a double representation. So, that means that even though I have this I also have this corresponding case where I have minus V and then I rotate by either minus theta or we could say 2 pi minus theta depending on whether you want to keep positive angles or not. So, that will end up corresponding to the same orientation and I will show you where this comes up in a little bit think about representing rotations like maybe I just have V and theta that is enough to represent the orientation or the amount of rotation applied to a rigid body and I would like to have some kind of algebra like maybe I take it and I combine it with another one maybe I combine it with V prime and theta prime and I get something right. I would like to get the resulting axis and the resulting angle I would like to make an algebra that just keeps doing that. So, there is different ways to encode these things should I be worried about the fact that there is 4 parameters here, but there is only 3 degrees of freedom right because this is V 1, V 2, V 3 and this is an extra scalar. There is 4 parameters, but note that the length here does not matter right. So, this is removing a degree of freedom. So, we still have really 3 independent parameters there. We are just trying to make sure that the length is equal to 1 because the length of this does not matter right all these providing is an axis that we that we use to to orient all right. You know there is different possibilities for encoding these things. In fact, here is one representation which is used in open C V the popular computer vision library some of you may have spent some time with. We could do the following we could say just take theta and multiply it by the V's just to scale or by a vector multiplication and I just get 3 coordinates like this assuming that V has already been normalized. So, assume that that the norm of V equals 1 right the length of V equals 1 I could just represent rotations like this does that seem reasonable? It has a nice intuitive feel to it the smaller the rotation in other words the closest the closest of the rotation is to the identity rotation the smaller this vector gets right because theta is getting close to 0. So, the length of that vector has to do with how much you are rotating and the direction of that vector corresponds to the axis. So, that is a very nice representation this is called exponential coordinates and you can find these used quite a bit in optimization control theory literature mechanics. Still not going to be exactly what we want here because it does not have that property that I wanted which is when you do a small variation of the parameters or you vary the parameters by some let us say fixed amount then the corresponding rotation change is consistent it is the same amount of change in rotation that is what I want to maintain this kind of property it is a kind of uniformity. So, this is one candidate this is not bad very easy to take this V and theta and convert it to this form I am going to do something it is a little more complicated of a conversion, but it will have this nice kind of uniformity property that I want with the parameterization. It will almost feel as good as using theta to represent points on the circle for the 2D rotation case.