マイクロマウスのソフト設計の話 その3

2020年6月7日

こんにちは。そらです。

前回は要求定義や要件定義等を行いました。今回は詳細設計に入っていきたいと思います。抽象的なことではなく具体的なことを考えていくステージです。設計の話では実装のフェーズを行う予定がないため、少しあやふやな点が出てくることもあると思われますがご容赦ください。

その2の要求定義した内容が出てくるので、その2の内容を見ていない/忘れてしまったという方は以下の記事を参照していただけると理解が進むと思います。あくまで、やり方の一例なので本当に勉強をしたい方は書店等で販売されている技術書を参考にしていただければと思います。




マイクロマウスの処理の流れを検討

操作者が使用するシステムのメインルーチンを考える

マイクロマウスのシステムの場合は、ほどんどがロボットに搭載されているマイコンが自動でやるためマイコンの中で割り込み処理とメインルーチンの2つが動くことになると思います。初めに、操作者がロボットを操作するところ、すなわち電源をいれてモード選択をするところをアクティビティ図で表現していきたいと思います。

前回の要求定義の中で、ここで行うであろう要求を実際の処理の流れに入れてみました。

条件分岐や細かい処理等は、必要だと思われるものを想像しながら図を作っています。自分がロボットを操作するとき何をするかなということと、その時マイコンは何をすればいいのかなと思い浮かべながら図を書いていくといいのかなと思います。

次は、マイクロマウス競技でなくてはならない迷路探索の処理の流れを検討していきます。

迷路探索の流れを考える

続いて迷路探索について考えていきます。迷路探索においてやらなければならないことは、壁情報の取得、次の動作(経路)の取得、目標値の生成が考えられます。想像をしながらアクティビティ図を作っていきたいと思います。今回のレーンはメインルーチン、迷路アルゴリズム、制御ソフトになると思います。壁情報の取得はマイコンの周辺機能になりますが、レーンが4つあるとごちゃごちゃするためメインルーチンの中に例外的に書きます。

こんな感じでしょうか。次は、最短走行のときの流れを考えていきます。

最短走行のときの流れを考える

探索走行のときと同じような感じで最短走行の流れを考えてみたいと思います。

最短走行は、最短経路を導出して、各種動作の速度設定などのデータをもとに走行するのかなと思いながら書きました。

さいごに

今回はマシンに電源を入れた後の流れと、迷路走行(探索・最短)の流れをアクティビティ図を用いて考えてみました。

次回予告

割り込み処理の流れや周辺機能周りのアクティビティ図を考えていきたいと思います。

先に断言をさせていただきますが、周辺機能周りのアクティビティ図はすべてを紹介する予定はないです。

その他

図形の製作にはPlantUMLを使用しています。