mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-03 04:22:09 +08:00
Longitudinal MPC set qp tolerance to 1e-3 (#23899)
* initialize solverExecutionTime longitudinal_planner * test_onroad: improve timing evaluation * longitudinal MPC: set qp_tol to 1e-3 * update ref Co-authored-by: Harald Schafer <harald.the.engineer@gmail.com> old-commit-hash: ab371f888a8ee0d309130bd56aba04ab84820921
This commit is contained in:
@@ -178,6 +178,7 @@ def gen_long_mpc_solver():
|
||||
# More iterations take too much time and less lead to inaccurate convergence in
|
||||
# some situations. Ideally we would run just 1 iteration to ensure fixed runtime.
|
||||
ocp.solver_options.qp_solver_iter_max = 10
|
||||
ocp.solver_options.qp_tol = 1e-3
|
||||
|
||||
# set prediction horizon
|
||||
ocp.solver_options.tf = Tf
|
||||
|
||||
@@ -55,6 +55,7 @@ class Planner:
|
||||
self.v_desired_trajectory = np.zeros(CONTROL_N)
|
||||
self.a_desired_trajectory = np.zeros(CONTROL_N)
|
||||
self.j_desired_trajectory = np.zeros(CONTROL_N)
|
||||
self.solverExecutionTime = 0.0
|
||||
|
||||
def update(self, sm):
|
||||
v_ego = sm['carState'].vEgo
|
||||
|
||||
@@ -1 +1 @@
|
||||
5cd22804273530aaf69ebb9f5039e8d08ca44ef8
|
||||
10555bbd908c7eead5eeaa36ab07ec2189845a95
|
||||
@@ -216,8 +216,9 @@ class TestOnroad(unittest.TestCase):
|
||||
ts = [getattr(getattr(m, s), "solverExecutionTime") for m in self.lr if m.which() == s]
|
||||
self.assertLess(min(ts), instant_max, f"high '{s}' execution time: {min(ts)}")
|
||||
self.assertLess(np.mean(ts), avg_max, f"high avg '{s}' execution time: {np.mean(ts)}")
|
||||
result += f"'{s}' execution time: {min(ts)}\n"
|
||||
result += f"'{s}' avg execution time: {np.mean(ts)}\n"
|
||||
result += f"'{s}' execution time: min {min(ts):.5f}s\n"
|
||||
result += f"'{s}' execution time: max {max(ts):.5f}s\n"
|
||||
result += f"'{s}' execution time: mean {np.mean(ts):.5f}s\n"
|
||||
result += "------------------------------------------------\n"
|
||||
print(result)
|
||||
|
||||
@@ -237,8 +238,8 @@ class TestOnroad(unittest.TestCase):
|
||||
ts = [getattr(getattr(m, s), "modelExecutionTime") for m in self.lr if m.which() == s]
|
||||
self.assertLess(min(ts), instant_max, f"high '{s}' execution time: {min(ts)}")
|
||||
self.assertLess(np.mean(ts), avg_max, f"high avg '{s}' execution time: {np.mean(ts)}")
|
||||
result += f"'{s}' execution time: {min(ts)}\n"
|
||||
result += f"'{s}' avg execution time: {np.mean(ts)}\n"
|
||||
result += f"'{s}' execution time: min {min(ts):.5f}s\n"
|
||||
result += f"'{s}' execution time: mean {np.mean(ts):.5f}s\n"
|
||||
result += "------------------------------------------------\n"
|
||||
print(result)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user