活動報告 No.144 ROBO-ONE light / ROBO-ONE 参戦
カテゴリ: 未分類

どうも、おはこんばんにちは、ROBO-ONE autoを見送った2年のマエダです。
先日の23日と24日にROBO-ONEが開催されましたね。
今回の会場はいつも通り神奈川県立青少年センターでした。どうやら次回は東京の日本未来科学館でやるとか。去年のニソコンと同じ会場なのかな?


第31回 ROBO-ONE_170926_0006 


第15回 ROBO-ONE Light_170926_0022 


さて、ヒュー研からは1キロ級に2機体、3キロ級に3機体が参加しました。
うまくいけばここにauto機体を出す予定だったのですが、あんまりうまくいきませんでした。。現実は厳しい。。


出場機体一覧


ROBO-ONE light
・ 墨 (1000 g)
・ 釣り式 (1000 g)


ROBO-ONE
・ テオ (2200 g)
・ メビウスK (2000 g)
・ プロテウス (3000 g)


3キロ級に出場したと言っても3機体中2機体は、ほぼ2キロ級です。



ROBO-ONE light

釣り式 VS バンボーカスタム


第15回 ROBO-ONE Light_170926_0005 


バンボーカスタムの容姿はKHRをちょこっと改造したものでした。試合開始40秒ほどで釣り式が1ダウンとり、それに焦ったのか、その後相手から捨身技が来るものの、なんとか当たらずにやり過ごすことができました。しかし試合終了15秒前に相手から1ダウン取られ、同点に追いつかれてしまいました。
同点のまま試合が終了し、審判らによる優劣の審査へ。。
結果は相手のバンボーカスタムの方が積極的だったとして、ヒュー研の釣り式は負けてしまいました。
具体的にどこが積極的だったのか言われずにこのような結果となってしまいましたが、ダウンを先取したことにより、相手が焦って、その結果相手が積極的に戦っていたように見えたことと、相手が捨身攻撃を使ったことにより、攻撃のバリエーションに目が行って積極的に見えたってところでしょうか。


墨 VS ロボTI light


開始50秒後、横にいる相手に攻撃しようとしたとして、イエローを1枚取られてしまいました。
しかし試合終了15秒前に相手から1ダウン取って無事に墨が勝利しました。


墨 VS アクアFITマン


開始40秒で相手から1ダウン取られた
相手から攻撃食らったものの、共に倒れたのでスリップ
こっちから攻撃するも、共倒れでスリップ判定
横攻撃したとしてイエロー取られた
1ダウンとイエローを一枚取られた状態でそのまま時間がきてしまい、負けてしまった
開始40秒ほどで相手から攻撃を受けてしまい、1ダウン取られました。
その後相手から攻撃を受けるものの、相手機体も共倒れしてしまったため、スリップ判定に。
1ダウンを追う墨は積極的に戦うものの、先程と同様に横攻撃をしたとされ、イエローを1枚取られてしまいました。
事実上2ダウンを取らなければならない状態でしたが、そのまま試合が終了してしまい、負けてしまいました。



ORBO-ONE lightはこのような感じで終了しました。



ROBO-ONE


予選
今回のコースは4.5 mのうち3 mほどは何もなく、残り1.5 mくらいに障害物が集中していました。

コースを俯瞰で見たらこんな感じだったと思います。


予選コース 



プロテウス:60秒

障害物が何もないところではスムーズに進みましたが、障害物の3〜4枚目のところで3回ほど起き上がりに失敗し、一番最後の障害物を超えたところで時間切れとなってしまいました。


第31回 ROBO-ONE_170926_0020 

メビウスK:

2 mほど進んだところでリングアウトしました。


第31回 ROBO-ONE_170926_0012 

テオ:
1 mも行かないところでリングアウトしました。


第31回 ROBO-ONE_170926_0016 





今後の動向


プロテウスは製作者が3年生のため、今の2年生が引き継ぐか、製作者が一部のサーボを買い取って部としてではなく、個人で機体を持つかのどちらかが選択肢としてあります。現状どうなるかまだ決まっていませんが、11月にある早稲田さんの理工展には出場することでしょう。


メビウスKは2キロ級として活躍してきましたが、もしかしたら3キロ級になるのかな?数ヶ月ほとんどあの形から変わらずに様々な大会に出ては結構いい成績を残していたのですが、全面改修に移行するようです。


テオも全面改修です。と言うか、ROBO-ONE終了翌日に全て解体されていました。。。製作者本人はROBO-ONEの会場で脚の構造を考えていて、それを見た感じ現在のシングル脚から平行リンクにするようです。それに、彼のTwitterで「いい直行軸の構造思いついたぞ!」と言っていたので、とても素晴らしい他を追従を許さない創造の入る余地もない完璧なものができることでしょう。


墨は現状維持っぽいです。


釣り式は今、2人一組のチームで製作しているのですが、片方は釣り式を片手間に1キロ級の新機体を製作して、もう片方の人はこのまま釣り式を使っていく方針のようです。



第15回 ROBO-ONE Light_170926_0002 第31回 ROBO-ONE_170926_0008 





スポンサーサイト
編集 / 2017.09.29 / コメント: 0 / トラックバック: 0 / PageTop↑
活動報告 No.143 結果はっぴょー
カテゴリ: 未分類

どうも、おはこんばんにちは。最近個人ブログを立ち上げた2年のマエダです。


ヒュー研のブログを見ている人ハード屋さんが多いんじゃないかと思うので、ソフト屋の私はヒュー研らしいブログを書けない…(これからFPGAというハードウェアに手を付けるけどね!)
というわけでサーバを借りて、個人ブログをソースコードレベルから構築し、そこでソフト系(人工知能中心)の記事をバシバシ上げておりまする。


サーバがマイナーだし検索ランキングで上位にするSEO対策なんて何も施していないので、Google検索で全く引っかかりません(笑)



この記事について


ROBO-ONE autoにてディープラーニングを用いたロボットの自動認識を実現させるために、今までやってきたことと、その結果、今後すべきことをタラタラ話していきます。
別にROBO-ONE autoなんかに限らず、IoT機器などにも転用できると思うので、いろんな人に見てもらえたらと思います。



結論


ロボットの機体に載せられるマシンを用いた、ディープラーニングでのリアルタイム物体検出は難しい。


ヒュー研が製作している3 kg級のロボットにコンピュータを搭載する上で考えなければならないことは、以下の通りです。


・省電力
・高性能
・軽量
・高精度な検出能力


これらを満たすマシンを搭載した3~5 kg級の機体を製作するのは、ARMやCPUなどの汎用プロセッサでは極めて困難と感じました。


5 kgならいけるかも、と思うかもしれないですが、そうしたら脚にかかる負担が大きすぎて、ROBO-ONE autoで格闘競技ができないと思います。もっとも、K社の最上位ハイトルクサーボをダブルサーボにしてブルジョワ機体をつくれば実現可能かもですが、制御、電源、金銭的な意味で現実味はないです。



なぜそう結論づけられるのか


まずディープラーニングをするには、機械学習フレームワークというものを使うのが王道だと思います。イチから畳み込み層やらプーリング層やら全結合層やらを重ねて正規化して損失出して誤差逆伝播させて学習率から重み調整してさらに一連の作業をミニバッチで処理とかやってられないです。そんな機械学習フレームワーク(と、併せて用いられる物体検出アルゴリズム)はCPUなどの汎用プロセッサかGPUを計算資源として用いる場合が全てです。


これを頭に入れた上で先ほどの条件を当てはめると、ラズパイなどのARMプロセッサ搭載の小型シングルボードが候補として出てきます。逆にこれ以外何があるのかよくわからないです。処理速度を重視ってことで、物体検出の試験マシンとして、Raspberry Pi 3 model B の約 1.8倍の処理速度を誇ると謳われている、ASUSの Tinker Board というシングルボードを使用しました。


結果、640×480pxの画像一枚に対して出力までに50〜65秒もの時間を要しました。
うん、、ロボワンで使うには遅すぎる。。1試合180秒だから、うまくいって相手を3回攻撃できるかどうかってところですね。


色々やって汎用プロセッサに限界を感じたのでありました。



今後すべきこと


別のアプローチで行くしかありません。考えているのは、汎用プロセッサがだめなら専用プロセッサを使うしかないんじゃないかと。具体名をだすならFPGA。今はPythonコードで記述したものを高位合成というのをつかってそれに落とし込めるらしいので、情報資源は乏しいですが、学習コストはあまり高くないんじゃないかと踏んでいます。Pythonの抽象性からハードウェア言語へはあまり信用できないので、C++でネットワーク組んでやるのが無難だと思われます。

いざとなれば研究室にいる先生に助けを求めるかもなあ。。


並列が得意なFPGAを使えばサーボを同時制御できますが、モーション練度と難易度的に4HVを挟んだ方が楽だと思うので、ARMも搭載しているZYNQボードを選択する予定です。


CNNの畳み込み層やプーリング層ではFPGAが得意な並列処理に流せると思うので、物体検出の際にR-CNNのような何回もCNNを通す物体検出アルゴリズムでも扱えるのではないか...?と思ったけど検出だけでなく全体の特徴点から測域したりオドメトリすることになってしまったらすぐリソースの限界がきてしまうと思うので、現状もっとも検出速度と精度のバランスが良いと思われるYOLOv2の実装を目指すべきだろうと思っています。もしもYOLOv2なら、本領発揮するのは学習過程(FCN)が繊細に関わってくるようなので、そこらへんも勉強しなきゃですね。


というわけで、C++でネットワーク組んで重みファイル自作して、高位合成ツールに頼りながらこれまたC++で物体検出のプログラムをFPGAに適用するしかなさそうです。



おまけー(上と内容が一部かぶるよ!)




夏休みの20日間くらいを使ってやったこと


全部淡々と話すと分量がやばいことになるので、端的にまとめると、


1、学習に必要なアノテーション生成GUIソフトウェアを作成した
2、機械学習フレムワークDarknetで学習させた
3、YOLOv2で物体検出した
4、シングルボードで実行速度等観察した


です。



結果


個人ブログでめっちゃ詳しく解説して力尽きたので結構適当な文章です。用語がある程度わかるなら容易い。


1、アノテーション生成GUIソフトウェア


自作してGitHubにあげました。クローンするかZIPで落として使ってください。READMEを読めばソフトの扱い方はわかると思います。
Python?なにそれおいしいの?って人は、、頑張りましょう。

ソフト:

https://github.com/ShimizuMizu/BB-Engine-forDarknet


2、Darknetで学習


Linuxではリポジトリをクローンしてきてビルドするだけなんですが、Windowsでやろうとすると厄介です。専用のリポジトリを使ってvisual studioとOpenCV(pipとかじゃなくてインストールファイルから入れるパターン)を使ってビルドしなくてはなりません。英文ですが、専用のリポジトリのREADMEの通りにやって、、、行くのも結構辛い。
ちなみに約350アノテーションを2000エポックかけて学習させて(バッチ不明)、260 MBの重みファイルが生成されました。


3、YOLOv2で物体検出


実行後の様子は以下。




4、ジングルボードで試す


今回はGeekベンチマークでラズパイ3 Model Bの約1.8倍の処理速度を誇る、ASUSのTinker Boardを使いました。


 ◆ 処理速度
一枚50秒は下らない。60秒以上かかることもしばしば。YOLOv2にはtiny-YOLOという精度は落ちるけど実行速度を上げることのできるパラーメタもありますが、それでも30数秒です。ならいいじゃないかって思うかもですが、とにかく精度が悪い、悪すぎる。実用性を考えると使えないですね。ちなみに通常版(?)では損失関数が0.04あたりまできたのに、tiny版は0.55でした。tiny版は1000エポックしか学習させていないですが、600エポック過ぎたあたりからもう0.5の壁を越えられない感じだったので、現状これが限界かと。


 ◆ 発熱
やばい。焼肉ができるよ!やったね!(使用率30%)
てな訳で、もしもこのマシンで物体検出付き監視カメラっぽいことなどやりたいのなら、マシンの形状がラズパイと同じなので、ラズパイ用の金属ケースを買って、ARMから金属ケースの天板までを金属の四角柱で繋いで伝熱、ケースにはこれでもかってくらいのヒートシンクをハリネズミのごとくビンビンに装着し、必要であればUSB(5V)から電源の取れるファンを付ける必要あり。

 ◆ メモリ
最大でシステム含めて600 MBくらい。今回使ったマシンは2GBもあるけどそんなに要らない。ちなみにOSはASUS公式で配布されているDebianベースのTinker OSというやつ。しかしデスクトップ画面はがっつりDebianのマークが。

 ◆ メモリの発熱
個人的に「CPU、GPU、メモリ、電源」が発熱四天王だと思っています。今回の場合は5V/3AのACからとるタイプだったので、四天王の一人である電源くんはクビですね。
同じメモリ使用量でもTinker Boardの方が余裕があるからなのか?メモリの発熱はラズパイより軽症だと思います。



余談


ASUSのTinker Boardくんは実稼働時間6時間程度で物体検出用マシンの前線から退いたわけですが、コイツ結構お高いんだぞ...¥8,500もしたし。
さて、どうにか酷使してやらないと気が済まないので、ゲームサーバに使おうかなと思っています。腐っても中身はDebian、Red Hat系をほとんど使わない私はUbuntuと同じような感覚でコマンド打てるのがなかなかに良いのです!
メモリ2 GBの恩恵を生かして、旧友にマイクラのサーバでも提供しようかな。消費電力は低いしファンレスにできるしスクリプトの自動実行でバックアップしたりFTP転送で使用率共有したりできるしサスペンド、ハイバネートが簡単にできるしで使い道あるぞこれ。


編集 / 2017.09.22 / コメント: 0 / トラックバック: 0 / PageTop↑
活動報告 No.142 ROBOT JAPAN 14th に参戦
カテゴリ: 未分類
どうもおはこんばんにちは、今日から夏休みが明けた2年のマエダです。

8月中は別の方たちがブログ更新をしてくれたということで、ブログ担当の私は自分のことに専念できました。もしかしたらそのことについての記事を書くかもです。

さてさて、2017年 9月 10日に「ROBOT JAPAN 14th」が開催されました。


  • プロテウス
  • スプラウト
  • メビウスK
  • 釣式
  • テオ

ヒュー研は3年生から2機体、二年生から4機体の出場でした。

結果は以下の通り

機体名 フライ級 バンダム級
プロテウス --- 4位
1回戦でNUXに敗 ---
スプラウト 準々決勝でこびすに敗 ---
メビウスK 3位 ---
釣式 準々決勝でこめたに敗 ---
テオ --- 準々決勝でガルーに敗

てな感じです。
Inked1505448955023_LI.jpg

誰に負けたか見てみると、ベテラン操縦者に負けてるパターンが多いですね。一部を除いて機体はそんな悪くないけど、オペレータ経験値が足りないと思われるので、やはりちゃんとした部内戦が必要だと思いました。

ちゃんとしたってのは、部内戦が始まった直後に機体整備を始めるのではなく、いつでも出動できるように準備した状態で部内戦に挑むこと、ROBO-ONE準拠のルールで1試合ずつ丁寧に戦うこと、重量ごとに複数の十分に戦える機体を用意すること、の3つで、これらが揃ってちゃんとした部内戦と呼べんるんじゃないかな。
1505448969592_2017091521083286d.jpg

今回は会場のとても良い席に座りながら頭の中でずっとニューラルネットワークをPythonではなくC++で実装する方法を考えていたので、各機体の繊細な動きを観察することなく何か大会終わっていたので、試合内容に対してピーチクパーチク言えない。。。

ちょいと思ったのが、某メジャーはさみ機体が小型化した気がします。人間でいう大腿骨が脛骨より短い?気もします。これに対して腰ピッチのないすくい上げる系機体が苦戦していたと思います。Typerionとかガーランド・ピローとか閃電とかがこれにあたります。

しっかりすくい上げるには腕先端の入力位置を下げる必要があるんじゃないかと思っていて、それには股関節ロールとピッチを直交にする、肩の位置を下げる、腰ピッチを導入する、の3つが必要だと思いました。あとはレギュレーションに引っかからないように重心を考えないと。
Inked1505448943659_LI.jpg

同機体のモーションに関しては、もしかして攻撃パターンが増えた?かもです。今まで踏み込んでつかんで投げる攻撃でしたが、踏み込み無しで腕を素早く上げる攻撃が1~2回あったような。小型化してるし前歩行が速いので、突進してきて足元に入られてその素早い攻撃なんかされたら簡単に1ダウン取られてしまうので、自分の機体の距離感を完璧につかんで、コントローラを押してから機体が動くまでのタイムラグを考慮しつつ、来たところを返り討ちにするのが正面同士の対処法かなと。とはいっても今はまだ低身長機体の方が少ないので、打点高めの攻撃もあった方が汎用的な機体になりますかね。側面から来られたら捨て身技で前後に緊急回避するかあ。。
1505448958763_20170915210830b73.jpg

今回もロボット芸人の高橋ちゃんが一発芸やってて、その部門で一位になっていました。冒頭で同事務所内の人にはウケなかったって言っていたのですが、確かにWindowsを何年も前から使っている人間じゃないとわからないかもですね。次はWindows名物のブルースクリーンだっ!
あと韓国勢から画像処理機体が出てこなくて寂しかったです。前回と違うところが来ていたらしいのですが、それはそれで別の高スペックロボ見たかったなあ。
とかく言う私も開発に専念して忙しそうにしないと親からヒキニート呼ばわりされそう。
ROBO-ONEまであと1週間、その週は実験レポートを課されない週なので、夏休みの間に頑張った(?)結果をぶつけましょー ♪(/・ω・)/ ♪
1505448977887_201709152108348ed.jpg

追記:
なぜか投稿日時が1970年1月1日になっており、最新の記事に表示されていなかったので修正しました。(^Д^)キヲツケルンダ!

編集 / 2017.09.15 / コメント: 0 / トラックバック: 0 / PageTop↑
活動報告 No.141 KONDO BATTLEに参加しました
カテゴリ: 未分類
みなさん初めまして。2年のオマタです。
前回のイトウ君に続き、いつもブログを書いているマエダ君に代わって書くことになりました。

さて本題ですが、先日行われた第23回KONDO BATTLEに参加してきました。会場は今回も立川のKOTOBUKIYAホールです。2月のKONDO BATTLEからKOTOBUKIYAが協賛して、フレームアームズの宣伝やコラボ等を行っています。大会の後に下の階にある店舗をウロウロできるので、個人的には今後もここでやってほしいですね。

我がヒュー研からは3機体が学生選抜クラスに出場しました。


◆プロテウス
IMG_0137.jpg 
部長の機体。理科大のニソコンでは、かのクロムキット相手に善戦を繰り広げました。ROBO-ONEの規定を満たすため、約400gの減量を敢行。光る目のあるかわいらしい顔もつきました。実は胴体にモジュールを追加できるスペースが設けられており、将来性もばっちり。


◆メビウスK
IMG_0138.jpg 
前回のROBOT JAPANから活躍している2kg級機体。大会が終わるたびに進化を続け、ニソコンではベスト4入りを果たしました。学生選抜クラスはROBO-ONE規定に則った3kg級機体が大半なため、重量的なハンデを背負いながらの戦いですが、モビリティの高さを武器に頑張ります。


◆テオ
DH0DwOwVoAAkffm.jpg 
次期部長の機体。プロテウスと共に、前回のニソコンで大会デビューしたニューフェイス。脚がシングルリンクで、平行リンクの機体ではできない多彩な動きができますが、その分モーション付けには苦労するようです。今後モーションの練度が上がればさらにいい動きになりそう。


●大会当日
DIIgr_yU0AApeUf.jpg 
「まあ今日はKXRクラス、当日ですけどもぉ~
参加者は誰一人、いませんでした…
誰一人来ることなかったですぅ。残念ながら。はい。」

じつはこの大会、近藤科学の新作ロボットKXRの部門も新設されていたのですが、なんとエントリー機体はゼロでした。六足で歩くKXRの操縦は結構面白かったのに残念。

オープンクラスはというと、関西からあのキング・プ二が現れ無双していましたね。ROBO-ONE Conferenceで講演してくださったときにも感じたことなのですが、あの勝利にとことん貪欲な姿勢が、大会で連勝できる秘訣なのかもしれません。


●大会を終えて
今回の反省会で反省点として挙げられたのは、「ヒュー研でひとつの機体を引き継ぎながらやっていったほうが、大会で結果を残せるのではないか。」ということ。現に他大学の皆さんはほとんどこの方式で、先代から機体を引き継ぎ、それを部として改修していくことで今の姿になっています。数人のグループないし個人で各々機体を作っている学生団体は我々くらいなのではないでしょうか。

「個人プレイの限界を感じた」と部長。
社会人の方と比較して我々学生が有利な点はふたつあると思います。ひとつは「膨大な時間があること」、もうひとつは「(先代を含め)チームプレイができること」です。せっかく部活としてやっているのだから、部員皆で協力してひとつの機体を作るのも手だと思うんです。まあチームプレイはチームプレイでいざこざが起きてしまうのですが…


そういえば、今冬のROBO-ONEは東京開催みたいですね。チームプレイの話も頭に入れながら、冬に向けてヒュー研活動していこう。
(今月のROBO-ONEは?聞かないでください…)




編集 / 2017.09.08 / コメント: 0 / トラックバック: 0 / PageTop↑
プロフィール

ヒュー研の中の人

Author:ヒュー研の人
このブログは東京電機大学理工学部ヒューマノイド研究部の公式ブログです。2012年から部に昇格しました!
その日の活動や大会の記録をできるだけ更新していきたいです!!

☆だいたい金曜日前後に更新します☆

FC2カウンター
カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
リンク
ブロとも申請フォーム
携帯でみるには↓
QR