投稿

センサの値からボールのある角度を求める(理論編)

イメージ
IF文のプログラムの限界  IF センサの値に反応したら  ・・・ Else 反応しなかったら  ・・・ というプログラムをまずは書いていると思います。ですがこれで制御するうちはどうしても「ガタガタ」動く、という状況ができると思います。 センサーのしきい値の境界で、ロボットが二つの命令を交互に行うような状態になるからです。 これは、制御で言えば、もっとも原始的なON/OFF制御です。 ある程度、思い通りにロボットが動くようになってきたら次の段階に進みましょう。 まずはセンサーの値ですが、IF/ELSEの判定では、どうやっても境界ができるので多少は改善できても根本的なガタガタは治りません。 ではどうしたらいいのでしょうか? ・・・思いつきますか? 隣り合ったボールセンサーの値を比較して、その差からだいたいの位置を割り出し、それを使うという方法が考えられます。 ただ、人間であればなんとなく位置の想像がつきますが、ロボットにどのように位置を伝えたらいいでしょうか。 実はそれを求めることができるとっても便利な「計算式」があります。 それが「三角関数」です。 ※関数というのは何かを求める計算式のことです。 三角関数とは何か 三角関数とは何か、調べてみましょう。 三角関数とは、直角三角形の辺の長さが決まれば、角度が決まる、角度が決まれば辺の長さが決まる、だからそれを求める式を作っておこう、というものです。 例えば、この図でいえば、一番長い辺の長さを1に決めて、一つの角の角度をきめてやれば、横と縦の長さはひとつに決まります。 逆に、縦と横の辺の長さが決まれば、角度がひとつ決まります。 ここまでは分かると思います。分からない人はもう一度読み直してみて下さい。それほど難しいことは何も言っていません。 ここまで理解したとして、ここからが重要なのですが、 記憶しておく必要などなにもなく、30度の時に、それぞれの長さってどうなるんだっけ?覚えておくのは面倒だから記号で書いておいて後で計算しよう、というものが三角関数です。 そして、それぞれ 横の長さ=cos(角度)  ※コサインと読みます。 縦の長さ=sin(角度)  ※サインと読みます。 と書きます。 30度の時の横の長さは 「cos(30度)」です。 昔は三角関数表というものを誰かが作っておいて、それを見ながら値を出していたみた...

【2022年版】練習用赤外線発光ボール作成

イメージ
練習用赤外線発光装置の内部基板 ロボカップジュニアでは公式ボールとしてイーケイジャパンの赤外線発光ボールを使います。 RoboCupJunior公式赤外線発光ボール [ RCJ-05R ] ボールとはいえ、ロボットがボールを認識するため赤外線を発光する回路が入っている機械のためけっこう高いです。 ボールは数個ありますが、新しく始めたメンバーが、ロボットがボールに反応するか、回り込みができるかのトライ&エラーをすると、行列待ちになってしまいます。 当然始めたばかりの生徒も持ってません。これがないから家でも試したいけどできない、という子もいます。なら買うしかないね、というのは正論ですが正直ここの部分はなんとかしてあげたいというのが本音です。どうせなら、ロボカップジュニアの大会を経験して、これにならお金をかけていいかな、と思えてから気持ちよく購入してほしいものです。

ダイセンμCOREで、αエクスプローラー用4輪制御アイコンを使う

イメージ
 ロボカップジュニアでは、TJ3Bで有名なダイセンの製品にμCORE(マイクロコア)というものがあります。Arduinoのようにも見えますが、最大の違いはC-STYLEでプログラムが書けるということです。TJ3B用とは別の専用のC-STYLEがホームページからダウンロードできます。 TJ3Bから卒業したい、またはサイズを小さくしたい、だけどArduinoはまだ不安という選手にお勧めです。Arduinoで必要になる回路設計や配線なども経験することができます。 見た目はほぼ変わらず、モーターが標準装備ではないので、それ以外のアイコンがあります。 センサモニタが面白くて、ピンすべてが表示できます。センサのデバッグはかなりやりやすいでしょう。この見やすさだけでもμCOREを使う意味はありそうです。 また、TJ3BのオプションのI2C機器、コンパスやモータードライバーも使うことができます。 ただし、コネクタなどは何もついていないため、自分で配線をしていく必要があります。これが新しい点です。 自分でコネクタを配置できるということはサイズも大きさも自分で決められるということです。設計の自由度が大きく上がりますし、センサーを同一の基板に収めてしまうこともできます。 難しそうですが、電源さえつなげばとりあえず動きます。あとは必要な端子と端子をつないでいきましょう。 今回はこのμCOREを使って、4輪制御をしてみます。 【方法1 一番簡単な方法】 6chモータードライバ、または4chモータードライバを使ってI2Cでつなげば、TJ3Bでも使えるアイコンを使って数字で指定できるので、簡単です。 【方法2 通常の方法】 モータードライバを自前で用意し、これをArduinoのようにデジタル出力を使ってモーター制御をすることができます。モータードライバの入力に使うPinを決めて、デジタル出力に設定し、H/Lの出力をすれば、モーターを回せると思います。スピード制御なども関数を作ればできると思います。 【方法3 今回紹介する方法】 モータードライバを自前で用意し、ほぼ6chモータードライバーのような見た目で、モーターを制御します。 方法2のようにPIN単位でH/Lの制御をする必要がなく、方法1と同様の簡単さで速度も指定できるので制御がわかりやすく、かつ、方法2のように、自由にモータードライバ...

改造攻略ルート考察(ロボカップジュニアサッカー)

イメージ
 ロボカップジュニアサッカーのロボット製作の攻略ルートを考察してみました。 これにはメンターの各種方針も入ってくるので、どれが正解というのはないと思います。 とはいえ、ある程度の一般化はできるのかな、とまとめてみました。 KOROBO2ルート 最近、KOROBO2も触ってみて、とても興味深いことに気づかされました。 KOROBO2はPalletIDEという付属ソフトでプログラムを作成しますが、TJ3Bでは普通に意識していた、センサーの反応の値が数値ではありません。反応したか、していないか、のどちらかです。つまりこれを「デジタル入力」と言います。 TJ3Bはセンサーの反応の値は0%から100%なので、連続で値が変わっていく、「アナログ入力」と言います。 でも、やってみると、デジタル入力だけでもサッカーのプログラムは結構組めるのです。 さらに初心者にはそのほうが分かりやすいかも、と思いました。アナログ入力でも値を使っているだけで、初心者のプログラムでは、例えば70%以上か以下か、の2つの判定しかしていないので、デジタルと動きは変わりません。 余計な値を意識せず、プログラムの組み方を純粋に工夫できるのがKOROBO2のいいところだと思いました。しかし、プログラムで使える入力が、ボタンも含めて6つ、コネクタは4つ、最初に拡張パーツを買うとほぼポートは埋まってしまうので、さすがに拡張して使っていくには厳しいところです。工夫次第では自作センサを試したりなど、ある程度はできそうですが、KOROBO2しか触っていない子どもたちが自分でやるのは厳しそうです。 この先どの方向のルートに進めばいいのかは、周りの教えてくれる人の環境によるでしょう。 TJ3Bルート 改めて思うのは、さすがの拡張性でずっと使い続けられる機体です。 標準オプションだけでも、6CHモータードライバー、USS拡張基板、Pixy2、サブマイコン、とフルセットにすれば、特に基板設計なしに、全部乗せられてしまうのが強みです。 欠点としてはコストも相応にかかってしまうことですが、身近に教えてもらえる人に恵まれていない人には強い味方となると思います。 私のおすすめの実験としては、2ポートをデジタル出力に切り替えて、Hブリッジのモータードライバを制御してみるといいと思います。これはArduinoになっても絶対必要だから...

令和4年度 ロボットプログラミング入門講座が始まります

イメージ
 令和4年度前期、ロボットプログラミング入門講座が5月21日より始まります。 5回の講座でロボットの組み立てから、ロボットにサッカーをさせるプログラミングまで一通りを学ぶことができます。希望により、その後も続けることができ、コンテストなどにも挑戦できます。 今回は6名の応募がありました。とても楽しみです。先輩に負けないように頑張ってほしいと思います。

「GUJO ROBO」が「優秀プレゼンテーション賞」を受賞

イメージ
郡上ロボットクラブの最年長チーム「GUJO ROBO」が、先日開催されたロボカップジュニア・ジャパンオープン2022けいはんなにて、ワールドリーグサッカー ライトウェイト部門の「優秀プレゼンテーション賞」を受賞しました。 大会では、ロボットを実際に動かす競技だけでなく、ロボットの製作における部品選びから完成に至るまでの成果を説明するポスターを選手が作成し貼りだします。この賞は、優れた技術力と成果を最も分かりやすく伝えるポスターを製作したチームに送られます。技術力だけでも、表現力だけでも受賞することはできず、とても名誉あるものです。 今回、部門内71チームのポスターが厳正に審査され、その中から見事「GUJO ROBO」が選出されました。 今回は、競技結果では入賞は逃したものの、来年は現メンバーでのラストチャレンジになります。次回の挑戦に期待しています。 ※ポスターの画像はチームの許可をもらって掲載しています。 ロボカップジュニアジャパン https://www.robocupjunior.jp/index.html ロボカップジュニア・ジャパンオープン2022けいはんな https://www.robocupjunior.jp/2022keihanna_outline.html ロボカップジュニア・ジャパンオープン2022けいはんな 各競技結果・表彰チーム一覧 https://www.robocupjunior.jp/2022keihanna_results.html

4/16 ビッグフィールドで試合をしました

イメージ
 4月16日(土) 郡上八幡青少年センターで、ロボット調整会を行いました。 しかし、今回はいつも自分たちで改造するだけではなく、サッカーの試合、しかも、通常より大きなフィールドを用意して4人ごとのチームを作って、4台 vs 4台の試合を行いました。 通常の約2倍の広さのビッグフィールド ビッグフィールドの作り方が気になる方はこちらもご覧ください。 ロボカップジュニアサッカー 簡易ビッグフィールドの紹介 やはり、「今日は試合!」となると、選手の気持ちも変わります。動かないときは焦ります。やっぱり活躍したいし、勝ちたいもんね。 「用意・・・スタート!」でロボットのスタートボタンをぽちっと押してスタートするけど、ぐるぐる回るばかりだったり、ボールと違う方向に突進したり・・・ 強いロボットは何が強いのかをよく見て研究してみよう。 自分のロボットの何を変えたら強いロボットになれるのかな? 試合は初めからすごく盛り上がりました。最初から盛り上がりすぎて、最後のほうはロボットも疲れてきてたかな。 審判もみんな交代でやってくれて、すごく助かりました。ロボットは最新技術の塊。楽しく遊びながら学んで最新技術の知識を身に着けよう!