Lidar_Muxa/docker/smoke_test.sh

69 lines
2.5 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# Проверка собранного образа: на месте ли пакеты, сообщения, зависимости.
# Запускается внутри контейнера, окружение ROS уже поднято точкой входа.
set -u
echo "=== пакеты ==="
ros2 pkg list | grep -i flyguard || echo " НЕТ пакетов flyguard"
echo
echo "=== исполняемые ==="
ros2 pkg executables flyguard || echo " НЕТ исполняемых"
echo
echo "=== сообщение ObstacleStatus ==="
ros2 interface show flyguard_msgs/msg/ObstacleStatus 2>&1 | grep -v '^#' | grep -v '^$' | head -12
echo
echo "=== python-зависимости ==="
python3 - <<'PY'
import numpy, scipy
print("numpy", numpy.__version__, "| scipy", scipy.__version__)
try:
import cv2
print("opencv", cv2.__version__)
except Exception as e:
print("opencv НЕТ:", e)
PY
echo
echo "=== импорт конвейера ==="
python3 - <<'PY'
from flyguard.pipeline import FlyGuard, Params
from flyguard.mushroom_body import MushroomBody
from pathlib import Path
import glob
fg = FlyGuard(Params())
print("конвейер импортируется, стадий в параметрах:", len(Params().__dataclass_fields__))
hits = glob.glob("/opt/ros/**/flyguard/artifacts/mushroom_body.npz", recursive=True) \
+ glob.glob("/opt/flyguard/**/mushroom_body.npz", recursive=True)
if hits:
mb = MushroomBody.load(hits[0])
print(f"память тоннеля: {hits[0]}")
print(f" клеток Кеньона {mb.cfg.n_kc}, активных {mb.n_active}, "
f"обучена на {mb.n_seen} примерах, признаков {mb.n_pn}")
else:
print("память тоннеля НЕ НАЙДЕНА в образе")
from flyguard.mbon_readout import MbonReadout
hits = glob.glob("/opt/ros/**/flyguard/artifacts/mbon_readout.npz", recursive=True) \
+ glob.glob("/opt/flyguard/**/mbon_readout.npz", recursive=True)
if hits:
rd = MbonReadout.load(hits[0])
print(f"считывание MBON: {hits[0]}")
print(f" клеток Кеньона {rd.cfg.n_kc}, признаков {rd.n_pn}")
else:
print("считывание MBON НЕ НАЙДЕНО в образе")
PY
echo
echo "=== rosbag ==="
if ros2 bag --help >/dev/null 2>&1; then
echo "ros2 bag доступен"
python3 -c "import rosbag2_py; print('rosbag2_py ok')" 2>&1 | tail -1
else
echo "ros2 bag НЕДОСТУПЕН"
fi
echo
echo "=== launch-файл ==="
ros2 launch flyguard detect.launch.py --show-args 2>&1 | head -20