Top
About
Profile
Log
Report
Link
Blog

ETロボコン開発:日々の記録(6月前半)

ETロボコンの開発にあたり,開発記録を残すことは重要であると感じました。
そこで簡単でありますが日誌のような形式でまとめることにします。
前の月(4-5月)へ   次の月(6月後半)へ

6月4日

ロボット野郎の私としては,実走行もせずに試走会へは望めない。
やはり勝つためには実コースに近い環境でのテストは必須です。
そのため,コース作りを決行。
また,ETロボットのMLにて,チーム「ムンムン」さんの意見が得られる。
大会参戦記があんなに充実しているなんて知りませんでした。
HPを参照すればわかりますが,かなりの情報量。
しかも昨年度の走行優勝チームのムンムンさんは素晴らしい情報がたくさん。
「こんなに情報を出しちゃうと足元すくわれちゃいますよー♪」
とか冗談のような本気で言いつつ,情報には非常に感謝し,コース作り。

なお,発泡スチロールは高いので,画用紙を流用。
さらに,坂道も適当に安そうなのを最大流用。

ちなみに材料。
なるべく安く!(今回は3千円くらい?) コース作成材料

作業すること3~4時間にて完成!(アウトコースのみですが)
いい感じ♪ 完成コース

坂道もしっかり再現。
急すぎたことが試走会では判明・・・ 坂道

ショートカットまで完備!
アウトコースだけ気合入れています ショートカット

このコースにて問題点を見つけつつより良いモデルを作成することが目的。
(今のところアウトコースだけですが・・・)
ここでやっとロボット派の僕の役目がやってくる。
目標はショートカット(点線)の突破。

1日で出来るものか?
→「出来る,出来ないじゃない,やるのだ!」という信念が重要なのです。

実際にはアルゴリズムは単純なもので外乱に強いものをイメージ。
頭の中に思い描いているものをいくつか実装する。
この際,先週までにある程度「武器」となるクラスがいくつも設定されているので
制御の追加の時間が物凄く早い!

直線通過だけの状態からコースを回ることの可能なプログラムに加え,
ショートカット通過の目処をつけることが出来た。
事前準備と開発手法が見事にかみ合った瞬間でした。

6月5日

さあ,本日は試走会。

自作コースとかなり似ていてGOOD! 試走会コース
調整しまくったアウトコースの走行能力のみで参戦。
しかも,情報を頂いた「ムンムン」さんも同じ時間帯でやる気度MAX。
こいつら「すげー」と言われることを目標に,走行練習を行う。
(本当の目的はコースのセンサ値の評価や,実走行での調整です)

ちなみに,コースの周りをバタバタと走り回っておこられました。
実行委員の皆様ごめんなさい。m(_ _)m
大切なコースを傷つけないようにすることが大事ですよー。

なお,「ムンムン」さんはインコースのオフロード越えを現時点で完成済み。
(越えた瞬間はみんなで「おぉー!」という驚きの声があがっていました)
負けじと点線越えを行う「あまがさきつうしんぶ」(これしか出来ませんが・・・)
このアルゴリズムは,東京行きの飛行機の中で突如思いついたもの。
僕の信念は,「制御は必要となったときに考えろ!」です。
まずは動くもの。問題は根本的な解決を探してから最後に制御に至るべき。
ただ,今回の制御はいきなりうまくいったので,作った本人もびっくりでした。

調整時点での最短時間は,なんと32秒!! 証拠
この状態を維持していきたいです。(既に運を使い果たしたか・・・)

また,実装が即座に出来たのは,モデルがしっかり出来ていて,
必要な機能をすぐに取り出せたため。
開発方法による長所を全て生かすことが出来たと思います。

試走会中は,クラッシュ などの迷惑をかけてしまいました。
申し訳ありませんでした。
(ちなみに,こちらが勝ちました←ロボット相撲でないので意味無し)
「競技が違います」といった突っ込みが入りました。

ちなみに今後の目標は,「インコースの実力もアップすること」となりました。
目指せ完全優勝!?です。

6月11日

土日しか作業が出来ないわがチーム。
今回も引きこもりにより機能追加を目指す。
目標は「インコースの走破」として,まず「漆黒線判定アルゴリズム」の作成。
特に,インコースは漆黒線を利用した状態遷移を行い,シーケンシャルな走行が
出来たらいいなーとか思っています。

最初の目的は「漆黒線判定で状態遷移をして停止すること」。
単純だがとても重要な目標です。

漆黒線判定は単に閾値を設定するのみでは誤判定が生じる可能性があるので,
いろいろと対策を考案。
それなりに複雑な内容となってきているので,本当に正しく動くか不安でもある。

今回はあまり見せるものが無いので,開発環境をば。
詳細は写真ではあまり見せていませんがこんな感じ。

素晴らしい環境?やはりクリックしても大きくはならない eclipseを利用した
開発環境

「eclipse」という統合開発環境を今回のGNU C++の開発に適用しています。
さらにテスト駆動開発を行うための「CPPUNIT」を準備。

ただし,このままではBrickOSのAPIを含めたコンパイルは出来ないので,
#ifdefを使用して,「テスト駆動開発」と,「実走行」のコンパイルを分離。
LEGOに実装する最終コンパイルはCYGWIN上で行います。

テスト駆動開発では,まず実際のコードを書く前にテストを書きます。
コンパイルすると当然エラーが生じる(実体が無い)ので,そこで実コードを追加。
実コードの追加によりテストがOKとなることを確認して次のテストへ移行します。

この際,必ずコンパイル,テスト実行をするので,書いた内容にバグがあるかどうかを
確認しながら作業を進めることが出来ます。

また,テストを考える際に,考えて設計を行うため,よく練られた内容となる。
といった品質的に良い点があると考えられます。
今回は,大きな問題が発生することなく順調に開発が進んでいるのは
この開発手法がかなりの部分で関わっているのではないでしょうか?

6月12日

引きこもりPART2。
まずは武器の追加をするため,漆黒線の安定した判定をする機能を追加。
いろいろと考えながら機能に手を加える。
いまいち完璧では無いような気がする。外乱::自然光は手ごわいぞ!

今週はオフロード中心と考えていたので,大コースの設置はせずに,
オフロードと漆黒線のみのミニコースにて調整。
画用紙,ビニールテープのみの構成なので,作成は簡単。

作成時間は10分程度 オフロード+漆黒調整用
ミニコース

オフロードは完璧に通過が非常に困難な難関である。通過の確率が低い,
その割には通過できるときもあり,一定の挙動を取らないため,対策も講じにくい。
ひとまず目標の漆黒判定+状態遷移にて通過してみる。

・漆黒判定にて状態遷移
・とりあえず通過する
・通過後の漆黒線にて停止

が,怪しげながら完成。 こんな感じ
現状は特にオフロードだからといった特別な制御は無しです。

後は,テスト走行でのひらめき的な制御に期待ですかねー?
モデルも作んなきゃいけないと思いつつ,次の土日までお預け・・・残念。

6月13日

何かが足りない。
ひたすら何かが足りないと思っていたが,突然はっと気付いた(思い出した)。

「TO BE バカ」。バカになれということ。

ロボットの競技会では,よく勝負を度外視にして変な機能をつける人が多い。
一言,「バカだけどスゲー!」と思わせる人が多い。
特に趣味的に参加しているのに真面目にやりすぎている気がする。

みんなを楽しませることも重要なミッションです。
それにはバカなことに力を費やすことも必要。むしろ必須。
時間が無いので目標に一直線!という感じでしたが,遊び心を忘れてはいけない。
仕事じゃ「余計なものはいらない」とか言われそうだけど,
その遊び心が新しい力を生み出すもの,と根本的に思っています。

つまり,忙しいけど何か変な追加機能を入れたいなー。と思いましたとさ。
さて,何か出来ないかな?

↓は本文と関係ないけど提出用にと考えていたモデル(制御説明用)
秘密事項?なので大きくは出来ません 提出用?
説明スライド


前の月(4-5月)へ
次の月(6月後半)へ
  戻る

ど素人製作所 サイト管理人:みずの 詳しくはprofileで。どうやらIE推奨のようです。
メールアドレス:
間違っている部分は非常に多いはずですので, 気付いたら容赦なく指摘してください.