From 2bc04f91f8d9417528940aa8aa5dc117082c733f Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Tue, 18 Mar 2025 11:28:14 +0100 Subject: [PATCH] docs: fix all end of file newlines 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. --- Tools/astyle/check_newlines.sh | 4 +- docs/.gitignore | 2 +- docs/.vitepress/theme/components/Redirect.vue | 2 +- docs/.vitepress/theme/style.css | 2 +- docs/CNAME | 2 +- docs/_link_checker_sc/ignore_errors.json | 2 +- docs/_link_checker_sc/ignorefile.json | 2 +- docs/assets/airframes/types/Airship.svg | 2 +- docs/assets/airframes/types/Autogyro.svg | 2 +- docs/assets/airframes/types/Balloon.svg | 2 +- .../airframes/types/DodecaRotorXCoaxial.svg | 2 +- docs/assets/airframes/types/Helicopter.svg | 2 +- docs/assets/airframes/types/HexaRotorPlus.svg | 2 +- docs/assets/airframes/types/HexaRotorX.svg | 2 +- docs/assets/airframes/types/OctoRotorPlus.svg | 2 +- docs/assets/airframes/types/OctoRotorX.svg | 2 +- .../airframes/types/OctoRotorXCoaxial.svg | 2 +- docs/assets/airframes/types/QuadRotorH.svg | 2 +- docs/assets/airframes/types/QuadRotorPlus.svg | 2 +- docs/assets/airframes/types/VTOLTiltRotor.svg | 2 +- docs/assets/airframes/types/Y6B.svg | 2 +- docs/assets/airframes/types/YPlus.svg | 2 +- docs/assets/can/uavcan_wiring.svg | 2 +- docs/assets/diagrams/PX4_Architecture.svg | 2 +- .../diagrams/PX4_High-Level_Flight-Stack.svg | 2 +- .../diagrams/actuator_metadata_processing.svg | 2 +- docs/assets/diagrams/mc_control_arch_tikz.tex | 146 +++++++++--------- .../diagrams/pwm_limit_state_diagram.svg | 2 +- docs/assets/diagrams/px4_arch_fc.svg | 2 +- .../assets/diagrams/px4_arch_fc_companion.svg | 2 +- .../px4_companion_computer_simple.svg | 2 +- docs/assets/diagrams/tecs_in_context.svg | 2 +- .../plot_juggler/plotjuggler_sample_view.xml | 1 - .../sample_log_boat_testing_layout.xml | 1 - .../mc_pid_tuning/MC_PID_tuning-Airmode.svg | 2 +- .../relative_thrust_and_pwm_scatter.svg | 2 +- .../fw_lat_long_ros_interaction.svg | 2 +- .../ros2_modes_overview.svg | 2 +- .../translation_node.svg | 2 +- .../xrce_dds/architecture_xrce-dds_ros2.svg | 2 +- docs/assets/site/altitude_icon.svg | 2 +- docs/assets/site/automatic_mode.svg | 2 +- docs/assets/site/position_fixed.svg | 2 +- docs/assets/site/remote_control.svg | 2 +- docs/book.json | 9 +- docs/en/actuators/index.md | 2 +- .../en/advanced_config/parameter_reference.md | 1 - docs/en/airframes/airframe_reference.md | 1 - docs/en/assembly/assembly_vtol.md | 2 +- docs/en/assembly/index.md | 2 +- docs/en/camera/index.md | 2 +- docs/en/complete_vehicles/betafpv_beta75x.md | 2 +- docs/en/complete_vehicles/crazyflie2.md | 2 +- docs/en/complete_vehicles/crazyflie21.md | 2 +- docs/en/complete_vehicles/holybro_kopis2.md | 2 +- docs/en/complete_vehicles/intel_aero.md | 2 +- docs/en/complete_vehicles/mindracer210.md | 2 +- .../en/complete_vehicles/mindracer_BNF_RTF.md | 2 +- docs/en/complete_vehicles/modalai_starling.md | 2 +- docs/en/complete_vehicles/nanomind110.md | 2 +- docs/en/complete_vehicles/px4_vision_kit.md | 2 +- docs/en/complete_vehicles_vtol/index.md | 2 +- docs/en/config/safety_simulation.md | 1 - docs/en/dev_log/logging.md | 2 +- docs/en/dev_setup/qgc_daily_build.md | 2 +- docs/en/flight_controller/ark_fpv.md | 2 - docs/en/flight_modes/index.md | 2 +- docs/en/flight_modes_fw/index.md | 2 +- docs/en/flight_modes_mc/index.md | 1 - docs/en/flight_modes_vtol/offboard.md | 1 - docs/en/flying/basic_flying.md | 2 +- .../holybro_x500v2_pixhawk6c.md | 8 +- .../vtol_quadplane_fun_cub_vtol_pixhawk.md | 7 +- ...ol_quadplane_volantex_ranger_ex_pixhawk.md | 11 +- .../flight_controller_selection.md | 1 - docs/en/getting_started/flight_modes.md | 2 +- docs/en/getting_started/vehicle_status.md | 2 +- docs/en/mavlink/streaming_messages.md | 1 - docs/en/middleware/uorb_graph.md | 1 - docs/en/modules/module_template.md | 5 +- docs/en/msg_docs/index.md | 2 - docs/en/payloads/generic_actuator_control.md | 2 +- docs/en/peripherals/camera.md | 2 +- docs/en/peripherals/camera_t265_vio.md | 2 +- docs/en/peripherals/mavlink_peripherals.md | 1 - docs/en/ros2/px4_ros2_interface_lib.md | 2 +- .../integration_testing_px4_ros2_interface.md | 2 +- .../integration_testing_ros1_mavros.md | 2 +- docs/public/config/failsafe/index.html | 2 +- docs/scripts/gen_sitemap.py | 23 ++- 90 files changed, 173 insertions(+), 193 deletions(-) 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 @@ -PX4ESCESCMMESCESCMMCAN 1GNSSCAN 2CAN 1CAN 2 \ No newline at end of file +PX4ESCESCMMESCESCMMCAN 1GNSSCAN 2CAN 1CAN 2 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 @@ -
Storage
Storage
External
Connectivity
External...
Drivers
Drivers
Flight Control
Flight Control
Message Bus
Message Bus
MAVLink
MAVLink
mavlink
mavlink
via UART / UDP
via UART / UDP
Logging
Logging
logger
logg...
To SD Card or via MAVLink
To SD Card or via MAVLink
Parameters
Parameters
Autonomous Flight
Autonomous Flight
navigator
navigator
uXRCE-DDS
uXRCE-DDS
uxrce_dds_client
uxrce_dds_client
via UART / UDP
via UART / UDP
Mixing
Mixing
Camera Control
Camera Control
Gimbal / Mount
Gimbal / Mount
Raw IMU data,
Airspeed
Raw IMU data,...
Gyro data
Gyro data
Position
Setpoints
Position...
uORB
uORB
Missions / RTL / ...
Missions / RTL / ...
Position Controller
Position Controller
mc_pos_control /
fw_pos_control_l1
mc_pos_control /...
Control Allocation
Control Allocation
control_allocator
control_allocator
Sensors Hub
Sensors Hub
sensors
sensors
Handle failover and transform sensor data
Handle failover and tran...
Position & Attitude Estimator
Position & Attitude...
ekf2 / attitude_estimator_q
ekf2 / attitude_estimato...
IMU data,
Airspeed
IMU data,...
State Machine
State Machine
commander
commander
Mode Switching / Arming / ...
Mode Switching / Arming...
RC Input
RC Input
rc_input / px4io / ...
rc_input / px4io / ...
PPM / SBUS / DSM  / SUMD / ST24
PPM / SBUS / DSM  / SUMD...
camera_trigger
camera_trigger
gimbal
gimbal
IMU Drivers
IMU Drivers
via SPI, UAVCAN, I2C
via SPI, UAVCAN, I2C
GPS
GPS
gps
gps
Airspeed, Telemetry, Optical Flow, Distance Sensor, ...
Airspeed, Telemetry,...
GPS,
Optical
Flow,
Distance
GPS,...
 RC
 RC
Attitude
Setpoints
Attitude...
Thrust and Torque
Setpoints
Thrust and Torque...
param
param
EEPROM / SD Card /
FLASH

EEPROM / SD Card /...
Database
Database
dataman
dataman
Missions / Geofence
to SD Card / RAM
Missions / Geofence...
Attitude & Rate Controller
Attitude & Rate Cont...
mc_att_control & mc_rate_control /
fw_att_control /
vtol_att_control
mc_att_control & mc_rate...
RC Handling
RC Handling
rc_update -> manual_control
rc_update -> manual_contr...
ESC / Servo control
ESC / Servo control
PWM / UART / CAN / ...
PWM / UART / CAN / ...
Output Driver
Output Driver
pwm_out / px4io / ...
pwm_out / px4io / ...
Motor and Servo
Setpoints
Motor and Servo...
Text is not SVG - cannot display
\ No newline at end of file +
Storage
Storage
External
Connectivity
External...
Drivers
Drivers
Flight Control
Flight Control
Message Bus
Message Bus
MAVLink
MAVLink
mavlink
mavlink
via UART / UDP
via UART / UDP
Logging
Logging
logger
logg...
To SD Card or via MAVLink
To SD Card or via MAVLink
Parameters
Parameters
Autonomous Flight
Autonomous Flight
navigator
navigator
uXRCE-DDS
uXRCE-DDS
uxrce_dds_client
uxrce_dds_client
via UART / UDP
via UART / UDP
Mixing
Mixing
Camera Control
Camera Control
Gimbal / Mount
Gimbal / Mount
Raw IMU data,
Airspeed
Raw IMU data,...
Gyro data
Gyro data
Position
Setpoints
Position...
uORB
uORB
Missions / RTL / ...
Missions / RTL / ...
Position Controller
Position Controller
mc_pos_control /
fw_pos_control_l1
mc_pos_control /...
Control Allocation
Control Allocation
control_allocator
control_allocator
Sensors Hub
Sensors Hub
sensors
sensors
Handle failover and transform sensor data
Handle failover and tran...
Position & Attitude Estimator
Position & Attitude...
ekf2 / attitude_estimator_q
ekf2 / attitude_estimato...
IMU data,
Airspeed
IMU data,...
State Machine
State Machine
commander
commander
Mode Switching / Arming / ...
Mode Switching / Arming...
RC Input
RC Input
rc_input / px4io / ...
rc_input / px4io / ...
PPM / SBUS / DSM  / SUMD / ST24
PPM / SBUS / DSM  / SUMD...
camera_trigger
camera_trigger
gimbal
gimbal
IMU Drivers
IMU Drivers
via SPI, UAVCAN, I2C
via SPI, UAVCAN, I2C
GPS
GPS
gps
gps
Airspeed, Telemetry, Optical Flow, Distance Sensor, ...
Airspeed, Telemetry,...
GPS,
Optical
Flow,
Distance
GPS,...
 RC
 RC
Attitude
Setpoints
Attitude...
Thrust and Torque
Setpoints
Thrust and Torque...
param
param
EEPROM / SD Card /
FLASH

EEPROM / SD Card /...
Database
Database
dataman
dataman
Missions / Geofence
to SD Card / RAM
Missions / Geofence...
Attitude & Rate Controller
Attitude & Rate Cont...
mc_att_control & mc_rate_control /
fw_att_control /
vtol_att_control
mc_att_control & mc_rate...
RC Handling
RC Handling
rc_update -> manual_control
rc_update -> manual_contr...
ESC / Servo control
ESC / Servo control
PWM / UART / CAN / ...
PWM / UART / CAN / ...
Output Driver
Output Driver
pwm_out / px4io / ...
pwm_out / px4io / ...
Motor and Servo
Setpoints
Motor and Servo...
Text is not SVG - cannot display
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 @@ -
Navigator
Navigator
Attitude & Rate Controller
Attitude & Rate Controller
Position Controller
Position Controller
Mixer
Mixer
Actuator
Actuator
RC
RC
Position & Attitude
Estimator
Position &amp; Attitude<br>Estimator
Sensors
Sensors
\ No newline at end of file +
Navigator
Navigator
Attitude & Rate Controller
Attitude &amp; Rate Controller
Position Controller
Position Controller
Mixer
Mixer
Actuator
Actuator
RC
RC
Position & Attitude
Estimator
Position &amp; Attitude<br>Estimator
Sensors
Sensors
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 @@ -PWM_LIMIT_STATE_INITRAMPOFFON!armed!armedarmed && INIT_TIME_US elapsedarmedarmed && RAMP_TIME_US elapsedeffective_pwm[i] = disarmed_pwm[i]Update progresseffective_pwm[i] = f(progress)effective_pwm[i] = f(control)PREARMpre_armedeffective_pwm[i] = f(control)Note: input pre_armed overrides the current statewhile asserted. When deasserted the state machinefunctions normally. Throttle controls must be set toNaN while pre_armed is asserted. \ No newline at end of file +PWM_LIMIT_STATE_INITRAMPOFFON!armed!armedarmed && INIT_TIME_US elapsedarmedarmed && RAMP_TIME_US elapsedeffective_pwm[i] = disarmed_pwm[i]Update progresseffective_pwm[i] = f(progress)effective_pwm[i] = f(control)PREARMpre_armedeffective_pwm[i] = f(control)Note: input pre_armed overrides the current statewhile asserted. When deasserted the state machinefunctions normally. Throttle controls must be set toNaN while pre_armed is asserted. 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 @@ -
TECS
TECS
L1 controller
L1 controller
Fixed Wing Position Controller
<font style="font-size: 19px">Fixed Wing Position Controller</font>
Throttle setpoint
Throttle setpoint
Pitch setpoint
Pitch setpoint
Roll setpoint
Roll setpoint
Attitude & thrust stepoint to attitude controller
[Not supported by viewer]
Airspeed setpoint
Airspeed setpoint
Altitude setpoint
Altitude setpoint
\ No newline at end of file +
TECS
TECS
L1 controller
L1 controller
Fixed Wing Position Controller
<font style="font-size: 19px">Fixed Wing Position Controller</font>
Throttle setpoint
Throttle setpoint
Pitch setpoint
Pitch setpoint
Roll setpoint
Roll setpoint
Attitude & thrust stepoint to attitude controller
[Not supported by viewer]
Airspeed setpoint
Airspeed setpoint
Altitude setpoint
Altitude setpoint
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 @@ -
Thrust
Thrust
100%
100%
0%
0%
Left
Motor
[Not supported by viewer]
Right
Motor
[Not supported by viewer]
Commanded
Thrust
[Not supported by viewer]
-r
-r
+r
+r
Thrust
Thrust
100%
100%
0%
0%
Left
Motor
[Not supported by viewer]
Right
Motor
[Not supported by viewer]
Commanded
Thrust
[Not supported by viewer]
-r
-r
+r
+r
Thrust
Thrust
100%
100%
0%
0%
Left
Motor
[Not supported by viewer]
Right
Motor
[Not supported by viewer]
Commanded
Thrust
[Not supported by viewer]
-r'
-r'
+r'
+r'

Airmode Enabled

[Not supported by viewer]

Airmode Disabled

[Not supported by viewer]

Saturated Mixing

[Not supported by viewer]
b
b
\ No newline at end of file +
Thrust
Thrust
100%
100%
0%
0%
Left
Motor
[Not supported by viewer]
Right
Motor
[Not supported by viewer]
Commanded
Thrust
[Not supported by viewer]
-r
-r
+r
+r
Thrust
Thrust
100%
100%
0%
0%
Left
Motor
[Not supported by viewer]
Right
Motor
[Not supported by viewer]
Commanded
Thrust
[Not supported by viewer]
-r
-r
+r
+r
Thrust
Thrust
100%
100%
0%
0%
Left
Motor
[Not supported by viewer]
Right
Motor
[Not supported by viewer]
Commanded
Thrust
[Not supported by viewer]
-r'
-r'
+r'
+r'

Airmode Enabled

[Not supported by viewer]

Airmode Disabled

[Not supported by viewer]

Saturated Mixing

[Not supported by viewer]
b
b
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 @@ -00.10.20.30.40.50.60.70.80.91Relative Pulse Width00.10.20.30.40.50.60.70.80.91Relative ThrustRelative Scale Raw Data PointsCollected DataTHR-MDL-FAC 0.7 Fit \ No newline at end of file +00.10.20.30.40.50.60.70.80.91Relative Pulse Width00.10.20.30.40.50.60.70.80.91Relative ThrustRelative Scale Raw Data PointsCollected DataTHR-MDL-FAC 0.7 Fit 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 @@ -
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
\ 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. [![Assembly8](../../assets/airframes/multicopter/x500_v2_holybro_pixhawk6c/assembly8.png)](https://youtu.be/mU4vm4zyjcY) - + [![Assembly9](../../assets/airframes/multicopter/x500_v2_holybro_pixhawk6c/assembly9.png)](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 [![Assembly16](../../assets/airframes/multicopter/x500_v2_holybro_pixhawk6c/assembly16.png)](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. [![Assembly17](../../assets/airframes/multicopter/x500_v2_holybro_pixhawk6c/assembly17.png)](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. [![Assembly20](../../assets/airframes/multicopter/x500_v2_holybro_pixhawk6c/assembly20.png)](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. ![QuadRanger Parts](../../assets/airframes/vtol/quadranger_rangerex_pixhawk/quadranger_vtol_parts_for_one_wing.jpg) - + 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. ![QuadRanger motor and esc](../../assets/airframes/vtol/quadranger_rangerex_pixhawk/quadranger_vtol_motor_and_esc.jpg) -## 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) -