CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
Ardupilot

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: Ardupilot/ardupilot
Path: blob/master/Tools/simulink/arducopter/functions/dcmFromEuler.m
Views: 2242
1
function dcm = dcmFromEuler(roll, pitch, yaw)
2
% Function to calculate the DCM from Euler Angles.
3
% Euler Angles are given in radian.
4
% Taken from Matrix3<T>::from_euler()
5
sr = sin(roll);
6
cr = cos(roll);
7
sp = sin(pitch);
8
cp = cos(pitch);
9
sy = sin(yaw);
10
cy = cos(yaw);
11
12
dcm = zeros(3,3);
13
% First row
14
dcm(1,1) = cp * cy;
15
dcm(1,2) = (sr * sp * cy) - (cr * sy);
16
dcm(1,3) = (cr * sp * cy) + (sr * sy);
17
% Second row
18
dcm(2,1) = cp * sy;
19
dcm(2,2) = (sr * sp * sy) + (cr * cy);
20
dcm(2,3) = (cr * sp * sy) - (sr * cy);
21
% Third row
22
dcm(3,1) = -sp;
23
dcm(3,2) = sr * cp;
24
dcm(3,3) = cr * cp;
25
26
27
end
28