docs: fix all end of file newlines
ClusterFuzzLite batch fuzzing / BatchFuzzing (address) (push) Has been cancelled
ClusterFuzzLite batch fuzzing / BatchFuzzing (memory) (push) Has been cancelled
ClusterFuzzLite batch fuzzing / BatchFuzzing (undefined) (push) Has been cancelled
Build all targets / Scan for Board Targets (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_fmu-v5_default) (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_sitl_default) (push) Has been cancelled
Checks / build (check_format) (push) Has been cancelled
Checks / build (check_newlines) (push) Has been cancelled
Checks / build (module_documentation) (push) Has been cancelled
Checks / build (px4_fmu-v2_default stack_check) (push) Has been cancelled
Checks / build (px4_sitl_allyes) (push) Has been cancelled
Checks / build (shellcheck_all) (push) Has been cancelled
Checks / build (tests) (push) Has been cancelled
Checks / build (tests_coverage) (push) Has been cancelled
Checks / build (validate_module_configs) (push) Has been cancelled
Clang Tidy / build (push) Has been cancelled
MacOS build / build (px4_fmu-v5_default) (push) Has been cancelled
MacOS build / build (px4_sitl) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:22.04) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:24.04) (push) Has been cancelled
Container build / Set Tags and Variables (push) Has been cancelled
Docs - Crowdin - Upload Guide sources (en) / upload-to-crowdin (push) Has been cancelled
Docs - Deploy PX4 User Guide / build (push) Has been cancelled
EKF Update Change Indicator / unit_tests (push) Has been cancelled
Failsafe Simulator Build / build (failsafe_web) (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v5x (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v6x (push) Has been cancelled
ITCM check / Checking nxp_tropic-community (push) Has been cancelled
ITCM check / Checking px4_fmu-v5x (push) Has been cancelled
ITCM check / Checking px4_fmu-v6xrt (push) Has been cancelled
MAVROS Mission Tests / build (map[mission:MC_mission_box vehicle:iris]) (push) Has been cancelled
MAVROS Mission Tests / build (map[mission:rover_mission_1 vehicle:rover]) (push) Has been cancelled
MAVROS Offboard Tests / build (map[test_file:mavros_posix_tests_offboard_posctl.test vehicle:iris]) (push) Has been cancelled
Nuttx Target with extra env config / build (px4_fmu-v5_default) (push) Has been cancelled
Python CI Checks / build (push) Has been cancelled
ROS Integration Tests / build (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:humble ubuntu:jammy]) (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:jazzy ubuntu:noble]) (push) Has been cancelled
SITL Tests / Testing PX4 tailsitter (push) Has been cancelled
SITL Tests / Testing PX4 iris (push) Has been cancelled
SITL Tests / Testing PX4 standard_vtol (push) Has been cancelled
Build all targets / Build Group [${{ matrix.group }}][${{ matrix.arch == 'nuttx' && 'x86' || 'arm64' }}] (push) Has been cancelled
Build all targets / Upload Artifacts to S3 (push) Has been cancelled
Build all targets / Create Release and Upload Artifacts (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
Docs - Deploy PX4 User Guide / deploy (push) Has been cancelled
FLASH usage analysis / Publish Results (push) Has been cancelled
Docs - Crowdin - Download Guide Translations / Synchronize with Crowdin (ko) (push) Has been cancelled
Docs - Crowdin - Download Guide Translations / Synchronize with Crowdin (uk) (push) Has been cancelled
Docs - Crowdin - Download Guide Translations / Synchronize with Crowdin (zh-CN) (push) Has been cancelled
Handle stale issues and PRs / stale (push) Has been cancelled

Note: Some files are autogenerated and I did not yet
go through each source of generation to fix it there.
Instead I adjusted the filter to only exclude those
such that we can fix things in steps.
This commit is contained in:
Matthias Grob
2025-03-18 11:28:14 +01:00
committed by Ramon Roche
parent e9bac962ab
commit 2bc04f91f8
90 changed files with 173 additions and 193 deletions
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 149 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 377 KiB

After

Width:  |  Height:  |  Size: 377 KiB

+73 -73
View File
@@ -31,16 +31,16 @@
%===================================================================================
% TIKZ PX4 CONTROLLERS
%===================================================================================
\begin{figure}[h]
\centering
% Define distances
\def\blockheight{7em}
\def\largeblockheight{1.45*\blockheight}
\def\blockwidth{3.9em}
\def\nodesep{1.15*\blockwidth}
\footnotesize
\begin{tikzpicture}[>={Stealth[inset=0pt,length=3pt,angle'=60,round]},
simple_block/.style = {draw, fill=light_blue, text centered, inner sep=0pt, text width=\blockwidth, minimum height=\blockheight},
@@ -50,82 +50,82 @@
]
\hspace{-1.05cm}
%===================================================================================
% Reference
\node (ref) [] {};
% Position controller
\path (ref.east)+(0.85*\nodesep,0) node (pos_ctrl) [simple_block] {Position Control};
\path (pos_ctrl.north)+(0,0) node (pos_ctrl_text) [no_border_block, anchor=south] {\textbf{P}};
\path (pos_ctrl.south)+(0.65*\nodesep, -0.075*\blockheight) node (pos_ctrl_freq_text) [no_border_block, anchor=north] {50 Hz};
% Velocity controller
\path (pos_ctrl.east)+(0.85*\nodesep,0) node (vel_ctrl) [simple_block] {Velocity Control};
\path (vel_ctrl.north)+(0,0) node (vel_ctrl_text) [no_border_block, anchor=south] {\textbf{PID}};
% Acceleration to Attitude
\path (vel_ctrl.north east)+(1.1*\nodesep,0) node (force_2_att) [larger_block, text width=5.6em] {Acceleration and Yaw to Attitude};
% Inertial Frame
\node[fit=(pos_ctrl) (vel_ctrl)] (inertial) [frame_block] {};
\path (inertial.south)+(0,0) node (inertial_text) [no_border_block, anchor=north] {Inertial Frame};
% Angle controller
\path (force_2_att.north east)+(0.95*\nodesep,0) node (angle_ctrl) [simple_block, anchor=north] {Angle Control};
\path (angle_ctrl.north)+(0,0) node (angle_ctrl_text) [no_border_block, anchor=south] {\textbf{P}};
\path (angle_ctrl.south)+(0, -0.075*\blockheight) node (angle_ctrl_freq_text) [no_border_block, anchor=north] {250 Hz};
% Angular Rate controller
\path (angle_ctrl.east)+(0.9*\nodesep,0) node (ang_vel_ctrl) [simple_block] {Angular Rate Control};
\path (ang_vel_ctrl.north)+(0,0) node (ang_vel_ctrl_text) [no_border_block, anchor=south] {\textbf{PID}};
\path (ang_vel_ctrl.south)+(0, -0.075*\blockheight) node (ang_vel_ctrl_freq_text) [no_border_block, anchor=north] {1 kHz};
% Mixer
\path (ang_vel_ctrl.north east)+(\nodesep,0) node (mixer) [larger_block, text width=3em] {Mixer};
% Body Frame
\node[fit=(angle_ctrl) (ang_vel_ctrl)] (body) [frame_block] {};
\path (body.south)+(0,0) node (body_text) [no_border_block, anchor=north] {Body Frame};
\path (mixer.east)+(0.5*\nodesep,0) node (cmd) [] {};
%===================================================================================
\path[draw,->] (ref.east) -- node[anchor=south, pos=0.05, align=left] {$\bm{X}_\text{sp}$} (pos_ctrl.west);
\path[draw,->] (pos_ctrl.east) -- node[anchor=south] {$\bm{V}_\text{sp}$} (vel_ctrl.west);
\path[draw,->] (vel_ctrl.east) -- node[anchor=south, pos=0.65] {$\bm{A}_\text{sp}$} (vel_ctrl.east -| force_2_att.west);
\path[draw,->] ([yshift=-0.25*\largeblockheight]force_2_att.west -| ref.east) -- node[anchor=south, pos=0] {$\psi_\text{sp}$} ([yshift=-0.25*\largeblockheight]force_2_att.west);
\path[draw,->] (force_2_att.east |- angle_ctrl.west) -- node[anchor=south, pos=0.4] {$\bm{q}_\text{sp}$} (angle_ctrl.west);
\path[draw,->] ([yshift=-0.25*\largeblockheight]force_2_att.east) -- node[text centered, inner sep=2pt, anchor=south, pos=0.915] {$\delta_{T_\text{sp}}$} ([yshift=-0.25*\largeblockheight]mixer.west);
\path[draw,->] (angle_ctrl.east) -- node[anchor=south] {$\bm{\Omega}_\text{sp}$} (ang_vel_ctrl.west);
\path[draw,->] ([yshift=0.25*\blockheight]ang_vel_ctrl.east) -- node[text centered, inner sep=2pt, anchor=south, pos=0.6] {$\delta_{A_\text{sp}}$} ([yshift=0.25*\blockheight]ang_vel_ctrl.east -| mixer.west);
\path[draw,->] (ang_vel_ctrl.east) -- node[text centered, inner sep=2pt, anchor=south, pos=0.6] {$\delta_{E_\text{sp}}$} (ang_vel_ctrl.east -| mixer.west);
\path[draw,->] ([yshift=-0.25*\blockheight]ang_vel_ctrl.east) -- node[text centered, inner sep=2pt, anchor=south, pos=0.6] {$\delta_{R_\text{sp}}$} ([yshift=-0.25*\blockheight]ang_vel_ctrl.east -| mixer.west);
\path[draw,->] (mixer.east) -- node[text centered, inner sep=5pt, anchor=south] {$\bm{T}_\text{sp}$} (cmd.west);
\end{tikzpicture}
\end{figure}
\clearpage
%===================================================================================
% TIKZ ANGULAR RATE CONTROL
%===================================================================================
\begin{figure}[ht]
\centering
% Define distances
\def\blockheight{2.2em}
\def\blockwidth{2.2em}
\def\nodesep{1.5*\blockwidth}
\begin{tikzpicture}[>={Stealth[inset=0pt,length=3pt,angle'=60,round]},
simple_block/.style = {draw, fill=light_blue, text centered, inner sep=0pt, minimum width=\blockwidth, minimum height=\blockheight},
frame_block/.style = {draw, text centered, inner ysep=1.25em, inner xsep=1.25em, dashed},
@@ -138,7 +138,7 @@
node at (sum.east) [port, left=1pt] {$#4$}
}
},
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
{
% Get the width and height of the path picture node
\pgfpointdiff{\pgfpointanchor{path picture bounding box}{north east}}%
@@ -149,11 +149,11 @@
\tikzset{x=\x*.4, y=\y*.4}
%
% Draw annotation
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,-.6) -- (-.6,-.6) -- (.6,.6) -- (1,.6);
}
},
sat_block_int/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
sat_block_int/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
{
% Get the width and height of the path picture node
\pgfpointdiff{\pgfpointanchor{path picture bounding box}{north east}}%
@@ -170,7 +170,7 @@
]
%===================================================================================
\node[text centered] (ref) {};
% Controller
\path(ref)+(\nodesep,0) node (ref_sum) [sum={}{+}{-}{}] {};
\path(ref_sum)+(\nodesep,0) node (ctrl_k) [simple_block] {$K$};
@@ -184,12 +184,12 @@
\path(ctrl_i_gain)+(\nodesep,0) node (ctrl_sum) [sum={+}{+}{-}{}] {};
\path(ctrl_sum)+(\nodesep,0) node (sat_ctrl) [sat_block] {};
\path(sat_ctrl.east)+(0.675*\nodesep,0) node (ctrl) [] {};
\path(ref_sum.south |- ctrl_d_filt.west)+(-\nodesep,0) node(output) [] {};
%===================================================================================
\path[draw,->] (ref.east) -- node[anchor=south, pos=0] {$\Omega_\text{sp}$} (ref_sum.west);
\path[draw,->] (ref_sum.east) -- (ctrl_k.west);
\path[draw,->] (ctrl_k.east) -- (ctrl_i.west);
\path[draw,->] (output.east) |- node[anchor=south, pos=0] {$\Omega$} (ctrl_kd.west);
@@ -204,31 +204,31 @@
\path[draw,->] (ctrl_p_gain.east) -| (ctrl_sum.north);
\path[draw,->] (ctrl_sum.east) -- (sat_ctrl.west);
\path[draw,->] (sat_ctrl.east) -- node[anchor=south] {$\delta_\text{sp}$} (ctrl.west);
\end{tikzpicture}
\end{figure}
\clearpage
%===================================================================================
% TIKZ ANGLE CONTROL
%===================================================================================
\begin{figure}[ht]
\centering
\footnotesize
% Define distances
\def\blockheight{3em}
\def\blockwidth{3em}
\def\nodesep{2*\blockwidth}
\begin{tikzpicture}[>={Stealth[inset=0pt,length=3pt,angle'=60,round]},
simple_block/.style = {draw, fill=light_blue, text centered, inner sep=0pt, minimum width=\blockwidth, minimum height=\blockheight},
text_block/.style = {draw, fill=light_blue, text centered, inner sep=0pt, text width=2*\blockwidth, minimum height=\blockheight},
frame_block/.style = {draw, text centered, inner ysep=1.25em, inner xsep=1.25em, dashed},
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
{
% Get the width and height of the path picture node
\pgfpointdiff{\pgfpointanchor{path picture bounding box}{north east}}%
@@ -239,17 +239,17 @@
\tikzset{x=\x*.4, y=\y*.4}
%
% Draw annotation
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,-.6) -- (-.6,-.6) -- (.6,.6) -- (1,.6);
}
},
gain/.style = {draw, fill=light_blue, inner sep=0pt, isosceles triangle, minimum height=\blockheight, isosceles triangle apex angle=60},
]
\hspace{-0.7cm}
%===============================================================================
\node[text centered, yshift=0.25*\blockheight] (ref) {};
% Controller
\path(ref)+(0.75*\nodesep,-0.25*\blockheight) node (err_quat) [text_block] {Error quaternion};
\path(err_quat)+(1.5*\nodesep,0) node (select_axis) [text_block] {Extract component};
@@ -259,7 +259,7 @@
\path(mult)+(0.65*\nodesep, 0) node (p_gain) [gain] {\scriptsize $2 P$};
\path(p_gain)+(0.75*\nodesep, 0) node (sat_ctrl) [sat_block] {};
\path(sat_ctrl)+(0.75*\nodesep, 0) node (output) [] {};
%===============================================================================
\path[draw,->] (ref.east) -- node[text centered, anchor=south, pos=0.1] {$\bm{q}_\text{sp}$} ([yshift=0.25*\blockheight]err_quat.west);
\path[draw,->] ([yshift=-0.25*\blockheight]err_quat.west -| ref.east) -- node[text centered, anchor=north, pos=0.1] {$\bm{q}$} ([yshift=-0.25*\blockheight]err_quat.west);
@@ -272,23 +272,23 @@
\path[draw,->] (p_gain.east) -- (sat_ctrl.west);
\path[draw,->] (sat_ctrl.east) -- node[text centered, anchor=south] {$\Omega_\text{sp}$} (output.west);
\end{tikzpicture}
\end{figure}
\clearpage
%===================================================================================
% TIKZ VELOCITY CONTROL
%===================================================================================
\begin{figure}[ht]
\centering
% Define distances
\def\blockheight{2.2em}
\def\blockwidth{2.2em}
\def\nodesep{1.5*\blockwidth}
\begin{tikzpicture}[>={Stealth[inset=0pt,length=3pt,angle'=60,round]},
simple_block/.style = {draw, fill=light_blue, text centered, inner sep=0pt, minimum width=\blockwidth, minimum height=\blockheight},
frame_block/.style = {draw, text centered, inner ysep=1.25em, inner xsep=1.25em, dashed},
@@ -301,7 +301,7 @@
node at (sum.east) [port, left=1pt] {$#4$}
}
},
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
{
% Get the width and height of the path picture node
\pgfpointdiff{\pgfpointanchor{path picture bounding box}{north east}}%
@@ -312,11 +312,11 @@
\tikzset{x=\x*.4, y=\y*.4}
%
% Draw annotation
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,-.6) -- (-.6,-.6) -- (.6,.6) -- (1,.6);
}
},
sat_block_int/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
sat_block_int/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
{
% Get the width and height of the path picture node
\pgfpointdiff{\pgfpointanchor{path picture bounding box}{north east}}%
@@ -333,7 +333,7 @@
]
%===================================================================================
\node[text centered] (ref) {};
% Controller
\path(ref)+(\nodesep,0) node (ref_sum) [sum={}{+}{-}{}] {};
\path(ref_sum)+(2*\nodesep,0) node (ctrl_i) [simple_block] {$\int$};
@@ -345,12 +345,12 @@
\path(ctrl_i_gain)+(\nodesep,0) node (ctrl_sum) [sum={+}{+}{-}{}] {};
\path(ctrl_sum)+(\nodesep,0) node (sat_ctrl) [sat_block] {};
\path(sat_ctrl.east)+(0.675*\nodesep,0) node (ctrl) [] {};
\path(ref_sum.south |- ctrl_d_filt.west)+(-\nodesep,0) node(output) [] {};
%===================================================================================
\path[draw,->] (ref.east) -- node[anchor=south, pos=0] {$V_\text{sp}$} (ref_sum.west);
\path[draw,->] (ref_sum.east) -- (ctrl_i.west);
\path[draw,->] (output.east) |- node[anchor=south, pos=0] {$V$} (ctrl_d_filt.west);
\path[draw,->] (output.east -| ref_sum.south) -- (ref_sum.south);
@@ -363,25 +363,25 @@
\path[draw,->] (ctrl_p_gain.east) -| (ctrl_sum.north);
\path[draw,->] (ctrl_sum.east) -- (sat_ctrl.west);
\path[draw,->] (sat_ctrl.east) -- node[anchor=south] {$A_\text{sp}$} (ctrl.west);
\end{tikzpicture}
\end{figure}
\clearpage
%===================================================================================
% TIKZ POSITION CONTROL
%===================================================================================
\begin{figure}[h]
\centering
% Define distances
\def\blockheight{2.2em}
\def\blockwidth{2.2em}
\def\nodesep{2*\blockwidth}
\begin{tikzpicture}[>={Stealth[inset=0pt,length=3pt,angle'=60,round]},
simple_block/.style = {draw, fill=light_blue, text centered, inner sep=0pt, minimum width=\blockwidth, minimum height=\blockheight},
frame_block/.style = {draw, text centered, inner ysep=1.25em, inner xsep=1.25em, dashed},
@@ -394,7 +394,7 @@
node at (sum.east) [port, left=1pt] {$#4$}
}
},
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
sat_block/.style = {draw, minimum width=\blockwidth, minimum height=\blockheight, path picture =
{
% Get the width and height of the path picture node
\pgfpointdiff{\pgfpointanchor{path picture bounding box}{north east}}%
@@ -405,32 +405,32 @@
\tikzset{x=\x*.4, y=\y*.4}
%
% Draw annotation
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,0) -- (1,0) (0,-1) -- (0,1);
\draw (-1,-.6) -- (-.6,-.6) -- (.6,.6) -- (1,.6);
}
}
]
%===============================================================================
\node[text centered] (ref) {};
% Controller
\path(ref)+(\nodesep,0) node (ref_sum) [sum={}{+}{-}{}] {};
\path(ref_sum)+(\nodesep,0) node (ctrl_p_gain) [simple_block] {$P$};
\path(ctrl_p_gain)+(\nodesep,0) node (sat_ctrl) [sat_block] {};
\path(sat_ctrl.east)+(\nodesep,0) node (ctrl) [] {};
\path(ref_sum.south)+(-\nodesep,-1.5*\blockheight) node(output) [] {};
%===============================================================================
\path[draw,->] (ref.east) -- node[anchor=south, pos=0] {$X_\text{sp}$} (ref_sum.west);
\path[draw,->] (output.east) -- node[anchor=south, pos=0] {$X$} (output.east -| ref_sum.south) -- (ref_sum.south);
\path[draw,->] (ref_sum.east) -- (ctrl_p_gain.west);
\path[draw,->] (ctrl_p_gain.east) -- (sat_ctrl.west);
\path[draw,->] (sat_ctrl.east) -- node[anchor=south] {$V_\text{sp}$} (ctrl.west);
\end{tikzpicture}
\end{figure}
\end{document}
\end{document}
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 109 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB