mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-25 20:32:07 +08:00
Merge branch 'nnlc-lateral-jerk' into master-dev-c3
This commit is contained in:
+4
-1
@@ -28,6 +28,10 @@ sunnypilot - 0.9.8.0 (2024-xx-xx)
|
||||
* UPDATED: Driving Model Selector v5
|
||||
* NEW❗: Driving Model additions
|
||||
* Notre Dame (July 01, 2024) - NDv3
|
||||
* UPDATED: Neural Network Lateral Control (NNLC)
|
||||
* NEW❗: Remove Lateral Jerk Response (Alpha)
|
||||
*
|
||||
* FIXED: Hotfix for "lazy" steering performance in tighter curves thanks to twilsonco!
|
||||
* UPDATED: Toyota: Continued support for Smart DSU (SDSU) and Radar CAN Filter
|
||||
* In response to the official deprecation of support for Smart DSU (SDSU) and Radar CAN Filter in the upstream ([commaai/openpilot#32777](https://github.com/commaai/openpilot/pull/32777)), sunnypilot will continue maintaining software support for Smart DSU (SDSU) and Radar CAN Filter
|
||||
* UPDATED: Continued support for Mapbox navigation
|
||||
@@ -113,7 +117,6 @@ sunnypilot - 0.9.7.1 (2024-06-13)
|
||||
* Reset self-service access tokens for Mapbox, Amap, and Google Maps
|
||||
* UPDATED: Upstream native support for Gap Adjust Cruise
|
||||
* UPDATED: Neural Network Lateral Control (NNLC)
|
||||
* FIXED: Hotfix for "lazy" steering performance in tighter curves thanks to twilsonco!
|
||||
* Due to upstream changes with platform simplifications, most platforms will match and fallback to combined platform model
|
||||
* This will be updated when the new mapping of platforms are restructured (thanks @twilsonco 😉)
|
||||
* UI Updates
|
||||
|
||||
@@ -59,12 +59,24 @@ SunnypilotPanel::SunnypilotPanel(QWidget *parent) : QFrame(parent) {
|
||||
"",
|
||||
"../assets/offroad/icon_blank.png",
|
||||
},
|
||||
{
|
||||
"NNFFNoLateralJerk",
|
||||
tr("NNLC: Remove Lateral Jerk Response (Alpha)"),
|
||||
tr("When NNLC is active, enable this to disables the use of lateral jerk in steering torque calculations, focusing solely on lateral acceleration for a simplified control response."),
|
||||
"../assets/offroad/icon_blank.png",
|
||||
},
|
||||
{
|
||||
"EnforceTorqueLateral",
|
||||
tr("Enforce Torque Lateral Control"),
|
||||
tr("Enable this to enforce sunnypilot to steer with Torque lateral control."),
|
||||
"../assets/offroad/icon_blank.png",
|
||||
},
|
||||
{
|
||||
"TorqueLateralJerk",
|
||||
tr("Lateral Jerk with Torque Lateral Control (Alpha)"),
|
||||
tr("Utilizes limited lateral jerk control for improved steering response, leveraging stock torque lateral controller capabilities. Designed to mimic NNLC behavior without training models or data collection."),
|
||||
"../assets/offroad/icon_blank.png",
|
||||
},
|
||||
{
|
||||
"LiveTorque",
|
||||
tr("Enable Self-Tune"),
|
||||
@@ -312,6 +324,17 @@ SunnypilotPanel::SunnypilotPanel(QWidget *parent) : QFrame(parent) {
|
||||
}
|
||||
});
|
||||
|
||||
connect(toggles["EnforceTorqueLateral"], &ToggleControl::toggleFlipped, [=](bool state) {
|
||||
if (state) {
|
||||
toggles["NNFF"]->setEnabled(false);
|
||||
params.putBool("NNFF", false);
|
||||
toggles["NNFF"]->refresh();
|
||||
} else {
|
||||
toggles["NNFF"]->setEnabled(true);
|
||||
toggles["NNFF"]->refresh();
|
||||
}
|
||||
});
|
||||
|
||||
// trigger updateToggles() when toggleFlipped
|
||||
for (const auto& updateToggleName : updateTogglesNames) {
|
||||
if (toggles.find(updateToggleName) != toggles.end()) {
|
||||
@@ -541,7 +564,7 @@ void SunnypilotPanel::updateToggles() {
|
||||
}
|
||||
|
||||
// toggle names to update when EnforceTorqueLateral is flipped
|
||||
std::vector<std::string> torqueLateralGroup{"CustomTorqueLateral", "LiveTorque", "LiveTorqueRelaxed", "TorquedOverride"};
|
||||
std::vector<std::string> torqueLateralGroup{"CustomTorqueLateral", "TorqueLateralJerk", "LiveTorque", "LiveTorqueRelaxed", "TorquedOverride"};
|
||||
for (const auto& torqueLateralToggle : torqueLateralGroup) {
|
||||
if (toggles.find(torqueLateralToggle) != toggles.end()) {
|
||||
if (nnff_toggle->isToggled()) {
|
||||
@@ -558,6 +581,24 @@ void SunnypilotPanel::updateToggles() {
|
||||
}
|
||||
}
|
||||
|
||||
// toggle names to update when EnforceTorqueLateral is flipped
|
||||
std::vector<std::string> nnffGroup{"NNFFNoLateralJerk"};
|
||||
for (const auto& nnffToggle : nnffGroup) {
|
||||
if (toggles.find(nnffToggle) != toggles.end()) {
|
||||
if (enforce_torque_lateral->isToggled()) {
|
||||
toggles[nnffToggle]->setVisible(false);
|
||||
toggles[nnffToggle]->setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto& nnffToggle : nnffGroup) {
|
||||
if (toggles.find(nnffToggle) != toggles.end()) {
|
||||
toggles[nnffToggle]->setVisible(nnff_toggle->isToggled());
|
||||
toggles[nnffToggle]->setEnabled(nnff_toggle->isToggled());
|
||||
}
|
||||
}
|
||||
|
||||
if (enforce_torque_lateral->isToggled()) {
|
||||
live_torque_relaxed->setVisible(live_torque->isToggled());
|
||||
torqued_override->setVisible(custom_torque_lateral->isToggled());
|
||||
|
||||
Reference in New Issue
Block a user