mirror of
https://github.com/infiniteCable2/openpilot.git
synced 2026-09-30 19:43:41 +08:00
PlotJuggler: Tuning layout (#22902)
* PlotJuggler layout for lateral and longitudinal tuning * update README and tuning PR template old-commit-hash: 65d1b5147694934385ec2943c0b67cf0f971c597
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<root version="2.3.8">
|
||||
<tabbed_widget parent="main_window" name="Main Window">
|
||||
<Tab tab_name="tab1" containers="1">
|
||||
<Container>
|
||||
<DockSplitter orientation="-" sizes="1" count="1">
|
||||
<DockSplitter orientation="|" sizes="0.5;0.5" count="2">
|
||||
<DockSplitter orientation="-" sizes="0.500497;0.499503" count="2">
|
||||
<DockArea name="...">
|
||||
<plot mode="TimeSeries" style="Lines">
|
||||
<range top="2.762667" bottom="-3.239397" right="56.512723" left="0.000000"/>
|
||||
<limitY/>
|
||||
<curve color="#1f77b4" name="/carState/aEgo"/>
|
||||
<curve color="#17becf" name="/carState/brake"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="...">
|
||||
<plot mode="TimeSeries" style="Lines">
|
||||
<range top="5.191867" bottom="-5.724069" right="56.512723" left="0.000000"/>
|
||||
<limitY/>
|
||||
<curve color="#1ac938" name="dv/dt"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
<DockSplitter orientation="-" sizes="0.500497;0.499503" count="2">
|
||||
<DockArea name="...">
|
||||
<plot mode="TimeSeries" style="Lines">
|
||||
<range top="16.065524" bottom="-0.470076" right="56.512723" left="0.000000"/>
|
||||
<limitY/>
|
||||
<curve color="#d62728" name="/carState/vEgo"/>
|
||||
<curve color="#bcbd22" name="/carState/gas"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="...">
|
||||
<plot mode="TimeSeries" style="Lines">
|
||||
<range top="1.014703" bottom="-0.012971" right="56.512723" left="0.000000"/>
|
||||
<limitY/>
|
||||
<curve color="#ff7f0e" name="/model/meta/brakeDisengageProb"/>
|
||||
<curve color="#f14cc1" name="/model/meta/engagedProb"/>
|
||||
<curve color="#9467bd" name="/model/meta/steerOverrideProb"/>
|
||||
</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=""/>
|
||||
</plugin>
|
||||
<plugin ID="DataLoad ROS bags">
|
||||
<use_header_stamp value="false"/>
|
||||
<use_renaming_rules value="true"/>
|
||||
<discard_large_arrays value="true"/>
|
||||
<max_array_size value="100"/>
|
||||
</plugin>
|
||||
<plugin ID="DataLoad Rlog"/>
|
||||
<plugin ID="DataLoad ULog"/>
|
||||
<plugin ID="LSL Subscriber"/>
|
||||
<plugin ID="MQTT Subscriber"/>
|
||||
<plugin ID="ROS Topic Subscriber">
|
||||
<use_header_stamp value="false"/>
|
||||
<use_renaming_rules value="true"/>
|
||||
<discard_large_arrays value="true"/>
|
||||
<max_array_size value="100"/>
|
||||
</plugin>
|
||||
<plugin ID="UDP Server"/>
|
||||
<plugin ID="WebSocket Server"/>
|
||||
<plugin ID="ZMQ Subscriber"/>
|
||||
<plugin status="idle" ID="ROS /rosout Visualization"/>
|
||||
<plugin status="idle" ID="ROS Topic Re-Publisher"/>
|
||||
</Plugins>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<customMathEquations>
|
||||
<snippet name="dv/dt">
|
||||
<global>prevX = 0
|
||||
prevY = 0
|
||||
is_first = true</global>
|
||||
<function>if (is_first) then
|
||||
is_first = false
|
||||
prevX = time
|
||||
prevY = value
|
||||
end
|
||||
|
||||
dx = time - prevX
|
||||
dy = value - prevY
|
||||
prevX = time
|
||||
prevY = value
|
||||
|
||||
return dy/dx</function>
|
||||
<linkedSource>/carState/vEgo</linkedSource>
|
||||
</snippet>
|
||||
</customMathEquations>
|
||||
<snippets/>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
</root>
|
||||
|
||||
@@ -0,0 +1,289 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<root version="2.3.8">
|
||||
<tabbed_widget name="Main Window" parent="main_window">
|
||||
<Tab tab_name="Lateral" containers="1">
|
||||
<Container>
|
||||
<DockSplitter sizes="0.2;0.2;0.2;0.2;0.2" orientation="-" count="5">
|
||||
<DockArea name="Velocity [m/s]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="23.655731" right="299.969780" top="31.072848" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carState/vEgo" color="#0072b2"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Curvature [1/m] True [blue] Vehicle Model [purple] Plan [green]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.001618" right="299.969780" top="0.001706" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="engaged curvature plan" color="#009e73"/>
|
||||
<curve name="engaged curvature vehicle model" color="#785ef0"/>
|
||||
<curve name="engaged curvature yaw" color="#0072b2"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Roll [rad]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.086784" right="299.969780" top="0.007461" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/liveLocationKalman/calibratedOrientationNED/value/0" color="#ffb000"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Engaged [green] Steering Pressed [blue]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.025000" right="299.969780" top="1.025000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/controlsState/enabled" color="#009e73"/>
|
||||
<curve name="/carState/steeringPressed" color="#0072b2"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Steering Limited: Rate [orange] Saturated [magenta]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.025000" right="299.969780" top="1.025000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carState/steeringRateLimited" color="#ffb000"/>
|
||||
<curve name="/controlsState/lateralControlState/pidState/saturated" color="#dc267f"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
</Container>
|
||||
</Tab>
|
||||
<Tab tab_name="Longitudinal" containers="1">
|
||||
<Container>
|
||||
<DockSplitter sizes="0.2;0.2;0.2;0.2;0.2" orientation="-" count="5">
|
||||
<DockArea name="Velocity [m/s] True [blue] Plan [green]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="23.655731" right="299.969780" top="31.072848" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/longitudinalPlan/speeds/0" color="#009e73"/>
|
||||
<curve name="/carState/vEgo" color="#0072b2"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Acceleration [m/s^2] True [blue] Actuator [purple] Plan [green]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.832626" right="299.969780" top="1.070051" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="engaged_accel_plan" color="#009e73"/>
|
||||
<curve name="engaged_accel_actuator" color="#785ef0"/>
|
||||
<curve name="engaged_accel_actual" color="#0072b2"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Pitch [rad]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.073326" right="299.969780" top="0.008998" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/liveLocationKalman/calibratedOrientationNED/value/1" color="#ffb000"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Engaged [green] Gas [orange] Brake [magenta]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.025000" right="299.969780" top="1.025000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carControl/active" color="#009e73"/>
|
||||
<curve name="/carState/gasPressed" color="#ffb000"/>
|
||||
<curve name="/carState/brakePressed" color="#dc267f"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="State [blue: off,pid,stop,start] Source [green: cruise,lead0,lead1,lead2,e2e]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.050000" right="299.969780" top="2.050000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carControl/actuators/longControlState" color="#0072b2"/>
|
||||
<curve name="/longitudinalPlan/longitudinalPlanSource" color="#009e73"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
</Container>
|
||||
</Tab>
|
||||
<Tab tab_name="Lateral Debug" containers="1">
|
||||
<Container>
|
||||
<DockSplitter sizes="0.250564;0.249436;0.250564;0.249436" orientation="-" count="4">
|
||||
<DockArea name="Controller F [magenta] P [purple] I [blue]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.564869" right="299.969780" top="0.506951" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/controlsState/lateralControlState/pidState/f" color="#f14cc1"/>
|
||||
<curve name="/controlsState/lateralControlState/pidState/p" color="#9467bd"/>
|
||||
<curve name="/controlsState/lateralControlState/pidState/i" color="#17becf"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Driver Torque [blue] EPS Torque [green]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-216.025000" right="299.969780" top="205.025000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carState/steeringTorqueEps" color="#009e73"/>
|
||||
<curve name="/carState/steeringTorque" color="#0072b2"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Engaged [green] Steering Pressed [blue]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.025000" right="299.969780" top="1.025000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carState/steeringPressed" color="#0072b2"/>
|
||||
<curve name="/carControl/active" color="#009e73"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
<DockArea name="Steering Limited: Rate [orange] Saturated [magenta]">
|
||||
<plot style="Lines" mode="TimeSeries">
|
||||
<range bottom="-0.025000" right="299.969780" top="1.025000" left="0.024389"/>
|
||||
<limitY/>
|
||||
<curve name="/carState/steeringRateLimited" color="#ffb000"/>
|
||||
<curve name="/controlsState/lateralControlState/pidState/saturated" color="#dc267f"/>
|
||||
</plot>
|
||||
</DockArea>
|
||||
</DockSplitter>
|
||||
</Container>
|
||||
</Tab>t
|
||||
<currentTabIndex index="0"/>
|
||||
</tabbed_widget>
|
||||
<use_relative_time_offset enabled="1"/>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<Plugins>
|
||||
<plugin ID="DataLoad Rlog"/>
|
||||
<plugin ID="Cereal Subscriber"/>
|
||||
</Plugins>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
<customMathEquations>
|
||||
<snippet name="engaged_accel_actuator">
|
||||
<global>engage_delay = 5
|
||||
last_bad_time = -engage_delay</global>
|
||||
<function>accel = value
|
||||
brake = v1
|
||||
gas = v2
|
||||
active = v3
|
||||
|
||||
if (brake ~= 0 or gas ~= 0 or active == 0) then
|
||||
last_bad_time = time
|
||||
end
|
||||
|
||||
if (time > last_bad_time + engage_delay) then
|
||||
return value
|
||||
else
|
||||
return 0
|
||||
end</function>
|
||||
<linkedSource>/carControl/actuators/accel</linkedSource>
|
||||
<additionalSources>
|
||||
<v1>/carState/brakePressed</v1>
|
||||
<v2>/carState/gasPressed</v2>
|
||||
<v3>/carControl/active</v3>
|
||||
</additionalSources>
|
||||
</snippet>
|
||||
<snippet name="engaged_accel_plan">
|
||||
<global>engage_delay = 5
|
||||
last_bad_time = -engage_delay</global>
|
||||
<function>accel = value
|
||||
brake = v1
|
||||
gas = v2
|
||||
active = v3
|
||||
|
||||
if (brake ~= 0 or gas ~= 0 or active == 0) then
|
||||
last_bad_time = time
|
||||
end
|
||||
|
||||
if (time > last_bad_time + engage_delay) then
|
||||
return value
|
||||
else
|
||||
return 0
|
||||
end</function>
|
||||
<linkedSource>/longitudinalPlan/accels/0</linkedSource>
|
||||
<additionalSources>
|
||||
<v1>/carState/brakePressed</v1>
|
||||
<v2>/carState/gasPressed</v2>
|
||||
<v3>/carControl/active</v3>
|
||||
</additionalSources>
|
||||
</snippet>
|
||||
<snippet name="engaged_accel_actual">
|
||||
<global>engage_delay = 5
|
||||
last_bad_time = -engage_delay</global>
|
||||
<function>accel = value
|
||||
brake = v1
|
||||
gas = v2
|
||||
active = v3
|
||||
|
||||
if (brake ~= 0 or gas ~= 0 or active == 0) then
|
||||
last_bad_time = time
|
||||
end
|
||||
|
||||
if (time > last_bad_time + engage_delay) then
|
||||
return value
|
||||
else
|
||||
return 0
|
||||
end</function>
|
||||
<linkedSource>/carState/aEgo</linkedSource>
|
||||
<additionalSources>
|
||||
<v1>/carState/brakePressed</v1>
|
||||
<v2>/carState/gasPressed</v2>
|
||||
<v3>/carControl/active</v3>
|
||||
</additionalSources>
|
||||
</snippet>
|
||||
<snippet name="engaged curvature plan">
|
||||
<global>engage_delay = 5
|
||||
last_bad_time = -engage_delay</global>
|
||||
<function>curvature = value
|
||||
pressed = v1
|
||||
active = v2
|
||||
|
||||
if (pressed == 1 or active == 0) then
|
||||
last_bad_time = time
|
||||
end
|
||||
|
||||
if (time > last_bad_time + engage_delay) then
|
||||
return value
|
||||
else
|
||||
return 0
|
||||
end</function>
|
||||
<linkedSource>/lateralPlan/curvatures/0</linkedSource>
|
||||
<additionalSources>
|
||||
<v1>/carState/steeringPressed</v1>
|
||||
<v2>/carControl/active</v2>
|
||||
</additionalSources>
|
||||
</snippet>
|
||||
<snippet name="engaged curvature vehicle model">
|
||||
<global>engage_delay = 5
|
||||
last_bad_time = -engage_delay</global>
|
||||
<function>curvature = value
|
||||
pressed = v1
|
||||
active = v2
|
||||
|
||||
if (pressed == 1 or active == 0) then
|
||||
last_bad_time = time
|
||||
end
|
||||
|
||||
if (time > last_bad_time + engage_delay) then
|
||||
return value
|
||||
else
|
||||
return 0
|
||||
end</function>
|
||||
<linkedSource>/controlsState/curvature</linkedSource>
|
||||
<additionalSources>
|
||||
<v1>/carState/steeringPressed</v1>
|
||||
<v2>/controlsState/active</v2>
|
||||
</additionalSources>
|
||||
</snippet>
|
||||
<snippet name="engaged curvature yaw">
|
||||
<global>engage_delay = 5
|
||||
last_bad_time = -engage_delay</global>
|
||||
<function>curvature = value / v3
|
||||
pressed = v1
|
||||
active = v2
|
||||
|
||||
if (pressed == 1 or active == 0) then
|
||||
last_bad_time = time
|
||||
end
|
||||
|
||||
if (time > last_bad_time + engage_delay) then
|
||||
return curvature
|
||||
else
|
||||
return 0
|
||||
end</function>
|
||||
<linkedSource>/liveLocationKalman/angularVelocityCalibrated/value/2</linkedSource>
|
||||
<additionalSources>
|
||||
<v1>/carState/steeringPressed</v1>
|
||||
<v2>/carControl/active</v2>
|
||||
<v3>/carState/vEgo</v3>
|
||||
</additionalSources>
|
||||
</snippet>
|
||||
</customMathEquations>
|
||||
<snippets/>
|
||||
<!-- - - - - - - - - - - - - - - -->
|
||||
</root>
|
||||
|
||||
Reference in New Issue
Block a user