OpenCVの動体検知によるHOゲージ鉄道模型車両のセンサレス自動運転。データベースSQLiteにより自動運転シーケンサ構築。KATO製キハ58ラズパイPicoW搭載、リモート運転 #Shorts
Webカメラで取り込んだレイアウト全景の動画を基に OpenCVの動体検出により車両位置を検出し、鉄道模型列車の自動運転を行います。従来、鉄道模型列車の自動運転システムでは車両位置を検出するためにセンサ類やレールのギャップの設置が必要でした。本システムでは、これらのセンサ類の設置が不要になります。
画像処理や動画処理のオープンソースのライブラリであるOpenCVを利用し、パソコン上に車両位置検出機能を実装します。Open CVの「フレーム間差分法」を採用し、CPU負荷率を軽減します。このため一般的なスペックのパソコンで実行可能です。
自動運転のプログラムは、PWM通流率演算を行うラズパイ4 model B上のNode-REDで動作させます。自動運転のプログラムはデータベースSQLiteを使いました。EXCELのイメージで発車時間、列車位置での力行ノッチやブレーキステップの操作を記述できます。
ポイントや信号機などデジタル信号の操作も可能です。
これらを実機動作させ、車両位置検出やその位置に基づく自動運転が正常に動作することを確認しました。
***************************************************************************************
システム構成を以下に示します。
(1) 地上に配置するラズパイPi 4 model B
フローベースのノーコード/ローコード開発ツールNode-REDを動作(Webサーバー)。
Node-REDにおいて 以下の機能を実行。
1) MQTT通信により (2)のパソコンから 列車位置を受信
2) 自動運転のシーケンスや条件を記述したデータベースSQLite
3) データベースSQLiteから出力された力行ノッチ指令、ブレーキステップ指令、
前/後進信号を基に 列車速度を指令速度に追従させるためのPWM通流率を演算
4) MQTT通信により (3)の列車のラズパイPico Wに PWM通流率を送信
5) MQTTブローカー (aedes)
ラズパイPi 4 model B、パソコン、ラズパイPico W の間のMQTT通信を制御
6) Node-REDのダッシュボードに各種のスイッチ、メータ類、列車位置を表示
(2) パソコン (Windows11)
① 列車位置検出 (Open CVのフレーム間差分法」による動体検知)
② MQTT通信により 列車位置を (1)のラズパイPi 4 model Bに送信
(3) Webカメラ
ロジクール製Webカメラ(C920c) USBでPCと接続
(4) 列車に搭載するラズパイPico W
① MQTT通信により (1)のラズパイPi 4 model Bから 受信したPWM通流率データ
により ハードウェアPWMを動作。
② MQTT通信により PWM通流率フィードバックを (1)のラズパイPi 4 model Bに送信
(MQTT通信の動作確認用)
***************************************************************************************
有償のハードウェアは、列車に搭載するラズパイPicoW、パソコン、Webカメラ、地上に配置するラズパイ4 model B、DC12V出力電源のみであり、安価に自動運転システムを構築できます。
データベースの記述の煩雑さ、隣の線路を走行する列車による列車通過検知の誤動作、レイアウト上の建物などによる死角など 解決すべき課題はたくさんあります。
しかし、誤動作を防止ロジックの追加や 動体検知のためのWebカメラの複数台設置、動体検知の方式の見直しなどによって課題を解決できると考えます。
Webカメラによる動体検知を使った自動運転システムは安価そして容易に実現する有効な手段の一つであると考えます。