All_outlook機体紹介 ー2022全国大会ー
全国大会お疲れさまでした!!
前回、「関東ブロックでボロ負けした」っていうブログを書いておきながら全国大会に行けることになり、行ってきました。結果は、良くて13位悪くて20位くらいかな。
ということで、今回は1年間私達が開発したロボットについてできるだけ全ての情報を公開していきます。
間違ったことを書いている可能性があるので、このブログの内容を鵜呑みにして作ってみたりするのではなく、ここで得た情報をもとに自分で深く調べて見るみたいな使い方でお願いします!
設計コンセプト
既製品は使わない
こんなコンセプトどうなの?感は否めないですがロボットを作る上でモタドラとかマイコンとかキッカーとかをつなげただけで動くのは当たり前でそんなのロボット作るとは言わない!(言います)という考えのもと既製品はジャイロセンサとOpenMV、超音波センサのみという頭の悪いロボットになってしまいました。
またマイコンもArduino Microなどは使わずにチップのAtmega328や328p、2560などを使用し周辺回路も全て設計しました。(マイコンに関しては別記事に)
ポスター
これみたら雰囲気わかるので、まずはこれを読んでもらうのをお勧めします。この後の文章読みずらいので。。
ちなみにSponsorに書いてある次世代ロボットエンジニア支援機構様からは、STEPというプログラムを通して、10万分の部品提供をしていただきました。 基本的にロボカッパーはみんな応募できるような応募資格になっているので資金が足らないという方は、文章書くだけなのでぜひ応募してみてください!
参考:https://scramble-robot.org/support_info/step2021/
モジュール紹介
はじめにそれぞれのモジュール(??)の回路とプログラムについて解説します。 ハードはfTomoが、ソフトはJunが書いてます。
ラインセンサ
ハード
使用マイコンーATMEGA 328
このラインセンサ一番の特徴が円形に32個も配置したセンサ(16個しか使われてない…)とフルカラーLEDです。
センサの読み取りにはフォトトランジスタの値を8chアナログマルチプレクサを使って読んでいます。センサ回路は特に書くことはないですね。一つ言うとしたら半固定抵抗は使わんってことですね。 実は値の調節用に半固定抵抗(しかもチップ)を載せてたのですが、使われることは一切ありませんでした。
デジタルで読むチームは絶対必要なんだろうけど、うちのロボットはアナログで読んでいるので、プログラム側でしきい値をいじってあげれば、いいのでマジで必要なかったです。しかも、自動しきい値調整も作ったし、まじでいらない。 By Jun
一番このラインセンサで時間を取られたのがフルカラーLEDの電源周りの不具合で、ロボット内でモータの次に電気を食ってるレベルで電気使います。そのため細い配線や弱い電源だとちらついたり色がおかしくなったりと不具合連発します。対策にコンデンサを増やしたりLED用に電源基板から直接電気を取るなどして安定した電源供給ができるように工夫しました。
おそらくほとんどのロボットはラインセンサのメンテナンス性は悪いと思います。(知らんけど)なので、動作確認は定期的にやっておくのがベストだと思います。実際このセンサは分解などで半固定抵抗が壊れて値が出なくなるトラブルが数回起こりました。これも半固定抵抗をおすすめしない理由ですね。
ソフト
うちのロボットのアウトオブバウンズ対策は、ラインセンサのみで行っています。超音波などなど載っていますが、それは違う用途です。
僕の記憶では、全国大会の全試合合わせて、ロボットがコート外に出た(故障含め)の5回くらいだったはずです。そのくらい正確に制御できてました。
どんなふうに実装していたのか紹介します。
まず、うちのラインセンサは直径約8cmの円周上にLEDと受光素子が32セット並んでいます。なんでこんなあるんでしょうね。ただの金の無駄遣いです。しかも、考えるめんどくさいし。
ということで、プログラム側では16個の値しか使っていません()ホントに無駄遣いですね。いや、最終的には32個使いう予定だったのですが絶妙に一般化できていない関数がいくつかあったのでめんどくさくて、16個です。
これでも全く問題なく動くのでオッケーということで。
そして、16個のセンサそれぞれからアナログ(0~1023)で値を取得して、あらかじめ指定しておいたしきい値と比較して、大きければ1、小さければ0にして、ラインの有無を判断します。
その後、円周上で一番大きい0の範囲のど真ん中が、ロボットがライン回避するために進むべき方向という処理をしています。
具体的には、正面から時計回りにそれぞれのセンサに対して0-15までのIDを振っておきます。反応が0と処理されたセンサ数をカウントしておいてその分の配列を用意して、0が出力されたセンサのIDを前から突っ込んでいきます。
その後、その配列を先頭からfor文で回して、今の値と次の値を比べて事前に作っておいた結果を入れるための配列に、差が1だったらとそれ以外だったらで分岐して値を処理します。
そして、連続数が一番大きいところを見つけ出して、そこのIDに定数をかけてあげれば角度が算出できます!!
これを読んでも意味わからないと思うのでもし、興味があったら実際のプログラムを見てください(そっちはそっちでよくわからないけど、)
あ、あと全国大会準備日の深夜にふと思いついて作ったしきい値を自動で決定するプログラムも入っています。
こいつのおかげでラインの検出精度が一気にあがりました。
具体的なアルゴリズムは、メインマイコンから合図となる信号が送られてきたタイミングから一定時間内(10秒)で検出した最大値と最低値を記録して、その差の1/3を最低値にたしたものを、しきい値としてEEPROMに保存するといったものです。EEPROMもこれで初めてちゃんと使ったのですが何事もなく上手く行ってくれて良かったです。
ボールセンサ
ハード
使用マイコンーATMEGA 2560
おいおいなんで2560使ってんだ と思う人も多いと思います。その訳は16個のセンサと16+2個のLEDを制御するためなんです。
センサは16個を等間隔で円形に配置したものでローパスフィルターなどは使わずに直接デジタルピンでパルスを読んでいます。
問題はLEDでボールの方向などがわかるように8こを円形にしたものを2つ配置しています。+2個はマイコンので動作確認などに使っています。
更にOpenMVがメインマイコンのポート数の関係でボール用のマイコンと通信できるようになっています。
ソフト
簡単に言うと、センサの値を読んで、ベクトル合成して、角度と距離出す、ごく普通の方法でやってます。
センサの値を読むフェーズは、初めはpalseIn関数でやってたんですけどあれは時間かかってしょうがなかったので、Tadaさんのブログを参考にして一気に読む方法にしました。一定時間、全センサをwhileとfor使ってデジタルで読みまくって、LOWだったらリザルトの変数にプラスしてくみたいな方法です。
値読んだあとは、そのまま全部で合成すると、壁との反射などで角度がおかしくなるので、最大値を出したセンサの周囲、5個のみをx軸、y軸に分解して足し合わせて、atan関数で角度を算出しています。分解の方は、事前に定数として、sinとcosの値を保存してあります。
距離は、最大値出したセンサの値をifでめっちゃ遠い、真ん中くらい、近いで処理しています。
ジャイロセンサ
ハード
使用マイコンーATMEGA 328
使用センサーMPU6050
メインマイコンではなくジャイロ専用にマイコンを用意しているのは昔センサの起動が遅いと思われてた時代にメインマイコンよりも先に起動させておくのに使っていた名残で今も別になっています。正直今はメインマイコンでいいらしい
ちなみにジャイロも8個の円形に配置したLEDがあって向きを8方位で表示することが可能になっています。
ソフト
完全にライブラリ任せです。ライブラリ神。
ホントはオフセットとかUIで出来るようにするべきなのですが、そんなにオフセットすることもないのでまだ実装してません。
ちなみにジャイロ専用のマイコンを載せているので、センサからi2cで値とって、角度出して、UARTでメインに送ってます。正直、メインで直で読むので十分です。まぁメインマイコンのループがどれだけ遅くなっても角度に影響でないので安心っちゃ安心だったかもしれない。メインループが遅いと他に影響出るからなんともいえないけど。
カメラ&超音波
ハード
使用マイコンーOpenMV H7 Plus
まあ回路は超音波センサ3つを直接つなげただけです。注意点はOpenMVが3.3V、超音波が5V駆動なところですね。超音波センサには5Vをしっかりつなげてあげてください。センサの値も5Vで出力されるのですが、OpenMVが全部のピン5Vトレラント対応しているので気にしなくでOKです。
設計上で工夫したのが後ろ向きの超音波センサでまっすぐに取り付けてしまうとゴールよりも高くなってしまいゴールを認識できなくなってしまいます。そこで10度ほど下向きに傾けてしっかりとゴールを読めるようにしました。
ソフト
ん?アルゴリズム??
飾りです。
カメラついてるだけで強そうな雰囲気でる。
あぁそういえば、ブロッカーで一瞬使ったけど超音波嫌い。
真面目なこと言うと、うちのロボットは中立点に置かれたときのゴール率がとてつもなく低いです。
まず、回り込みの精度をどうにかするべきってのはありますが、中立点はちょうどゴール端の真ん前に位置してるのでそれだけじゃだめなはずです。
こうなると、カメラでゴールの角度を認識してその方向にゴールするのがベストなのかな〜と思い、搭載しました。プログラム間に合わなかったけど。ラインセンサに時間かけすぎた。。
ボール補足センサ
ハード
なんとですねこの記事アルゴリズムがJunに書かれた後にハードを私が書いているのですが、書きたいことほとんど書かれてる!なんでなん?
少し補足しておくと受光側のセンサはラインセンサと全く同じ回路を使ってます。
あとレーザーを置く場所なかったので縦置きにして光を直角にミラーテープを使って曲げています。
ソフト
うちのセンサはレーザー使って光を絞って受光側に当ててます。なので、レーザーの少しのズレで受光素子に当たらなくなるので、素子を6つ並べてどれかには当たるようにしています。
受光素子それぞれからアナログで読み込んで、最大値を出したのセンサの値が一定値を超えていればボールが無いと判断します。
光を絞っているのでレーザーがあたっているときは相当、値が大きくなるので、ボールの光や環境に左右されることが少なくなっています。
無線通信
ハード
使用マイコンーESP32
ラジコン遊びにしか使われなかった不運のマイコンです。ESPってめちゃ安いから趣味でもよくつかいますが、自動書き込み回路がめちゃだるいです。あと3.3V駆動なので別に電源を用意したりレベル変換回路を用意したりと手間がかかって昔は不具合連発してました。自分でESP動かない時マニュアル作るほどでしたが、それ見たらなんとなく動くようになります。ふしぎだな~ (多分それも公開されるでしょう)
ソフト
ラジコンとして遊ぶのに使いました。
楽しかったです。
ちなみにコントローラーとして使っているのは、"Arduino Joystick"というやつです。簡単に使えて楽しい!
本日の進捗。
— All_outlook (@All_outlook) 2022年1月5日
やばいね。 pic.twitter.com/JF5he5jNNO
昇圧回路
ハード
使用ICーNJW4131
秋月のキットhttps://akizukidenshi.com/catalog/g/gK-07406/をパクったものですね
このキットは最大30Vなのですが頑張ってデータシート読みながら抵抗値変更したりして40Vまで上げることができます。
コンデンサは初期は2200μFを中期には4700μF✕2を後期は4700μF1個に落ち着きました。中期はパワーが出すぎてキッカーのテストを超えてしまってオーバースペックでした。今回の昇圧回路は出力調節なんてものはなかったので今後昇圧回路自作したいーみたいな人は絶対調節できるようにしましょう。
さらに過去キッカーを駆動させたときにロボットが動かなくなる不具合が多発したのですが、原因は電圧低下orソレノイドの逆起電力によるものだったと思います。そこで対策としてソレノイドの絶縁回路を組みました、ソレノイド動作時にPchMOSFETを使って全体の回路とソレノイドを電気的に絶縁することで動作時の電圧低下や逆起電力の影響が出ない用に工夫しました。この方法はコンデンサの容量を増やしたり、逆起対策のダイオードよりも難しいですがロボットの安定動作に欠かせないものだと思うのでぜひワンランク上の昇圧回路を目指してみてください。
またMOSFETの使い方を覚えたら色んなところに応用(LEDのONOFFやフルカラーLEDのONOFF、モタドラ)できるので、興味があれば勉強してみるのがおすすめです。
ソフト
まぁ何も考えず、補足センサの値を見て、ボールを一定時間補足していたら打ち込むようになっています。
キックするときも、一定時間放電し、その後4秒ほど待たないと次のキックが出ないようになっています。連発しているとなんかしらんけど、動かなくなるため。
モタドラ
ハード
使用マイコンーATMEGA328
こいつには苦しめられてきました。今まで4つもモタドラを作ってきましたがちゃんと動いたのはこの最後のものだけです。
過去の3つはモタドラとして製品になっているものでただマイコンとモーター、電源をつなげるだけのものです。なのに動かない、過電流保護が働くなどでまともに使えるものではありませんでした。今回のモタドラはハーフブリッジドライバとMOSFETから作るマジモンの自作モタドラで、まあこれにも動かないなどのトラブルが有りましたがMOSFETのゲート端子に繋がる配線を太くしたりコンデンサを5V系統と12V系統に各100μF載せたり対策をしてちゃんと動くようになってくれました。
ソフト
メイン側でそれぞれのモーター速度の目標値を決めてあげて、それぞれのモータードライバマイコンに送りつけています。
メイン側では、進行方向、傾き角度、スピードを入れてあげれば勝手に計算して送りつけてくれる関数を作ってあります。中身は普通に三角関数でいい感じにやってあげて、適当に合成して上げてます。
モータードライバ側では、送られてきた目標値をもとに、MDにPWMで送ってあげてます。周波数は今確認してみたらデフォルトのままでした。ここのマイコンでは、モタドラが壊れないように、正転後転切り替えが連続しないようにしたり、一気に加速したりしないようにしてたはずです。
ホントは、PWM周波数を下げると、もっと低速回転ができるようになることを確認(熱かったけど)したので、スピードによってPWM周波数を変更する処理を追加するべきだったかなーとか思っています。あと、正転後転切り替えの処理とかもっと攻められる気がしてたのでやるべきだったかな〜と思っています。
まぁモタドラ側のプログラムは12月頃から書き換えてないので色々直したいです。
電源
ハード
この基板はスイッチとヒューズ、電圧計、5V生成だけの簡単な作りになっています。
5V生成には贅沢にこのhttps://akizukidenshi.com/catalog/g/gM-06187/村田製のDCDCコンバータを使っています。(今見たら値上がり&在庫切れやん)正直こんなんじゃおすすめできないですね。
今作るならhttps://akizukidenshi.com/catalog/g/gM-06563/を2こ使うかなメイン基板とLED系統に分けて
絶対におすすめしないのが3端子レギュレーターです。どこかのくまちゃんが苦しめられてましたが、使うのは簡単なのですが発熱がひどく放熱が必要になる場合があるし効率が悪いしといいことないです。とは言うものの入力の電圧と出力の電圧の差が大きいと発熱が大きくなるので、電圧差の少ない5Vから3.3Vを生成するのに使ってたりします。
構造
インサートナット
こいつはいいぞ
半田ごてで温めながらニュって入れればいいので3Dプリンタとの相性抜群で整備性もナットが外れないので格段に上がります。
最初は難しいですが多分何十個もやるのですぐなれます
ちなみにAmazonのよくわからない激安のやつを使っています。全国大会前に追加するとき、ちゃんと見ないで買ったせいで、大きめのやつが届きました。ちゃんとした奴がいいならヒロスギとかで買うといいかも。あと、ヒロスギだとM2のインサートもあるらしい。使えるのかは知らんけど。By Jun
ハンドル
5mmアルミ棒を手で曲げてます。実はパイプじゃないんですねえ
固定方法は、棒の先端に穴開けてM3のタップを切って、直接ネジ止めしてます。この方法は非常におすすめしないです。ネジが緩みやすかったり一点に力が加わるので壊れやすいです。さらに試合後にハンドルが外れることもありました。こわいですねえ~
ということでおすすめしないハンドルでした。
バッテリーケース
軽量化のため穴を開けまくりました。三角形を意識して設計したのでそこまで強度不足も感じずに良かったです。
取り外しは手で回せるネジを一箇所取るだけですぐにできます。さらにネジなので外れることもありません。そしてXYZ軸すべて固定することで車検もしっかり通りました。おそらく上カバーがないと車検をクリアできなかったでしょう。
トップマーカー
このトップマーカーは結構人気でしたね。裏表に数字を書いておくことですぐに番号を変えることができたり結構利便性も高くできました。
ちょっと気にしないといけないところは3Dプリンタの関係でデータより小さく造形されるおそれがあるのでトップマーカーの直径を4cmよりも少し大きく設計するところです。(気にし過ぎか?)
ちなみにルールには " ~ referee to write number ~" と書かれているので、本来は審判が手書きできるようにしておかないとだめっぽいです。まぁ直接、試合結果にかかわることではないので緩かったんですかね。 そうなったとしても対応できるよう、無記入の円板も持ってってました。
オムニ
このオムニはこのチームができてから基本的には形状の変更もなく順当に進化した感があります。実はこのオムニ本番用ができるまでの仮オムニだったのですが本番用のオムニなんて作られることなく仮のもののままここまで来てしまいました。今回の大会用に新調したオムニはワッシャーをすべてのサイドホイールに付けシリコンの径も6mmから8mmに変更したり少しだけ過去のものよりも進化した…と思っていたのですが、いざ試合に出てみるとコートがワッシャーだらけじゃないですか!はい、うちのオムニです。本当に審判の方々相手のチームには迷惑をかけました。申し訳ございませんでした。
よしワッシャー全部取ったぞ これで迷惑をかけなくてすむ!…と思っていたのですがコートには白い粒がいっぱいじゃないですか!はい、うちのオムニです。今度はワッシャーがなくなった分サイドホイールに余裕ができて3Dプリンタ製のオムニに負荷がかかってしまい壊れてしまいました。
結果、前使っていたオムニに戻して一件落着 ちょっと、いや結構悔しい結果になってしまいました。
プログラム
通信について
マイコンが大量に載っているので通信を成立されるのがめちゃめちゃだるかったです。よくわからないし。正直、今もなんか知らないけど動いてるって感じです。
方式は全部UARTでやってます。基本的には、115200bpsで、ソフトウェアシリアルで受信するところは57600bpsにしています。
ちなみに並列でソフトシリアルで受信しようとすると使い物にならなかったです。使えるピンかな〜とか思って試したのですがだめだったです。要研究です。
なので、メインマイコン(ATMega2560)では、ライン、IR、ジャイロ、ESPの信号はハードシリアルで読んで、モタドラへの出力はソフトシリアルでやってます。
他のマイコン(ATMega328など)は、基本的にソフトシリアルで色々やってます。ソフトシリアルも1系統なら安定して使えるので良いです。
データは、それぞれ送りたいデータを1byteごとに丸め込んで送信しています。
例えば、ジャイロからメインは、0-360の角度情報を1.5で割って送信しています。ラインもおなじ方式です。
IRからメインは、ボール角度と距離を送りたいので、データ送信時に先頭に255を付けて、角度、距離、カメラからの値といった感じで通信しています。カメラからの値というのは、カメラをあとづけしたため、メインに繋げられなかったのでIRセンサに繋げたためこうなりました。
初めの頃は、SPIでやろうとしていたのですが、ブレットボード上ではできていたのに組み込んでみたら上手くいきませんでした。なので、SSとして使われていたところをソフトウェアシリアルして使うようにして、無理やりやったらうまく行ったのでずっとそのまま来ています。
今、よくよく考えるとソフトウェアシリアルにしたあと、マイコン電源にコンデンサを突っ込みまくったらうまくいくようになった気もするので、別にSPIは関係なかったんじゃないかなぁた思ったり。。。
SPIで動くなら、そっちのはうが速くて良かった気がします、、
スタートスイッチはトグルが一番!
初めの頃は、スタートスイッチをタクトでやっていたのですが、制御がめんどくさいし、不安定なのでトグルに変更しました。
毎ループ初めに、スイッチのつながってるピンを読んで、ifで処理してあげれば良いので最高です。
試合でスイッチ押すときにも、直感的にスタートしたり、ストップしたりできるので便利です。
タクトだと押しミスしたり、どのスイッチかわからなくなったりしてミスりまくっていたので、スタートは、トグル。他のUIはタクトかスライドがわかりやすくていいんじゃないかなと思います。
トグル最高!!
アタッカー
メインマイコンにそれぞれのサブマイコンから角度などの元データが送られてくるのでそれをもとに動かします。
受け取った角度データはジャイロの角度を引いてあげて、モーターへ出力するときは足してあげることで、コートの向きを基準とした角度軸で処理ができるようにしています。
また、その処理後のラインの値を保存しておき、毎回、前回の値と比較して、+130°〜230°の範囲になっていたら、もとの値に180°足すようにしました。
ここまでは、ブロッカーもアタッカーも共通です。
アタッカーは、まずラインが反応しているか確認して、反応していたら回避する方向へ進む、反応していなかったら、ボールの方向をもとに回り込み、姿勢制御を組み合わせて、動くといった処理になっています。すなわち、ラインの反応しているときは、他のことは何も考えずライン処理をするようになっています。
回り込みは、すごく適当なif文でやってます。全く正確じゃないです。一応、距離も使ってます。
今考えると、円と接線をちゃんと考えて、連続性のある関数を組むべきだなーと思います。今度、組み直します。
ブロッカー
いい感じのブロッカーできた!!! pic.twitter.com/gkwhobYCBN
— Jun (@jun_robot) 2022年4月28日
ブロッカーは、もともと超音波センサでやろうとしてたのですが、誤認識が多くてほぼうまく行きませんでした。
大会後に会場で教えてもらったラインセンサをもとにしたブロッカーを組んでみたらいい感じになったので紹介します。
やっぱり初めはラインセンサが反応しているかを確認します。反応していなかったら、前回反応していた方向へ進みます。また、反応が30°〜150°だったら45°へ、210°〜330°だったら315°へ進むようにして、角の部分で引っかからないようにしています。他の部分が反応していたら、ボールセンサの値をもとに、真横に動きます。
復帰したとき中立点からゴール前へ戻る処理と、一定時間ボールが動かなかったら攻撃する処理はまだかけていないので今度やります。
UI
幻のLCD&タクトモジュールは使わず、2つのスライドスイッチとトグルスイッチでやってました。
スライドスイッチ2つで4つのモードを作って、トグルの向きでそのモードの処理を実行するみたいなプログラムです。
今のモードの内容としては、アタッカーモード、ブロッカーモード(超音波)、ブロッカーモード(ライン)、ラインの閾値調整モードの4つになっています。今後はブロッカーモード(超音波)をラジコンモードにでも変えて、すぐに遊べるようにしておこうかなと思ったり。
ここまで読んでもらえばわかるように、スイッチ操作のみでアタッカーとブロッカーを変更できます。なので、試合中にダブルアタッカーにしたり、ブロッカーアタッカーにしたり戦術の幅が広がりとても良かったです。
あと、自動しきい値調整は短い時間にパソコンを広げなくとも、正確なしきい値にできるので最高でした。
おわりに
こんな感じで今年のロボットの紹介を終わりにします。
字が多く、読みにくくてすいませんでした。次はもっとわかりやすくしたいです。
何か質問とか、これはダメだろみたいなことがあったら、コメントかTwitterで教えて下さい。
最後まで読んでくれてありがとうございます!!
全国大会で試合したときの記念撮影。
楽しかったです!皆さんありがとうございます!!
三田学園物理部チーム「Re_X」
GUJO ROBO
KORRDET
Root41
ブロッカーについて
どうもこんにちはYoshitoです! 今回は関東大会で作ったブロッカープログラムについて紹介したいと思います。 関東大会では、1試合目はブロッカーを動かしたのですが、2機体目以降はアタッカーが故障したためにブロッカーをアタッカーとして使ったので、調整と1試合目しか出ていませんが、自分たちのブロッカーについて書きたいと思います。 が、自分たちのブロッカーについて書きたいと思います。
ブロッカーは大まかに、ゴールを囲う白線上を動くという感じです。ボールが左側にあったら左に、右側にあったら右に、正面にあったら止まります。一応、ボールが一定間動かなかったら前に出るようにしています。
詳しく説明する前にラインセンサのプログラムについて紹介したいと思います。
ラインセンサ
ラインセンサは32個と多いためアナログマルチプレクサを使い読み取っています。 白線を踏むと値が大きくなるので閾値を調整して値が閾値未満なら0、閾値以上なら1としています。 その1の中で最も小さな整数と最も大きな整数を出し繋いでいます。 分かりにくいと思うので例を出すと、閾値が500だとして、0~31を示した場合、
240,300,280,300,560,600,480,240,300,200 (0~9番)
400,300,345,340,380,420,250,420,440,200(10~19番)
450,300,240,450,560,320,190,220,450,600(20~29番)
560,540,(30~31番)
と出た場合、4、5、25、29、30、31番のラインセンサが1となり、他は全て0です。また、この中の最大値は31、最小値は4となります。(テキトーに出したのでこういう値が出るかは分かりませんが…) これで(最大値ー最小値)がラインセンサの半分(16)より大きければ、平均を出してラインセンサの半分(16)を足した値、小さければただ平均の値としています。その出た値に11.25(360÷32)を掛けて出た角度が白線がある位置となります。 上記の例の場合だと、31が最大、4が最小になるので、(31-4>16)であるため、(31+4)÷2+16となります。(ラインセンサの値が0か1かを決める時点で全てが0だった場合、角度は0としています。逆に正面は360にしています。)しかし、この場合だと、33.5と31を超えてしまうので、32よりも大きかった場合は、その値から32を引いています。そこから出た1.5上記の例の場合だと、31が最大、4が最小になるので、(31-4>16)であるため、(31+4)÷2+16となります。(ラインセンサの値が0か1かを決める時点で全てが0だった場合、角度は0としています。逆に正面は360にしています。)しかし、この場合だと、33.5と31を超えてしまうので、32よりも大きかった場合は、その値から32を引いています。そこから出た1.5に11.25を掛けた値が白線の位置となるので、1.5×11.25=16.875が白線の位置です。通信の関係上、小数点以下は送れないので、四捨五入をして、17がラインセンサの角度として送っています。
ブロッカー
ということで、ラインセンサの角度が出たところで、本題のブロッカーのプログラムに入っていくのですが、ラインセンサから0(コート内である時の値)が送られ来た場合、機体は180°に進むようにしています。これはコートを囲む白線を守るためです。 ゴールの白線の横ラインに触れた時は、ラインセンサから180という値が送らてくるはずなので、そうなったら0つまり機体が停止するようにしています。しかし、機体は急には止まれず、白線を超えてゴールエリアに侵入してしまう(白線を超えて最終的に白線が読み取ることができなくなり、コート内にいることになり、180°に進んでしまう)ため、前回から送られてきた値を保存しておいて前回のラインセンサの値が360(白線を通過した時、ラインセンサが最後触れるのは31、0、1番付近で上記のラインセンサプログラム上、360)であり、今回の値が0となった時のみ、次にラインセンサから180と送られてくるまで360°の方向に進むようにしています。
最終的にラインセンサの値を頼りにして決めた角度が0となったらここで初めてIRセンサを頼りにします。IRセンサも同様0~360(ボールが見えない時は0、正面にある時は360)で送られてくるため、350~10、170~190は止まり、10~170は右へ、190~350は左に進むようにしています。 また、ボールを追っていると、ゴールを囲む白線のカーブしているところや縦のラインを踏むことになることがありました。 そのため、ラインセンサでは踏んでいる角度が送られてくるため、右のカーブしている部分は330°、左のカーブしている部分は30°、縦の白線は360°に進むようにすることでゴールを囲む白線の横のラインにいれるようにしました。 しかしこれでは、それがゴールを囲む縦の白線なのかコートを囲む白線なのかを判定できなく、もしコートを囲む白線だった場合、機体がずっと前進し、相手側に行ってしまうため、一定時間ラインセンサから90もしくは270と送られてきた場合は、送られてきた値の反対側に1秒ほど進むようにしています。こうすることでコートのをしっかりと守ることができました。 また、ボールが一定時間動かなかった場合、機体がボールを1秒ほど追った後、また180°戻るようにしました。 この方法として、最初ラインセンサと同じように前回の値と今回の値とほぼ同じなのが3000回くらい繰り返した場合、前に出るにしていましたが、これだと機体の1ループはとにかく速く、ボールが動いていても前回の値と今回の値はほとんど変わらなくなってしまい、1000ループに1回機体ボールを追うことになってしまいました。そのため、IRセンサから値が送られてくる度に数えておき、1回目と750回目が同じだった場合は次へ、違かった場合は数えていたものをリセットというものを1500回目、2250回目と繰り返し、3000回目と1回目の値が同じだった場合のみにボールを追うにすることで改善されました。 最終的に出たラインセンサもしくはIRセンサを頼りにした値とジャイロセンサの姿勢制御をスピードに入れて機体を動かしました。
しかし、ゴールがなかったら上手くいったのですが、ゴールを付けると角ではまってしまうというミスが出てしまったため、これはもっともダメなことなんですけども直すことができませんでした。 以上がブロッカーのプログラムでした。 分かりにくいと思うのでなんとなくまとめると、
1、ラインセンサからの値が0であった場合は後進する 2、ラインセンサが180と示したら、ゴールの横線であるため、ストップ 3、しかし、2だとアウト・オブ・バウンズになってしまうため前回の値と今回の値を記録しておき、前回が360で今回が0だった場合は、ラインセンサから180と送られてくるまで前進 4、白線のカーブは30°、330°、縦線なら前進 5、しかし、4だと前進する時コートを囲む白線かゴールを囲む白線かを判断できないため、一定時間前進命令が出たらラインセンサの値の反対側に一定時間進むようにする 6、ボールは何度か値を保存しておきその値と1回目と3000回目が同じだったら、ボールのみを追い、一定時間したら戻ってくる
しかし、ゴールの角にはまってしまうためそこは要検討… こんな感じですかね…分かりにくいと思うのでプログラムを載せて置きます。(こっちも分かりにくいかも←そしたらどうしようもねぇ…)
最後に
上のブロッカーを読んでいただきありがとうございました。今回の関東ブロックをもって私、Yoshitoはロボット制作すなわちAll_outlookを引退させていただきます。これは学力が低下して大学に行けないのではないかと親に止められてしまったからです…これから勉強に励みますのでよろしくお願いします。私情ですみません… RCAPで関わって頂いたり、Twitterで交流して下さった方々ありがとうございました!9か月くらいととても短い間でしたがとても楽しかったです。今後も私は引退しますが、All_outlookは残りますのでよろしくお願いします。
ご静聴ありがとうございました!
関東ブロック敗退。
お久しぶりです。約3ヶ月ぶりにブログ書きます。All_outlookリーダーのJunです。
タイトルから分かるようにロボカップジュニア関東ブロック2022において、予選敗退しました。これで、僕たちの全国大会への道はなくなりました。
全国大会、世界大会を目指して様々な大会に出たり、ロボット作りまくったりしたのですがだめでした。
// この下はただの言い訳。
でも、”ロボットに捧げた時間”と”技術力の向上度”ならどのチームにも負けてないとは思っています。
時間で言ったら、8月頃からは、毎日21時からDiscordに集まり日が変わっても作業、休みの日は全て、公民館が空いている時間(9~21)みんなで集まり作業してきました。大会前は、2週間前頃から平日でも18時ころから公民館で作業したりもしました。遊ぶ時間も勉強する時間もほとんど削ってロボット作ってきました。ここまで、一つのことをやり続けて極めようとしている高校生はほとんどいないと思います。
技術力に関しては、4月の終わりにチーム結成してから全員大幅に向上しました。僕は、中学時代は設計、製作をやっていたのにプログラムを書きました。Yoshitoは、これまでプログラムを書いた経験まったくない中、9ヶ月であのブロッカーのプログラムを書きました。3214は、これまでまともに設計したことない中、Fusion360でロボットの全体を設計しました。最初は、整備性もなにも無いような機体から、関東ブロック機では、整備性まで考えられたロボットを作りました。fTomoは最初は動きもしない回路を作っていましたが、関東ブロック機では、マイコンを7台のせて、キッカー打っても安定する回路を作りました。
本当にみんなほぼ0からの状態でここまでのロボットを9ヶ月で誰からも教わることなく作れたのは、誇れることなのではないかと思っています。
できるだけの努力はしてきたつもりです。でも負けました。会場に行ってプログラムが急に入らなくなりロボットが動きませんでした。これがロボコンだと思います。どんだけ努力したかじゃなくて当日動くかが全てなんです。
RCAP、関東ブロックと大きな大会に出て、強いロボットとは、安定して動くロボットだとわかりました。どんなにいろんな機能を持っていたって動かせなければ意味はないんです。キッカーだとか、スピードの向上だとか、マイコンいっぱい載せてみるとかは、ちゃんと動かしてからやるべきことなんです。てか、そんな無駄なことやらないでも、ラインから出ないで、ボール追って安定して動いていればある程度の順位にはいけたのかなとも思います。
でも、僕らはとても早いスパンでのロボットの作り変えをしました。マイコン増やしたり、MD変えたり、キッカーつけたり、無線通信できるようにしたり。余計なことをしまくりました。こんなことをしまくって、大会当日まで、ハードの作り変えをし続け、プログラムを余裕を持って調整することもできず、負けました。
今考えると、できるだけシンプルな構成で既製品を多く使い、プログラムもできるだけ単純で安定して動くようにして、細かなパラメーターの調整に一ヶ月くらい当てれば、関東大会は勝てたのではないかなと思います。
とはいっても僕らにそれはできなかったとは思います。
やっぱり、色んな機能を搭載して、市販品をできるだけ使わないで自作して、ラインからギリギリまで出て、とか色々やるのが楽しかったからです。最低限のロボットを作っていても、これまでモチベーションを保つのはできなかったと思います。
2021年4月から1ヶ月ごとに何やったかを書いて終わりにします。
4月
4月26日に結成しました。
5月
GW中にロボットもまだ何もできていない中、コートを作り上げたみたい。
あれ?ロボットがない... pic.twitter.com/NVKVuYeSY9
— All_outlook (@All_outlook) 2021年5月5日
6月
いろいろ設計を進めてたらしい。
ちなみにこの月に8月にあるBIWAKO OPENの申し込みしてたらしいです。
進捗:機体完成?
— 3214 (@3214_Y) 2021年6月27日
目標:肉抜き完璧に終わらせる
レンダリング~レンダ レンダ レンダァ~
レンダリング~レンダ レンダ レンダァァ~
ect…#All_PDCA pic.twitter.com/Nkptotegi4
7月
無理やり終わらせて初の発注。
うーん🤔
— All_outlook (@All_outlook) 2021年7月27日
BIWAKO 間に合うのか??? pic.twitter.com/pS3ynhggql
8月
初めてのロボットが完成。
ちなみにこいつを動かすことはできませんでした。
仮組みしてみた!
— All_outlook (@All_outlook) 2021年8月7日
あとは前方の3Dパーツと部品で275gだから重量的には大丈夫かな。
強度が足りてない気がする... pic.twitter.com/KTUv8u2eKM
回路を大幅に変更してユニバーサル基板で超単純なものを作って無理やり動かしました。
ほんとは8月末にNESTロボコンがあるはずだったのですが延期になりました。
1対1 pic.twitter.com/FIxWkf3wNV
— All_outlook (@All_outlook) 2021年8月27日
9月
キッカーを作ったり。
キッカー実装!! pic.twitter.com/399NlVbOIZ
— All_outlook (@All_outlook) 2021年9月18日
ESP32でラジコンしたり。
ラジコン操作できた!!
— All_outlook (@All_outlook) 2021年9月21日
ルール的にはアウトだけど数値通りに動くかどうかの確認には良さそう pic.twitter.com/wIjiH7xeqt
10月
延期されたNESTロボコン。パンフレット作ったりもしました。
NESTロボコン準優勝しました!(先週)
— All_outlook (@All_outlook) 2021年10月30日
次は千葉ノード!絶対勝つぞ! pic.twitter.com/K7tULFOqMT
11月
一気にレベル上げてマイコンのせまくったり色々したら動かすのに苦労。。。
モーターごとにマイコンのせてSPI通信で動かしたいけど、たまに通信途切れてまともに制御できない、、
— All_outlook (@All_outlook) 2021年11月11日
ちなみに動画では正転と反転を繰り返すプログラムになっているのに、動き続けてるのがいる、、、 pic.twitter.com/ZSJ0cOdwjr
この月にあった千葉ノードでは2チーム中優勝。
RCAPはこれ↓
RCAP2021Aichi 18チーム中11位でした、、
— All_outlook (@All_outlook) 2021年11月28日
試合結果は微妙でしたが初めてサッカーの大規模な大会にでたので色んなことを学べました!
また、いつもTwitterで見てた方達と実際に会って色々話せて楽しかったです。また会えたらよろしくお願いします!!
特にRoot41の2人ありがとー!めっちゃ楽しかった pic.twitter.com/9Qfa9r5CyO
12月
調整したり。
家散らかりすぎてて、コート広げる場所なかったから、家の外でやることになった… pic.twitter.com/3Cb45BEdnY
— Yoshito (@yoshitooo441000) 2021年12月29日
関東に向けて基板の作り変えしたり。。
Atmega328動いてくれよ…
— fTomo (@Ftomo_robot) 2021年12月31日
pなしトラップきつい#All_PDCA pic.twitter.com/pxHduF3O2i
1月
こんな感じになって。
— All_outlook (@All_outlook) 2022年1月8日
おわおわり。
— All_outlook (@All_outlook) 2022年1月10日
です。
こんな立派な賞が送られてきましたが予選敗退は予選敗退なので全国大会にはいけません。どうせならこの賞も取れなくてよかったのになって。全国までにこんなことをしようとか色々考えていたのですが全部消えました。
僕らの9ヶ月はこれで終わりです。
Twitterや大会会場で出会った皆さんありがとうございました!!
ーAll_outlook シーズン1 終ー
プログラム反省 Yoshito
どうも皆さんお久しぶりです。All_outlookプログラム担当のYoshitoです。1回ブログあげたのがロボットインフォとかいうわけわからんやつ(5月30日)であれから5ヶ月経っているんですよね。だから何だって感じですが…
という事で今回は、8月の下旬に緊急事態宣言で延期されたNESTロボコンが10月24日にがありまして、それまでのプログラムの反省をしていこうと思います。
まず初めに、
ジャイロがめちゃくちゃ狂う
機体を動かしているうちに正面を向かずに30°くらいずれた位置を向いていて、ゴールのある方向に向かっていないという事が試合中何度もありました。
ただただ姿勢制御をするってだけでも元の位置に戻らなかっりしてしまったので直していきたいと思います。
これの原因として、モーターが逆向きに回る時にブーレーキやストップを入れるようにしているのですが上手く動作しなかったりでArduinoでの処理が止まってしまっているのかなと感じました。
ジャイロの反省はもう一つあって、
起動時間がとても掛かる
回り込みはIRセンサから送られてきた角度によって動く方向を決め、その方向まで動いたら直進するというプログラムなんですけど(例えば45°の位置にボールがあった場合、まず135°の方向に動き続け、0°になった時直進する)、その回り込む角度がしっかりしていなかったり、動き過ぎてどんどんボールから遠ざかっていくという事があったので、回り込む角度をより分析したり、回り込みをする時はスピードを落とすなどの工夫をしていきたいです。
他にも、
ラインに反応しない
現在の機体は棒状のラインセンサを十字型に(上下左右4つ)配置してどこの位置が光ったかで動作を変えているんですけど、部屋の光の明るさだったり、ラインの濃さによって反応しないということがあるのでそこをすぐに変えられたり、光の強さを読み取って勝手に閾値を変えてくれるセンサ?みたいのをつけたいなって思います。
また、キッカーを動かすために、ボール補足エリアの横の壁にラインセンサとLEDをつけて、ボールが入った瞬間LEDの光がラインセンサに届かなくなるのでその瞬間打つというかたちにしているのですけど環境によってこちらも変わってしまい、動かなかったり、ずっと打ってしまったりしているのでそこを勝手に変えられるようにしていきたいと思います。
他にも、
角度によっては機体が動かなくなる位置がある
これは、ハードの問題かソフトの問題かはよく分からないんですけど、ボールのある角度によっては機体が動かなくなってしまうことがあって(ボールの位置が変わるのと動くようになる)、これがソフトの問題となると先ほど書いたブレーキとストップがしっかりと作動していない事によって処理に時間が掛かっているのかなと思います。
同時動作ができない
ラインセンサが反応していてかつ回り込みをしようとし、かつ姿勢制御をするという時に同時に色々な動作が起こって、アウト•オブ•バウンズしてしまったり、ジャイロの値が狂ってしまったりしているのでそこに対応できるようにしていきたいと思います。
今回のブログでは大きめなミスをあげたんですけどまだまだミスがあったり、ましてや今回のNESTロボコンではブロッカーのプログラムができていなかったりしているので上記を活かしながら今後の活動に力を入れてきたいと思います。
また、ドリブラーやカメラを今後取り入れていくので取り入れるとどういう事が起こりそうなのか今のうちにから考え活動していきたいと思います。また、今回のNESTロボコンでどうすれば良いいか分からず、同じ作業を繰り返していた事が多くあったため、デバッグのしやすいプログラムという事の大切さをよく感じました。
正直どうでもいい文章を読んでくれた方ありがとうございました。今後とも宜しくお願いします。
NESTまでの個人的な反省。そしてこれからの機体をどうするか
機体の全体について
メンテナンス
メンテナンス性について話したいと思う。今回のメンテナンス性の何がダメだったのかと言うと、一番は、多くのネジを外さないと必要な部品の修正が出来ない点であった。なぜこれが起こってしまったのは、Fusion360の設計段階での甘さがあったからだ。
設計段階でのメンテナンスが悪いと気づけなかったのは機体整備の経験が少なかったからだ。これからは積極的に機体整備に関わっていき、誰でも整備できる機体にしていきたい。
重さ
重さについては、今回は3Dプリンターの部品が重かった印象が多い。
例えば、無駄に高い機体設計点、強度のいらない所を厚くして無駄に重くしてしまった点などなど。
これからは、他のチームの機体を観察し、そのチームがおこなっている減量方法を学び、自分のチームの機体にその技術を取り組んでいきたい。
余裕
今回の機体は、余裕のない設計で部品同士の干渉が多かった。
Fusion360の干渉を調べる方法を積極的に使い、また実際に3Dデータをよく見てチームメンバーに確認をとるなどしてこの問題を解決していきたい。
機体に使った3Dプリンター部品について
モーターマウント
モーターマウントは、今回の設計ではネジ固定の方法がナットですぐとれてしまう、モーターと固定する時に鍋頭が出てしまうために回転の邪魔になる、上下左右同じ設計ではないことが問題であった。
これからの設計では、モーターマウントにインサートナットを使うのは勿論、今回でてきた諸々の不備をなくせる設計にしていきたい。
壁
壁の設計では、肉抜きをした結果肝心な強度面が弱くなってしまった。それ以外にもハンドルと一体化してしまった設計だったため、壁の取り外しが難しくなってしまった。
そのため今後は、ハンドルと壁を別部品として固定し、壁に関してだけ減量よりも強度を優先、そしてメンテナンス性を上げるためにスライド等で、壁の取り外しが簡単に出きるようにしていきたい。
IRセンサ
IRセンサカバーでは、3Dプリンターの遮光率をあげる設計にしておくことが今回の反省点だ。また、強度もそこまで要らなかったので肉抜きをもっとすれば良かった。
リポカバー
今回車検で、リポバッテリーの固定が必要なのを知ったのでこれからのカバーではリポを固定でき、また強度、取り外しやすさを重要とした設計にしていきたい。
キッカーマウント
ボールを押す壁を固定するネジでキッカー自体の動きが悪くなってしまった。
これからの設計では、ネジでない他の固定方法ややり方を探して実装していきたい。
設計の反省
次に設計全体の問題点について話していく。
今回多かったのは、干渉と部品が入らない問題だった。これは、3Dデータの設計の甘さ、クリアランスをとっていない、「大体こんなもんでいいだろ」と思いろくに検証、確認しなかったことが原因として挙げられる。
これでチームメンバー(主にfTomo)に迷惑をかけてしまった。この場をお借りして謝罪します。すいませんでした。これからこの問題を解決するために、私は今まで以上に3Dデータを作り、配置、実装を繰り返し設計の甘さを無くしていきたい。確かにデータ上の確認も必要です。
しかし、データだけでは見えてこない情報もあるのも事実です。だから繰り返しになるが私は、3Dデータを多く作りこのようなミスを減らしていく。
今後変えていきたい所
私は今回、仕事が遅く徹夜しても終らないことが多かった。それでチームメンバーに迷惑を掛けてしまったこともただあったのだと思う。
また、中途半端な仕事も多く、自分ではしっかり仕事をしたと思っていてもよくみたら全然ダメだったこともよくあった。そこで、仕事の進め方を変えようと思う。
具体的にはやることに対してしっかりロードマッピングを作り、自分の仕事の明確化、優先度決め、取捨選択をしていきたい。他にもチームメンバーとの意思疎通が出来ていなかったり、メンバーとの話でその人が何を一番伝えたかったか分からなかったりと言った問題があった。
前者は、チームメンバーとの話すことを自分から積極的に始めることで、後者は、話が終わる度にその話の要約をして、食い違いが起こらなくするほか、その話の理解を深めていきたい。
NESTロボコン機回路設計まとめ
どうもお久しぶりです。fTomoです。
今回はNESTロボコンに参加してみての反省点を回路・基板設計の面から書いていって次回の設計に活かせるようにまとめて行きたいと思います。これを見てもっと説明しろよって思ったところがあったら気軽にfTomoのTwitterにDMしてください。(可能な限りの頭で回答します
基板紹介
まず今回のロボットの構成を書いていきます。
メイン基板
・メインマイコン ArduinoMEGA2560 Pro
・ジャイロセンサ MPU6050
・5V生成 村田製DC-DCコンバータ
IR基板
・マイコン ATMEGA328P
・センサ TSSP58038
ライン基板
・マイコンは無し
・センサ NJL7302L-F3
モータードライバ
・チップ TB67H450FNG
反省点
メイン基板
今回の構成では一枚のユニバーサル基板にメインマイコンや電源基板、昇圧回路などを配置したことで回路ごとに切り離して動作させることが難しくなってしまいました。
例えばキッカーを動作させたときだけモーターが止まってしまう問題に対してキッカー回路を取り外すことが独立した基板であれば容易なのですが、固定されてしまうとプログラムのほうで動かさないようにしたり、調整が無駄に増えてしまうといったことになります。
一見一枚にまとまってると使いやすそうや、作るのがかんたんに感じますが、あとあとトラブルになり原因を探るときに回路ごとに切り離して考えることができないと多くの時間を取られることになってしまいます。
実はこの基板は前回の設計で使おうとしていたマイコンの開発ができず使い物にならなくなってしまったので私的には応急処置的なイメージが強く残る仕上がりになってしまいました。
ですがユニバーサル基板ならではの柔軟性でプログラマの要望に合わせ、状態表示用のLEDやスイッチなどを作れたことは次回の設計にも活かせるアイデアになったと思います。
IR基板
この基板は本来メイン&IR基板として動作する予定のものを改造してメインとしての回路を無効にしてIRのみを動かせるようにしたものです。
この基板は完成後に修正をほとんどせずに安定して動いてくれたもので、一箇所確実に動くというのはハードとしてもソフトとしても精神安定剤として機能してくれて安心ですw
ライン基板
この基板は4つの棒状の基板でこちらもユニバーサル基板基板で作成しました。理由はメイン基板と同じです悲
ですがこの基板、完成後一切修正をせずに動いてくれるもう一つの精神安定剤となってくれました。
正直回路の内容としては中学校のときに使っていたものとほとんど同じだったので動いてくれないと…レベルなので当たり前っちゃそうなのですが「動くのでよし!」の精神で頑張りました。
モータードライバ
このモータードライバに関しては「350円のくせにやるな」という印象です。
外付け部品もほとんど必要なく今回の機体のレベルでは必要十分の性能なのでは無いでしょうか。
ON抵抗がでかかったりもちろん欠点もあるがこの値段と入手性で 3.5A出力で小型低発熱のものは無いと思います。
ですが今回の回路では動きが安定しないタイミングがありモータ用電源にコンデンサを追加したりして対応しました。
全体
今回の回路を全体を通してみると動作の不安定さや、完成度の面など様々なところで改良の余地はたくさんあったと思います。
その欠点を改良したものを作成し発注までしたので次回のブログで細かいところまで紹介していく予定です。(果たして何も問題なく動いてくれるのか…
回路についてのまとめ
今回の設計で一番の後悔はNESTロボコンまでにキッカーの安定動作ができずに、キッカーを動かすと何かしら悪影響が生まれてしまうので試合では無効にすることになってしまったことです。
キッカー回路とマイコン間の絶縁や、逆起電流が他の回路に影響しないようにする以外に、もっと改良できるところがあったと思います。今仮説としてある原因を探っていきその対処までをできるように実験していきたいです。
症状が改善した場合原因や改良点をまとめてブログにしたいと思うのでお楽しみに!(って言ってる場合なのか
そんな感じで今回の回路についてまとめていきましたが、次回の基板に思いを託して、ちゃんと動くことを神に祈りながら終りにしたいと思います。
句読点ってむずかしいな…
じゃ また逢う日まで
NESTロボコン実戦終わった!!!
本日(もう昨日か…)行われたNESTロボコンのチームでの反省会のまとめです。Type.mdでまとめたものをそのままコピペしただけなので見にくいですが、少しでも役に立てれば嬉しいです。是非見ていってください。ちなみに成績は準優勝です!!初の実戦としてはまぁまぁいい成績取れたと思っています。色々アドバイスくれたみなさんありがとうございます!
NESTロボコンとは、ロボカップジュニアのサッカーとレスキューとオリジナルの競技が行われる競技会です。今回僕たちはサッカーライトウェイト部門で出場しました。是非、関東圏のみなさんは参加してみてください。
今日の試合報告
車検(4回、30分)
- いわれたこと
- コードの固定が甘い
- Lipoだめだった
- 取り外すたびに結束バンドで付け外し
- 青色LEDだめ
- フルカラーLEDのジャンパアウト
- ピカピカ光らせるの良くないっぽいね
- キッカーをただ動かすだけのプログラム入れて持っていくべし
- コードの固定が甘い
- 思ったこと
- 3Dプリンタが突起になりそう
- ハンドル5cm
- ハンドルに4本指が入るのが条件なの忘れずに
- ツイストケーブルいいんじゃない
一試合目 負け
- 前半
- プログラム
- 1 Jun
- 2 Yoshito
- ラインひどかった
担当
- タイマー一人ひとり
- ボタン押しとカメラで分けた
- あんましよくなかった
後半
- プログラム
- 1 Jun
- 2 Jun
- 担当
- カメラなくした
- タイマー分けてロボット一台一人
二試合目(三位決定戦) 勝ち
- 前半
- プログラム
- 1 Jun
- 2 Yoshito
- 担当
- タイマー Yoshito
- 機体 Jun
- これ良かった
- 床においてジャイロ合わしといた
- 後半
- やってること同じ
ソフト
今日の反省
良かったこと
- 一応は動いた
- Yoshitoプログラムが1点入れた
- IRもまぁ読めてたかな
- ボール捕捉が会場の光で狂ったけど直せた
悪かったこと
- ラインとジャイロの修正が間に合わなかった。
- ジャイロが360 - x されちゃう
- 多分プログラム
- コートでのジャイロはみんな狂ってそう気はした…
- ジャイロが360 - x されちゃう
- キッカー動かせなかった
- 動かすと
- モーター止まる
- ジャイロがくるう
- 動かすと
- なぜかくるくる回ってた(Junも)
- 原因究明しなければ
- どこかがブレーキ聞いて軸になっちゃてるのかも
- ピンの問題じゃないかせつ
- 周波数違い
- 使ってるタイマーが違う説
- ライン
- 一定時間戻るプログラムは良くないせつ
- ボールをずっと追い続ける的な
- スタートスイッチ押すまでの時間が長過ぎる
これまでの反省
良かったこと
- IRセンサのとこがほぼ固定でできていたのは良かった。
- 会場で書き換えることもなく使えた
- 絶対動くところがある安心は強い
- ハードの変更に臨機応変に対応できた
- キッカーの有無を切り替えたり
- ラインのしきい値を帰れるようにしていたり
- インジケーターを使えた
- 誰でも状態がわかりやすかった
悪かったこと
- 回り込みが良くなかった
- 実験してもっとよくする
- 細分化
- 距離を使えるようにしておくこととか
- ブロッカーが完成しなかった
- ブロッカーできてれば勝てた可能性大
- エンジェルラインできたら良かったかもね
- ジャイロとIRとラインの両立
- この3つを上手く合成できていない
- 一気に特徴的な状態になるとうまく動けない
- ボールの距離を使えなかった
- 時間がなかった
- ブレーキとストップをちゃんと使い分ける
ハード
今日の反省
良かったこと
- オムニをぎりぎり作り上げた
- キッカー以外は一応うごいた
- 実際の試合でも一応耐えきれた
- ハード的な故障はなかったかな
悪かったこと
- ゴミみたいなイモネジ締め
- ゴミみたいなオムニ(ななめについてた)
- 車検にいっぱい引っかかった
- モータードライバ割れてた
- ハンドルがルールアウト
- 整備性がクソ悪いから時間かかった
これまでの反省
良かったこと
- IRとラインは変更なし
- MDはまぁまぁ
- UIはいい感じかな
- スタートスイッチが光るのは良き
悪かったこと
- 3Dプリンタがだめ
- 干渉しまくり
- クリアランスが足りない
- 強度が微妙だった
- 重い
- メンテ性が悪い
- ナット埋込式は良くない
- 実験が少なかった
- 余裕のある作りをする
- IRセンサをいろいろやってみる
- ネジが通るかどうか
- オムニが回るか
- 組み立てて干渉は大丈夫か
- 意思疎通が少ない
- 何をどこに置くのかわからなかった
- 曲線に配置は良くない
- フレームの形状が良くない
- 肉抜き
- メンテ性が悪すぎる
- 車高が高すぎる
- 重くなっちゃうよね
- 肉抜き
- 強度をおろそかにしてしまった
- キッカーカバーが干渉してしまう
- ガイドも良くない
- 穴の大きさがおかしい
- 丸にする??
- 何度も治すのが大事
- 何度も作り直す
- キッカーが雑魚い
- 原因がわからない
- ユニバーサル基板一枚良くない
- 切り分けにくい
- 故障しやすい部品を交換しにくい
- ソケットかましてできるように
- ジャイロが不安定
- リセットが急にかかる
- ポリウレタン接触不良
- 連携が少ない
- 発信するべし
運営的な課題
良かったこと
- Discordまぁ毎日できたかな
- Twitterもよくわなったかな
悪かったこと
- 意思疎通がざこい
- 他の人のせいにする
- 「これいったやん」←これはだめだよね
- 他の人の作業を把握できるようにしてほしいかな
- 話し合いの結論が出ない
- 議長が出させる
- Keepメモを使う
- 急にサボるな
- 一週間前に言うべし
- 帰ってきたらすぐ
- 終わってないなら2時まではやろう