Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
|
After Width: | Height: | Size: 4.0 MiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 6.7 MiB |
|
After Width: | Height: | Size: 5.2 MiB |
|
After Width: | Height: | Size: 4.8 MiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 46 KiB |
@@ -0,0 +1,91 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<root>
|
||||
<tabbed_widget parent="main_window" name="Main Window">
|
||||
<Tab containers="1" tab_name="tab1">
|
||||
<Container>
|
||||
<DockSplitter count="1" orientation="-" sizes="1">
|
||||
<DockSplitter count="2" orientation="|" sizes="0.500244;0.499756">
|
||||
<DockSplitter count="2" orientation="-" sizes="0.500392;0.499608">
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" mode="TimeSeries" flip_y="false" flip_x="false">
|
||||
<range bottom="-1.050000" left="0.758590" right="494.757823" top="1.050000"/>
|
||||
<limitY/>
|
||||
<curve color="#1f77b4" name="actuator_controls_0/control.00"/>
|
||||
<curve color="#d62728" name="actuator_controls_0/control.01"/>
|
||||
<curve color="#1ac938" name="actuator_controls_0/control.03"/>
|
||||
<curve color="#ff7f0e" name="actuator_controls_0/control.04"/>
|
||||
<curve color="#f14cc1" name="actuator_controls_0/control.05"/>
|
||||
<curve color="#9467bd" name="actuator_controls_0/control.06"/>
|
||||
<curve color="#17becf" name="actuator_controls_0/control.02"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" mode="TimeSeries" flip_y="false" flip_x="false">
|
||||
<range bottom="5.572706" left="0.758590" right="494.757823" top="24.017403"/>
|
||||
<limitY/>
|
||||
<curve color="#1f77b4" name="battery_status/average_power"/>
|
||||
<curve color="#d62728" name="battery_status/current_a"/>
|
||||
<curve color="#1ac938" name="battery_status/voltage_v"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
<DockSplitter count="2" orientation="-" sizes="0.500392;0.499608">
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" mode="XYPlot" flip_y="false" flip_x="false">
|
||||
<range bottom="-7.444404" left="-39.694462" right="56.224607" top="45.888190"/>
|
||||
<limitY/>
|
||||
<curve color="#bcbd22" curve_x="vehicle_local_position/x" name="vehicle_local_position/[x;y]" curve_y="vehicle_local_position/y"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" mode="TimeSeries" flip_y="false" flip_x="false">
|
||||
<range bottom="-2.590211" left="0.758590" right="494.757823" top="2.209112"/>
|
||||
<limitY/>
|
||||
<curve color="#ff7f0e" name="sensor_gyro.00/z"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
</DockSplitter>
|
||||
</DockSplitter>
|
||||
</Container>
|
||||
</Tab>
|
||||
<currentTabIndex index="0"/>
|
||||
</tabbed_widget>
|
||||
<use_relative_time_offset enabled="1"/>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<Plugins>
|
||||
<plugin ID="DataLoad CSV">
|
||||
<default delimiter="0" time_axis=""/>
|
||||
</plugin>
|
||||
<plugin ID="DataLoad Parquet">
|
||||
<default dateFromat="false" prevTimestamp="" radioIndexChecked="0" parseDateTime="0"/>
|
||||
</plugin>
|
||||
<plugin ID="DataLoad ULog"/>
|
||||
<plugin ID="MQTT Subscriber (Mosquitto)"/>
|
||||
<plugin ID="UDP Server"/>
|
||||
<plugin ID="WebSocket Server"/>
|
||||
<plugin ID="Fast Fourier Transform"/>
|
||||
<plugin ID="Quaternion to RPY"/>
|
||||
<plugin ID="Reactive Script Editor">
|
||||
<library code="--[[ Helper function to create a ScatterXY series from arrays.

 series_name: name of the created ScatterXY series
 prefix: prefix of the timeseries, before the index of the array
 suffix_X: suffix to complete the name of the series containing the X value.
 if [nil], the index of the array will be used.
 suffix_Y: suffix to complete the name of the series containing the Y value
 timestamp: usually the tracker_time variable
 
 Example:
 
 Assuming we have multiple series in the form:
 
 /trajectory/node.{N}/position/x
 /trajectory/node.{N}/position/y
 
 where {N} is the index of the array (integer). We can create a reactive series from the array with:
 
 CreateSeriesFromArray( "my_trajectory", "/trajectory/node", "position/x", "position/y", tracker_time );
]]--

function CreateSeriesFromArray( series_name, prefix, suffix_X, suffix_Y, timestamp )
 --- create a new series or overwite the previous one
 new_series = MutableScatterXY.new(series_name)
 
 --- Append points to new_series
 index = 0
 while(true) do

 x = index;
 -- if not nil, get the X coordinate from a series
 if suffix_X ~= nil then 
 series_x = TimeseriesView.find( string.format( "%s.%d/%s", prefix, index, suffix_X) )
 if series_x == nil then break end
 x = series_x:atTime(timestamp)	 
 end
 
 series_y = TimeseriesView.find( string.format( "%s.%d/%s", prefix, index, suffix_Y) )
 if series_x == nil then break end 
 y = series_y:atTime(timestamp)
 
 new_series:push_back(x,y)
 index = index+1
 end
end
"/>
|
||||
<scripts/>
|
||||
</plugin>
|
||||
<plugin ID="CSV Exporter"/>
|
||||
<plugin ID="Video Viewer">
|
||||
<config use_frame="true" video_file="" curve_name=""/>
|
||||
</plugin>
|
||||
</Plugins>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<previouslyLoaded_Datafiles>
|
||||
<fileInfo prefix="" filename="Boat Support/220728_ZurchLake_RateControl_Test/log_6_SecondRateCtrlTest_PGain_AddedToo_MaxRateLowered_2022-7-28-13-31-16.ulg">
|
||||
<selected_datasources value=""/>
|
||||
<plugin ID="DataLoad ULog"/>
|
||||
</fileInfo>
|
||||
</previouslyLoaded_Datafiles>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<customMathEquations/>
|
||||
<snippets/>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
</root>
|
||||
|
||||
|
After Width: | Height: | Size: 190 KiB |
@@ -0,0 +1,135 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<root>
|
||||
<tabbed_widget parent="main_window" name="Main Window">
|
||||
<Tab containers="1" tab_name="tab17">
|
||||
<Container>
|
||||
<DockSplitter sizes="1" count="1" orientation="-">
|
||||
<DockSplitter sizes="0.5;0.5" count="2" orientation="|">
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" flip_x="false" mode="XYPlot" flip_y="false">
|
||||
<range right="33.005088" bottom="-7.444404" left="-16.563412" top="45.853549"/>
|
||||
<limitY/>
|
||||
<curve color="#1ac938" curve_y="vehicle_local_position/y" name="vehicle_local_position/[x;y]" curve_x="vehicle_local_position/x"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockSplitter sizes="0.500597;0.499403" count="2" orientation="-">
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
|
||||
<range right="495.096543" bottom="-3.086561" left="0.000000" top="5.092128"/>
|
||||
<limitY/>
|
||||
<curve color="#ff7f0e" name="vehicle_local_position/vx"/>
|
||||
<curve color="#f14cc1" name="vehicle_local_position/vy"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="...">
|
||||
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
|
||||
<range right="495.096543" bottom="-1.145333" left="0.000000" top="1.339007"/>
|
||||
<limitY/>
|
||||
<curve color="#9467bd" name="vehicle_local_position/vz"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
</DockSplitter>
|
||||
</DockSplitter>
|
||||
</Container>
|
||||
</Tab>
|
||||
<currentTabIndex index="0"/>
|
||||
</tabbed_widget>
|
||||
<use_relative_time_offset enabled="1"/>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<Plugins>
|
||||
<plugin ID="DataLoad CSV">
|
||||
<default time_axis="" delimiter="0"/>
|
||||
</plugin>
|
||||
<plugin ID="DataLoad Parquet">
|
||||
<default dateFromat="false" radioIndexChecked="0" prevTimestamp="" parseDateTime="0"/>
|
||||
</plugin>
|
||||
<plugin ID="DataLoad ULog"/>
|
||||
<plugin ID="MQTT Subscriber (Mosquitto)"/>
|
||||
<plugin ID="UDP Server"/>
|
||||
<plugin ID="WebSocket Server"/>
|
||||
<plugin ID="Fast Fourier Transform"/>
|
||||
<plugin ID="Quaternion to RPY"/>
|
||||
<plugin ID="Reactive Script Editor">
|
||||
<library code="--[[ Helper function to create a ScatterXY series from arrays.

 series_name: name of the created ScatterXY series
 prefix: prefix of the timeseries, before the index of the array
 suffix_X: suffix to complete the name of the series containing the X value.
 if [nil], the index of the array will be used.
 suffix_Y: suffix to complete the name of the series containing the Y value
 timestamp: usually the tracker_time variable
 
 Example:
 
 Assuming we have multiple series in the form:
 
 /trajectory/node.{N}/position/x
 /trajectory/node.{N}/position/y
 
 where {N} is the index of the array (integer). We can create a reactive series from the array with:
 
 CreateSeriesFromArray( "my_trajectory", "/trajectory/node", "position/x", "position/y", tracker_time );
]]--

function CreateSeriesFromArray( series_name, prefix, suffix_X, suffix_Y, timestamp )
 --- create a new series or overwite the previous one
 new_series = MutableScatterXY.new(series_name)
 
 --- Append points to new_series
 index = 0
 while(true) do

 x = index;
 -- if not nil, get the X coordinate from a series
 if suffix_X ~= nil then 
 series_x = TimeseriesView.find( string.format( "%s.%d/%s", prefix, index, suffix_X) )
 if series_x == nil then break end
 x = series_x:atTime(timestamp)	 
 end
 
 series_y = TimeseriesView.find( string.format( "%s.%d/%s", prefix, index, suffix_Y) )
 if series_x == nil then break end 
 y = series_y:atTime(timestamp)
 
 new_series:push_back(x,y)
 index = index+1
 end
end
"/>
|
||||
<scripts/>
|
||||
</plugin>
|
||||
<plugin ID="CSV Exporter"/>
|
||||
<plugin ID="Video Viewer">
|
||||
<config curve_name="" use_frame="true" video_file=""/>
|
||||
</plugin>
|
||||
</Plugins>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<customMathEquations/>
|
||||
<snippets>
|
||||
<snippet name="1st_derivative">
|
||||
<global>var prevX = 0
|
||||
var prevY = 0</global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="1st_order_lowpass">
|
||||
<global>var prevY = 0
|
||||
var alpha = 0.1</global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="2D_velocity">
|
||||
<global>var prev_x = 0
|
||||
var prev_y = 0
|
||||
var prev_t = 0</global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="GPS lat">
|
||||
<global></global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="GPS lon">
|
||||
<global></global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="average_two_curves">
|
||||
<global></global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="integral">
|
||||
<global>var integral = 0</global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="rad_to_deg">
|
||||
<global></global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="remove_offset">
|
||||
<global>var is_first = true
|
||||
var first_value = 0</global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
<snippet name="yaw_from_quaternion">
|
||||
<global>// source: https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
|
||||
|
||||
function quaternionToYaw(x, y, z, w)
|
||||
{
|
||||
// yaw (z-axis rotation)
|
||||
t1 = 2.0 * (w * z + x * y);
|
||||
t2 = 1.0 - 2.0 * (y * y + z * z);
|
||||
yaw = Math.atan2(t1, t2);
|
||||
|
||||
return yaw
|
||||
}</global>
|
||||
<function></function>
|
||||
<linked_source></linked_source>
|
||||
</snippet>
|
||||
</snippets>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
</root>
|
||||
|
||||
|
After Width: | Height: | Size: 67 KiB |