# Control of an Omnidirectional UAV for Transportation and Manipulation Tasks
## 2 ODQuad: A Novel Omnidirectional Quadrotor  
The ODQuad vehicle, firstly introduced in [17], is an omnidirectional quadrotor composed of the following three components:  
* A _platform_, hosting computing hardware, electronics, batteries, and sensors;
* A _rotor frame_ that supports the propellers;
* A _mobile frame_ that connects the platform and the rotor frames with the roll and pitch rotational joints.  
The first rotational joint connects the platform to the mobile frame (_roll joint_, see Figure 0(a)), while the other joint (_pitch joint_, see Figure 0(b)) connects the mobile frame to the rotor frame. Both the joints are actuated by servo motors equipped with angular position sensors.  
Differently from the common multi-rotor design, the ODQuad is able to change the orientation of the total thrust with respect to the horizontal plane without modifying the  
Figure 1: Roll joint axis (**a**), pitch joint axis (**b**).  
platform orientation by moving the roll and pitch joints. This allows one to have all the six DOFs available for the platform motion. In the current design, due to mechanical constraints, the roll and pitch joints can be moved in a range from \(-25\) deg to \(25\) deg.  
The mechanical limits imposed to the roll and pitch joints limit the solid angle that the total trust could span. Thus, according to the taxonomy introduced in [33], it could be more appropriate to refer to the ODQuad as a platform with multi-directional thrust instead of an omnidirectional platform, but in practical applications and in the absence of acrobatic maneuvers, the spanned wrench space is enough to guarantee the fulfillment of the most common tasks.  
In order to derive the ODQuad's kinematics, let us define the following coordinate frames:  
* The inertial coordinate frame, \(\mathbf{\Sigma}\{O,x,y,z\}\)
* The coordinate frame \(\mathbf{\Sigma}_{0}\{O_{0},x_{0},y_{0},z_{0}\}\), attached to the platform in such a way that the axis \(x_{0}\) coincides with the axis of the roll joint
* The coordinate frame \(\mathbf{\Sigma}_{1}\{O_{1},x_{1},y_{1},z_{1}\}\), attached to the mobile frame in such a way that the axis \(x_{1}\) coincides with the axis of the pitch joint
* The coordinate frame \(\mathbf{\Sigma}_{2}\{O_{2},x_{2},y_{2},z_{2}\}\), attached to the rotor frame in such a way that the axis \(x_{2}\) coincides with \(x_{1}\).  
The reference frames \(\mathbf{\Sigma}_{0}\), \(\mathbf{\Sigma}_{1}\), and \(\mathbf{\Sigma}_{2}\) have the same origin, i.e., \(O_{0}\equiv O_{1}\equiv O_{2}\), while the relative orientation is expressed by the following rotation matrices:  
\[\mathbf{R}_{1}^{0}(\alpha)=\begin{bmatrix}0&-1&0\\ c_{\alpha}&0&-s_{\alpha}\\ s_{\alpha}&0&c_{\alpha}\end{bmatrix},\hskip 28.452756 pt\mathbf{R}_{2}^{1}(\beta)= \begin{bmatrix}1&0&0\\ 0&c_{\beta}&-s_{\beta}\\ 0&s_{\beta}&c_{\beta}\end{bmatrix}, \tag{1}\]  
where \(\alpha\) is the pitch angle, \(\beta\) is the roll angle, \(c_{\alpha}=\cos\alpha\), \(s_{\alpha}=\sin\alpha\), \(c_{\beta}=\cos\beta\), \(s_{\beta}=\sin\beta\), and \(\mathbf{R}_{i}^{j}\) denote the rotation matrix expressing the orientation of \(\mathbf{\Sigma}_{i}\) with respect to \(\mathbf{\Sigma}_{j}\).