しろうさぎのblog

ロボカップは小4の時に始めてかれこれ…。元将軍キャプテンです。 情報公開や交流用に作りました。気が向いたらアップしていく感じですのでよろしくです。最近まで関白のブログって名前でしたが、関白って名前使っていないので変えました。

どうもしろうさぎです。

9月になり朝晩は急に涼しくなってきましたね。

夏休み真っただ中、免許をゲットして車乗るようになり行動範囲が広くなっているころです。車ってすごいですね。楽に移動できる。けど、まだ慣れてなくて手汗半端じゃないですけど・・・・。安全運転心がけます。

そんなことは置いておいて、今回はST-LinkをJlinkOB化して使ってみました。
きっかけはこちらの記事

普段私はSTM32を開発するときにNucleoのST-Linkをぶった切ってそれをフリスクケースに入れて使用しています。(ホットボンドで固めて固定しているのは見逃して)
IMG_4084
IMG_4085

それで自分の使いやすいようにコネクタはやして使っている感じです。

で、このST-LinkをJ-LinkOB化してみます。

ここのページ(https://www.segger.com/downloads/jlink)のST-Link Reflash Utilityのところからソフトを落とします。
キャプチャ
解凍したのち、開き、ST-LinkをPCにつなぎます。
そのあとは画面に従うだけです。
キャプチャ
Aを押して
キャプチャ1
もっかいA
キャプチャ2
ST-LinkにJlinkOBを書き込むときは1を押す。
キャプチャ3
完了するとこんな感じ。

デバイスマネージャーを開いてJlinkとして認識されてたら完璧です。


それでは、J-LinkOB化したST-Linkでデバッグしてみます。
キャプチャ
こんな感じで普通にデバッグできます。(ちなみにつないでるのはSTM32F746VET6)

最初のST-Linkとして使うときよりも起動もその他動作全体的に早くなるので結構快適にデバッグができるようになります。

ちなみにST-LinkのUARTの仮想COMポートも使えます。キャプチャ1
キャプチャ


今回はこの辺で。

どうもしろうさぎです。
前にも書きましたが、第17回レスコン東京予選を勝ち抜いて本選に出場してきました。

結果はファイナルに出場できませんでしたが、レスキュー工学奨励賞をいただきました。まぁ言ってしまえば来年頑張れよ賞だと認識してます。
実際問題、使った技術としてはかなりいいものを使っていたと思いますがそれが結果にならなかったという感じです。ものすごく悔しいです。結構辛口コメントの顧問の先生もファイナルに残っていたらかなりいい賞がもらえたのではないかと言ってくれてそこらへんはうれしかったです。
ファーストミッションはロボットの調子も安定していたのですが、人間の判断ミスで3体救助2体搬送という形になってしまい、ダメでした。
セカンドミッションは大学で個別に起こっていた再現性がまだとれていないバグがすべて出てしまい、3号機のカメラが来なくなったり、昇降機構が動かなくなったり、4号機のアームのマイコンが落ちてダミアンを抱え込むところで動かなくなってしまい、救助することができなかったなど散々でした。機構的ではなくほとんど電気系や組み込み部分で動かなくなってしまいほかの部員には申し訳ない気持ちでいっぱいです。



まぁそんなこんなで今年の私の関与した部分を説明していきます。まぁ電装部すべて私なんですけどね。


まずは1号機
DSC_2259IMG_3894

この機体の電装ユニットのサイズはほかの4機体に比べ最小スペースでできてます。さらに発注MDとTPIPとエッチング基板のみで構成されているので安定性が高いです。TPIPからI2Cデータを引き出してSTM32F303Kで解析して各足回りモーターとサーボを動かしています。足回りモーターは15KhzくらいのPWMで動かしています。380DCモーターなのでそこまで高くしてもってことでこのあたりにしています。サーボはI2Cで0-180度の角度データを受け取り、それに合わせてPWMを出力して動かしています。TPIPのデフォルトで4本のサーボPWMを出力できますが、この機体で必要なサーボPWMは5本なので、前の羽の2本分をSTM32でPWMを作っています。

・2号機
DSC_2265
IMG_3891
この機体はTPIPのPWM増設ボードからPWM信号のみを引き出して、エッチング基板内で電源を作りその信号線をつないでワンボード化しました。使い勝手と安定性(TPIPから取り出せる電流に限度があるため外部で作る必要がある)を向上させました。それに加え、STM32F303Kを搭載してTPIPからのデータをもとにベクトル計算させてメカナムで360°制御を可能にしています。予選時では、TPIPのPWM信号(ベクトル計算済み)をもとにMDの上のATTINYでモーターを回していましたが通信が不安定になると一気に暴走したり不定になることが多かったためSTM32を通すことにしました。

3号機
去年とまったく同じなので割愛

・4号機
DSC_2252
IMG_3895
IMG_3896
予選後の記事にシステム図を載せましたがあれから大して変わっていません。
予選後にしたことは、姿勢制御を導入しました。9軸カルマンフュージョンコンパスを用いて、P制御のみで姿勢制御を行い角度がずれたら姿勢を直すくらいのことしかしていません。しかしそれのおかげで、道上をまっすぐ走るだけでも少しずつモーターの個体差やギヤのかみ合わせで傾くのを防止してまっすぐ進めるようにしたり、バンププレートや坂道でも安定して進むことができるようになりました。ちょっとのことで結構大きなメリットがあったのではないかと思っています。
さらにこの機体はUIが充実していて、有機ELディスプレイで今どの状態になっているのかがパッと目で見てわかるようにしてあったりスイッチでプログラムを切り替えることをしてその時の状態に合わせていました。


・本戦出ての感想
何よりも審査委員長に阪大の浅田先生がいて小学生の時にその先生の論文(たしかRCJ中型か小型リーグの論文集)を読んですごい先生がいると思うと同時にこんなことがしたいと思っていたことを思い出し感動しました。ファイナルに出ることができなかったので私たちのチームの審査員用資料を読んではもらえてないと思いますが、先生がコメントされていた「テレオペと自律をうまく融合させて、人間がやった方がよいところは人間がコンピューターがやった方がいいところはコンピューターがやるべき。」というところが僕の考えとまったく同じでロボカップ出てた人はそういう頭を持ってるのだなとも感じました。私自身今回4号機で姿勢制御を導入するなど操縦者のアシスト機能を追加してロボットの動作をさせていましたし、テレオペと自律の融合をうまくしていこうと思っていました。こういうことを考えてファイナルに出れていれば・・・とかなり悔しいです。

また、他チームからの質問が次から次へと来ていてうれしかったです。特に姿勢制御の話やMDの質問が多く、注目されていたのだなと感じました。もともとRCJやっている人がこのチームにいるらしくて・・・って来る人もたまにいて・・・・。
けど周りにARMマイコンを使っているチームが僕が見た限りではいなく残念に思っていました。さらにMDもレスコンが出しているMDのリメイクだったり聞いてみるとそこまでスペックが高くなかったりと悲しい現実でした。NHKとかRCJの人たちってやっぱり変態がおおいですね・・・・。

まぁ「某審判にロボットも変態だけどメンバーも変態だなこのチームは」って言われましたね。はい。

・来年は。
来年は姿勢制御を4号機だけでなくほかの機体にも導入して、今年できなかった自己位置推定を完成させれたらと思います。さらにラインを読んで道の中心を走らせることもさせようかなと思っています。
今年出てしまったバグの再現性をだしてバグの解消、4号機のシステムが頭悪すぎるためF767ZIT6を使ってもう少しスマートに行う、ほかの機体でもF7マイコンを導入して処理能力の向上で安定化を図ろうと考えています。

それでは今日はこの辺で。

どうもしろうさぎです。

今年でRCJの年齢を完全に超えて現役として大会に出ることができなくなった今少し振り返ってみたいと思います。

・RCJとのきっかけ
きっかけは単純でした。愛・地球博が私が小3の時に開催されており同じ県内でやっているということで親に連れられ行きました。そこでRCJサッカーの大会をやっていました。(夏だったのでもはやノードなのかブロックなのかはたまた他なのかさっぱり覚えていませんが)その時一目見てこれがやりたいと思いました。

この本と、レゴマインドストーム(RCX)を買ってもらい自分で本を読みながらボールを追っかけたりラインの明るさを読んでどちらの方向に進んでいるか(昔はコートの床がグレースケールになっていてそれで方角を求めていた)を認識させて回り込むくらいは実装していました。
そのなか名古屋市科学館で「ロボット工房」なるものがあることを知り行き、そこで情報を聞きました。聞くところによると「ロボット教室」なるものに参加すると初年度だけの人を集めた大会に出れて、そうじゃなくても大会には出れるよけどたぶんボコボコにされるよ(当時私が将来後輩チームとなる先輩の人たちが蹂躙していた)と言われ、その教室に参加できる小4まで待ちました。

・RCJ参加
初年度の大会では、一応初心者枠リーグで4位になりました。周りはキットばかりでしたが私は足回りを変えて出場していたのでそこそこ得点出来ていた記憶があります。けど途中でモーターのブラシが焼き切れ、全然動かなくなり決勝リーグで負けこのような結果になったという感じです。

・小5-中2
次の年にはEKのサッカーロボ915を卒業し、AKI-BASIC(PIC-BASIC)をメインマイコンボードにして4輪オムニのロボットを作り大会に出ましたがさすがに小学生の私にはさっぱり理解できず全く動きませんでした。その時名古屋市科学館のメンターとして来てもらっていた人に情報をもらってそれを頼りに作ってみたはものの動きません。確か3端子レギュレータからはんだ付け間違えて動かせず、もちろんTA7291Pなんて動かず・・・。
年齢を重ね、自分で勉強しつつ大会に出ているうちにそこそこ理解しはじめ一応大会で動かせたのが中1の時だったかなと思います。長年見てもらっていたスタッフに「やっと動かせるようになったね。感動した。いつも全然動かない君のロボットが動いて得点してるんだもん」と言われたのをよく覚えています。まぁ結果はそれほど良くはなかったでしたが。中2か中3の時にPIC-BASICが生産中止になりArduinoに変更しました。

・中3-高1
中3でサッカーAで名古屋ノードを3位で惜しくも東海に出れず、そのままサッカーBに移行し先輩チームであった「将軍」のメンバーになり「将軍」として活動をし始めました。
このころはカラーセンサを用いてゴールを認識して狙って蹴るなどを目標にロボットを製作していました。
中3の終わりから高1の時には機械式マウスの中身を取り出してエンコーダーの値から自己位置を推定し超音波に頼らないロボットを製作しようとしていましたが子のセンサ開発に難航し、さらにチームメイトがロボットを大会に間に合わせるといい続けいざ大会に行ってみるとそこには切り出したアルミ板とちょこっとはんだ付けされた基板が並んでおりそれをせっせと組んでいたのです。まぁ幸いにもテスト用にと私のロボットを保管して持ってきていたのでそのまま出しましたが勝てるわけもなく、さらにアウトオブバウンズのルールが適応された直後で対策なんて一切しておらずぼろ負けしました。

・高2-高3
上の代がRCJを卒業していき自分が一番上の代となって「将軍」を率いていく立場になりました。
その時よく見ていた動画

ここのロボットの動きをまねしようとします。しかしながら私はドリブラーをロボットに載せるのがすごく嫌いです(なぜなら自分がボールをうまくドリブルできないのと人間はそんなバックスピンかけてドリブルしないでしょっていうことで)。なのでドリブラーを使わずにこの動きを実装しようといろいろ考えた結果まず自己位置を正確に把握するために超音波センサの素子を常に壁と水平になるように方位センサの値を使って追従させ、位置によってロボットを傾けるという方法を取りました。さらにアウトオブバウンズの対策としてタイマー割り込みをかけ周期的にラインを検知してラインを避けることにより大幅に減らすことができました。これにより東海大会を優勝し、ジャパンオープンに出場することとなりました。

IMG_0177[1]
ジャパンに出るということで、ロボット間通信をすることで東海大会の時のロボット同士がぶつかって進路を干渉しあう現象をなくそうとしました。通信環境が良好な家でやっているときはすごくいい感じにロボット同士が相互に進路を譲り合い効果的な攻め、守りができるようになっていました。
IMG_0176[1]
確かこれはジャパンに出発する前日とかに撮った写真だったと思います。
キャプチャ
この時のプレゼンシートですね。
IMG_0175[1]
IMG_0174[1]

結果としては予選7位通過決勝リーグ一回戦負けでベスト12です。予選では結構動いてそこそこ脚光を浴びていたっぽいですが決勝ではボコボコにされ惨敗でした。

・それから
この年が最後のジャパンに出るチャンスだったので公式には引退しましたが、大学が早く決まったことから新規にロボットを作り、(このブログができたのがこのころ)せとうちオープンや北九州オープンで出場しました。
大学ではロボット系のサークルに入りレスコンやロボットグランプリに参加してるといった感じです。
そこらへんはこのブログをさかのぼってもらえればわかるかと思います。
一応動画だけ並べておきますね
・せとうち2016

・北九州オープン2016

・せとうちオープン2017

・レスコン2016

・レスコン2017


個人的になにかこのような動きをさせたいというおおきな目標からロボットを作っていくことが多く、この方法で作るとしっかりとした軸をもったロボットが作れるのはないのかと思っています。

・ロボットの勉強法
何よりも手を動かすことです。机上の勉強も重要ですが、モノづくりをやっているわけなので手を動かさないと自分の技術にならないと思います。実際普通の勉強もテスト前とか書いて覚えるとかしますよね。それと同じイメージです(軽く読んだら覚えるとかいう天才は少し黙って)。

それと私が小学生でロボットを始めたときから続けていたことがあります。

それは一日少しでもいいからロボットに触れるということです。

少しでも触れることでロボットについて考える時間ができます。この時間が重要なんだと思います。どうしたら勝てるんだろう、どうしたらこんな動きができるんだろうと考えながら実験を繰り返していました。私はメカ的なハードウェアは加工機材がものすごくお粗末でほぼできないも同然だったので、回路とソフトウエア的な方法で実装しようと試行錯誤を繰り返していました。

それと失敗を恐れないことです。失敗してなんぼ、というか初めから成功する人なんていないのだから失敗をして当たり前なのです。失敗して部品飛ばしちゃうからって躊躇していては進むものも進まないですし技術力も全くつきません。実際失敗を通して学ぶ経験はものすごく大きいです。上に書いたように小学生の時大会でロボットを動かせることができず惨敗をした経験が何度もあります。その中で学んだ経験が今のロボット作りに生かされて今では何があっても大会中はロボットをフィールドに出し続け動かすことができるようになってきました。最近ではモデリングやシミュレーションの技術が向上してさも本物のように動作させられたりできるっぽいですが、実際に物を作ってみるのが一番速いと思っています。(まぁそんなこんな繰り返してるせいで私のロボットはいつもハリボテになってるのは伏せておく)

今日はこの辺にしましょう。それでは。

追伸:8/11,12と神戸でレスコン本選に参加します。よろしければお越しください。第17回レスコン


↑このページのトップヘ