Update 2026-04-22 11:53:06

This commit is contained in:
kassam 2026-04-22 11:53:07 +04:00
parent 5b8e94f42e
commit 9ac3e19ed1
2 changed files with 22 additions and 0 deletions

View File

@ -64,6 +64,28 @@ def slam_worker(
loc_cfg: LocalizationConfig, loc_cfg: LocalizationConfig,
run_cfg: RuntimeConfig, run_cfg: RuntimeConfig,
): ):
# ─────────────────────────────────────────────────────────────────────
# Redirect this subprocess's stderr to logs/lidar_sdk.log. The Livox
# C++ SDK prints directly to stderr (not Python logging) and spams
# thousands of lines/second when the LiDAR is offline or flaky. Keeping
# it in a file lets us still debug Livox issues without the errors
# drowning the interactive terminal. stdout stays attached so our own
# Python `print`s (pose updates, status lines) still reach the terminal.
# ─────────────────────────────────────────────────────────────────────
import os as _os, sys as _sys
try:
_log_dir = _os.path.join(
_os.path.dirname(_os.path.dirname(_os.path.abspath(__file__))),
"logs",
)
_os.makedirs(_log_dir, exist_ok=True)
_err_path = _os.path.join(_log_dir, "lidar_sdk.log")
_fd = _os.open(_err_path, _os.O_WRONLY | _os.O_CREAT | _os.O_APPEND, 0o644)
_os.dup2(_fd, 2) # replace stderr FD so even C++ libs are captured
_sys.stderr = _os.fdopen(2, "w", buffering=1)
except Exception:
pass # never crash just because the log redirect failed
# suppress noisy warning from ctypes->numpy conversion # suppress noisy warning from ctypes->numpy conversion
import warnings import warnings
warnings.filterwarnings( warnings.filterwarnings(