From b1fb7fe24e353852b3ab8cc97511463746eac0e9 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Sat, 25 May 2024 23:46:08 +0900 Subject: [PATCH] improve lqr steering control docs --- .../lqr_steering_control_main.rst | 2 +- .../lqr_steering_control_model.jpg | Bin 0 -> 11721 bytes .../lqr_steering_control_model.png | Bin 17366 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_model.jpg delete mode 100644 docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_model.png diff --git a/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_main.rst b/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_main.rst index b18e4728cd7..fcc9b5278a6 100644 --- a/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_main.rst +++ b/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_main.rst @@ -20,7 +20,7 @@ Vehicle motion Model The below figure shows the geometric model of the vehicle used in this simulation: -.. image:: lqr_steering_control_model.png +.. image:: lqr_steering_control_model.jpg :width: 600px The `e` and `theta` represent the lateral error and orientation error, respectively, with respect to the desired trajectory. diff --git a/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_model.jpg b/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_model.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83754d5bb01c9a1a4339248be09b476578291922 GIT binary patch literal 11721 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 YY#zr#%kTQLyIC52cxCrT=Fh?Z0n~N9RsaA1 literal 0 HcmV?d00001 diff --git a/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_model.png b/docs/modules/path_tracking/lqr_steering_control/lqr_steering_control_model.png deleted file mode 100644 index 961dfcdc05cd4938c1ea7ebc79e1c8e0314e9dd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17366 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 ShTuQyfRXff>lG92j{hIC6RZ#b