ライントレースのモデル図を書く

.body .kaiwa_css .c { background-image:url('/sites/default/files/articles/2116_c_w60.png')

吉田 彩花, 舟元 拓斗

2011年8月31日 20:00

前回までは、「ライントレースする」という課題(要求)に対して、モデリングと実装、制御を実践してきました。ドメインに対する知識が乏しい中での実践であったため、イメージを掴むために、まず始めに実装を行い「ライントレースする」という要求に対して、どんな実装や技術が必要になるかを検証したあとにモデルを書いてみました。

今回からは、実際にETロボコンの競技規約(ルール)に乗っ取ったシステムを作り上げるための作業をレポートしていきます。

  1. [吉田]いろいろ教わったね。分かったようで、分かってないようで。初めてのことばっかで消化できてるのか不安だよ。
  2. [舟元]だよね。学生時代にやってはいたけど、初耳なことが多いよ。
  3. [吉田]ほぇー。そうなのかぁ。舟元くんでもそうなのか。ちょっとホッとした。
  4. [舟元]。。。いやいや、まだ負けないし!それじゃあ、ここまで教わったことを踏まえて地区大会に向けて開発を進めようか。

要求の整理

  1. [吉田]始めは、要求の分析だよね。
  2. [舟元]「要求の分析」は、「作るものがどんなものかを整理して、何を作らないといけないかを見つける」だったね。何も無いところからは、何も生まれないから、何か入力となるものが必要だね。
  3. [吉田]ETロボコンのシステムだから、競技規約からやれば良いのかな。競技規約には、コースの詳細やどうやって走らないといけないかも書いてあるし。
  4. [舟元]そうだね。この壮大な競技規約を毎度調べながら作業を進めるのは大変だから、競技規約がどんなものかを整理したマインドマップを持ってきたよ。

図1:マインドマップ
  1. [吉田]おぉ。これだけでも良いんじゃないかな?
  2. [舟元]でも、このマインドマップは、競技規約をマインドマップのかたちに整理しただけだから、「作らないといけないこと」になる部分以外にも「制約」とかの決まりごともあって、ソフトウェアを作るには不向きだよ。
  3. [吉田]そうなのかー。やっぱ、ユースケース図とか書かないとダメなんだね。ユースケースって、アクターとシステムの関連だよねー。こんな感じ?

図2:ユースケース図
  1. [舟元]そうだねー。競技の始まるときに操作する人が何かをしてロボットが動き出すってことだね。
  2. [吉田]自立的に動くシステムだからアクターとシステムの関連ってあまり無いんだね。
  3. [舟元]そうだね。これだけだと、スタートした後のシステムが何をするか分からないから、もうちょっとイメージが湧くようにユースケースを追加してみようよ。
  4. [吉田]あ、競技中も、そうだけど、競技前に環境依存のパラメータを設定したりしたいな。光センサの値は設定するだけじゃなくて、見たいだけのときもあるのかなぁ。
  5. [舟元]だねだね。あとは、、、
  6. [吉田]まぁ、書きながら考えようよ。
  7. [舟元]あ、、、うん。。。(なんか、いつも主導権を握られちゃうな。。。
  8. [吉田]ひとまず、こんな感じかなー。

図3:ユースケース図に要素を加えたところ
  1. [吉田]こんな感じかな。さっきよりは、作らないといけないものの大枠が見えてきたと思うよ。でも、これを作ることを考えると、イメージの湧かないところも残っちゃうね。
  2. [舟元]ユースケース図だけだと、表現できない部分もあるからね。イメージの湧かないところを補うためにも、ユースケース1つ1つユースケースシナリオを書いていこうか。

ユースケースシナリオ(抜粋):

【ユースケース】
競技に必要なパラメータを設定する
【概要】
走行体が動くために必要なパラメータを設定する
【アクター】
文系女子
【事前条件】
なし
【事後条件】
走行体が動くために必要なパラメータが設定されていること。
【基本フロー】
1.各センサ値が画面に表示される。
2.パラメータを設定する。
【ユースケース】
競技開始を待つ
【概要】
競技開始の合図があるまで停止している
【アクター】
文系女子
【事前条件】
スタート位置で停止している
【事後条件】
走行している
【基本フロー】
1.競技開始の合図が出たらスタートする
【ユースケース】
ベーシックステージを走行する
【概要】
ベーシックステージを走行する
【アクター】
文系女子
【事前条件】
スタート位置で停止していること。
【事後条件】
ベーシックステージの最後のゲートをクリアしていること
【基本フロー】
1.ラインに沿ってトレースしている
2.坂道を走行する
3.各ゲートを通過する

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30