\begin{tikzpicture}[3d view={120}{15}]
  \newcommand\radius{15mm}
  \newcommand\height{3cm}

  \begin{scope}[canvas is yx plane at z=.8]
    \foreach \i in {1,2,3,...,8} {
      \fill[lightgray, opacity=.5] (0,0) -- ({\i*360/8}:{.9*\radius}) 
      arc ({\i*360/8}:{(\i+.5)*360/8}:{.9*\radius}) -- cycle;
    };
    \fill[lightgray, opacity=.5] (0,0) circle (3mm);

    \draw[black, <-] (-1, 1) to[out=180, in=0] ++(-.5,1.2)
      node[left, anchor = east] {Propeller};
  \end{scope}

  \begin{scope}[canvas is yx plane at z=-2]
    \draw[black, <-] (-1, .5) to[out=180, in=0] ++(.1,1.5)
      node[left, anchor = east] {Flap};
  \end{scope}

  \begin{scope}[canvas is xz plane at y=0, thick]
    % flap along y back
    \fill[lightgray!30, draw=lightgray] ({-.3*\radius}, -2) rectangle ({-.8*\radius}, -2.5);

    % drag force of flap along y back
    \draw[-latex, blue!80!black] ({-.55*\radius}, -2) -- ++(0,-6mm);
  \end{scope}

  % FIXME: why can't is use -.55\radius??
  \begin{scope}[canvas is yz plane at x=-.825, thick]
    % lift force of flap along y back
    \draw[-latex, green!50!black] (0, -2) -- ++(5mm,0);
  \end{scope}

  \begin{scope}[canvas is yz plane at x=0, thick]
    % flap along x front
    \fill[lightgray!30, draw=lightgray] ({.3*\radius}, -2) rectangle ({.8*\radius}, -2.5);
    % drag force of flap along x front
    \draw[-latex, blue!80!black] ({.55*\radius}, -2) -- ++(0,-6mm)
      node[right] {$\vec{F}_{d,i}$};

    % flap along x back
    \fill[lightgray!30, draw=lightgray] ({-.3*\radius}, -2) rectangle ({-.8*\radius}, -2.5);
    % drag force of flap along x back 
    \draw[-latex, blue!80!black] ({-.55*\radius}, -2) -- ++(0,-6mm);
  \end{scope}

  % FIXME: why can't is use .55\radius??
  \begin{scope}[canvas is xz plane at y=-.825, thick]
    % lift force of flap along x back
    \draw[-latex, green!50!black] (0, -2) -- ++(5mm,0);
  \end{scope}

  % FIXME: why can't is use .55\radius??
  \begin{scope}[canvas is xz plane at y=.825, thick]
    % lift force of flap along x front
    \draw[-latex, green!50!black] (0, -2) -- ++(5mm,0);

    % flap angle for front x
    \fill[violet] (0,-2) circle (.5mm);
    \node[violet, right, yshift=1mm] at (0,-2) {$\alpha_1$};
  \end{scope}

  \begin{scope}[canvas is xz plane at y=0, thick]
    % flap along y front
    \fill[lightgray!30, draw=lightgray] ({.3*\radius}, -2) rectangle ({.8*\radius}, -2.5);

    % drag force of flap along y front
    \draw[-latex, blue!80!black] ({.55*\radius}, -2) -- ++(0,-6mm);
  \end{scope}

  \begin{scope}[canvas is xy plane at z=0, thick]
    \draw[lightgray, dashed] (0,0) circle (\radius);
  \end{scope}

  \begin{scope}[canvas is xy plane at z=-2, thick]
    % lower circle
    \draw[gray] (0,0) circle (\radius);
    \draw[lightgray, densely dotted] (-\radius, 0) -- (\radius, 0);
    \draw[lightgray, densely dotted] (0, -\radius) -- (0, \radius);
  \end{scope}

  \begin{scope}[canvas is xy plane at z=1, thick]
    % upper circle
    \draw[gray] (0,0) circle (\radius);
    \draw[lightgray, densely dotted] (-\radius, 0) -- (\radius, 0);
    \draw[lightgray, densely dotted] (0, -\radius) -- (0, \radius);
  \end{scope}

  % FIXME: why can't is use .55\radius??
  \begin{scope}[canvas is yz plane at x=.825, thick]
    % lift force of flap along y front
    \draw[-latex, green!50!black] (0, -2) -- ++(5mm,0)
      node[pos=1, below, yshift=-1mm] {$\vec{F}_{\ell,i}$};
  \end{scope}

  \begin{scope}[canvas is yz plane at x=-.825, thick]
    % flap angle for back y
    \fill[violet] (0,-2) circle (.5mm);
    \node[violet, xshift=2.5mm, yshift=1.5mm] at (0,-2) {$\alpha_4$};
  \end{scope}

  \begin{scope}[canvas is xz plane at y=-.825, thick]
    % flap angle for back x
    \fill[violet] (0,-2) circle (.5mm);
    \node[violet, xshift=2.5mm, yshift=1.5mm] at (0,-2) {$\alpha_3$};
  \end{scope}

  \begin{scope}[canvas is yz plane at x=.825, thick]
    % lift force of flap along y front
    \fill[violet] (0,-2) circle (.5mm);
    \node[violet, xshift=2mm, yshift=1.5mm] at (0,-2) {$\alpha_2$};
  \end{scope}

  \begin{scope}[thick]
    % cylinder border
    \draw[gray] (xyz cylindrical cs:z=-2,radius=1.5,angle=-60)
      -- ++ (xyz cylindrical cs:z=3);

    \draw[gray] (xyz cylindrical cs:z=-2,radius=1.5,angle=120)
      -- ++ (xyz cylindrical cs:z=3);

    % central axis
    \draw[lightgray, dashdotted]
      (xyz cylindrical cs:z=-2) -- (xyz cylindrical cs:z=2);

    % outer line for radius measurement
    \coordinate (TO) at (xyz cylindrical cs:z=1);
    \coordinate (TR) at (xyz cylindrical cs:z=1,radius=1.5,angle=120);
    \draw[red!60!black, <->] (TO) -- node[midway, above] {$a$} (TR);
  \end{scope}

  \begin{scope}[canvas is yz plane at x=0, thick]
    % top line for center of mass measurement
    \draw[lightgray, densely dotted] (0, 0) -- (2.5, 0);
    % bottom line for center of mass measurement
    \draw[lightgray, densely dotted] (\radius, -2) -- (2.5, -2);

    % Center of mass height measurement
    \draw[red!60!black, <->] (2.5,0) -- node[midway, right] {$d$} (2.5, -2);

    % thrust force
    \draw[blue!80!black, -latex] (0,1) -- node[near end, right] {$\vec{F}_{T}$} (0,2);
  \end{scope}

  \begin{scope}[canvas is xy plane at z=1.25, thick]
    % propeller angular velocity
    \draw[violet, ->] (290:.2) arc[start angle=290, end angle=-30, radius=.2]
      node[pos=0, left] {$\omega$};
  \end{scope}

  \begin{scope}[canvas is xz plane at y=0, thick]
    % line to pitch angle
    \draw[lightgray, densely dotted] (0, 0) -- (3, 0);
  \end{scope}

  \begin{scope}[canvas is xz plane at y=1.85, thick]
    % roll angle
    \draw[violet, ->] (-40:.2) arc[start angle=-40, end angle=-370, radius=.2]
      node[midway, right] {$\phi$};
  \end{scope}

  \begin{scope}[canvas is yz plane at x=2.5, thick]
    % pitch angle
    \draw[violet, ->] (40:.2) arc[start angle=40, end angle=370, radius=.2]
      node[midway, above left] {$\vartheta$};
  \end{scope}

  \begin{scope}[canvas is xy plane at z=-1.25, thick]
    % yaw angle
    \draw[violet, ->] (290:.2) arc[start angle=290, end angle=-30, radius=.2]
      node[midway, right] {$\psi$};
  \end{scope}

  \begin{scope}[thick]
    % body coordinate system
    \coordinate(BO) at (0,0,0);
    \draw[-latex] (BO) -- (xyz cylindrical cs:radius=.5)
      node[left] {$\uvec{y}$};
    \draw[-latex] (BO) -- (xyz cylindrical cs:radius=.5,angle=90)
      node[right] {$\uvec{x}$};
    \draw[-latex] (BO) -- (xyz cylindrical cs:z=-.5)
      node[below] {$\uvec{z}$};

    % intertial coordinate system
    \coordinate (IO) at (xyz cylindrical cs:radius=3.5,angle=-70,z=-1.5);

    \draw[-latex] (IO) -- ++ (xyz cylindrical cs:radius=.5)
      node[left] {$\uvec{\jmath}$};
    \draw[-latex] (IO) -- ++ (xyz cylindrical cs:radius=.5,angle=90)
      node[right] {$\uvec{\imath}$};
    \draw[-latex] (IO) -- ++ (xyz cylindrical cs:z=-.5)
      node[below] {$\uvec{k}$};
  \end{scope}
\end{tikzpicture}
