Let $(E,\pi, M)$ be a real vector bundle of Rank $N$. Then one can define its frame bundle $GL(E)$ as follows:
$GL(E)_x:=\{\text{ordered bases of }E_x\}$ (for $x\in M$).
$GL(E):=\bigcup_{x\in M} GL(E)_x$ (disjoint union)
$\hat{\pi}\colon GL(E)\rightarrow M,$ $b\mapsto x$, where $b$ is an ordered basis of $E_x$.
Then one can define a manifold structure and a $Gl(N)$-action on on $GL(E)$ sucht that $(GL(E),\hat{\pi}, M, Gl(N))$ turns into a $Gl(N)$-principal fibre bundle.
The manifold structure is defined so that the following holds: If $\varphi\colon \pi^{-1}(U)\rightarrow U\times \mathbb{R}^N$ is a local trivialization of $E$, then
$$\psi\colon \hat{\pi}^{-1}(U)\rightarrow U \times Gl(N),\qquad b\mapsto (x,(\varphi(b_1),\ldots,\varphi(b_N))$$
(where $b=(b_1,\ldots, b_N)$ is a ordered basis of $E_x$) is a local trivialization of $GL(E)$.
If $E$ is oriented and has a metric, the bundle $SO(E)$ can be defined in a similar way with
$$SO(E)_x:=\{\text{positively oriented orthonormal bases of } E_x\}.$$
Question: How can I get local trivialistions for $SO(E)$?
The above construction doesn't work any longer, since $\varphi|_{E_x}$ is only a linear isomorphism, so if you take a positively oriented basis $(b_1,\ldots,b_N)$ the matrix $(\varphi(b_1),\ldots,\varphi(b_N))$ isn't necessarily orthogonal with determinant 1.