ふじ@メガネボーイズのメモのような日記 RSSフィード

2008-09-20

走行シナリオによるETロボコン競技用プログラムの製造ライン

考えたこと

実のところ、現在のメガネパスファインダーは、製造ラインにするための基盤を備えているのではないか?

ETロボコンにおける各年の違い

大きなところでは以下の2つだと思います。

  • コース構成
  • ボーナス

各年ごとに作成するもの

  • 走行シナリオ(走行シーン含む)
  • 不足している走行ロジック

モデルから自動生成

走行シナリオのステートマシン図もどきと各走行シーンのオブジェクト図もどきを書けば、

走行プログラムやパラメタ調整用ツールは自動生成できると思います。(不足している走行ロジックプログラムを書かないといけないけど)

自動生成できるもの

もしかして

小規模なSoftwareFactoryやプロダクトラインが実現できる?

skelton_boyskelton_boy2008/09/22 20:13software facoryは言い過ぎかもしれないけど、シナリオを自動生成して、パラメタを外部から与える仕組みを作れば、なかなかおもしろいかも。
来年に向けてのチャレンジ課題?

fuji_tttfuji_ttt2008/09/22 20:35モデルで入賞を狙うなら、これぐらいしないといけないかなと思ったけど、時間的に今年やるのは難しいなとも思った。

skelton_boyskelton_boy2008/10/05 15:28冒頭の製造ラインっての、プロダクトラインだよね。日本語にすると、気づかないなー。

fuji_tttfuji_ttt2008/10/05 15:50ああ、それは、普通の工業製品の製造ラインのことを指してました。

2008-09-19

RCXへのダウンロードが途中で止まる件まとめ

現象

大き目のプログラム(*.lx)をRCXにダウンロードするとき、途中で止まってしまうことがあった。

途中でダウンロードが止まるプログラムは、何度、ダウンロードを試行しても止まってしまう。

私たちのチームでは3台のRCXを使用していたが、そのうち1台は、まったくこの現象が発生せず、残りの2台で発生することがあった。

(現象が発生しやすいRCXと、発生しにくいRCXがあるようである)

対策1

ダウンロード用のコマンドでfarモード(--irmode=1)を指定する。

$ /brickos/util/dll --irmode=1 --tty=usb ./prog.lx

⇒ これにより、半分のケースでダウンロードができるようになった。

※周囲からの影響を受けないように、ダンボールで壁を作るという対処も同時におこなった

対策2

Prgmボタンを押しながらOn-Offボタンを押してOSを消去してから、

電池を抜いて30分程度放置して(本当は10分程度でよいらしいが念のため)、ファームウェアダウンロードからやり直し。

⇒ これにより、残り半分のケースでダウンロードができるようになった。

※その後、またダウンロードできなくなることもあったが、再度、同じ手順を実施するとダウンロードできるようになった

2008-09-18

モデルにおいてチャンピオンシップに向けて改善したい点

  • ユースケースをどのように見せるか再検討する(目的レベル、実現レベルで書きたい)
  • クラス図に属性や操作を追加する
  • シナリオの進行か各走行ロジックのステートマシン図を書く
  • ドメイン分割とドメインコミュニケーションへの話の持っていき方を再検討したい(現状のだと実は唐突すぎる?)
  • ショートカットやツインループをシナリオに含める
  • クラス図にOCLで制約を書く(関連が循環しているので制約を書いた方がよいと思う)
  • オブジェクト図はシーンの分岐も表現したものにしたい

※もう1つやってみてもいいかなと思う内容があるけど、それは、また別の日に書きます。

http://meganeboy.g.hatena.ne.jp/fuji_ttt/20080920

fuji_tttfuji_ttt2008/09/22 19:32追加。
・シーンが切り替わった状態を書いている部分(コミュニケーション図)は、Before&Afterで分けたい

skelton_boyskelton_boy2008/10/05 14:44追加:モデルとコースの対応関係とか

2008-09-17

ネットプリントを使ってみた感想

これまで書き逃してきたことについて

関東大会も終わって落ち着いてきたので、これまで書き逃してきたことを日記に書いていこうと思います。

まず、07/25の日記↓に書いていたネットプリントの感想です(提出モデルの印刷に利用しました)。

http://meganeboy.g.hatena.ne.jp/fuji_ttt/20080725

品質と注意事項

印刷品質(画質)はとてもよかったです。

ただし、A4のPowerPointファイルをA3に拡大して印刷したら、テキストボックスのサイズを小さく(画面上で文字がピッタリ収まるように)している部分で

改行されてしまったところがありました。レイアウトの崩れには注意が必要です。

料金

私が利用したときは、

  • A3カラー印刷は100円/枚
  • A3白黒印刷は20円/枚

でした。白黒でテスト印刷するとよいと思います(実際に私はそうしました)。

総合的に考えて

A3プリンタがない場合には、一番よい印刷手段だったと思います。

2008-09-16

関東大会2日目の結果

結果

メガネボーイズ総合優勝!!

キタ━━━ヽ(∀゚ )人(゚∀゚)人( ゚∀)ノ━━━ !!

びっくりです。うれしいです。

がんばった甲斐がありました。

ありがとうございました。

モデルとワークショップについては、れごぼくさんの日記にお任せして、

競技部門についてメモを残しておきます。

想定外だったこと

  • 試走でコースに1人しか入れなかったこと(コースがテープで囲ってあり、そこに入らなければO.K.だった)
  • 電池の消耗で1回走るごとに周回速度が大幅に変わること

改善方針

  • 1人で試走結果を記録できるようにした方がよいかも?
  • 試走で調整する項目を少なくする
  • 速度に影響されにくい戦略にするか、電池の消耗と周回速度の関係を調査する

skelton_boyskelton_boy2008/09/16 21:23おつかれさまです。試走会後に、チューニングで困る自体あったよね。
試走会でどういうことがあって、何を記録できたかとかメモしないと行けないなーと思った。

skelton_boyskelton_boy2008/09/16 21:24あ、改善についてだけど、試走で調整する項目を少なくするってのは賛成。
最後のやつは、今から戦略を変えるの難しいかなとも思うし、データ調査も難しいなーという印象、、、、どうしよ、

fuji_tttfuji_ttt2008/09/17 18:59お疲れ様です。
>チューニングで困る自体
試走で数周ほど走らせた後に「インコースを50秒で走りきらない」ってことがあって、、、走らせるごとに周回タイムが遅くなっていることに気がついて、、、電池の消耗が大きく影響すると判断したって感じだね。

fuji_tttfuji_ttt2008/09/17 19:06>今から戦略を変えるの難しいかなとも思うし
戦略と書いたけど、シナリオを変えれば対処できるよ。
ゴール後停止を坂道入口マーカーからの経過時間のみで行うようにすると、シーンの切替タイミングはかなり大雑把に調整できる。このシナリオにするためには、積極的マーカー検知走行の脱線を確実に抑える必要があるけど。

2008-09-12

オブジェクトとインスタンスの違い

オブジェクトインスタンスの違いについて自分なりに整理してみました(あくまでも自分の解釈)。

各用語の解釈

検証

観点1 : オブジェクト ⇒ [抽象化] ⇒ [具体化] ⇒ インスタンス
  1. オブジェクトは、抽象化してクラスを作ることができる
  2. インスタンスは、抽象化したもの(抽象的なもの)を具体化したものである

⇒クラスから具体化してオブジェクトを生成した場合、そのオブジェクトは、そのクラスのインスタンスである

観点2 : 抽象化できるもの ⇒ [抽象化] ⇒ [具体化] ⇒ インスタンス
  1. 何か抽象化できるもの(抽象的なもの)があるとする
  2. インスタンスは、抽象化したもの(抽象的なもの)を具体化したものである

抽象化したもの(抽象的なもの)があり、それを具体化したのなら、それはインスタンスである(オブジェクトに限らない)。

観点3 : オブジェクト ⇒ [抽象化] ⇒ [具体化(=インスタンス化)] ⇒ オブジェクト(=インスタンス
  1. オブジェクトは、物理的、概念的にまとまった一意の存在である
  2. クラスを具体化してオブジェクトを生成することができる

⇒クラスを具体化してオブジェクトを生成した場合、インスタンス化と呼ぶ。

観点4 : オブジェクト ⇒ [抽象化せず] ⇒ [コピー(≠インスタンス化)] ⇒ オブジェクト(≠インスタンス
  1. オブジェクトは、物理的、概念的にまとまった一意の存在である
  2. オブジェクトは、抽象化せず、コピーして新たなオブジェクトを生成できるとする

⇒コピーしてオブジェクトを生成した場合、インスタンス化とは呼ばない。

まとめ

と思う。

skelton_boyskelton_boy2008/09/12 22:18ふじさんはオブジェクトありきですかね?オブジェクト指向の原点である、プラトンのイデア論ではクラスありきな感じですよね。「世の中にあるりんごはみんな違うのに、なんでりんごだと認知できるのだろう?それは、頭の中に理想的なりんごがあるからだ!」のアレのアレです。

ベテランになると、クラスだけでいいらしいけど、やっぱオブジェクト主導の方がやりやすくて、分かりやすいよね。

fuji_tttfuji_ttt2008/09/13 11:00オブジェクト指向の原点がイデア論なのかとビックリした。
これって、イデア論に当てはめて説明されることがあるってことだよね?
僕は、クラスを使うもの以外にも、おもしろいオブジェクト指向がいっぱいあると思っているので。

skelton_boyskelton_boy2008/09/13 13:36オブジェクト指向のクラスとインスタンスに関しては、イデア論そのものだと思うな。
オブジェクト指向はそれ以外にも、いろいろ概念があるので、イデア論だけではないけど。

fuji_tttfuji_ttt2008/09/13 18:40なるほど。確かにクラスを使ったオブジェクト指向はイデア論だね。

2008-09-08

RCX上の時間と実時間

RCX上の時間と実時間には大きなずれがあると思っていたけど、僕が使っているRCXでは、ほとんど同じみたい。

RCX上の時間で50秒ほど走った後にビープ音が鳴るようにして、測定した結果を以下に示します(ストップウォッチで記録した時間)。

  • 1回目=50.44秒
  • 2回目=50.59秒
  • 3回目=50.45秒
  • 4回目=50.57秒
  • 5回目=50.54秒

2008-09-06

本番シナリオ案

第2回試走会が終わり、しばらくたってから、再度、本番のシナリオを考えてみました。

ふじの案をアップしときます。

f:id:fuji_ttt:20080906180238p:image

2008-08-23

提出モデル5枚目 右半分の概略

ゴール後停止とゴール後停止リトライシーンについてです。

f:id:fuji_ttt:20080822192054p:image

やはり、スペースが足りない。。。

2008-08-22

各シーンについて整理してみた

f:id:fuji_ttt:20080822191700p:image

走行ロジック側から次のロジックに切り替えるタイミングを知らせる必要も出てきたね。

戻り値がtrueだったら、その走行ロジックは完了したものとして扱うのがいいかな。