目次
とよはし(!ロボコンブ)としてキャチロボ2025 第15回大会に出場しました。涼鈴です。
人生においてロボコン部であったことがないのでチーム名に論理否定演算子がついています。notロボコン部です。MCの方からは読み方が分からないとのことで不評でした。
高専専攻科から大学院に編入し、研究室で豊橋のロボコン部OBに囲まれて影響を受けまくったロボコン未経験者です。22世代(日本一)、23世代(世界一)、24世代(日本一)に囲まれて1年過ごし、今年は25世代も加わりました。
キャチロボ2025には昨年11月末のプロジェクト始動時(8人だった!)から紛れこんでおり、ABUロボコンで世界一を獲った手法でキャチロボを攻略する様子を間近でずっと見ることができました。
大会中は「負けロボットが多すぎる!」のロボットの運び屋をやってました。運送時に壊れなくてよかったね。子の送迎をする親の気持ちが分かった気がします。
CATCHROBO BATTLE CONTEST -Vol.15 - Catch the プチアソート!
本大会では3チームで出場しました。最初から2チーム出すことは確定していましたが、僕が単独で出場すると立候補したことで3チームでの出場となりました。
学ロボを終えた25世代の合流によってチーム編成が変化し、23,24,25の混成チームになっています。
複数チームで出場することはキャチロボにおいて多大なメリットがあります。
同じ大学のチームはピットを連続して配置してもらえるため、ピットを繋げて拡張することができます。これにより、自作の競技フィールドを持ち込んで設置するスペースが確保できます。本大会では3チーム分を連結したことで、フルサイズの自作競技フィールドとロボット用台車に加えて多少の作業スペースを確保できる広さになりました。3Dプリンタとバッテリーの充電ステーションなども設置できました。
決勝戦は「とよはし☆キャチロボズ」VS「負けロボットが多すぎる!」という同校決勝となりました。
どちらのチームにも属していない身内から観た決勝戦について書きます。尚、ロボコン1年生による個人の主観に基づいた感想です。
キャチロボズと負けロボは同じフィールドにロボットを取り付け対面での動作確認や練習を行ったことがあっても、妨害フル展開での本気の試合は一度も行われていませんでした。(双方共に壊れる可能性があるため)
インタビューの通り、本気での試合はあれが初めてです。茶番ではなくガチの勝負でした。
キャチロボズの機体は最速ハンドの速さと確実性を詰めに詰め、相手よりも早くワークを3個回収して鉄壁の妨害機構を展開したらワンサイドゲーム開始というのが勝ち筋です。妨害機構がぶつかり合うことも想定されており、ぶつかり合っても壊れず押し合いになっても絶対に負けないようなガチガチ爆速張り手になっています。(尚、Q&A No.31…)
そして整列機構があるため自陣ワークだけでボーナスフル達成が可能です。
キャチロボにおける最強のロボットの条件とは、妨害機構を相手よりも先に展開できること、つまり最速ハンドが文字通り最速でミスらないこと、次にボーナス条件を達成しながらワークを全回収できること、です。(言ってる本人は予選敗退であることに注意が以下略。)
キャチロボズはこれに忠実な機体です。
負けロボの妨害機構は後入れが可能になっており、最速ハンドが取りこぼした場合や相手の妨害機構の方が早かった場合でも後から妨害機構を展開することができます。これにより、お互いにお互いを妨害して相打ちとなり、自陣ワークでの点比べ勝負に持ち込むことができます。(準決勝の試合展開)
もちろん負けロボ側が早ければ壁タイプの妨害機構として働きます。
最速ハンドも妥協していません。
そして整列機構があるため、自陣ワークだけでボーナスフル達成が可能です。
負けロボの機体は二号機です。大会最強を目指して作られたキャチロボズの機体を基にしながら、キャチロボズを倒す存在として作られました。
キャチロボズと負けロボの妨害機構の組み合わせだと、負けロボ側がいつでも妨害ジャンケンで後出し可能ということになります。トーナメントではワーク回収が安定しなかった負けロボですが、もしミスっても後入れ妨害によって常に相打ちに持ち込めます。
キャチロボズは張り手妨害であるため、最速ハンドでの回収をミスって負けロボに妨害を展開されてしまうとその時点で終わりです。
妨害ジャンケンの相性ではキャチロボズが圧倒的に不利でした。しかし、予選とトーナメントでのワーク回収の安定性から、同点再試合を繰り返す千日手になったとしたらいずれキャチロボズが勝つのではないかと予想していました。
ただし、同点以外の結末もあり得ます。
負けロボの妨害機構は決勝トーナメントからポリカプラダンの板を取り外しており、横向きの棒一本になっていました。共通エリアへの進入を防ぐ妨害性能が落ちており、準決勝では棒の隙間から差し込まれたエンドエフェクタにより、後少しでワークが回収されてしまいそうになる危ない場面もありました。
そのため、キャチロボズが妨害の穴をついて共通エリアのワークを1つでも回収して勝利する可能性と、ロボット同士の接触が発生して審判判断による減点や失格になる可能性があります。
また、キャチロボズは展開した妨害機構を引くことができない(相手ロボットへの故意の接触になるため)のに対し、負けロボは妨害機構の開放を好きなタイミングで行えるため、共通エリアにおける駆け引きを自分のタイミングで作れるという強みもあります。
決勝戦ではどちらの最速ハンドも回収を完璧にこなし、妨害機構同士がミラーのようにフィールド中央ですれ違って同時に展開が完了しました(鳥肌ものです)。

00:47でキャチロボズが自陣を全回収し、負けロボは00:39頃に自陣を全回収しました。
妨害で相打ちになった両チームがそれぞれの自陣ワークを全部取ってボーナスを全達成して同点というのは予想通りの試合展開ですが、その通りになったのは決勝戦の舞台でどちらもミスらず最高のパフォーマンスを発揮したということで、その事実がとても美しいと思います。
妨害で相打ちになった段階で、このまま全回収して睨み合って時間を使いきって同点再試合をどちらかがミスるまで繰り返すのか?(得点のカウント作業時間掛かるから面倒くさくないか?)と思っていたら、全回収を終えたキャチロボズが即座に妨害機構をエンドエフェクタで殴りに行って苦笑。負けロボ側もキャチロボズが全回収して共通エリアを狙っていることに気づいており、妨害機構を開放して誘い込む動きをしていました。
ロボットの接触が起きたので審判から離れるように警告があった後、負けロボの方が妨害機構を開放し、キャチロボズが突入。ロボットがロボットをキャッチするという事態が発生しました。(ロボットをキャッチ、これが真のキャチロボ?)
負けロボの妨害がキャチロボズのエンドエフェクタのZ軸スライダと基板の隙間へ見事に刺さり、完全に捕らえました。
キャチロボズは抜け出そうとエンドエフェクタを引き戻し、負けロボの妨害機構はひん曲がりましたが外れず、結局審判によって試合が中断されました。
安全に絡み合ったロボットを外せるか、非常停止を押したら安全に停止するか、その場合は再試合できる状態になるまでに時間が掛かるが良いか、などのやりとりがあったようですが、審判団の協議で試合が再開し、時間を使い切って終了。
負けロボが通常得点40点、ボーナス得点30点、ワーク破損落下違反0、総得点70点
キャチロボズが通常得点40点、ボーナス得点30点、ワーク破損落下0、違反-1点、総得点69点
でした。
ライブ配信の映像には、双方にミスが無ければそうなるだろうと思った通りの点数が読み上げられて、背後の観客席で頷いてキツツキ状態になっている僕が映り込んでいるのですが、キャチロボズの「違反-1点」のところで勝敗が確定してニッコニコで拍手するまで綺麗に全部映ってました。
読み上げの一番最後の情報で勝敗が確定して、そのまま勝者が読み上げられる流れまで含めて全てが完璧です。アニメの最終回みたいでしたね。
自陣ワークを全回収したキャチロボズが即座に共通エリアへ突進したのは最初から展開を予想していてゴリ押しをすることを決めていたからだと思うんですが、同校とはいえ躊躇せず容赦なくエンドエフェクタをねじ込みに行くのがロボットバトルすぎて観ていて面白かったです。キャチロボバトルコンテストってこういう意味だったのか。
負けロボ側も初回の突進から既に予測して対応していて、手の内を知り合っている者同士の本気の戦いという雰囲気が良かったです。共通エリアでの駆け引きの結果、ロボットをキャッチした挙句、減点を引き出して勝つというのもこの決勝戦でないと観れない結末だったと思います。
どちらかミスるまで再試合なんてことはせず、その試合で最短の勝利を獲りに行く貪欲な姿勢が、豊橋のロボコンを体現しているようで本当に良かったです。楽しい決勝戦でした。
試合が終わった後に負けロボの妨害機構はMRSが曲がっていたらしいのですが、手でグッてやったら直ったそうです。
ちなみにキャチロボズのエンドエフェクタは無傷でした。
しかし、豊橋に帰ってから荷降ろしまでの間にキャチロボズのロボットは車に積まれたまま炎天下を数日過ごし、3Dプリンタパーツがグニャグニャになってました。「記憶の固執」みたいでした。夏の車内ってヤバいですね。
書いている当人はロボコン1年生なので嘘の可能性もあります。予めご了承ください。
結果:準優勝🥈
エンドエフェクタ:倍ストローク+真空ポンプ
最速ハンド:吸引
妨害機構:張り手
メインアーム旋回:CyberGear ダイレクトドライブ
メインアームスライダ:RoboMaster M3508
エンドエフェクタ旋回:Dynamixel XL430-W250
エンドエフェクタ上下:Dynamixel XL430-W250
最速ハンド肩:RoboMaster M3508
最速ハンド手首:RoboMaster M2006
妨害機構:RoboMaster M3508
整列機構XYZスライダ&滑り台θ:FEETECH STS3215
結果:優勝🥇
エンドエフェクタ:倍ストローク+マイクロサーボ
最速ハンド:機械式把持
妨害機構:自動ドア
メインアーム旋回:RoboMaster M3508
メインアームスライダ:RoboMaster M3508
エンドエフェクタ旋回:FEETECH STS3215
エンドエフェクタ上下:FEETECH STS3215
最速ハンド肩:RoboMaster M3508
最速ハンド機構部:RoboMaster M2006
妨害機構:RoboMaster M3508
整列機構XYZスライダ&滑り台θ:FEETECH STS3215
とよはし☆キャチロボズのエンドエフェクタには空気圧用のチューブが存在しません。原理が気になった方も多かったと思います。
使ってるのはこれです。
10個買ったら1個あたり165円になりました。
リンクが切れてたら「JSB1523」などで検索すれば出てくると思います。
重量は配線つけて15gでした。5Vで動作し、吸着・非吸着に関わらず40mA程度で動きます。正逆転で特に差はありませんでした。
省エネなので制御(というかON/OFF)はフォトカプラやフォトリレーから行えます。DCモーターなので当然モータードライバからも動かせます。
ポンプの吸気口と吸盤を3Dプリント継手で直結するだけです。
エンドエフェクタから配線とチューブを引き回して大変そうなロボットを多数観測しましたが、吸盤を使うならこれが本当にオススメです。チューブが折れ曲がって吸えなくなるとか面倒すぎますし、チューブが何本も繋がっていたら抵抗になって制御に影響が出そうです。エンドエフェクタに電源2線CAN2線で伸ばしてやれば、エンドエフェクタ上で好きに分岐できますし、重量も大したことないので沢山つけられます。
とよはし☆キャチロボズのエンドエフェクタにマイクロポンプが採用され、最後の方の追い込みで問題が発生したときには発案者として胃がキリキリしていたのですが、決勝トーナメントでは取りこぼしゼロという最強の安定性を見せつけてくれました。
いいポンプ見つけて持ち込んだだけで運用も設計も何もやっていませんが、鼻が高いです。
裏話
リーダーがデカめのポンプでワークの吸着を試しているのを手伝ったときに、これで吸えるんじゃね?と気づいて試したらピッタリだったので採用になりました。
単4電池1本でこれくらい振り回せます。1.5Vでこれなのでポンプは上記のものよりも高級なものかもしれません。
日付を見たら3月の段階で発見していたみたいですね。
LogicoolのF310をロボット1台につき2つ使用しています。
コントローラーどうするか問題は初期から話し合われていて、既製品か自作か、有線か無線か、無線だったらWi-FiかBluetoothか周波数帯どうするか数はどうするかSBDBT使うかとかいろいろあったんですが、結局有線2系統で落ち着きました。
無線のメリットはコントローラーの重量がロボットの重量に含まれないことです。
有線はコントローラーの重量もロボットの重量に含まれるほか、ケーブルが床についてはいけない(ロボットの一部であるため)という制約がつきます。
重量面でのメリットよりも、通信(というか無線)トラブルが起こらないほうがキャチロボにおいては重要という判断になりました。
F310はみんなが持ってるコントローラーをかき集めたら3台あったので採用になりました。(1台追加購入)
F310はDirectInputモードで使用しています。
初めはSBDBTから使おうとしたのですが、うまくいってなさそうだったので借りてRP2350-USB-Aでガチャガチャしたら入力が取れて自作する流れになりました。長時間の接続でも問題ないことを確認したところで制御班長にパスして、ちゃんとしたファームウェアを書いてもらいました。
ロボットに使われているのはRP2040-Zero(のパチモン230円)を使ってSBDBT5Vとピン互換に作った基板です。Pico-PIO-USBでコントローラからの入力を捌いてUARTに変換しています。
[F310]———DInput———[SBDBTモドキ]———UART———[メインマイコン] SBDBT5V+Bluetoothドングル+DUALSHOCK3の組み合わせと互換になっているので、差し替えても動きます。(デバッグに使われてました)
キャチロボ期間中、この基板が原因で問題が発生することはなかったので本当に良かったです。
今回は沢山あったのでF310を使いましたが、モードボタンという爆弾がある(モードボタンの誤入力が問題になる可能性がある)ことに最後の方まで気づかなかったのは痛かったです。
モードボタンを押すとフライトモード・スポーツモードが切り替わり、LEDのインジケータが点灯してアナログスティックと十字キーが入れ替わるという仕様があるのですが、これが起きると操作がめちゃくちゃになります。
有線コントローラーとして採用するのであれば、
- 連射ボタンやモード切り替えボタンが無いもの
- 振動モーターが無くて軽いもの(自分で外すでも可)
- DInputとXInputは変換側でなんとかすればいい
- ロングセラーで追加購入が容易なもの
- 筐体が加水分解してベタベタしないもの
などを考慮するべきだなぁと思いました。
重大インシデント
僕は基板発注初挑戦からちょうど1年くらいなのですが、これまで扱ったUSB端子はType-Cだけでした。メス、オス、垂直のオスとバリエーションは割と豊かなのですが、今回Type-A端子を初めて使って完全にやらかしました。
正解は
Type-A端子には向きがあるんですね。
フットプリントが一致するものをアリエクで購入して付けたのですが、ベロ?の上付き下付きが反対で、4極の並び順も反対になっていました。
電流電圧モニタ付きのUSBアイソレータで異常に気づけましたが、最悪の場合はコントローラー逆接でPCのUSB電源を破壊しまくるところでした。
基板設計チェックリストに追加しました。
後日談
僕のロボットも同じ通信で動くようになっているのですが、F310が4台しかないせいで僕自身はこの基板を使えず、本番ではSBDBT5V+DUALSHOCK3を借りていました。
豊橋に帰ってから取り外して自分で使えましたが、感慨深かったです。
自腹です。
賞金を獲らなければみんなで仲良く5万円負担という強い覚悟を以てキャチロボに臨みました。
メンバーの多くが「とよはし☆ロボコンズ」のOBであるためそのように誤解されることもあったようですが、部費などの支援はありません。自腹です。
「ブルジョワ☆ロボコンズ」ではなく「借金★ロボコンズ」です。
身の回りにあるアクチュエータをかき集めてやりくりした上でのロボット製作費は37万円でした。交通費宿泊費運送費その他諸々は40万を超えたので、優勝・準優勝の賞金でギリギリ赤字回避です。
後日談
実は準優勝の賞金が10万円から30万円に増額されていたことに誰も気づいていませんでした。会場で気づきました。嬉しい誤算でした。
もし準優勝賞金が増額前の10万円だった場合、今回の支出だと確実に赤字
1週間でロボットアームを作って出場しました。
自分で全部やろうとしていましたが全然間に合っておらず、見かねた制御班長にアメリカから全部管理してもらう形で最短を駆け抜けて本番に間に合いました。本当に本当にありがとう。
Nidec 24Hモーターというドライバ内蔵・エンコーダ内蔵・7~24V対応でアリエクで655円で購入できるブラシレスモーターがあるのですが、これに3Dプリント遊星ギアヘッドを取り付けてロボット用アクチュエータにして垂直多関節型のロボットアームを作りました。垂直多関節型になった理由は、卓上サイズの汎用ロボットアームが欲しかったからです。スカラ型の方がこのアクチュエータに向いているとずっと思ってはいましたが、垂直多関節型の魅力には勝てませんでした。
上のような感じでアクチュエータのギアヘッドばかり弄ってました。RV減速機はバックドライブしなかったのでガッカリでした。NT東京では良い話のタネになったので良かったです。
最終的に遊星段を増やして減速比100でバックドライブあり、最大トルク8N・m(ただし歯飛びする)が完成しました。
ロボットアームは5軸にしたかったのですが、目標を徐々に下げる過程で先端がPWMサーボになり、手先θの旋回軸がそのままエンドエフェクタになり、このようになりました。
歯飛びするので全てをゆっくり動かしていますが、単体ではもっとキビキビ動かせます。本来の性能を発揮できなかったのは準備不足です。無念。
ロボットの総重量は2kgを切っていて、審判の方には毎回驚かれました。大会最軽量だったのかもしれません。
RP2040-ZeroとRP2040PIO_CANを使った1モーター1基板のCAN基板を作り、PwrCANケーブルで数珠繋ぎにしてRP2350-CANから制御しています。
CANコントローラを持たないRP2040ですが、RP2040PIO_CANによりCANトランシーバだけでCAN通信ができます。I can CAN.
電流フィードバック用のINA226や状態表示用の7セグLEDなども搭載していますが、使えることを確認しただけで今回は使っていません。
- Nidec BLDCの全機能を使った位置制御
- 自作CAN基板でロボマス(M2006+C610)回してフィードバックを読む
- RP2350-CANのXL2515でロボマス(M2006+C610)回してフィードバックを読む
というのを僕が書き殴って、
- デバッグしやすく整える&ライブラリ化
- 基板間CAN通信の実装
- アームの各関節の制御
をアメリカにいる制御班長にやってもらいました。
実績のない自作基板と初めて使うマイコンを組み合わせてCAN通信するのを遠隔(時差13時間)でデバッグさせるというとんでもない迷惑をかけてしまい、申し訳無さと感謝の気持ちで爆発しそうです。
RP2350-CANとRP2040-Zero(つまり全マイコン)はArduino IDEで書いたスケッチで動作しています。キャチロボ期間中にPico SDKと和解したんですが、まだまだ慣れているのはArduino IDEです。
4軸ロボットアームとなった今回の機体は、エンドエフェクタが常に真下を向く制御+各軸の個別制御で動かしています。
逆運動学を解いての制御は今後のお楽しみです。
予選敗退です。参加賞をいただきました。
予選第1試合では僕のロボットアームと同じ構成で長い上位互換アームと当たり、9対5で敗北しました。
予選第2試合では僕のロボットアームと同じ構成で更に大きな上位互換アームと当たり、36対7で敗北しました。
ロボットアーム競技会みたいな感じで楽しかったです。
自己ベストがテストラン時の6だったのですが、予選第2試合では自己ベストを更新できたので良かったです。
予選結果をまとめてみました。
決勝トーナメント出場条件で順位をつけると、僕はギリギリ半分より上になるようです。結構頑張りました。満足です。
僕のロボコン観戦は学ロボ2025が初めてで、次がXROBOCONでした。
特にXROBOCONはタイミングが近く、本番でロボットが動かない恐怖を植え付けられた状態でキャチロボに臨むことになりました。
僕個人のチームの目標としては、自分が作ったものを組み合わせてロボットとして完成させることと、本番にロボットを絶対動かすというものでした。
叶って良かったです。
また、M2にして人生初・学生最後のロボコンでした。豊橋の面々と一緒にロボコンができたことは、高専・専攻科の7年まで含めたとしても、学生時代で一番の思い出です。
今年で終わってしまうのが本当に惜しいです。来年も出れたらもっと上手くやれるのに。7年も高専にいて、どうしてこれまでの人生でロボコンをやってこなかったんだろうという後悔で一杯です。本当に楽しかった。終わってしまった。
9月18日(ピット開放1日目・決勝トーナメントの前々々日、つまり準備日)の朝にロボットを運ぶ役だったのにタイヤがパンクしてたのは絶望でしたが、最寄りのガソリンスタンドに同じサイズのタイヤがあって本当に助かりました。
宿泊費を抑えるため、会場から車で15分ほどのコンドミニアムに宿泊しました。10人以上で京都に宿泊するというのが完全に修学旅行のノリで、とても楽しかったです。
優勝・準優勝後の夜にお酒飲んだのも良かったです。あの後泊はボーナスタイムみたいな特別感があっていい時間でした。
