2011年4月26日火曜日

活動4回目

レギュレーション出ず。。。

きっとゴールディンウィーク明けです。来月からがんばりましょう。

===

今日は難所(シーソー、階段、坂道)を上司から頂き、
早速組み立てて、挑戦しました!

先ずは最初のシーソーをクリア!(リモコンで)
そして、次は階段をクリア!(リモコンで)
更に、坂道をクリア(リモコンで)

まぁ、特に攻略法を見出したわけじゃないですが、人為的操作であれば結構簡単にクリアできるんだということがわかりました。
過去の大会結果を見たら、難しいんだろうなぁ。。。とみんな悩んでたけど、今日の結果で、みんなの目に輝きが戻ってきました。

上司からも、PID制御を使えば攻略できるんじゃない?みたいなアドバイスも頂き、
旋回値だけでなく、速度についてもPID制御を使うことなども検討材料に増えました。

I値を使って、急激な速度変化を抑え、P値を使ってブレーキをかけるなど。
PIDって色々使えるんですね。全然なんに使うもんか知らない状態から、結構理解が高まってきました。(まだまだまだですけどね。)

難所攻略方法の雲行きは上々です。

2011年4月19日火曜日

活動3回目

活動3回目。

まだ、レギュレーション出ません。。。これはGW後かな。。。

===

ブルートゥースについてちょっと学んだので、情報公開。
-----ブルートゥース情報-----
■受信
最初の2バイトに不必要なデータが入っている。(恐らくは送信回数?)
なので、2バイト読み捨ててから、走行体が送信したデータ分を読み込む必要がある。
■送信
最初の2バイトにデータサイズを設定しないと送信できない。
ただし、ビッグエンディアンであり、ヘッダサイズ(2byte)は含めない。

適当ですが、詳細はもうちょっと学んだら公開しようかなと。


今日はついにモーターの調査を行いました。

合計8種のモータを調査。この結果を元に精度がそろうモータを左右につけたいと思います。

30秒の回転数の計測結果(小数点.1以下を四捨五入)
-----モータのエンコーダ値-----
A : Rotate    12331
B : Rotate    12354
C : Rotate    12529
D : Rotate    12282
E : Rotate    12477
F : Rotate    12596
G : Rotate    12604
H : Rotate    12938
それにしても結構変わるもんですね。。。
ということで、F,Gのモータを採用。(完全停止用のモータはどうでもいいので。)

早速これをつけてみて、まっすぐ走れるのかテスト。

画像は用意できませんが、過去と比べるとかなり精度があがりました。
やはり、モータ毎の性能差は影響が大きそうです。

 まだ色々やりましたが、続きはまた明日。

2011年4月12日火曜日

活動2回目

ロボコン活動はじめて第二週です。

そろそろ、レギュレーションでるかなと思いきや、何も変化なし。
(説明会資料には4/上旬って書いていたのに。。。地震の影響なのかな。でも去年は普通に下旬まで出なかったらしいけど。)


ということで、まだ戦略とかの話はならないです。


さすがに、今日もひたすらサンプルでテストってのも退屈でしょうし、
今後の進め方をどうしようかと話し合いました。


が、、、んーどうしましょう。てな具合です。戦略も考えにくい状況ですしね。
という訳でとりあえず、やらないとはいけない事を項目だしして、各自研究してフィードバックしていきましょうということに。

TODOリストはこんな感じです。
  • C++に慣れる
  • BlueTooth通信 
  •  ・受信
  •  ・送信
  • ライントレース制御
  •  ・PID制御
  •  ・安定性のチューニング
  •  ・スピードのチューニング
  • 難所攻略
  •  ・シーソー攻略
  •  ・階段攻略
  •  ・エニグマ攻略(これはルールが変わりそうなのでまだ不明)
  •  ・ガレージイン攻略(これは存続されるか不明。基本全部存続なのであるとは思うが)
  • モデル
  •  ・UMLお勉強
  •  ・ブロック線図お勉強
  •  ・ユースケース
  •  ・クラス
  •  ・振る舞い


とりあえず、こんなとこです。



~~~今日やったこと~~~


サンプル試しも飽きてきたので、そろそろ1からプログラムを作ってみることに。(C++にも慣れないといけないので)
それにしても、久しぶりなせいか色々わすれてますね。

とりあえず、API名をすべて忘れており、仕様書とにらめっこでプログラム作るのが辛い。。。
「サウンド鳴らすAPI名なんだっけ?」「sound_toneだよ」みたいな感じで、やってました。
これこそチームワークっす。


あと、走行体に送信するshファイル間違えて、ファームウェアぶちこわしちゃいました。(biosflush.shってのを送信したらなぜか初期化状態になってしまった。)
皆さん混乱させて申し訳ありません。(ちゃんと修復したので大丈夫です。)

まぁ、今日でだいぶ慣れてきたので、勘は取り戻せたかな?

BlueTooth やら超音波センサーを使ったサンプルプログラムも試しに作成したので、
これで一応、一通り必要な機能の理解?はできたかと。

次回こそはレギュレーション確認して、しっかり目標を決めたいなぁ。(でるのかなぁ。。。)

2011年4月9日土曜日

自動制御

今日はお花見。なんか7時にお迎えということで早起き。

そして雨。中止。。。

===

どなたからかわかりませんが、PIDについて参考になるサイトをメールでいただきました。(ありがとうございます。助かります。)

http://monoist.atmarkit.co.jp/mn/articles/1104/04/news005.html

実はこのシリーズ読んだことあるんですが、最初、数式を使わないで自動制御が知れるという説明だったのに、だんだん数学使ってくるから(てか途中から完全数学のお話)意味がわからなくて挫折しちゃったんですよね。。。

最近、3Dグラフィックスについて勉強していて、数学もある程度勉強したので、今なら少しはわかるのかな。がんばって解読してみます。

が、無理でした。。。

ほとんど数式だらけ。
しかも、どうやらラプラス変換の知識がないとお話にならない様子。

1から読み進めていかないと理解できないようなので、これについてはおいおい解析したいと思います。

今日はこのサイトを見て、いろいろ思いました。
http://www.ogis-ri.co.jp/otc/hiroba/technical/ETRoboconTokyoRengo/ETRoboconTokyoRengo_1/index.html

ブロック線図の習得は必須
ブロック線図とは、自動制御系の中での信号伝達のありさまを表す線図です。

↓こんなの
http://ysserve.wakasato.jp/Lecture/ControlMecha1/node10.html

ライントレースを研究する上では、いろんな人達の手法を理解したいですしね。
ブロック線図について学んでみたいと思いました。

しかも、モデリングとしてもブロック線図はポイントが高い模様。これは学ばない訳にはいかないですね。

高度な制御理論は必要ない
2011年度はどうなるかわかりませんが、時間をかけすぎるのはよくないと言われますし、制御理論の追求もほどほどにしておこうかな。とりあえずPIDから進めて、なんか気づいたら改良していくみたいな形にしようかな。

短期開発ではできることに集中する
確かに、考え出したらきりがない世界なので、どれにしようか悩んでたら時間がいっぱい過ぎていくんですよね。2ヶ月とか、ぎりぎりの期間ではないですが、「できることに集中する」という意識は時折思い出すように心がけておきたいですね。

「モデルの書き方」では、マイナス評価をもらわないことが大切
たしかにプラス評価をもらう気持ちで書いたら、だいたい自己満な資料が仕上がっちゃいますからね。資料作成の基本、「読む人にあわせる」を考えると、今まで興味をもって読めた上位チームの資料の書き方に沿ってやるのが無難なんでしょうね。

2011年4月5日火曜日

初活動

今日は初の開発活動。

開発言語はモデリングをやりやすく、C++を使おう。てことになりました。
但し、過去にC言語でやっていたため、考えていたより時間がかかっちゃうってなことが発生しそうです。(あまりに無理そうだったらCに戻そうという話ですが、その判断までに時間がかかるとまずそう。。。)

レギュレーション発表も未だで、作るべき目標が見えないってことで、
あとは特に話し合いもなく、各自、自由研究です。

Kさん、H君は未経験者のため、サンプルプログラムでお勉強。
まずはNXTのAPIを色々試してもらって、どうやって動かすのか、倒立振子ってどうなってんの?ということを学んでいました。
とりあえずON/OFF制御でライントレースするとこまでやってました。
ここまでくれば、走行制御の難しさが理解でき、ある程度、走行理論を考えるイメージが沸いてくるのでは?
また、これを楽しそうにやっていたので後々楽しみです。どんどん知識つけたってください。

S君は最適なモーターの組み合わせを研究するということで、そのデバッグ手法を考えるそうです。(なんかNXTのモーターって個々で少し性能差があるみたいなんです。。。)
その成果で、今日は早速ツールを作ってました。
過去にも作っていたツールですが、NXT走行体の走行軌跡のログをとったり、NXTをその通りに走行させるためのソースを抽出したりする優れものです。
それを誰でも簡単に使えるよう、今回の活動で改良していくそうです。がんばってください。

===

後は私事。
ライントレースについて研究。
ライントレースは過去に適当に学んだけれど、全く説明できる程の知識はないです。
今回の大会ではかなり重要になりそうなので、更にレベルを上げるためにしばらく研究してみます。

まずは基本から学ぼうかと。下記がとても参考になります。
http://monoist.atmarkit.co.jp/fembedded/articles/etrobo/01/etrobo_01b.html


ライントレースには光センサーとサーボモータが必要。

サーボモータは、その名のとおりただのモーターで、APIにスピードを入力して回転させます。
サーボモータはNXT走行体の左右についており、左右のスピードを調整して曲がったり、直進したり、バックしたりできます。

光センサーは光量を感知するセンサー。(光量とは光センサーのAPIを使用して取得する値です。)
光センサーAPIを使用して黒を検知すれば、高い値(700くらい)を取得、白を検知すれば、低い値(600くらい)を取得します。

つまり、この光量が常に高い値になるよう、モータを調整して走らせてやれば、ライントレースができるということです。



ちなみに簡単なライントレースは以下のような感じ。

 


このライントレースを行うためのシステム制御理論に、古典制御、現代制御、ポスト現代制御というものがあり、たぶん一番有名と思われるPID制御が古典制御らしいです。

PID制御を引き続きチューンナップすることを考えていましたが、なんか色々制御理論が見つかったのでどれがよさそうか詳しく調べてみたいと思います。
またこれが非常にたくさんあるので、しばらくかかってしまいそうですが、ライントレースは重要!ということでがんばりたいと思います。

とりあえず、今日はここまで。

2011年4月3日日曜日

はじめまして

はじめまして。


ETロボコン2011参加することになりました。関係者、および参加者の皆様よろしくお願いいたします。

このブログでETロボコンに関する活動記録を残してこうと思います。
(今後のロボコン参加者に参考にしてもらえるようなものになればいいなぁ。。。)

===

正式なレギュレーションはまだ発表されていませんが、4月より開発をはじめることになりました。(ていうか他の参加者から見れば行動遅すぎなのかな?)
週に一日使って開発を行っていきます。(これもどんなもんなのかな。多いのか少ないかもわからないです。)

正式なレギュレーションは出てないものの、ある程度のことは決まっているとのこと。

参考:説明会資料
http://www.etrobo.jp/2011/taikai/setumeikai.php

「競技内容」
  • 基本的な競技内容は継続・・・ コースをタイムアタックエリアと難所チャレンジエリアの2ステージに分離
    • タイムアタックエリアには難所を置かず、ライントレースの性能を競う
    • 難所チャレンジエリアには、各種難所を置き、難所をクリアするための制御を競う
    • 競技結果は、タイムー難所クリアボーナスで決める
  • 難所は一部のみ変更
  • シーソー、階段、坂道、ガレージは、2010年仕様を継承する
  • ミステリーサークルは、超音波センサを使用する新たな難所に変更する
  • 走行体仕様を一部変更する

コースはあまり変えず、ルールを大幅に変更するようです。
去年の東海地区大会を見たけど、難所ミス多発でしたからね。。。これなら挑戦者が損を見るということもなくなりそうです。ガンガン挑戦していきたいと思います。

難所はほぼすべて引き継ぐみたいですが、確実な攻略理論はまだ確立されていないということなのかな。とりあえず難所攻略のために去年の情報が重要になりそうです。いろいろ調べてみないと。(てかその前にまずライントレースの理解からかな。)


「走行体」
  • 転倒時の走行体保護
  • 部品取り付け部の強化
  • 見た目/使い勝手の改善
  • 走行体自身による完全自立停止⇔バランス走行切替え
  • 参加者が用意した任意の機器(例. PC, スマートフォン…)との競技中のBluetooth通信を許可

走行体も大分変化。一番の変化は完全停止機能。
あの意味のわからない尻尾が、モーターで動かせて、機体を支えられるとのこと。

何に必要なのだろう、と思ってたらなんとBluetooth通信許可というルールが追加されて、条件が完全停止。

シーソー、階段で重要になるのかな。難所手前の機体の状態が重要になりそうだし。
これは使う人、使わない人でけっこう分かれそう。使うか使わないかは未だわからないけど、どっちにしろモデルで理由を求められるだろうなぁ。。。(使ってみたかったからという理由にはならないようにしよっと)

開発スタートは4/5から。とりあえず今は情報収集だけです。