コンテンツにスキップ

デプロイ手順(Raspberry Pi)

このドキュメントは systemd で常駐させる手順の要点をまとめたものです。

1) 配備

APP_DIR=/home/fooping/dmc_ai_mobility
mkdir -p "$APP_DIR"
cp -r . "$APP_DIR"
cd "$APP_DIR"

2) venv 作成

python3 -m venv /home/fooping/env
/home/fooping/env/bin/pip install -r requirements.txt

3) 依存パッケージ(H.264 配信を使う場合)

sudo apt-get update
sudo apt-get install -y rpicam-apps

補足: - Debian bookworm は rpicam-vid(rpicam-apps)を使用します。 - 旧環境では libcamera-vid(libcamera-apps)を使う場合があります。

4) systemd 登録

sudo cp systemd/dmc-ai-mobility.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now dmc-ai-mobility.service

H.264 の検証で libcamerify を無効化したい場合は、検証用ユニットを使います。

sudo cp systemd/dmc-ai-mobility-h264.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now dmc-ai-mobility-h264.service

5) 動作確認

sudo systemctl status dmc-ai-mobility.service
journalctl -u dmc-ai-mobility.service -f

ログの追従は journalctl -u dmc-ai-mobility.service -f で確認できます。

6) 設定変更時

config.toml を変更したら再起動します。

sudo systemctl restart dmc-ai-mobility.service

7) Git 更新と安全な再起動

リモート更新がある場合のみ git pull --ff-only を行い、稼働中のサービスを安全に再起動します。

sudo ./scripts/pull_and_restart.sh

補足: - 作業ツリーが汚れている場合は中断します(必要なら ALLOW_DIRTY=1)。 - Fast-forward できない履歴は中断します。 - サービスが停止中の場合は再起動をスキップします。

補足

  • systemd は scripts/run_robot.sh を起動します(libcamerify 自動対応)。
  • scripts/run_robot.shlibcamerify があれば自動使用します(無効化: DMC_USE_LIBCAMERIFY=0)。
  • config.toml/home/fooping/dmc_ai_mobility/config.toml を想定しています。
  • venv のパスを変える場合は systemd/dmc-ai-mobility.serviceVIRTUAL_ENVPATH を合わせて変更してください。