Skip to content

State Machine

Lowy Shin edited this page Aug 20, 2019 · 1 revision

概要

ステートマシン(State Machine)は今まで開発をやっていた人のためではなく開発の経験がない人がロボットをより作りやすくするための概念です。これはソフトバンクロボットペッパー(Softbank Robot Pepper)にも採用されていて現在の状態によって行動を変えるとの概念です。

基本的にフローチャート(Flow Chart)と同じのように使えばいいですが、 Flowchartが「論理的な意識の流れ」だとしたらState Machineの場合は「今行きたいところに行ける」との概念です。

もし、a = bの時は3番にいって、a <> c の時は8番に行きたい…。などケースが多くなるとなるほどFlowchartの場合は結構多い条件の表示が必要になります。しかしState Machineの場合は線を引くだけで終わりです。 開発者の観点ではCase(C では Switch)の概念に近いです。 そして1つのStateが終わった時点で移動ができて、繰り返しとかもすぐ作れます。

Microsoft社とSoftbank社がState Machineを採用したのはたぶん訳があるだろうと思って現在私の方ではFlow Chartはほぼ使わずにState Machineですべてやっています。

State Machineは条件がYNだけではないためそのまま止まるケースがあるため注意しなければなりません。すべての条件に合致しない場合はFinal Stateに行くように設計するのが必要です。