TADAです.
2017/3/26(土)~27(日)に,岐阜県中津川市でジャパンオープン2017が開催されました. 僕たちは,関東ブロック選抜チーム"Mavericks"として参加してきました.
今年のジャパンオープンは,スイスリーグ全10試合トーナメントで順位付けを行いました.
スイスリーグは,Hefeiの世界大会で採用されていた順位付け方法で,初戦をくじ引きで決め,以降は勝ったチーム同士と負けたチーム同士,なるべく実力の近い順で試合を行い,順位付けをしていくリーグ方式です.
このリーグ方式では,試合数が多いほうが順位の精度は上がりますが,今年のジャパンオープンは試合数を確保するために試合時間が4分ハーフと短く,いつも以上に慌ただしい雰囲気になっていました.
チームMavericksの結果は総合7位/32チームと,残念な結果に終わりました.
4月で誕生日を迎える僕にとっては,今年が最後の参加だったので,最後の試合で思うような結果が出なかったことはとても悔しいです.
ただ,ここ3年間出場した中で初めて,ベストプレゼンテーション賞を頂くことが出来ました.
自分はプレゼンテーションに凝ったことが無かったので,こうして一度プレゼンに凝る機会ができて良かったです(一晩で書き上げたのは確かだけど最終的なクオリティが評価されたから問題ないt...).
今年のプレゼンテーションです.
今大会のプレゼンテーションを書くにあたって,今まで書いていた内容を少し改めてみました.
今までのプレゼンテーションでは「どんな部品を使いました」とか「こんな凄い機能を載せました」というのを主に書いていましたが,今年は「なぜその部品が必要になったのか」「どうしてそのすごい機能を載せる必要があったのか」を主に書くことにしました(実際そうなっていなかったりしますが).
向かって右側半分は僕が担当した部分ですが,
・マシンのコンセプト(何に特化したか・どんな事が可能なよう設計したか)
・それぞれの機能には「なぜその機能を実装したか」
を明確に書いています.
他にも,我々のチームは,メンバーそれぞれが東京と香川という離れた場所で活動しているため,その連携の方法や工夫についても書きました.Gitを使ったソースコード管理については,後日また紹介したいと思います.
まず「ハードウェアに時間をかけすぎてソフトウェアが間に合いませんでした」がHefei世界大会から引き続きついに3度目となってしまいました.
つまり初年度以外全部ダメなまま卒業を迎えてしまいました.
同じミスは1度まで,が基本である以上,ここまで繰り返して同じミスを繰り返すのは本当に反省すべきことです.ただ,余りにもここまで繰り返している以上,何か根本的な所で勘違いをしている可能性があるので,少し振り返って整理してみることにしました.
小学校6年の時に,ABS樹脂をヤスリで削って作った二足歩行ロボットです.
廉価版のサーボモータとコントローラを大人の方に譲っていただいたのがきっかけです.
確かこれが4代目くらいの2足ロボだったと思うので,開発自体はずっと前からやっていたと思います.
上のロボットの数週間後に,股関節や上半身の構造がバトル仕様にモディファイされたのがこのマシンです.今思えば頭おかしい開発スピードですが,この頃は時間があったんだと思います.
その数カ月後に生まれたのがこいつで,一応全国4位を持っています.
相変わらずCNCは使わず,Sakra-CADという無料2D-CADで設計した図面をABS樹脂にペタペタ貼ってノコギリで切り出してパーツ作ってました.
その後もロボットを作り続けたんですが,新しいロボット(向かって左 2012年製)というのはだいたいボツになってしまって,結局自分の中でのベストは,写真右のロボット(2011年製)のままでした.
中には闇に葬り去りたいくらいの失敗作もあったりします.
これは確か2011年後半にROBO-ONE参加のために作ったロボットで,色々詰め込んでみたはいいけど全然動かなかった失敗作です.
で.
今までの3年間のRCJ参加を振り返ってみると
初年度,とりあえず何も知らずスタンダードなマシンを組んみました.
それが良い方向へ働き,日本優勝しました.
Hefei世界大会モデル
なぜ2ヶ月で2台も作り直せたのか,今でもよく分からない(実際留年しかかったし睡眠障害になってたしかなり無理してたとは思う)です.
・新しくCFRPというチート材料に手を出しました.
・ビジュアルに凝ると友達が増える気がして,デザインに物凄く凝ってみました.
・マルチマイコンをきちんとやってみたかったので,マイコンを増やしてみました.
・Y字配置のラインセンサをやってみたかったので,やってみました(これは大失敗).
・板キッカーを搭載してみました,これは攻撃力が高くて気に入りました.
この年は大失敗だったのですが,主にチーム運営に失敗していました.
・左右ともドリブラーを搭載した
・左のマシンはLCDを搭載してユーザーインターフェースを強化してみた
・左のマシンは位置推定を初めて導入してみた
・右のマシンはSPIを使って高速通信にチャレンジしてみた(大失敗)
・右のマシンはマウスセンサを搭載してみた(結果使わない)
・右のマシンはラインセンサを増やしてみた(結果読めない)
これが最後のマシン
・メインバスにRS-485を採用し,ディジーチェーンを使ってシステムを簡略化しようとした(結果全部UARTに置き換えになった)
・キッカーを2つ搭載して自由な軌道で攻撃できるようにした
・ショックアブソーバーをドリブラに挟んでみた
・2相オムニホイールを搭載してみた
・タッチLCDを搭載してみた(未実装)
・全方位カメラを搭載してみた(一応動いたけど未実装)
・ラインセンサの配置を変えてみた(これは成功っぽい)
RS485に関しては,オシロスコープを一台も持たずに通信系を開発しようとしたのが馬鹿でした.
他にも,色々詰め込みすぎたせいで重量制限に引っかかり,それの改修に大幅に時間を使ってしまい,今回の結果に繋がりました.
・・・と,このように振り返ってみて
二足でやっていた事は,「何か不満があれば作り直す」ことと,「なにか新しいことを毎回やる」ことです.今までやったことが無いことをやってみるというのは,とても難しいことですが,何かしら新しい発見があり,失敗があればそこから学ぶことができていたと思います.
ただ,それをRCJで同じことをしてしまったのが失敗な気がします.
RCJは,自律型ロボットの競技大会です.
ラジコンで動く二足ロボとは違い,プログラムを書かないと動きません.
一つのハードウェアに向き合ってソフトを書く時間があまりにも短すぎたかなと反省しています.
それは,僕がソフトウェアが大嫌いであることと,ハードウェアを作る事が大好きである事が相重なって,そうなってしまったのだと思います.つまりのところ,一つのロボットでソフトウェアを煮詰めるということをしないから,初年度以降結果が出ない訳です.
じゃあ,自分のコンセプトは一体何だろう?
これは,親にも散々怒られたのですが「アナタは何をしたいのかが曖昧だ」 と言われました.
一応自分の中では「お金を出してもらっている以上は勝たないと」と思っているつもりでしたが,もし本当にそう思っているのであれば,初年度のようなスタンダードなマシンに腰を据えて(嫌々ながら)プログラムを書いていると思うので,根本的に自分の中で何をしたいのか定まっていなかったんだと思います.
もう少しして,気持ちの整理がついたら結論が出ると思うんですが
少なくとも,勝って世界大会へ行くぞーと言うよりかは,面白いものを作るぞーとか,今までにないロボットを作るぞ-っていう方に走っていたと思うので
そこら辺の気持ちの整理がついたら,「自分は何がしたかったんだろう」という記事を書きたいと思います.
後半非常にグダグダな文章になってしまいましたが
今後,マシンの詳細や,全方位ミラー,IMUの技術情報について書いていくつもりです,では.
2017/3/26(土)~27(日)に,岐阜県中津川市でジャパンオープン2017が開催されました. 僕たちは,関東ブロック選抜チーム"Mavericks"として参加してきました.
大会の模様と結果
今年のジャパンオープンは,スイスリーグ全10試合トーナメントで順位付けを行いました.
スイスリーグは,Hefeiの世界大会で採用されていた順位付け方法で,初戦をくじ引きで決め,以降は勝ったチーム同士と負けたチーム同士,なるべく実力の近い順で試合を行い,順位付けをしていくリーグ方式です.
このリーグ方式では,試合数が多いほうが順位の精度は上がりますが,今年のジャパンオープンは試合数を確保するために試合時間が4分ハーフと短く,いつも以上に慌ただしい雰囲気になっていました.
チームMavericksの結果は総合7位/32チームと,残念な結果に終わりました.
4月で誕生日を迎える僕にとっては,今年が最後の参加だったので,最後の試合で思うような結果が出なかったことはとても悔しいです.
ただ,ここ3年間出場した中で初めて,ベストプレゼンテーション賞を頂くことが出来ました.
自分はプレゼンテーションに凝ったことが無かったので,こうして一度プレゼンに凝る機会ができて良かったです(
今年のプレゼンテーションです.
今大会のプレゼンテーションを書くにあたって,今まで書いていた内容を少し改めてみました.
今までのプレゼンテーションでは「どんな部品を使いました」とか「こんな凄い機能を載せました」というのを主に書いていましたが,今年は「なぜその部品が必要になったのか」「どうしてそのすごい機能を載せる必要があったのか」を主に書くことにしました(実際そうなっていなかったりしますが).
向かって右側半分は僕が担当した部分ですが,
・マシンのコンセプト(何に特化したか・どんな事が可能なよう設計したか)
・それぞれの機能には「なぜその機能を実装したか」
を明確に書いています.
他にも,我々のチームは,メンバーそれぞれが東京と香川という離れた場所で活動しているため,その連携の方法や工夫についても書きました.Gitを使ったソースコード管理については,後日また紹介したいと思います.
振り返り
振り返ると,反省すべきことは山のようにあるのですがまず「ハードウェアに時間をかけすぎてソフトウェアが間に合いませんでした」がHefei世界大会から引き続きついに3度目となってしまいました.
つまり初年度以外全部ダメなまま卒業を迎えてしまいました.
同じミスは1度まで,が基本である以上,ここまで繰り返して同じミスを繰り返すのは本当に反省すべきことです.ただ,余りにもここまで繰り返している以上,何か根本的な所で勘違いをしている可能性があるので,少し振り返って整理してみることにしました.
小学校6年の時に,ABS樹脂をヤスリで削って作った二足歩行ロボットです.
廉価版のサーボモータとコントローラを大人の方に譲っていただいたのがきっかけです.
確かこれが4代目くらいの2足ロボだったと思うので,開発自体はずっと前からやっていたと思います.
上のロボットの数週間後に,股関節や上半身の構造がバトル仕様にモディファイされたのがこのマシンです.今思えば頭おかしい開発スピードですが,この頃は時間があったんだと思います.
その数カ月後に生まれたのがこいつで,一応全国4位を持っています.
相変わらずCNCは使わず,Sakra-CADという無料2D-CADで設計した図面をABS樹脂にペタペタ貼ってノコギリで切り出してパーツ作ってました.
その後もロボットを作り続けたんですが,新しいロボット(向かって左 2012年製)というのはだいたいボツになってしまって,結局自分の中でのベストは,写真右のロボット(2011年製)のままでした.
中には闇に葬り去りたいくらいの失敗作もあったりします.
これは確か2011年後半にROBO-ONE参加のために作ったロボットで,色々詰め込んでみたはいいけど全然動かなかった失敗作です.
で.
今までの3年間のRCJ参加を振り返ってみると
初年度,とりあえず何も知らずスタンダードなマシンを組んみました.
それが良い方向へ働き,日本優勝しました.
Hefei世界大会モデル
なぜ2ヶ月で2台も作り直せたのか,今でもよく分からない(実際留年しかかったし睡眠障害になってたしかなり無理してたとは思う)です.
・新しくCFRPというチート材料に手を出しました.
・ビジュアルに凝ると友達が増える気がして,デザインに物凄く凝ってみました.
・マルチマイコンをきちんとやってみたかったので,マイコンを増やしてみました.
・Y字配置のラインセンサをやってみたかったので,やってみました(これは大失敗).
・板キッカーを搭載してみました,これは攻撃力が高くて気に入りました.
この年は大失敗だったのですが,主にチーム運営に失敗していました.
・左右ともドリブラーを搭載した
・左のマシンはLCDを搭載してユーザーインターフェースを強化してみた
・左のマシンは位置推定を初めて導入してみた
・右のマシンはSPIを使って高速通信にチャレンジしてみた(大失敗)
・右のマシンはマウスセンサを搭載してみた(結果使わない)
・右のマシンはラインセンサを増やしてみた(結果読めない)
これが最後のマシン
・メインバスにRS-485を採用し,ディジーチェーンを使ってシステムを簡略化しようとした(結果全部UARTに置き換えになった)
・キッカーを2つ搭載して自由な軌道で攻撃できるようにした
・ショックアブソーバーをドリブラに挟んでみた
・2相オムニホイールを搭載してみた
・タッチLCDを搭載してみた(未実装)
・全方位カメラを搭載してみた(一応動いたけど未実装)
・ラインセンサの配置を変えてみた(これは成功っぽい)
RS485に関しては,オシロスコープを一台も持たずに通信系を開発しようとしたのが馬鹿でした.
他にも,色々詰め込みすぎたせいで重量制限に引っかかり,それの改修に大幅に時間を使ってしまい,今回の結果に繋がりました.
・・・と,このように振り返ってみて
二足でやっていた事は,「何か不満があれば作り直す」ことと,「なにか新しいことを毎回やる」ことです.今までやったことが無いことをやってみるというのは,とても難しいことですが,何かしら新しい発見があり,失敗があればそこから学ぶことができていたと思います.
ただ,それをRCJで同じことをしてしまったのが失敗な気がします.
RCJは,自律型ロボットの競技大会です.
ラジコンで動く二足ロボとは違い,プログラムを書かないと動きません.
一つのハードウェアに向き合ってソフトを書く時間があまりにも短すぎたかなと反省しています.
それは,僕がソフトウェアが大嫌いであることと,ハードウェアを作る事が大好きである事が相重なって,そうなってしまったのだと思います.つまりのところ,一つのロボットでソフトウェアを煮詰めるということをしないから,初年度以降結果が出ない訳です.
じゃあ,自分のコンセプトは一体何だろう?
これは,親にも散々怒られたのですが「アナタは何をしたいのかが曖昧だ」 と言われました.
一応自分の中では「お金を出してもらっている以上は勝たないと」と思っているつもりでしたが,もし本当にそう思っているのであれば,初年度のようなスタンダードなマシンに腰を据えて(嫌々ながら)プログラムを書いていると思うので,根本的に自分の中で何をしたいのか定まっていなかったんだと思います.
もう少しして,気持ちの整理がついたら結論が出ると思うんですが
少なくとも,勝って世界大会へ行くぞーと言うよりかは,面白いものを作るぞーとか,今までにないロボットを作るぞ-っていう方に走っていたと思うので
そこら辺の気持ちの整理がついたら,「自分は何がしたかったんだろう」という記事を書きたいと思います.
後半非常にグダグダな文章になってしまいましたが
今後,マシンの詳細や,全方位ミラー,IMUの技術情報について書いていくつもりです,では.
コメント
コメント一覧 (34)
ブログ読ませていただいてます。
ジャパンオープンお疲れ様でした。
うちもビギナーズリーグに出ました。
ブログを読んでいたらとにかく、すごいすごいとしか言えないのですが、どうやって勉強されましたか?
ブログご拝読ありがとうございます,まずはジャパンオープンお疲れ様でした!
あまりにも返事が長くなってしまいましたので,記事にして公開しました.是非御覧ください.あまりこういう事を書く機会がなかったので新鮮な感じがしました,またコメントお待ちしています.
よかったら教えてください。
HITEC製 multi charger X4 AC PLUS 300 を使用しています.
デフォルトでバッテリ接続用のケーブルが4本用意されているので,対応するオスのコネクタを持っていれば,それを半田付けして即投入できます.自分はXT30コネクタを使用していましたので,それを半田付けしてジャパンオープンで使用しました.
安物の充電器は,そこらへんのオプションが充実していない可能性があるので注意してください.
中津川大会では,一台のロボットにつき9本,合計18本用意して,試合中の充電はほぼ無しで回していました.練習の量がかなり制限されるので厳しい運用だったと思います.
今後このルールが無くなることを願います.
ただし,必要なバッテリーの本数は,どんなバッテリを使うかや,ロボットのハードウェアに大きく依存します.また,ソフトウェアでどのような制御をするかによっても大きく左右されます.バッテリ運用に関しては,実際に試合と同じ条件で動かして,どれくらいの消費が見込まれるか測定が必要です.
ありがとうございます。
また、どのような回路を組んでいますか?
公開できる範囲で構いませんので教えてください。
ボールセンサにはVishayのTSSP58038というパルスセンサを使っています.センシングアプリケーション用に設計されているセンサで,一般的なパルスセンサに搭載されている,環境適応機能(AGC : Auto Gain Control)が搭載されていなのが特徴です.
センサの出力は,そのままマイコンのGPIOに接続して立ち上がり/立ち下がり検出とタイマーを組み合わせてパルス長を計測しています.
環境適応機能があるとないとでは何がどう変わるんですか?
ゲインが常に変化するので,同じ距離にボールを置いた時に,環境によって毎回異なる長さのパルス幅が出ます.パルス幅と距離の関係が常に変化するとも言えます.
従って,パルスセンサの情報から距離を得るのが難しくなります.あるいは,精度が大幅に低下してしまします.
固定ゲインのセンサーであれば,ボールとの距離が常にパルスの幅と一定の関係を持ちます.これが固定ゲインセンサの利点です.
そもそも,パルスセンサは,RCJボールのような連続したパルス波を受信するためのセンサーではありません.例えばテレビやエアコンのリモコンなど,数ミリ秒の信号をキャッチするためのセンサーです.
自動ゲインのセンサーを使うと,連続した波形を読み込ませた時に,想定外の長い信号を受けることによって,ゲインがどんどん下がっていく現象が起きます.ゲイン調整の原理はデータシート等からは読み取れませんが,実際に実験をしてみると,時間に連れてゲインが減衰していく動作が確認できます.PL-IRM2121などで実験してみて下さい.
結果的に,自動ゲインのセンサーは,RCJボールに対しては検出距離をどんどん下げる動作をします.それも相まって,固定ゲインのセンサに優位性が有ります.
(誤字すいません。パラスセンサ→パルスセンサ、でした。)
Gain 直訳すると利得,入力に対する出力の変化の割合のことですね.
これ以上はご自分で調べて下さい.すみません
一応ネットでは調べてみたのですがよくわからなかったので、本か何かで調べてみます。
ありがとうございました。
どうやってドリブラーのタイヤの軸を側面の板につけているんですか?
軸受けは,ボールベアリングを使って保持しています。ラジアル方向の負荷は,ドライブ側はギアで,反対軸側は中にイモネジ付ハブ(自作)が入っていて,シムで隙間を調整してあります。
最近学校が忙しくなり,ブログを更新できなくなってしまっています。記事として公開できるのはいつになるか分かりませんが,あまり期待なさらないで下さい。すみません。
LCDを教えてくれたのはM Robotsの方なので,そちらにも相談してみます。
中津川大会モデルは直径56mmでした。
正面移動時の最高速度が2.2[m/s]になるよう計算しています。
ドリブラーの回転数はどれくらいですか?
結論から言うと,体感で一番バランスが良いであろう速度を適当に決めている感じです.
およそ1秒以内にフィールドの2つのゴール間を移動できれば十分だろうと考えました.
E-MAX GT2215/12 905という,飛行機用のブラシレスモーターを使っています.
KK HOBBYさんで購入しました(在庫が結構不安定です)
正直な所,例のカミソリシュートみたいな事をする必要が無ければ,ここまで出力は要らないと思います.
回転数はアンプによりけりですが,LiPo4セルで35000rpmまでは回せました(定格オーバーです)
tssp58038というセンサはどういう時にどういう値を出力するのですか?
BLOCK DIAGRAMを参照すると,その動作がわかります。
フォトダイオードの信号が,アンプ(AMP;Amplifier)によって増幅される→
BandPass(帯域通過フィルタ)によりf0(=38kHz)以外の利得を減衰する[1]→
Demodulator(復調器)によりデジタルのパルスへ復調[2]→
プルアップ・アクティブローの回路構成で出力
以上より「38kHz近傍で変調された赤外線を受光する間だけLOWを出すセンサ」である事が分かります。
[1] Fig. 5 - Frequency Dependence of Responsivity を参照のこと
[2] Fig. 3 - Output Function を参考に
ありがとうございます。
シリコンチューブは、8mm厚のPOMを円形に切り出したパーツを重ねる構造をしています。中心穴の周りに貫通穴を開けて、カーボンシャフトを通しています。
もしいま作り直すとしたら、3D Printerを使うだろうと思います。
ドラムの直径が18mmで、回転数が約10,000rpmです。摩擦でボールがよく溶けます。
回転数が10000rpmもあると、ボールも溶けてしまうんですね。
参考にさせて頂きます。