Crew(スカイクルー)の技術ブログ。技術の共有・伝達を目的に、ロボットに関するいろいろな情報やガイドを載せていきます。中津川大会のロボットkossanです。2017の日本大会に出場したレスキューロボットを紹介します。実際の最終成績は第1,第2ラウンドの良い方と第3ラウンドの合計値で決定されますが、以下の情報は全3ラウンドの合計値になります。大会結果の詳細についてはこちらをご覧ください。救助数:12競技進行停止数:4回(出場チームの中で最も少なかったです。・斜面センサー:自作ラインセンサーは坂に沿って上下に移動するようになっているので、下図のようにセンサーを保持する部品に真鍮板をつけ、タッチセンサーを作りました。坂の登り始めと下り終わりには1が、登り終わりと下り始めには2が反応します。最大の闇、センサーポート節約術このロボットには、ラインセンサー以外に以下の6つのタッチセンサーが使われています。・ジャッキ開閉検知センサー(ジャッキについては後ほど。)この6種類に対してEV3のポートは残り2つ。そこで私たちは、6つのセンサーを頑張って2つのポートに割り振りました。縦に並んでいるセンサーは並列に接続されているので、どれがONになってもEV3は同じように認識します。*印のあるセンサーは、押された時にOFF・離された時にONになるようにしています。ちなみにマイクロスイッチや自作センサーをEV3に接続するために、当時の私たちはタッチセンサーを破壊して中の基板にスイッチを接続するという方法をとりました。schematics.pdfを参考に回路を作成することをお勧めします。第二の闇、超大型アームこのロボット、普段のライントレース中はこのようになっています。これが避難ゾーンに入ると、アームをガバッと展開して被災者を壁まで運んで回収します。お気付きの方もいらっしゃるかと思いますが、障害物があると詰みます。障害物が無かったのが奇跡でした。出番がなかった秘策、ジャッキ写真の赤いパーツがジャッキです。これは上り坂に設置されたバンプを越えるために作成しました。ジャッキが作動する仕組みは以下の通りです。1普通に坂バンプを越えようとしても、後輪は滑ってしまいます。そこでジャッキを下ろします。2ジャッキが車体を持ち上げると、ジャッキごと車体が前に少し滑ります。3そこでジャッキを戻すと1の時より後輪がバンプの上寄りに乗っているので、バンプを乗り越えることができるようになります。こんな大掛かりな機構を導入しましたが、結局使いませんでした...。Lineは年々難化しているので、日本大会で登り坂バンプが出てくる日もそう遠くはないかもしれません。Tweet2019/04/14モーター事件kossanです。2018年世界大会の報告記事に書くと約束しておいて忘れていたのですが(←おい!!)、世界大会の時に僕たちを襲ったモーター事件について書いておこうと思います。_)m注意ここではPololuの20Dモーター(25:1)を使っていて起こった事件について書いていますが、これは僕たちの使い方が悪かったために起こった「事件」であり、犯人は正直言って僕であり、モーターが悪かった訳ではありません。このモーターも正しい使い方をすればとても便利だと思います。モーターの良い悪いではなく、モーターの使い方の良い悪いを考えながら以下を読んでいただけると幸いです。世界大会機の足回りは4輪オムニで、角度はロボットの真横方向から35度の角度で取り付けました。18v17を使い、オムニはGTFRobotsの50mmオムニホイールを使いました。何が起こったか世界大会の競技初日、第2戦でイランのチームと試合をしました。相手はジョンミン4輪(見た感じ。この記事では、以降"ジョンミン"と記します。)で、とにかく速くてパワフルでした。試合後半、双方のロボットが押し合いになりました。とって双方のロボットを引き離すことがほとんどだと思います。当時は審判がなかなか手を入れず、膠着状態が続きました。それを2度ほど繰り返した時、僕たちのFWロボットの動きが極端に悪くなりました。FWを故障で出し、イモネジや配線のチェックなどを行いましたが、どうにも右後ろのモーターが動きません。ギヤボックスが壊れたかと思いましたが、車輪を手で回すとしっかりとした手応えを感じます。結局その試合では回復させることができず、負けてしまいました。原因まず、モーターは明らかにトルク不足でストールしていました。モーターの選定ミスです。押し合いになった時に車輪が滑るくらいのトルクは必要なんですかね...。相手のジョンミンはストールしていたのにその後も動き続けていました。モーター選定は、トルクや回転数だけでなく耐久性も含めて行ったほうがいいのかもしれません。捕捉エリアの構造にも原因がありました。捕捉エリアにはキッカーを搭載しておらず、ボールが当たる部分に板を設置していました。これが、ボールの半径である27mmより高い位置にあったため、ロボットがボールを押した時に車体前部が押し上げられました。これにより後輪に負荷が集中し、後輪モーターがストールした、というわけです。モーターを保護する手段もつけていませんでした。RoboCupJunior出場者の中でもモーター保護機能をつけている人は少ないと思いますが、これがあれば防げたことです。応急処置その試合の間に原因を特定することはできませんでした。試合後、まずFWを動かす必要があるため、ポジションをチェンジさせました。GKはそこまで激しい押し合いをしていないため、モーターは健全でした。ロボットの構造を2機で統一しておくと、こういった場面で便利です。右後ろのモーターが壊れたロボットも、なんとかしてGKをさせました。したかというと、壊れたモーターと対角線状に配置してあるモーターのギヤを取り去り、空転するようにしました。(参考動画)そして、そのロボットを対向2輪のようにして動かしました。左右の動きを優先するため、ロボットは35度横を向かせ、なんとかボールを追わせました。プログラマの2人、本当にありがとう!!しかし前に出ることが難しいので、"カニ歩き"として故障を取られたりしました。その後の対処とりあえず直してみよう宿泊先で壊れたモーターを分解し、中を見てみました。典型的な130モーターに似た3極モーターで、整流子に取り付けられていたであろうリングバリスタが外れていました。リングバリスタはなくても動くはずなので、一旦取り除いてみましたが、回ってくれませんでした。次に整流子とブラシ周りを疑いました。いうと、以前この類のモーターを作ったときにもっともトラブルが多かったからです。クリップモーターを作ったもののエナメル線のやすり具合でうまく回らなかった、といった経験を持つ方も多いことでしょう。ブラシはカーボンだったので、まず整流子を磨きました。それでも回らないのでブラシも磨いてみましたが、ぴくりと動いただけで回ってくれませんでした。現在のところ、モーターが回らくなった原因は発熱によりコイルの被覆が溶け、コイル内でショートが起きコイルの磁力が弱まっていたことだと考えています。代替品を買いに行こうもとのモーターを復活させることが困難だとわかったため、代替のモーターを買いに行きました。予備を持って行かなかったんだか。(←今さら何を言ってるんだか)地下鉄とバスを乗り継ぎ、ABRAという店に向かいました。幹線道路のわきにポツンと建っていて、入ってみるとまるで秋葉原にある店のようでした。秋月というより千石のイメージで、(ただしかなり広い)ジャンク品も色々置いてあったと思います。事前にABRAのホームページを調べて、6V定格で130モーターに似たものを売っていることを見つけました。店内でそのモーターを見つけ、店員の人に在庫を出してもらいました。手にとって見てみたところ、筐体に窓が開いていてシャフトが長いものと、窓が開いておらずシャフトが短いものがありました。窓から中を覗くと、カーボンブラシが見えたので一安心。ギヤボックスの設計上、長いシャフトは入らないので短い方を買ってきました。いざ、換装っ!!2日目の試合には間に合わなかったので、その日の夜にモーターを新品に交換しました。旧モーターより長く、エンジェルリングの半固定抵抗とぶつかりそう...でしたが、ギリギリ収まりました。動かしてみたところ、とてつもない速さで動きました。モーターをもう一度よく見てみたところ、マブチの刻印がありました。FF-180(リンクは参考までに。半ば騙され、半ば早とちりで変わったモーターを手に入れてしまいました。1個約300円と安かったので、そこまでダメージは大きくありませんでしたが。結局、PWM制御で出力を下げることで対応し、また貴金属ブラシに負荷をかけないよう、ここ一番の試合以外は出力を抑えめにしました。2日間の不調で20位くらいまで転落していたので、そこまで強いチームとは対戦しなかったので。これ以上モーターが壊れないよう、ボールが一定時間以上捕捉エリアに入り続けた場合に前進を止めるようにしました。その後はモーターを壊すことなく、着実に勝利を重ねました。競技成績では7位までしか届きませんでした。今年の1月にふと、「カナダで買ったモーターに元々のモーターのカーボンブラシをつければ良いのでは?」と思い立ち、実際にやってみました。赤丸のところを削り、ブラシが付いている部分をこじ開けて外し、付け替えました。電源につなぐと元気に回ってくれました。カーボンブラシになった分遅くなった気もしますが、逆に元のモーターと同じくらいになってよかったかもしれません。(および秋月の多分同じモーター)とよく似ています。RoboCupJuniorのサッカーライトウェイトだと、これくらいのモーターがちょうどいいのかもしれません。〜部品を円状に配置する〜kossanです。コメント欄に、次のような質問をいただきました。PCBでラインセンサーの回路を作っているように見えるのですがどのようにして同心円状に照度センサーなどを配置できたのか教えてください質問していただきありがとうございました。これについては記事にしてまとめたほうがわかりやすいと思ったので、ここで回答させていただきます。僕が使っているのはKiCADなので、EAGLEなど他の基板CADのことは回答できません。4.0.7なので、他のバージョンでは記事の内容通りに操作できない可能性があります。4.~~(←詳しいバージョンは忘れました。)では同じ操作ができていたと思います。フットプリントの展開〜極座標表示まずネットリストを読み込み、グローバル移動・配置で部品を展開します。基板外形を他のCADでデザインしている場合はそのdxfファイルを読み込みます。これ以降同心円上に部品を配置していくので、目印となる円とその中心、半径をEco1.Userなどの補助レイヤーで描いておくとわかりやすいです。配置したいパーツを移動ツールで動かし、円の中心に持って行きます。カーソルは移動するフットプリントの原点に置かれるので、もし自作フットプリントを使う場合には原点の置き方にも注意してください。これ以降の作業はフットプリントの原点を利用して進めるので、割と重要です。フットプリントを右クリックし、写真のように選択してください。このようなポップアップが出てくるので、左上の極座標を使用するをクリックしてください。ここに任意の数値を入れることで、フットプリントを同心円上に移動します。配置してみるこれ以降、KiCADのくせ者感が出て来ます。距離50mm、角度0度、アイテムの回転0度の場合です。フットプリントの原点が、画面右方向に50mm動きました。「0度」がこの位置であるのは、三角関数を習った人にとっては普通ですね。「普通じゃない」と思う人は...こんなもんだ、と捉えておいてください。今度は距離50mm、角度90度、アイテムの回転0度にしてみましょう。すると...角度0度のとき円の右側にいたフットプリントが円の下に移動しました。普通の三角関数とは逆で、角度が増えるに従って時計回りに移動します。今度は距離0mm、角度0度、アイテムの回転45度にすると...部品が左に45度傾きました。移動の時には時計回り、回転の時には反時計回りにフットプリントが動くということです。なんで統一しなかったんでしょうかねぇ。このような作業を繰り返すことで、エンジェルラインセンサのプリント基板を設計することができます。