diff --git a/Tools/astyle/check_newlines.sh b/Tools/astyle/check_newlines.sh
index 27bae97112..7c1ad2c854 100755
--- a/Tools/astyle/check_newlines.sh
+++ b/Tools/astyle/check_newlines.sh
@@ -3,14 +3,14 @@
return_value=0
# Check if there are files checked in that don't end in a newline (POSIX requirement)
-git grep --cached -Il '' -- ':!docs/*' | xargs -L1 bash -c 'if test "$(tail -c 1 "$0")"; then echo "No new line at end of $0"; exit 1; fi'
+git grep --cached -Il '' -- ':!docs/public/' ':!docs/ko/' ':!docs/uk/' ':!docs/zh/' | xargs -L1 bash -c 'if test "$(tail -c 1 "$0")"; then echo "No new line at end of $0"; exit 1; fi'
if [ $? -ne 0 ]; then
return_value=1
fi
# Check if there are files checked in that have duplicate newlines at the end (fail trailing whitespace checks)
-git grep --cached -Il '' -- ':!docs/*' | xargs -L1 bash -c 'if tail -c 2 "$0" | ( read x && read y && [ x"$x" = x ] && [ x"$y" = x ]); then echo "Multiple newlines at the end of $0"; exit 1; fi'
+git grep --cached -Il '' -- ':!docs/public/' ':!docs/ko/' ':!docs/uk/' ':!docs/zh/' | xargs -L1 bash -c 'if tail -c 2 "$0" | ( read x && read y && [ x"$x" = x ] && [ x"$y" = x ]); then echo "Multiple newlines at the end of $0"; exit 1; fi'
if [ $? -ne 0 ]; then
return_value=1
diff --git a/docs/.gitignore b/docs/.gitignore
index fcc573181f..91aeac442c 100644
--- a/docs/.gitignore
+++ b/docs/.gitignore
@@ -18,4 +18,4 @@ yarn-error.log
# Generated alternative _summary.md
-# **/*/_summary.md
\ No newline at end of file
+# **/*/_summary.md
diff --git a/docs/.vitepress/theme/components/Redirect.vue b/docs/.vitepress/theme/components/Redirect.vue
index 3b847adc65..788225af78 100644
--- a/docs/.vitepress/theme/components/Redirect.vue
+++ b/docs/.vitepress/theme/components/Redirect.vue
@@ -16,4 +16,4 @@
document.location.replace(this.to);
}
}
-
\ No newline at end of file
+
diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css
index 547863af09..d3862762c0 100644
--- a/docs/.vitepress/theme/style.css
+++ b/docs/.vitepress/theme/style.css
@@ -159,4 +159,4 @@
.vp-doc img {
display: inline; /* block by default set by vitepress */
-}
\ No newline at end of file
+}
diff --git a/docs/CNAME b/docs/CNAME
index ff6d3d9234..aa93c3831e 100644
--- a/docs/CNAME
+++ b/docs/CNAME
@@ -1 +1 @@
-docs.px4.io
\ No newline at end of file
+docs.px4.io
diff --git a/docs/_link_checker_sc/ignore_errors.json b/docs/_link_checker_sc/ignore_errors.json
index 2914c56f27..64705a503d 100644
--- a/docs/_link_checker_sc/ignore_errors.json
+++ b/docs/_link_checker_sc/ignore_errors.json
@@ -1011,4 +1011,4 @@
},
"hideReason": "intended"
}
-]
\ No newline at end of file
+]
diff --git a/docs/_link_checker_sc/ignorefile.json b/docs/_link_checker_sc/ignorefile.json
index 0feca57df0..ad96f0396c 100644
--- a/docs/_link_checker_sc/ignorefile.json
+++ b/docs/_link_checker_sc/ignorefile.json
@@ -1 +1 @@
-["en/_sidebar.md"]
\ No newline at end of file
+["en/_sidebar.md"]
diff --git a/docs/assets/airframes/types/Airship.svg b/docs/assets/airframes/types/Airship.svg
index 65e8d9599b..556e4e092f 100644
--- a/docs/assets/airframes/types/Airship.svg
+++ b/docs/assets/airframes/types/Airship.svg
@@ -219,4 +219,4 @@
d="M 113.51898,180.06889 V 245.764 l 2.6517,-0.0192 v -65.67586 z"
id="path4768"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccc" />
\ No newline at end of file
+ sodipodi:nodetypes="ccccc" />
diff --git a/docs/assets/airframes/types/Autogyro.svg b/docs/assets/airframes/types/Autogyro.svg
index 40bef19437..d22541e7b6 100644
--- a/docs/assets/airframes/types/Autogyro.svg
+++ b/docs/assets/airframes/types/Autogyro.svg
@@ -141,4 +141,4 @@
style="opacity:1;fill:#4ec3e8;fill-opacity:1;stroke:none;stroke-width:0.11511399;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d=""
id="path969"
- inkscape:connector-curvature="0" />
\ No newline at end of file
+ inkscape:connector-curvature="0" />
diff --git a/docs/assets/airframes/types/Balloon.svg b/docs/assets/airframes/types/Balloon.svg
index ccb749cd50..815496af22 100644
--- a/docs/assets/airframes/types/Balloon.svg
+++ b/docs/assets/airframes/types/Balloon.svg
@@ -81,4 +81,4 @@
d="m 54.341679,213.74572 c 2.37161,-3.60386 6.9481,-8.19494 7.64935,-9.88687 0.74741,1.64004 4.52647,6.50033 6.82427,9.88687"
id="path848"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccc" />
\ No newline at end of file
+ sodipodi:nodetypes="ccc" />
diff --git a/docs/assets/airframes/types/DodecaRotorXCoaxial.svg b/docs/assets/airframes/types/DodecaRotorXCoaxial.svg
index 7a8faf822b..d37e259545 100644
--- a/docs/assets/airframes/types/DodecaRotorXCoaxial.svg
+++ b/docs/assets/airframes/types/DodecaRotorXCoaxial.svg
@@ -768,4 +768,4 @@
id="text7995">
\ No newline at end of file
+ id="path4482" />
diff --git a/docs/assets/airframes/types/Helicopter.svg b/docs/assets/airframes/types/Helicopter.svg
index 6bf5263f88..66c401cea2 100644
--- a/docs/assets/airframes/types/Helicopter.svg
+++ b/docs/assets/airframes/types/Helicopter.svg
@@ -142,4 +142,4 @@
id="text7999">
\ No newline at end of file
+ id="path10409" />
diff --git a/docs/assets/airframes/types/HexaRotorPlus.svg b/docs/assets/airframes/types/HexaRotorPlus.svg
index 6bc51688c6..89568af211 100644
--- a/docs/assets/airframes/types/HexaRotorPlus.svg
+++ b/docs/assets/airframes/types/HexaRotorPlus.svg
@@ -437,4 +437,4 @@
id="text14502">
\ No newline at end of file
+ id="path19510" />
diff --git a/docs/assets/airframes/types/HexaRotorX.svg b/docs/assets/airframes/types/HexaRotorX.svg
index 331b2df04b..9e27c4190f 100644
--- a/docs/assets/airframes/types/HexaRotorX.svg
+++ b/docs/assets/airframes/types/HexaRotorX.svg
@@ -437,4 +437,4 @@
id="text7995">
\ No newline at end of file
+ id="path21558" />
diff --git a/docs/assets/airframes/types/OctoRotorPlus.svg b/docs/assets/airframes/types/OctoRotorPlus.svg
index 527ca02c88..790869377c 100644
--- a/docs/assets/airframes/types/OctoRotorPlus.svg
+++ b/docs/assets/airframes/types/OctoRotorPlus.svg
@@ -517,4 +517,4 @@
id="text23152">
\ No newline at end of file
+ id="path23179" />
diff --git a/docs/assets/airframes/types/OctoRotorX.svg b/docs/assets/airframes/types/OctoRotorX.svg
index 3890e5ac5f..f8ede630b3 100644
--- a/docs/assets/airframes/types/OctoRotorX.svg
+++ b/docs/assets/airframes/types/OctoRotorX.svg
@@ -587,4 +587,4 @@
id="text26711">
\ No newline at end of file
+ id="path26744" />
diff --git a/docs/assets/airframes/types/OctoRotorXCoaxial.svg b/docs/assets/airframes/types/OctoRotorXCoaxial.svg
index d2628b2c8c..d306e0bdd6 100644
--- a/docs/assets/airframes/types/OctoRotorXCoaxial.svg
+++ b/docs/assets/airframes/types/OctoRotorXCoaxial.svg
@@ -515,4 +515,4 @@
id="text17133">
\ No newline at end of file
+ id="path17150" />
diff --git a/docs/assets/airframes/types/QuadRotorH.svg b/docs/assets/airframes/types/QuadRotorH.svg
index 539c90df7a..a2290936fa 100644
--- a/docs/assets/airframes/types/QuadRotorH.svg
+++ b/docs/assets/airframes/types/QuadRotorH.svg
@@ -295,4 +295,4 @@
id="text7991-1">
\ No newline at end of file
+ id="path4610" />
diff --git a/docs/assets/airframes/types/QuadRotorPlus.svg b/docs/assets/airframes/types/QuadRotorPlus.svg
index 1a217cf79e..a268f672f9 100644
--- a/docs/assets/airframes/types/QuadRotorPlus.svg
+++ b/docs/assets/airframes/types/QuadRotorPlus.svg
@@ -285,4 +285,4 @@
id="text8003">
\ No newline at end of file
+ id="path8729" />
diff --git a/docs/assets/airframes/types/VTOLTiltRotor.svg b/docs/assets/airframes/types/VTOLTiltRotor.svg
index 41746fba93..52cd6d90eb 100644
--- a/docs/assets/airframes/types/VTOLTiltRotor.svg
+++ b/docs/assets/airframes/types/VTOLTiltRotor.svg
@@ -383,4 +383,4 @@
id="text35807">
\ No newline at end of file
+ id="path35828" />
diff --git a/docs/assets/airframes/types/Y6B.svg b/docs/assets/airframes/types/Y6B.svg
index 82b26c7dc1..6938bedd42 100644
--- a/docs/assets/airframes/types/Y6B.svg
+++ b/docs/assets/airframes/types/Y6B.svg
@@ -386,4 +386,4 @@
id="text35807">
\ No newline at end of file
+ id="path38394" />
diff --git a/docs/assets/airframes/types/YPlus.svg b/docs/assets/airframes/types/YPlus.svg
index 450b83727b..a6637d12d8 100644
--- a/docs/assets/airframes/types/YPlus.svg
+++ b/docs/assets/airframes/types/YPlus.svg
@@ -244,4 +244,4 @@
sodipodi:argument="-17.855951"
sodipodi:t0="0.99130303"
d="m 223.94673,38.425681 c -3.13084,3.863564 -7.10954,7.019918 -11.58403,9.189766"
- transform="rotate(-64.14705,272.849,-49.763793)" />
\ No newline at end of file
+ transform="rotate(-64.14705,272.849,-49.763793)" />
diff --git a/docs/assets/can/uavcan_wiring.svg b/docs/assets/can/uavcan_wiring.svg
index 31a3a51a0a..cab0933e9e 100644
--- a/docs/assets/can/uavcan_wiring.svg
+++ b/docs/assets/can/uavcan_wiring.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/PX4_Architecture.svg b/docs/assets/diagrams/PX4_Architecture.svg
index 4eda2086b8..37247c24f9 100644
--- a/docs/assets/diagrams/PX4_Architecture.svg
+++ b/docs/assets/diagrams/PX4_Architecture.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/PX4_High-Level_Flight-Stack.svg b/docs/assets/diagrams/PX4_High-Level_Flight-Stack.svg
index 8b88554091..40ce4168c2 100644
--- a/docs/assets/diagrams/PX4_High-Level_Flight-Stack.svg
+++ b/docs/assets/diagrams/PX4_High-Level_Flight-Stack.svg
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/actuator_metadata_processing.svg b/docs/assets/diagrams/actuator_metadata_processing.svg
index 761d2e1e02..5dddfcc83c 100644
--- a/docs/assets/diagrams/actuator_metadata_processing.svg
+++ b/docs/assets/diagrams/actuator_metadata_processing.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/mc_control_arch_tikz.tex b/docs/assets/diagrams/mc_control_arch_tikz.tex
index 40dfd9f8f3..548b88078e 100644
--- a/docs/assets/diagrams/mc_control_arch_tikz.tex
+++ b/docs/assets/diagrams/mc_control_arch_tikz.tex
@@ -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}
\ No newline at end of file
+\end{document}
diff --git a/docs/assets/diagrams/pwm_limit_state_diagram.svg b/docs/assets/diagrams/pwm_limit_state_diagram.svg
index 4644073355..40f2f029d3 100644
--- a/docs/assets/diagrams/pwm_limit_state_diagram.svg
+++ b/docs/assets/diagrams/pwm_limit_state_diagram.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/px4_arch_fc.svg b/docs/assets/diagrams/px4_arch_fc.svg
index 248ec3f46d..d4f6024641 100644
--- a/docs/assets/diagrams/px4_arch_fc.svg
+++ b/docs/assets/diagrams/px4_arch_fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/px4_arch_fc_companion.svg b/docs/assets/diagrams/px4_arch_fc_companion.svg
index bcc4b93d14..0829435fb8 100644
--- a/docs/assets/diagrams/px4_arch_fc_companion.svg
+++ b/docs/assets/diagrams/px4_arch_fc_companion.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/px4_companion_computer_simple.svg b/docs/assets/diagrams/px4_companion_computer_simple.svg
index f3c992ae29..7625ae4892 100644
--- a/docs/assets/diagrams/px4_companion_computer_simple.svg
+++ b/docs/assets/diagrams/px4_companion_computer_simple.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/diagrams/tecs_in_context.svg b/docs/assets/diagrams/tecs_in_context.svg
index 6c7cabeef0..aab262ce7b 100644
--- a/docs/assets/diagrams/tecs_in_context.svg
+++ b/docs/assets/diagrams/tecs_in_context.svg
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/flight_log_analysis/plot_juggler/plotjuggler_sample_view.xml b/docs/assets/flight_log_analysis/plot_juggler/plotjuggler_sample_view.xml
index d6e4973f22..23aae74424 100644
--- a/docs/assets/flight_log_analysis/plot_juggler/plotjuggler_sample_view.xml
+++ b/docs/assets/flight_log_analysis/plot_juggler/plotjuggler_sample_view.xml
@@ -88,4 +88,3 @@
-
diff --git a/docs/assets/flight_log_analysis/plot_juggler/sample_log_boat_testing_layout.xml b/docs/assets/flight_log_analysis/plot_juggler/sample_log_boat_testing_layout.xml
index 183aa897a9..c29b2c300e 100644
--- a/docs/assets/flight_log_analysis/plot_juggler/sample_log_boat_testing_layout.xml
+++ b/docs/assets/flight_log_analysis/plot_juggler/sample_log_boat_testing_layout.xml
@@ -132,4 +132,3 @@ function quaternionToYaw(x, y, z, w)
-
diff --git a/docs/assets/mc_pid_tuning/MC_PID_tuning-Airmode.svg b/docs/assets/mc_pid_tuning/MC_PID_tuning-Airmode.svg
index 8613e4b552..85ee472bc9 100644
--- a/docs/assets/mc_pid_tuning/MC_PID_tuning-Airmode.svg
+++ b/docs/assets/mc_pid_tuning/MC_PID_tuning-Airmode.svg
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/mc_pid_tuning/relative_thrust_and_pwm_scatter.svg b/docs/assets/mc_pid_tuning/relative_thrust_and_pwm_scatter.svg
index 0dfc2fe113..fc1ee69c2e 100644
--- a/docs/assets/mc_pid_tuning/relative_thrust_and_pwm_scatter.svg
+++ b/docs/assets/mc_pid_tuning/relative_thrust_and_pwm_scatter.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/middleware/ros2/px4_ros2_interface_lib/fw_lat_long_ros_interaction.svg b/docs/assets/middleware/ros2/px4_ros2_interface_lib/fw_lat_long_ros_interaction.svg
index 3e9a8df721..8ea698bfe9 100644
--- a/docs/assets/middleware/ros2/px4_ros2_interface_lib/fw_lat_long_ros_interaction.svg
+++ b/docs/assets/middleware/ros2/px4_ros2_interface_lib/fw_lat_long_ros_interaction.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
External Flight Mode
Simplified PX4 Fixed Wing
Lateral/Longitudinal Controller
Course Setpoint
Airspeed Direction Computation
Airspeed Direction Controller
Roll Angle Computation
Airspeed Direction Setpoint
Lateral Acceleration Setpoint
+
Diagram illustrates interaction between external inputs and PX4. Does not show all inputs and intermediate steps within the controller.
Equivalent Airspeed Setpoint
Altitude Setpoint
Height Rate Setpoint
Altitude Controller
Airspeed Controller
TECS
pitch setpoint
throttle setpoint
diff --git a/docs/assets/middleware/ros2/px4_ros2_interface_lib/ros2_modes_overview.svg b/docs/assets/middleware/ros2/px4_ros2_interface_lib/ros2_modes_overview.svg
index 9849c95634..a26e1ca92f 100644
--- a/docs/assets/middleware/ros2/px4_ros2_interface_lib/ros2_modes_overview.svg
+++ b/docs/assets/middleware/ros2/px4_ros2_interface_lib/ros2_modes_overview.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/middleware/ros2/px4_ros2_interface_lib/translation_node.svg b/docs/assets/middleware/ros2/px4_ros2_interface_lib/translation_node.svg
index dc81a128ac..c424922c1f 100644
--- a/docs/assets/middleware/ros2/px4_ros2_interface_lib/translation_node.svg
+++ b/docs/assets/middleware/ros2/px4_ros2_interface_lib/translation_node.svg
@@ -1,4 +1,4 @@
-
FAST-DDS
uORB topic
μXRCE-DDS client
uORB topic
uORB topic
μXRCE-DDS agent
ROS 2
Message
Translation
Node
ROS 2
Application Node
ROS 2
Application Node
FAST-DDS
μXRCE-DDS agent
ROS 2
Message
Translation
Node
ROS 2
Application Node
(msgs ver: a.b.2)
msg: VehicleAttitudeV3
topic: /fmu/out/vehicle_attitude_v3
ROS 2
Application Node
(msgs ver: a.b.1)
msg: VehicleCommandV2
topic: /fmu/out/vehicle_command_v2
msg: VehicleAttitudeV5
topic: /fmu/out/vehicle_attitude_v5
msg: VehicleAttitudeV4
topic: /fmu/out/vehicle_attitude_v4
msg: VehicleCommandV3
topic: /fmu/out/vehicle_command_v3
PX4
(msgs ver: a.b.3)
\ No newline at end of file
+
FAST-DDS
uORB topic
μXRCE-DDS client
uORB topic
uORB topic
μXRCE-DDS agent
ROS 2
Message
Translation
Node
ROS 2
Application Node
ROS 2
Application Node
FAST-DDS
μXRCE-DDS agent
ROS 2
Message
Translation
Node
ROS 2
Application Node
(msgs ver: a.b.2)
msg: VehicleAttitudeV3
topic: /fmu/out/vehicle_attitude_v3
ROS 2
Application Node
(msgs ver: a.b.1)
msg: VehicleCommandV2
topic: /fmu/out/vehicle_command_v2
msg: VehicleAttitudeV5
topic: /fmu/out/vehicle_attitude_v5
msg: VehicleAttitudeV4
topic: /fmu/out/vehicle_attitude_v4
msg: VehicleCommandV3
topic: /fmu/out/vehicle_command_v3
PX4
(msgs ver: a.b.3)
diff --git a/docs/assets/middleware/xrce_dds/architecture_xrce-dds_ros2.svg b/docs/assets/middleware/xrce_dds/architecture_xrce-dds_ros2.svg
index 9d329da798..db847e6237 100644
--- a/docs/assets/middleware/xrce_dds/architecture_xrce-dds_ros2.svg
+++ b/docs/assets/middleware/xrce_dds/architecture_xrce-dds_ros2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/site/altitude_icon.svg b/docs/assets/site/altitude_icon.svg
index 9ffcac3e48..a184f7581e 100644
--- a/docs/assets/site/altitude_icon.svg
+++ b/docs/assets/site/altitude_icon.svg
@@ -1 +1 @@
-ALT
\ No newline at end of file
+ALT
diff --git a/docs/assets/site/automatic_mode.svg b/docs/assets/site/automatic_mode.svg
index ad74ca0286..508e43a6e3 100644
--- a/docs/assets/site/automatic_mode.svg
+++ b/docs/assets/site/automatic_mode.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/site/position_fixed.svg b/docs/assets/site/position_fixed.svg
index 7d66e5ec4f..15fa7ebd00 100644
--- a/docs/assets/site/position_fixed.svg
+++ b/docs/assets/site/position_fixed.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/assets/site/remote_control.svg b/docs/assets/site/remote_control.svg
index 7e85f336fc..f9215d0bd0 100644
--- a/docs/assets/site/remote_control.svg
+++ b/docs/assets/site/remote_control.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/book.json b/docs/book.json
index b401b9ec90..e2f62c1da7 100644
--- a/docs/book.json
+++ b/docs/book.json
@@ -1,4 +1,4 @@
-{
+{
"gitbook": ">= 3.2.2",
"title": "PX4 User Guide",
"variables": {
@@ -56,7 +56,7 @@
"icon": "fa fa-bug",
"position" : "left",
"url": "https://github.com/PX4/px4_user_guide/issues/new?title=Doc+Bug:+{{title}}&body=DESCRIBE+PROBLEM+WITH+DOCS+HERE%0A%0ABug+Page:+[{{title}}]({{url}})"
-
+
},
{
"label": "GitHub",
@@ -71,7 +71,7 @@
}
]
},
-
+
"versions": {
"gitbookConfigURL": "https://raw.githubusercontent.com/PX4/px4_user_guide/main/book.json",
"options": [
@@ -94,7 +94,7 @@
{
"value": "https://docs.px4.io/v1.12/en/",
"text": "v1.12"
- },
+ },
{
"value": "https://docs.px4.io/v1.11/en/",
"text": "v1.11"
@@ -105,4 +105,3 @@
}
}
-
diff --git a/docs/en/actuators/index.md b/docs/en/actuators/index.md
index eb1161540f..786f2e1304 100644
--- a/docs/en/actuators/index.md
+++ b/docs/en/actuators/index.md
@@ -9,4 +9,4 @@ This section contains topics about the core actuators used for flight control (E
## See Also
-- [Peripherals](../peripherals/index.md) - includes non-core actuators such as grippers, parachutes, etc.
\ No newline at end of file
+- [Peripherals](../peripherals/index.md) - includes non-core actuators such as grippers, parachutes, etc.
diff --git a/docs/en/advanced_config/parameter_reference.md b/docs/en/advanced_config/parameter_reference.md
index 437f64976a..73e2e8a115 100644
--- a/docs/en/advanced_config/parameter_reference.md
+++ b/docs/en/advanced_config/parameter_reference.md
@@ -40437,4 +40437,3 @@ Skip the controller.
Reboot | minValue | maxValue | increment | default | unit
--- | --- | --- | --- | --- | ---
| | | | 0 |
-
diff --git a/docs/en/airframes/airframe_reference.md b/docs/en/airframes/airframe_reference.md
index 7d939efff7..63fc7b69f9 100644
--- a/docs/en/airframes/airframe_reference.md
+++ b/docs/en/airframes/airframe_reference.md
@@ -797,4 +797,3 @@ div.frame_variant td, div.frame_variant th {
-
diff --git a/docs/en/assembly/assembly_vtol.md b/docs/en/assembly/assembly_vtol.md
index 3ec76dd75b..2eaabf8776 100644
--- a/docs/en/assembly/assembly_vtol.md
+++ b/docs/en/assembly/assembly_vtol.md
@@ -4,4 +4,4 @@ frame: VTOL
newEditLink: en/assembly/_assembly.md
---
-
\ No newline at end of file
+
diff --git a/docs/en/assembly/index.md b/docs/en/assembly/index.md
index 7fa489a191..06d0f5d9a3 100644
--- a/docs/en/assembly/index.md
+++ b/docs/en/assembly/index.md
@@ -3,4 +3,4 @@ frame: General
newEditLink: en/assembly/_assembly.md
---
-
\ No newline at end of file
+
diff --git a/docs/en/camera/index.md b/docs/en/camera/index.md
index 96619b1f88..b5326c0c9c 100644
--- a/docs/en/camera/index.md
+++ b/docs/en/camera/index.md
@@ -17,4 +17,4 @@ If a camera does not support this prototol, a [camera manager](../camera/mavlink
## See Also
- [Gimbal (Camera Mount)](../advanced/gimbal_control.md)
-- [Camera Integration/Architecture](../camera/camera_architecture.md) (PX4 Developers)
\ No newline at end of file
+- [Camera Integration/Architecture](../camera/camera_architecture.md) (PX4 Developers)
diff --git a/docs/en/complete_vehicles/betafpv_beta75x.md b/docs/en/complete_vehicles/betafpv_beta75x.md
index 2e06a3e659..d549caae04 100644
--- a/docs/en/complete_vehicles/betafpv_beta75x.md
+++ b/docs/en/complete_vehicles/betafpv_beta75x.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/crazyflie2.md b/docs/en/complete_vehicles/crazyflie2.md
index 5221a94601..bd266c14bc 100644
--- a/docs/en/complete_vehicles/crazyflie2.md
+++ b/docs/en/complete_vehicles/crazyflie2.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/crazyflie21.md b/docs/en/complete_vehicles/crazyflie21.md
index 6079bc7529..774a3ce340 100644
--- a/docs/en/complete_vehicles/crazyflie21.md
+++ b/docs/en/complete_vehicles/crazyflie21.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/holybro_kopis2.md b/docs/en/complete_vehicles/holybro_kopis2.md
index 3f7094de60..1a816b8f11 100644
--- a/docs/en/complete_vehicles/holybro_kopis2.md
+++ b/docs/en/complete_vehicles/holybro_kopis2.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/intel_aero.md b/docs/en/complete_vehicles/intel_aero.md
index 09446cf879..ab34347098 100644
--- a/docs/en/complete_vehicles/intel_aero.md
+++ b/docs/en/complete_vehicles/intel_aero.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/mindracer210.md b/docs/en/complete_vehicles/mindracer210.md
index b34274e213..9f93cdea6f 100644
--- a/docs/en/complete_vehicles/mindracer210.md
+++ b/docs/en/complete_vehicles/mindracer210.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/mindracer_BNF_RTF.md b/docs/en/complete_vehicles/mindracer_BNF_RTF.md
index 151cea8c91..e0ddb415a7 100644
--- a/docs/en/complete_vehicles/mindracer_BNF_RTF.md
+++ b/docs/en/complete_vehicles/mindracer_BNF_RTF.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/modalai_starling.md b/docs/en/complete_vehicles/modalai_starling.md
index 51f09b309a..dd325deb13 100644
--- a/docs/en/complete_vehicles/modalai_starling.md
+++ b/docs/en/complete_vehicles/modalai_starling.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/nanomind110.md b/docs/en/complete_vehicles/nanomind110.md
index ed5b2311e7..0de6bf3aee 100644
--- a/docs/en/complete_vehicles/nanomind110.md
+++ b/docs/en/complete_vehicles/nanomind110.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles/px4_vision_kit.md b/docs/en/complete_vehicles/px4_vision_kit.md
index b7119f5d78..ab7177ea51 100644
--- a/docs/en/complete_vehicles/px4_vision_kit.md
+++ b/docs/en/complete_vehicles/px4_vision_kit.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/complete_vehicles_vtol/index.md b/docs/en/complete_vehicles_vtol/index.md
index 954e2a60ab..1accdf3a0f 100644
--- a/docs/en/complete_vehicles_vtol/index.md
+++ b/docs/en/complete_vehicles_vtol/index.md
@@ -33,4 +33,4 @@ These may or may not be updatable to run "vanilla" PX4.
## See Also
- [Complete Vehicles (Fixed-Wing)](../complete_vehicles_fw/index.md)
-- [Complete Vehicles (MC)](../complete_vehicles_mc/index.md)
\ No newline at end of file
+- [Complete Vehicles (MC)](../complete_vehicles_mc/index.md)
diff --git a/docs/en/config/safety_simulation.md b/docs/en/config/safety_simulation.md
index 5783d76274..bee01fc8d3 100644
--- a/docs/en/config/safety_simulation.md
+++ b/docs/en/config/safety_simulation.md
@@ -30,4 +30,3 @@ make run_failsafe_web_server
-
diff --git a/docs/en/dev_log/logging.md b/docs/en/dev_log/logging.md
index 425d539911..5a2f858569 100644
--- a/docs/en/dev_log/logging.md
+++ b/docs/en/dev_log/logging.md
@@ -188,4 +188,4 @@ There are different clients that support ulog streaming:
## See Also
-- [Encrypted logging](../dev_log/log_encryption.md)
\ No newline at end of file
+- [Encrypted logging](../dev_log/log_encryption.md)
diff --git a/docs/en/dev_setup/qgc_daily_build.md b/docs/en/dev_setup/qgc_daily_build.md
index 13c62613b4..8c13587dff 100644
--- a/docs/en/dev_setup/qgc_daily_build.md
+++ b/docs/en/dev_setup/qgc_daily_build.md
@@ -6,4 +6,4 @@ The QGroundControl _Daily Build_ includes development tools that are hidden in r
It should be used instead of the stable release when working with new code forked from the PX4 `main` branch.
-- [Download daily builds](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/releases/daily_builds.html)
\ No newline at end of file
+- [Download daily builds](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/releases/daily_builds.html)
diff --git a/docs/en/flight_controller/ark_fpv.md b/docs/en/flight_controller/ark_fpv.md
index c4521d0124..40578112c2 100644
--- a/docs/en/flight_controller/ark_fpv.md
+++ b/docs/en/flight_controller/ark_fpv.md
@@ -86,5 +86,3 @@ See the documentation [Ark Electronics GitBook](https://arkelectron.gitbook.io/a
## Pinout
See the [DS-10 Pixhawk Autopilot Bus Standard](https://arkelectron.gitbook.io/ark-documentation/flight-controllers/ark-fpv/pinout)
-
-
diff --git a/docs/en/flight_modes/index.md b/docs/en/flight_modes/index.md
index 32bc18bce6..4949d99e40 100644
--- a/docs/en/flight_modes/index.md
+++ b/docs/en/flight_modes/index.md
@@ -12,4 +12,4 @@ For information about flight modes available to specific frames see the followin
::: info
The mode sub-topics in this section contain information that is common to all vehicles, but may not be relevant to the normal/default setup.
Generally you should see the vehicle-specific topics first, and navigate to these generalized topics when it becomes relevant.
-:::
\ No newline at end of file
+:::
diff --git a/docs/en/flight_modes_fw/index.md b/docs/en/flight_modes_fw/index.md
index 6e47688841..8bd9e4b062 100644
--- a/docs/en/flight_modes_fw/index.md
+++ b/docs/en/flight_modes_fw/index.md
@@ -55,4 +55,4 @@ Select the mode-specific sidebar topics for detailed technical information.
- [Basic Configuration > Flight Modes](../config/flight_mode.md) - How to map RC control switches to specific flight modes
- [Flight Modes (Multicopter)](../flight_modes_mc/index.md)
- [Flight Modes (VTOL)](../flight_modes_vtol/index.md)
-- [Drive Modes (Rover)](../flight_modes_rover/index.md)
\ No newline at end of file
+- [Drive Modes (Rover)](../flight_modes_rover/index.md)
diff --git a/docs/en/flight_modes_mc/index.md b/docs/en/flight_modes_mc/index.md
index 031c8b85ad..c0fe5405f2 100644
--- a/docs/en/flight_modes_mc/index.md
+++ b/docs/en/flight_modes_mc/index.md
@@ -54,4 +54,3 @@ Select the mode-specific sidebar topics for more detailed technical information.
- [Flight Modes (Fixed-Wing)](../flight_modes_fw/index.md)
- [Flight Modes (VTOL)](../flight_modes_vtol/index.md)
- [Drive Modes (Rover)](../flight_modes_rover/index.md)
-
diff --git a/docs/en/flight_modes_vtol/offboard.md b/docs/en/flight_modes_vtol/offboard.md
index d74b3fe2fc..465621b333 100644
--- a/docs/en/flight_modes_vtol/offboard.md
+++ b/docs/en/flight_modes_vtol/offboard.md
@@ -1,4 +1,3 @@
# Offboard Mode (VTOL)
-
diff --git a/docs/en/flying/basic_flying.md b/docs/en/flying/basic_flying.md
index 7ee719f1be..0fd3954d3e 100644
--- a/docs/en/flying/basic_flying.md
+++ b/docs/en/flying/basic_flying.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/frames_multicopter/holybro_x500v2_pixhawk6c.md b/docs/en/frames_multicopter/holybro_x500v2_pixhawk6c.md
index f3fadb240f..0cf2b8584a 100644
--- a/docs/en/frames_multicopter/holybro_x500v2_pixhawk6c.md
+++ b/docs/en/frames_multicopter/holybro_x500v2_pixhawk6c.md
@@ -57,7 +57,7 @@ This topic provides full instructions for building the [Holybro X500 V2 ARF Kit]
1. To assemble the landing gear, loosen the pre-assembled screws of the Landing Gear-Cross Bar and insert the Landing Gear-Vertical Pole and fasten the same.
[](https://youtu.be/mU4vm4zyjcY)
-
+
[](https://youtu.be/7REaF3YAqLg)
1. Use the Socket Cap Screw M3*8 to screw the landing gears to the bottom plate
@@ -105,7 +105,7 @@ Note that the ESC connectors are color-coded and must be inserted in the PWM out
[](https://youtu.be/GOTqmjq9_3s)
-1. While inserting the top plate on top of this the 3 piece assembly (bottom plate, top plate & arms) have to screwed using Socket Cap Screw M3*38 and Flange Locknut M3.
+1. While inserting the top plate on top of this the 3 piece assembly (bottom plate, top plate & arms) have to screwed using Socket Cap Screw M3*38 and Flange Locknut M3.
1. Hold one side using the mini cross wrench provided in the developer kit.
[](https://youtu.be/2rcNVekJQd0)
@@ -133,7 +133,7 @@ The following parts can be placed as per usual.
1. Assemble the GPS by following the video.
[](https://youtu.be/aiFxVJFjlos)
-
+
This guide uses the GPS mount location suggested in Holybro’s guide.
1. Screw the GPS mount’s bottom end on the payload holder side using Locknut M3 & Screw M3*10
@@ -213,4 +213,4 @@ For instructions on how, start from [Auto-tune](../config/autotune_mc.md).
## Acknowledgements
-This build log was contributed by Akshata and Hamish Willee with many thanks to Holybro and Dronecode for Hardware and technical support.
\ No newline at end of file
+This build log was contributed by Akshata and Hamish Willee with many thanks to Holybro and Dronecode for Hardware and technical support.
diff --git a/docs/en/frames_vtol/vtol_quadplane_fun_cub_vtol_pixhawk.md b/docs/en/frames_vtol/vtol_quadplane_fun_cub_vtol_pixhawk.md
index f9b0835c44..0c9ef6feeb 100644
--- a/docs/en/frames_vtol/vtol_quadplane_fun_cub_vtol_pixhawk.md
+++ b/docs/en/frames_vtol/vtol_quadplane_fun_cub_vtol_pixhawk.md
@@ -49,7 +49,7 @@ For example, you might wire it up like this example (orientation as if "sitting
Port | Connection
---- | ---
+--- | ---
MAIN 1 | Front right motor (CCW)
MAIN 2 | Back left motor (CCW)
MAIN 3 | Front left motor (CW)
@@ -60,7 +60,7 @@ AUX 3 | Elevator
AUX 4 | Rudder
AUX 5 | Throttle
-For further instructions on wiring and configurations please see:
+For further instructions on wiring and configurations please see:
[Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md).
## Airframe Configuration
@@ -72,7 +72,7 @@ For further instructions on wiring and configurations please see:
1. Configure the outputs and geometry following the instructions in [Actuators Configuration](../config/actuators.md)
1. The default parameters are often sufficient for stable flight. For more detailed tuning information see [Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md).
-After you finish calibration the VTOL is ready to fly.
+After you finish calibration the VTOL is ready to fly.
## Video
@@ -82,4 +82,3 @@ After you finish calibration the VTOL is ready to fly.
## Support
If you have any questions regarding your VTOL conversion or configuration please visit .
-
diff --git a/docs/en/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md b/docs/en/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md
index 4473b154f3..45f5ad7d43 100644
--- a/docs/en/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md
+++ b/docs/en/frames_vtol/vtol_quadplane_volantex_ranger_ex_pixhawk.md
@@ -43,7 +43,7 @@ The image below depicts the parts required for one wing.

-
+
The tools required for the conversion are;
- A Dremel or similar rotary tool
@@ -58,7 +58,7 @@ The tools required for the conversion are;
## Wing conversion
::: info
-Please note that the conversion in this build log is performed on a wing that shows damage from a previous conversion.
+Please note that the conversion in this build log is performed on a wing that shows damage from a previous conversion.
:::
Cut both 800mm square carbon tubes to a length of 570mm and 230mm.
@@ -87,7 +87,7 @@ When using the Afro ESC be sure to connect at least signal and ground wire.

-## Wiring
+## Wiring
The outputs of Pixhawk should be wired like this (orientation as seen
like "sitting in the plane").
@@ -99,7 +99,7 @@ MAIN 2 | Back left motor, CCW
MAIN 3 | Front left motor, CW
MAIN 4 | Back right motor, CW
AUX 1 | Left aileron
-AUX 2 | Right aileron
+AUX 2 | Right aileron
AUX 3 | Elevator
AUX 4 | Rudder
AUX 5 | Throttle
@@ -108,7 +108,7 @@ AUX 5 | Throttle
::: info
The servo direction can be reversed using the PWM\_REV parameters in the PWM\_OUTPUT group of QGroundControl (cogwheel tab, last item in the left menu)
:::
-
+
For further instructions on wiring and configurations please see: [Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md)
@@ -122,4 +122,3 @@ Configure the frame as shown in QGroundControl below (do not forget to click **A
## Support
If you have any questions regarding your VTOL conversion or configuration please visit .
-
diff --git a/docs/en/getting_started/flight_controller_selection.md b/docs/en/getting_started/flight_controller_selection.md
index afb1617b1c..92c300957d 100644
--- a/docs/en/getting_started/flight_controller_selection.md
+++ b/docs/en/getting_started/flight_controller_selection.md
@@ -39,4 +39,3 @@ Similarly, PX4 can also run natively Raspberry Pi (this approach is not generall
PX4 is available on many popular commercial drone products, including some that ship with PX4 and others that can be updated with PX4 (allowing you to add mission planning and other PX4 Flight modes to your vehicle).
For more information see [Complete Vehicles](../complete_vehicles/index.md).
-
diff --git a/docs/en/getting_started/flight_modes.md b/docs/en/getting_started/flight_modes.md
index 450a62520c..8fc88a6a08 100644
--- a/docs/en/getting_started/flight_modes.md
+++ b/docs/en/getting_started/flight_modes.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/getting_started/vehicle_status.md b/docs/en/getting_started/vehicle_status.md
index 976a0e93b7..9fed271f74 100644
--- a/docs/en/getting_started/vehicle_status.md
+++ b/docs/en/getting_started/vehicle_status.md
@@ -9,4 +9,4 @@ The LED, tune, and GCS notifications are linked below:
* [LED Meanings](../getting_started/led_meanings.md)
* [Tune/Sound Meanings](../getting_started/tunes.md)
-* [QGroundControl Flight-Readiness Status](../flying/pre_flight_checks.md)
\ No newline at end of file
+* [QGroundControl Flight-Readiness Status](../flying/pre_flight_checks.md)
diff --git a/docs/en/mavlink/streaming_messages.md b/docs/en/mavlink/streaming_messages.md
index 45df134cac..da6716910f 100644
--- a/docs/en/mavlink/streaming_messages.md
+++ b/docs/en/mavlink/streaming_messages.md
@@ -254,4 +254,3 @@ In order to avoid clogging communications links with messages that aren't needed
If you needed, a GCS or other MAVLink API can request that particular messages are streamed at a particular rate using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL).
A particular message can be requested just once using [MAV_CMD_REQUEST_MESSAGE](https://mavlink.io/en/messages/common.html#MAV_CMD_REQUEST_MESSAGE).
-
diff --git a/docs/en/middleware/uorb_graph.md b/docs/en/middleware/uorb_graph.md
index 4b7164e537..7376e951b6 100644
--- a/docs/en/middleware/uorb_graph.md
+++ b/docs/en/middleware/uorb_graph.md
@@ -29,4 +29,3 @@ The graph has the following properties:
You can also zoom the image.
- The *Preset* selection list allows you to refine the list of modules that are shown.
- The *Search* box can be used to find particular modules/topics (topics that are not selected by the search are greyed-out).
-
diff --git a/docs/en/modules/module_template.md b/docs/en/modules/module_template.md
index 27e8926250..5d9fa26c6a 100644
--- a/docs/en/modules/module_template.md
+++ b/docs/en/modules/module_template.md
@@ -13,7 +13,7 @@ All the things learned in the [First Application Tutorial](../modules/hello_sky.
## Work Queue Task
-PX4-Autopilot contains a template for writing a new application (module) that runs as a *work queue task*:
+PX4-Autopilot contains a template for writing a new application (module) that runs as a *work queue task*:
[src/examples/work_item](https://github.com/PX4/PX4-Autopilot/tree/main/src/examples/work_item).
A work queue task application is just the same as an ordinary (task) application, except that it needs to specify that it is a work queue task, and schedule itself to run during initialisation.
@@ -36,7 +36,7 @@ In summary:
{
}
```
-
+
::: info
The available work queues (`wq_configurations`) are listed in [WorkQueueManager.hpp](https://github.com/PX4/PX4-Autopilot/blob/main/platforms/common/include/px4_platform_common/px4_work_queue/WorkQueueManager.hpp#L49).
:::
@@ -64,4 +64,3 @@ The template demonstrates the following additional features/aspects that are req
documented [in the source code](https://github.com/PX4/PX4-Autopilot/blob/v1.8.0/src/platforms/px4_module.h#L381)):
- They are used to print the command-line usage when entering `module help` on the console.
- They are automatically extracted via script to generate the [Modules & Commands Reference](../modules/modules_main.md) page.
-
diff --git a/docs/en/msg_docs/index.md b/docs/en/msg_docs/index.md
index 0904013766..9c852ad85d 100644
--- a/docs/en/msg_docs/index.md
+++ b/docs/en/msg_docs/index.md
@@ -300,5 +300,3 @@ NaN means the state was not controlled
- [AirspeedValidatedV0](AirspeedValidatedV0.md)
- [VehicleAttitudeSetpointV0](VehicleAttitudeSetpointV0.md)
- [VehicleStatusV0](VehicleStatusV0.md) — Encodes the system state of the vehicle published by commander
-
-
\ No newline at end of file
diff --git a/docs/en/payloads/generic_actuator_control.md b/docs/en/payloads/generic_actuator_control.md
index 1d2be9b4b6..46b0248bf1 100644
--- a/docs/en/payloads/generic_actuator_control.md
+++ b/docs/en/payloads/generic_actuator_control.md
@@ -163,4 +163,4 @@ Payloads that are triggered by servos and other actuators, such as grippers, can
This is safer than testing when the vehicle is armed.
-Camera payloads can be triggered and tested at any time.
\ No newline at end of file
+Camera payloads can be triggered and tested at any time.
diff --git a/docs/en/peripherals/camera.md b/docs/en/peripherals/camera.md
index 3b7facf363..e1884e0b98 100644
--- a/docs/en/peripherals/camera.md
+++ b/docs/en/peripherals/camera.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/peripherals/camera_t265_vio.md b/docs/en/peripherals/camera_t265_vio.md
index f8540edc0a..150407601e 100644
--- a/docs/en/peripherals/camera_t265_vio.md
+++ b/docs/en/peripherals/camera_t265_vio.md
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/en/peripherals/mavlink_peripherals.md b/docs/en/peripherals/mavlink_peripherals.md
index 68fc792400..111d723ffd 100644
--- a/docs/en/peripherals/mavlink_peripherals.md
+++ b/docs/en/peripherals/mavlink_peripherals.md
@@ -120,4 +120,3 @@ Links to setup instructions for specific MAVLink components:
- [Serial Port Configuration](../peripherals/serial_configuration.md)
- [PX4 Ethernet Setup > PX4 MAVLink Serial Port Configuration](../advanced_config/ethernet_setup.md#px4-mavlink-serial-port-configuration)
- [Serial Port Mapping](../hardware/serial_port_mapping.md)
-
diff --git a/docs/en/ros2/px4_ros2_interface_lib.md b/docs/en/ros2/px4_ros2_interface_lib.md
index 01355c009e..42ea30d08c 100644
--- a/docs/en/ros2/px4_ros2_interface_lib.md
+++ b/docs/en/ros2/px4_ros2_interface_lib.md
@@ -52,4 +52,4 @@ To get started using the library within an existing ROS 2 workspace:
When opening a pull request to PX4, CI runs the library integration tests.
These test that mode registration, failsafes, and mode replacement, work as expected.
-For more information see [PX4 ROS2 Interface Library Integration Testing](../test_and_ci/integration_testing_px4_ros2_interface.md).
\ No newline at end of file
+For more information see [PX4 ROS2 Interface Library Integration Testing](../test_and_ci/integration_testing_px4_ros2_interface.md).
diff --git a/docs/en/test_and_ci/integration_testing_px4_ros2_interface.md b/docs/en/test_and_ci/integration_testing_px4_ros2_interface.md
index 1656ce84df..1c967e89f6 100644
--- a/docs/en/test_and_ci/integration_testing_px4_ros2_interface.md
+++ b/docs/en/test_and_ci/integration_testing_px4_ros2_interface.md
@@ -26,4 +26,4 @@ You can list the available test cases with:
```sh
./test/ros_test_runner.py --list-cases
-```
\ No newline at end of file
+```
diff --git a/docs/en/test_and_ci/integration_testing_ros1_mavros.md b/docs/en/test_and_ci/integration_testing_ros1_mavros.md
index 9f620ee91d..d2b8dfa92b 100644
--- a/docs/en/test_and_ci/integration_testing_ros1_mavros.md
+++ b/docs/en/test_and_ci/integration_testing_ros1_mavros.md
@@ -151,4 +151,4 @@ To write a new test:
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_.test
```
-Run the tests as described above.
\ No newline at end of file
+Run the tests as described above.
diff --git a/docs/public/config/failsafe/index.html b/docs/public/config/failsafe/index.html
index 3958382c01..e46d549ea5 100644
--- a/docs/public/config/failsafe/index.html
+++ b/docs/public/config/failsafe/index.html
@@ -1 +1 @@
-Failsafe State Machine
emscripten
Downloading...
Failsafe State Machine Simulation
State
?For VTOLs the type switches between Multirotor and Fixed Wing
Parameters
Conditions
Mode requirements
Control links
Battery
Other
Failure detector
Output
Failsafe action:
User takeover active:
Console output (debug):
\ No newline at end of file
+Failsafe State Machine
emscripten
Downloading...
Failsafe State Machine Simulation
State
?For VTOLs the type switches between Multirotor and Fixed Wing
Parameters
Conditions
Mode requirements
Control links
Battery
Other
Failure detector
Output
Failsafe action:
User takeover active:
Console output (debug):
diff --git a/docs/scripts/gen_sitemap.py b/docs/scripts/gen_sitemap.py
index 02cc107b55..ecf9293475 100644
--- a/docs/scripts/gen_sitemap.py
+++ b/docs/scripts/gen_sitemap.py
@@ -19,7 +19,7 @@ include_dirs = set(['en','zh','ko','uk']) #update for new language builds.
exclude_dirs = set(['.vitepress','node_modules']) #update for new language builds.
my_parser = argparse.ArgumentParser(description='Generate sitemap for all markdown files in directory (default to main for output)')
-# Add the arguments
+# Add the arguments
my_parser.add_argument('-v',
'--version',
action='store',
@@ -45,18 +45,18 @@ build_version = args.version
BRANCH_NAME = os.getenv('BRANCH_NAME')
if BRANCH_NAME:
build_version=BRANCH_NAME
-
+
url_prefix = 'https://docs.px4.io/%s' % build_version
sitemapitems=[]
for subdir, dirs, files in os.walk(dir_name, topdown=True):
-
+
if subdir == '.':
#print("RootFile: %s" % originalfile)
#Handle a root file.
continue
-
+
# Check if any of the include directories is in the subdir path
if any(f"/{inc_dir}/" in subdir or f"\\{inc_dir}\\" in subdir for inc_dir in include_dirs):
pass
@@ -67,7 +67,7 @@ for subdir, dirs, files in os.walk(dir_name, topdown=True):
if any(f"/{ex_dir}/" in subdir or f"\\{ex_dir}\\" in subdir for ex_dir in exclude_dirs):
continue
#print(f"SUBDIR Ex: {subdir}")
-
+
for file in files:
#print(f"xxDebug: {file}")
@@ -76,7 +76,7 @@ for subdir, dirs, files in os.walk(dir_name, topdown=True):
if not file.endswith('.md'): #only process md files.
#print(f"Skip: {file} (not md)")
continue
-
+
originalfile=subdir+'\\'+file
dir_name=subdir[2:].replace('\\','/')
orig_file_forwardslash=originalfile.replace('\\','/')
@@ -98,10 +98,10 @@ for subdir, dirs, files in os.walk(dir_name, topdown=True):
#print("Subdir: %s" % subdir )
#print("file_name: %s" % file_name)
#print(sitemapitem['url'])
-
+
sitemapitems.append(sitemapitem)
-
-
+
+
# Generate the sitemap from the sitemapitems
all_sitemap_item_text = ""
for item in sitemapitems:
@@ -112,7 +112,7 @@ for item in sitemapitems:
if args.date:
sitemap_item_text+=f" {item['modified']}\n"
sitemap_item_text+=' \n'
-
+
all_sitemap_item_text+=sitemap_item_text
sitemaptext = '''
@@ -122,11 +122,10 @@ sitemaptext = '''
# Write the sitemap to file
outputfile=args.output+'sitemap.xml'
-with open(outputfile,"w") as f:
+with open(outputfile,"w") as f:
f.write(sitemaptext)
print("Sitemap generated to: %s" % outputfile)
#print("BRANCH_NAME: %s" % BRANCH_NAME)
#print("Build version: %s" % build_version)
-