鉄道模型 Nゲージ Wi Fi 自動運転システムに挑戦! その9
< 速度表示と追従機能 >
動力車の制御プログラムの完成
動力車の制御プログラムのデバッグがようやく終わり、ついに安定して動作するようになりました。
信号機による走行制御に加えて、自動追尾機能(前走車との距離を自動調整して追従する機能)もきちんと動くようになりました。
■ 前方状況の監視は「線路15パーツ先」まで
前方にある信号機や前走車の位置を把握するため、動力車は線路15パーツ先までの制御情報を常に監視しています。
これは、列車のギアを傷めないよう、速度を徐々に変化させる仕様にしているためです。
速度が高い場合、完全停止するまでにそれぐらいの距離が必要になります。
ただし、いわゆる“爆速”で走らせた場合はさすがに止まり切れません。(そんな速度で走らせることはまず無いと思いますが…)
■ 赤信号・前走車ともに「徐々に減速 → 3パーツ手前で停止」
赤信号を検知した場合は、
・線路3パーツ手前から停止制動を開始
・ちょうど信号機の位置で停止
するようになっています。
前走車に対しても同様に、距離が縮むにつれて徐々に減速し、
前走車の最後尾と3パーツ分の距離になったところで停止するように調整しています。
■ 車両数や動力車の位置にも対応
列車は、
・車両数が複数ある場合
・動力車が先頭ではない場合
など、編成によって状況が異なります。
そこで、列車情報として
・全車両数
・動力車が何両目にあるか
を入力できるようにしました。
動力車が通過したマーカーの位置から動力車の現在位置を計算し、
さらに先頭車両・最後尾車両の位置を算出します。
これにより、
・長い編成でも先頭車両が信号の位置で正確に停止できる
・自動追尾時も前走車の最後尾との距離をもとに安全に追従できる
といった、より実車に近い動作が実現できました。
■ 実車換算の速度表示機能を追加
位置情報を把握するために線路に設置しているマーカーは、約1車両分の間隔で配置しています。
このマーカー間の実測距離と、動力車がマーカーを通過する時間から、模型上の速度(mm/s)を算出できるようにしました。
さらに、この速度をNゲージの1/150スケールから逆換算することで、実車換算の速度(km/h)を求め、表示する機能を追加しました。
実際に時速表示を行ってみると、興味深い結果が分かりました。
普段「中速」程度だと思っていた速度が、実車換算ではなんと約250km/h。
さらに最高速(いわゆる爆速)では、約400km/hにも達していました。新幹線よりも速い計算になります。
一方で、一般的な在来線の走行速度である100〜120km/h相当に合わせて走らせてみると、
模型としては「かなり遅い」と感じる速度になります。
模型と実車ではスケールが違うため当然ではありますが、
“見た目のリアルさ”と“物理的なスケール速度”のギャップを実感する結果となりました。
■ 自動運転システムの後半へ:信号・ポイントの自動制御
これで、列車側の自動制御はほぼ完成しました。
自動運転の“半分”ができたことになります。
次のステップは、信号機やポイントの切り替えの自動化です。
いろいろと制御方法を検討したのですが、
・スケジューリング型の制御は、列車の動きがずれた時に破綻しやすい
・そもそも「自動運転」と呼ぶには不自然
と感じました。
そこで最終的に、イベントドリブン型の制御方式を採用することにしました。
列車の状態に応じてイベントが発生し、それをトリガーに信号やポイントを切り替える方式です。
プログラムの実装はやや大変ですが、実際の鉄道運行システムに近い動作になり、本当の意味での自動運転に近づけると考えています。
※ 踏切の動画リンクをつけ忘れていたので、ここのリンクしておきます。
