Remove control usage (#33103)

* manual matrix exp

* remove control
pull/33131/head
Maxime Desroches 9 months ago committed by GitHub
parent 1ae3adbe13
commit 01c0756974
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      pyproject.toml
  2. 11
      selfdrive/controls/lib/tests/test_vehicle_model.py
  3. 15
      uv.lock

@ -94,7 +94,6 @@ dev = [
"av", "av",
"azure-identity", "azure-identity",
"azure-storage-blob", "azure-storage-blob",
"control",
"dictdiffer", "dictdiffer",
"flaky", "flaky",
"inputs", "inputs",

@ -2,7 +2,6 @@ import pytest
import math import math
import numpy as np import numpy as np
from control import StateSpace
from openpilot.selfdrive.car.honda.interface import CarInterface from openpilot.selfdrive.car.honda.interface import CarInterface
from openpilot.selfdrive.car.honda.values import CAR from openpilot.selfdrive.car.honda.values import CAR
@ -47,8 +46,12 @@ class TestVehicleModel:
A, B = create_dyn_state_matrices(u, self.VM) A, B = create_dyn_state_matrices(u, self.VM)
# Convert to discrete time system # Convert to discrete time system
ss = StateSpace(A, B, np.eye(2), np.zeros((2, 2))) dt = 0.01
ss = ss.sample(0.01) top = np.hstack((A, B))
full = np.vstack((top, np.zeros_like(top))) * dt
Md = sum([np.linalg.matrix_power(full, k) / math.factorial(k) for k in range(25)])
Ad = Md[:A.shape[0], :A.shape[1]]
Bd = Md[:A.shape[0], A.shape[1]:]
for sa in np.linspace(math.radians(-20), math.radians(20), num=11): for sa in np.linspace(math.radians(-20), math.radians(20), num=11):
inp = np.array([[sa], [roll]]) inp = np.array([[sa], [roll]])
@ -56,7 +59,7 @@ class TestVehicleModel:
# Simulate for 1 second # Simulate for 1 second
x1 = np.zeros((2, 1)) x1 = np.zeros((2, 1))
for _ in range(100): for _ in range(100):
x1 = ss.A @ x1 + ss.B @ inp x1 = Ad @ x1 + Bd @ inp
# Compute steady state solution directly # Compute steady state solution directly
x2 = dyn_ss_sol(sa, u, roll, self.VM) x2 = dyn_ss_sol(sa, u, roll, self.VM)

@ -369,20 +369,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/78/38/a046bb0ebce6f530175d434e7364149e338ffe1069ee286ed8ba7f6481ee/contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce", size = 189901 }, { url = "https://files.pythonhosted.org/packages/78/38/a046bb0ebce6f530175d434e7364149e338ffe1069ee286ed8ba7f6481ee/contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce", size = 189901 },
] ]
[[distribution]]
name = "control"
version = "0.10.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "matplotlib" },
{ name = "numpy" },
{ name = "scipy" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ee/64/02fedcf78b070571f5e446efb55b7ec82b68187323402b99b6f98f769530/control-0.10.0.tar.gz", hash = "sha256:2c18b767537f45c7fd07b2e4afe8fbe5964019499b5f52f888edb5d8560bab53", size = 8956376 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/4d/de/327ab576657cb6bd5678e5d4fa266f3c4c7094e99df2bb7760e89176772d/control-0.10.0-py3-none-any.whl", hash = "sha256:ed1e0eb73f1e2945fc9af9d7b9121ef328fe980e7903b2a14b149d4f1855a808", size = 513858 },
]
[[distribution]] [[distribution]]
name = "coverage" name = "coverage"
version = "7.6.0" version = "7.6.0"
@ -1439,7 +1425,6 @@ dev = [
{ name = "av" }, { name = "av" },
{ name = "azure-identity" }, { name = "azure-identity" },
{ name = "azure-storage-blob" }, { name = "azure-storage-blob" },
{ name = "control" },
{ name = "dictdiffer" }, { name = "dictdiffer" },
{ name = "flaky" }, { name = "flaky" },
{ name = "hexdump" }, { name = "hexdump" },

Loading…
Cancel
Save