SKY Crew Lab

RoboCup Junior(ロボカップジュニア)参加チーム、SKY Crew(スカイクルー)の技術ブログ。
技術の共有・伝達を目的に、ロボットに関するいろいろな情報やガイドを載せていきます。

2017年大会でRescue Line(レスキューライン) 世界3位、2018年大会でSoccer Lightweight(サッカーライトウェイト) 世界総合5位を獲りました!

カテゴリ: ソフトウェア

こんにちは。SYです。今回は前回の続き、敵よけアルゴリズムについてです。

前回のおさらい

敵よけにはカメラ距離センサなどが不可欠!

ゴール前の敵目の前の敵をそれぞれよける!

ゴールが空いた一瞬を狙ってシュート!

アルゴリズム その1 ~敵よけ編~

敵よけアルゴリズムは4段階に分けられます。

図で表すと、下のような感じになります。

敵よけの説明

距離センサで敵を検知

まず、距離センサで敵がいることを検知する必要があります。

敵は凸凹していて距離センサがきちんと反応しにくいため、一瞬でも近いと検知したら敵がいるとし、一定時間遠いままであれば敵がいないとすることにしました。

回転して敵をよける

一番左の図にあるように、敵がいるとなった場合、最初にゴールがある方向へと前進しながら大きく回転します。

こうすることで、ゴールの方向へと進みつつ、相手の捕捉ゾーンからボールを奪い取ることが可能となります。

横に移動して敵をよける

中央の図にあるように、一定の角度以上回転した場合、ゴールがある側へ斜め方向に動きます。

すでに機体がある程度回転しているため、斜め方向に動くことでゴールに対しほぼ横移動することができ、ボールを捕捉ゾーンに入れたまま敵をよけることができます。

開いた瞬間を狙ってシュート!

一番右の図にあるように、敵がいなくなった場合、ゴールがある方向に向きつつ前進し、ゴールが空いていたらシュートします。

こうすることで、ゴールが空いた一瞬を狙って正確にシュートすることができます。

一つ一つの動きは単純に見えますが、これがあるとないとではボールを取り合うような状況になったときの戦況が大きく変わります。このような敵よけを行うことで、私たちはより高確率でシュートまでたどり着けるようになりました。

アルゴリズム その2 ~シュート編~

シュートするかどうかは、捕捉センサ距離センサカメラの3つを併用して判断しています。

まず大前提として、捕捉センサが反応していて、ボールが捕捉ゾーンに入っている、つまりキッカーで蹴れる位置にボールがあることが必要です。

次に、距離センサによって目の前に敵がいないことを確認します。もし敵がいれば、シュートはせずに先ほどの敵よけを行うことになります。

そして、最も重要なカメラによる判断です。カメラでは、正面の一定の方向がゴールの方向の範囲に含まれていればシュートを打つ、としています。言葉ではわかりづらいのでいくつかの例を挙げて説明します。

敵よけの説明2

黄色の方向が正面の方向、赤色の方向がゴールの見える範囲を表し、○がシュートできる場合、×がシュートできない場合です。

左上ではGKがいるためゴールが斜め方向に見え、前方向にゴールがないためシュートできませんが、右上ではGKがずれているため前方向(黄色)の範囲がゴールの範囲(赤色)に完全に含まれています。

また、左下ではFWがいるためゴールが斜め方向に見えシュートできませんが、右下では敵よけをして自分が斜めを向いているため、相対的にゴールは正面にあり、シュートができると判断されます。

これら3つを組み合わせることで、一瞬を狙った正確なシュートが可能になります。

まとめ

これらのアルゴリズムを組み合わせることで、最初に見せたような敵よけが可能になります。合わさると複雑かもしれませんが、一つ一つの動きは単純なので、そこまで難しくはないと思います。

また、この敵よけもまだ発展途上なため、これからも改善を続けていく予定です。

疑問点や質問、意見等あればブログのコメントにてお願いしますm(_ _)m

では、また次回の記事で!(´∀`)ノシ

こんにちは。SYです。今回は要望の多かった敵よけをどうやって行うかについてです。

敵よけって?

そもそも敵よけとはどのようなものかについては、言葉で長々と説明するよりも実際に見てもらったほうが早いと思うので、関東大会での動画をのせておきますね。

簡単にいうと、ボールを持った時にどのように目の前の敵をよけ、シュートに向かうかということです。

ドリブラーがなくても、敵よけをするだけでシュートが入る確率は格段に変わります。

何が必要か

敵よけをうまく行うために必要なものはいくつかあります。

  • カメラ(全方位か前向き)
  • ジャイロセンサやコンパスセンサ
  • 前向きの距離センサ(超音波センサやPSDセンサなど)
  • ボール捕獲センサ
  • キッカー
  • ドリブラー(なくても全然いい)

関東機では、以下の製品を使用しました。

  • カメラ:OpenMV Cam M7
  • ジャイロセンサ:MPU6050
  • 距離センサ:GP2Y0E03
  • ボール捕獲センサ:NJL7302L-F3 (受光素子)、OSG58A3131A(LED)
  • キッカー用ソレノイド:CB1037100

もちろんLightweightなのでドリブラーをのせるほどの重量の余裕はありませんでしたが、Openの方はドリブラーの併用により、よりスムーズに敵よけが行えると思います。

いかにして敵をよけるのか

認識できる敵には大きく分けて二種類あります。

  • ゴール前に居座っている敵(主にGK)
  • ゴールから離れて自機の前にいる敵(主にFW)

1つ目の敵はカメラで認識し、2つ目の敵は距離センサで認識することで、うまく敵をよけることが可能になります。

また、敵よけの流れを簡単にまとめると次のようになります。

  1. ボールを捕捉エリアに入れる(ボール捕獲センサが必要)
  2. ゴール前の敵を事前によける(カメラが必要)
  3. 自機の前にいる敵をよける(ジャイロセンサ、距離センサが必要)
  4. ゴールが空いたらシュート!(キッカーが必要)

1についてはまた別の記事で、2についてはカメラのアルゴリズムのほうの記事で詳しく話したいと思います。

2での動きは、カメラから送られてきたゴールの方向へとロボットの向きを変えながら前進するだけなので、カメラによるゴールと敵の認識さえできればそこまで難しくありません。

ちなみに、ボールへの回り込みを正確にするために、ボールを持っていないときはジャイロで姿勢制御(真正面を向く)、ボールを持っているときや前方近くにあるときはカメラで姿勢制御(ゴールの方向を向く)、というように状況に応じて使い分けています。

次回へつづく。。。

長くなりそうなので今日はここまで。

今回は、敵よけの流れと概要を紹介しました。

次回は3、4の具体的なアルゴリズムを紹介したいと思います。

お楽しみに!

こんにちは。ソフト担当のSYです。

今回は、以前紹介したエンジェルリングの解説のつづきを話していきたいと思います。

前回のおさらい

エンジェルリングとは
・・・ ラインセンサを隙間なく円形に並べたもの

ラインの位置が正確に分かる!
→→→ 単純なアルゴリズムと動き間違えることなくライン内に戻れる!!

ラインの位置の変化が分かる!
→→→ 外のボールを取りに行くことができる!!

どんなアルゴリズム?

ここでは、実際にどのようなプログラムを書いたかを簡単に説明していきたいと思います。

下記のリンクは世界大会で使ったラインセンサ処理とほぼ同じプログラムの該当部分です。
ラインセンサ処理のソースコード

1.明るさを読み取る

それぞれのラインセンサの値を読み取り、値に応じて白いライン上・緑のコート上・暗い空中のどれなのかを判別します。 具体的には、ライン上(明るい)かどうかとロボットが持ち上げられている(暗い)かどうかを入れたラインセンサの個数分の配列をつくっています。

また、何個が明るく何個が暗いかも計算しています。

2.審判の持ち上げに対応

暗いと判断したセンサが一定個数以上あればロボットが持ち上げられていると判断し、何回か連続で持ち上げられている場合はコート内に戻ったと判断します。 これは押し出しでコート内に戻されたときに対応するためのものです。

3.ライン上のときは・・・

まず、明るいと判断したラインセンサの間隔を調べます。 すると、間隔が最も広い部分の真ん中の方向がコートの方向とわかるので、その方向に行けばコート内に戻れるとわかります。

次に、直前のコートの方向と先ほど計算したコートの方向を比較します。 180度近く変化していた場合、ロボットが半分以上外に出たとわかり、先ほど計算したコートの方向に180度を足したものが正しい現在のコートの方向になります。

また、現在のコートの方向が出た後に、直前のコートの方向との平均を出してコートの方向の急激な変化を抑えています。

4.ライン上でなかったら・・・

ライン上でなく、空中でもない場合は、コート内にいるほぼ完全に外に出たかのどちらかです。 なので、ロボットが半分以上外に出たかどうか=ほぼ完全に外に出たかとなります。 ほぼ完全に外に出たとなった場合は、先ほど計算した現在のコートの方向へ進めばよいということになります。

このようにして、条件分岐もほとんどなく簡単に、アウトオブバウンスを防ぐことができます。

実際のプログラムでは・・・

少し専門的な話になりますので、読み飛ばしてもらっても構いません。 ラインセンサ処理のソースコードをもとに実際のプログラムの説明を行っていきたいと思います。

1.明るさを読み取る

qtyILB は暗いと判断した個数、qtyILW は明るいと判断した個数で、QTY_LINE 回のループでセンサの値を読んでいます。

そして、isLineBlack[] にそれぞれが暗いかどうかの真偽、isLineWhite[] にそれぞれが明るいかどうかの真偽を入れています。

	int qtyILB = 0;
	int qtyILW = 0;
	for(int numLine = 0; numLine < QTY_LINE; numLine ++) {
		//ライン読み取り
		valueLine[numLine] = analogRead(P_LINE[numLine]);
		isLineBlack[numLine] = valueLine[numLine] >= BORDER_BLACK_LINE;
		isLineWhite[numLine] = valueLine[numLine] <= BORDER_WHITE_LINE;
		if(isLineBlack[numLine]) {
			qtyILB ++;
		}
		if(isLineWhite[numLine]) {
			qtyILW ++;
		}
	}

2.審判の持ち上げに対応

countIIA は何回連続で持ち上げられているか、countIIA MAX_CIIA 以上になるとコート内に戻ったと判断し、isOutsideLine isHalfOut dirInside といったラインの方向に関する変数を初期化します。

そして、isLineBlack[] にそれぞれが暗いかどうかの真偽、isLineWhite[] にそれぞれが明るいかどうかの真偽を入れています。

	if(qtyILB >= BORDER_IS_IN_AIR) {
		//持ち上げられている
		countIIA ++;
		if(countIIA >= MAX_CIIA) {
			countIIA = MAX_CIIA;
			isOutsideLine = false;
			isHalfOut = false;
			dirInside = -1;
		}

3.ライン上のときは・・・

まず、posILW[] に何番目のラインセンサがライン上にあるかを入れていき、intvLine[] に連続する2つのposILW[] の差、つまりライン上のラインセンサの間隔の大きさを入れていきます。

	}else {
		//ライン上
		countIIA = 0;
		isOutsideLine = false;
		//白の番号を調べる
		int posILW[qtyILW];
		int numILW = 0;
		for(int numLine = 0; numLine < QTY_LINE; numLine ++) {
			if(isLineWhite[numLine]) {
				posILW[numILW] = numLine;
				numILW ++;
			}
		}
		//白の間隔を調べる
		int intvLine[qtyILW];
		for(int numLine = 0; numLine < qtyILW - 1; numLine ++) {
			intvLine[numLine] = posILW[numLine + 1] - posILW[numLine];
		}
		intvLine[qtyILW - 1] = posILW[0] - posILW[qtyILW - 1] + QTY_LINE;

次に、intvLine[] の値を順々に比べていくことで、どの間隔が一番広いかがわかり、posMaxIntvL に間隔の場所、maxIntvL に間隔の大きさを入れています。これによって、ロボットが戻る方向が計算でき、その結果をdirInside に入れています。

ちなみに、simplifyDeg()は角度を0度~360度に収めるための自作の関数なので気にしないでください。

		//ラインの方向を調べる
		int maxIntvL = 0;
		int posMaxIntvL = 0;
		for(numILW = 0; numILW < qtyILW; numILW ++) {
			if(maxIntvL < intvLine[numILW]) {
				maxIntvL = intvLine[numILW];
				posMaxIntvL = numILW;
			}
		}
		double numDirInside = posILW[posMaxIntvL] + maxIntvL * 0.5;
		dirInside = simplifyDeg(numDirInside / QTY_LINE * 360);

次に、dirInside prvDirInside + 110 prvDirInside + 250 の範囲にあれば半分以上外に出たとわかり、isHalfOut は半分以上外に出ているかどうかを表しています。prvDirInsideには事前に直前のdirInside を入れておきます。

		//前回と比較
		if(prvDirInside >= 0) {
			//半分以上外か
			isHalfOut = false;
			if(insideAngle(dirInside, prvDirInside + 110, prvDirInside + 250)) {
				dirInside = simplifyDeg(dirInside + 180);
				isHalfOut = true;
			}

最後に、誤差等を減らすためにprvDirInsidedirInside の平均値的なものを計算します。

			//平均値計算
			if(abs(dirInside - prvDirInside) <= 180) {
				dirInside = prvDirInside * MULTI_AVG_DI + dirInside * (1 - MULTI_AVG_DI);
			}else {
				dirInside = prvDirInside * MULTI_AVG_DI + dirInside * (1 - MULTI_AVG_DI)
								+ 360 * (dirInside >= prvDirInside ? MULTI_AVG_DI : 1 - MULTI_AVG_DI);
			}
			dirInside = simplifyDeg(dirInside);
		}
	}

4.ライン上でなかったら・・・

countIIA を初期化し、isOutsideLine というライン外かどうかの変数にはisHalfOut という半分以上外に出ているかどうかの変数をそのまま入れます。

dirInside という戻るべき方向を示す変数には、ライン外ならprvDirInside を入れて直前のままにし、ライン内なら-1 を入れて戻るべき方向は存在しないとします。

	}else if(qtyILW <= 2) {
		//ライン上でない
		countIIA = 0;
		isOutsideLine = isHalfOut;
		dirInside = isOutsideLine ? prvDirInside : -1;

以上でプログラムの説明は終わりです。お疲れさまでした( ´∀` )ノ

エンジェルリングのここがよくない...(´・ω・`)

配線が大変

円形上にセンサを配置するため、特にプリント基板の場合は配線をきれいに行うのが難しいです。

重い

センサも多く、センサそれぞれに抵抗をつける必要もある上、円形なので基板自体のサイズも大きいことから、普通より重くなってしまうという欠点があります。

モーターとの物理的干渉を考慮しないといけない

隙間なくセンサを配置する必要があるため、モーターの内側か下にセンサを配置できるような設計が必要です。

まとめ

エンジェルリングはハード的には欠点もいくつかありますが、うまくいけば大変有能な武器になってくれると思います。

何かわかりにくいところや質問があればTwitterの質問箱やブログのコメントにてよろしくお願いしますm(_ _)m

それではさようなら!(´∀`)ノシ

こんにちは。二人目のソフト担当のSYです。ラインセンサや戦略といった全体的なプログラミングをしています。

今回は、SKY Crewの世界大会機の最大の特徴の一つである、円形ラインセンサ(エンジェルリングについて話していきたいと思います。

エンジェルリングを用いることで、絶対にアウトオブバウンスせず(理論上)、さらにラインの外のボールもとれるようになるのです!

エンジェルリングって何?

そもそもエンジェルリングとは、下の写真のようにラインセンサを隙間なく円形に並べ、ライン上では常にどれかしらのラインセンサが反応するようにしたものです。

世界大会では20個のラインセンサ素子と20個のLEDを半径約5㎝の円周上に並べました。

エンジェルリング

何ができるの?

1. ラインの位置が正確に分かる!

まず、エンジェルリングを用いることで、ロボットの向きがどうであろうと、どのような状態でライン上に乗っているかを正確に知ることができます。

下の図1のように、十字状に並べたラインセンサでは(ジャイロなしでは)自分が角にいるかなどはわからず、ラインの位置も大雑把でしかわからないため、アウトオブバウンスしてしまうことがあります。

また、場合分けなども多くなってしまい、動きが複雑になってしまいます。

十字ラインの説明

一方、エンジェルリングでは、下の図2のように線の形や位置を明確に区別することができ、どちらに進めばライン内に戻れるかを間違えることは(おそらく)絶対にありません。

さらに、円形であるのでジャイロセンサや距離センサを使わずとも、単純なアルゴリズムと動きでライン内に戻れます。

エンジェルリングの説明

2. ラインの位置の変化が分かる!

エンジェルリングを使えば、ロボットのどの部分が線の外に出ているのかを連続的に知ることができます。

そして、どのようにラインの位置が変化しているかが分かれば、ラインセンサが反応する間はロボットが完全に外に出ていないと分かるので、その間は外のボールを取りに行くことができるのです。

エンジェルリングの説明2

最後に

後編では、実際にはどのようなプログラムを書いたのか、エンジェルリングの改善点や欠点といったことについて話そうと考えています。

何かわかりにくいところや質問があればTwitterの質問箱やブログのコメントにてよろしくお願いします。

それでは後編をご期待ください!(´∀`)ノシ

こんにちは。ソフト担当の篠川です。私はサッカー部門について、特にカメラやジャイロについて書いていきます。

SKY Crewのサッカーロボットすべてに共通した特徴は、カメラの搭載です。 私もカメラ担当者として、ライトウェイトにおいて先進的なカメラの活用をしてきたとそれなりに自負しています。

しかしほかのチームを見ていると、カメラは(今普及しつつある?ものの)使っていないというチームもまだまだ多く、 積んでいてももっと有効活用できるのではないかと思うことがしばしばあります。

もしかしたら、カメラが今後のロボカップサッカー競技のレベル向上の大きなカギになるのではないでしょうか。

この「カメラ」カテゴリでは、さらなるカメラの普及と全体の技術向上を目指し、 全方位カメラの製作や処理の内容、カメラを利用した戦略などについて解説していく予定です(布教活動)。

今回はその第一弾として、カメラの導入をしない、または検討している、特にライトウェイトのチームに向けて、 カメラを導入する理由を説明します。

私たちのロボットは、最初に出場した関東ブロックの時からカメラを積んでいます。 ここでは、使っていてわかってきたメリット・デメリットについて(そしてなぜカメラが役に立つのか)説明していきましょう。

メリット

姿勢制御

フォワードロボットは基本的に、 常にゴールの中心を向くように動きます。 これにより、ボールを捕捉した後のドリブルが効率的になります。

キーパーロボットは、(全方位カメラを使った世界大会を除いて) カメラを後ろ向きに取り付けました。
これで自陣のゴールとの位置関係を計測し、ゴールからあまり遠ざからないように調節しました。

ここらへんのカメラを利用した戦略については、今後の記事をお待ちください。

正確なシュート

カメラを搭載していないロボットの動きを見ていると、ドリブルしてボールをコートの奥まで運ぶはいいものの、 ゴールの位置がわからないため、ゴール左右の外側にシュートしてしまって惜しくも入らない、ということがよくあるようです。

しかしカメラがあれば、先ほどの「姿勢制御」により、
どんな位置でボールを捕捉しても、スムーズにゴールへ向かいシュートすることができます。

距離センサーで壁との距離を測って横軸方向にどれくらいの位置にいるのか割り出すチームもいますが、 あれって隣に別のロボットがいたり、ロボットが少し斜めを向いていたりしてたら正しく出ないんじゃないでしょうか。

現在位置の大まかな特定

これに関しては、今年のルール改定でランドマーク(赤とか水色とか)がなくなり、少しやりづらくなりました。 しかし、ゴールまでの距離を3段階くらいで大まかに測ることで、 マルチプルディフェンスの回避ゴールキーパーの効率の良い動きが実現できます。

これらの恩恵は、実は結構大きかったです。

これに関しても、今後別の記事で解説する予定です。 ただし、世界大会のプレゼンテーションシートでもこの件について触れておりますので、 (英語ですが)そちらを見ればどのように位置情報を利用しているかがわかるかと思います。

プレゼンテーションシートPDF(32.4MB)

相手ロボットの回避

どういうことかといいますと、相手ゴールを部分的に隠している何かがあったらそこに相手ロボット(特にキーパー)がいるとわかるということです (これもプレゼンテーションシートに書いてあります)。

それがわかれば、それを避けてシュートすればいいですよね。

これはうまくいった時の効果が非常に大きいです。 するするっと相手キーパーをかわしてシュートする様子はちょっと感動モノですよ。

柔軟性

「こんな動きができるようにしたい!」というアイデアが浮かんだとき、カメラがあると非常に実現しやすいです。

例えば、日本大会のロボットはモーターが大きく、後の世界大会のときのようにラインセンサーを円形に配置することができませんでした。

センサーが不完全だったため、ラインの辺の部分であれば検知して内側に戻れるのですが、角にいるときに内側がどの方向かわからず外に出てしまうという事態が起こりました。

そこで私たちが取った戦略は、カメラでゴールとの位置関係を測ることでコートの角にいることを検知し、コートの角に行かないということです。

コートの角まで行ってボールを取りに行ったところで、ラックオブプログレスを取られたら意味がありませんから、 中立点の少し手前で待機して、相手より早くボールを捕捉しようという作戦でした。

何が言いたいかというと、カメラによって急な問題に対処しやすいということです。

「それくらいラインセンサーを設計する時点で見越しておけ」と言われれば、その通りですが…(^_^;)

Technical Challenge

ルール(こちらの24ページ) を見た方はわかるかと思いますが、「カメラがないとできない」というような課題が結構ありましたよね。

そこまで大きく勝敗にかかわるものではないかもしれませんが、一応メリットとして挙げておきます。

今後どうなるんでしょうね…

デメリット

調整が大変

もちろん、残念ながらデメリットもあります。その最たるものがこれでしょう。

実は、コートによってゴールの高さや光の当たり方による色の映り方が違うということが頻繁にあります。 ですので、各試合前にコートの色や形を設定する必要が出てきます。

ここでうっかりすると、最悪の場合オウンゴールもあり得ますから、焦らず慎重に行うことも大切です。

つまり、試合開始の10分くらい前からゴールに陣取っていろんな調整をすることになります。

もちろん会場の各コートの正確性や照明などによっても変わりますが、 ラインセンサーの調整などもしたい中、これはなかなか大変です。

ロボットは各チーム2台あるので、ソフト担当者が2人以上いれば、分担することでだいぶ楽にはなります。 ただしそうすれば片方はカメラにつきっきりだと思っていいでしょう。

時に相手ロボットと干渉する

これは例えば、相手ロボットの青色LEDが青ゴールに見えてしまい、 相手ロボットに向かってシュートしたり、敵避けをしなかったりするということです。

これも時に大問題になります。前もって何らかの対策を講じないと、決まるはずのゴールが全く決まらず、 相手キーパーにプッシングし続けることになってしまいます。

対処法はもちろん、試合前に干渉しないかチェックすることです。

人の目には青に見えないような白色LEDなどでも、カメラには青く映ることもありますから、 相手のラインセンサーやボール捕捉センサーが怪しいと思ったら、 前もって光をつけてもらって、干渉しないか確かめる必要があります。

ちなみに試合中でも干渉は主張できますが("Interference!")、 試合が始まる前に明らかにした方が仲も悪くなりませんし、世界大会ではTeam Spiritにも関わってきますので、 「わざと試合中に干渉を主張して相手を故障にさせよう」といった考えはおすすめしません

実際に干渉していたとしても、「これくらいのLEDだったらちゃんとゴールと見分けてほしい」と判断されることも結構ありますので、 きちっと前もって対策を講じましょう。

まああのカラフルなランドマークは廃止されましたので、その点では少し楽になったとはいえるでしょう。

視界を隠される

メリットのところで「姿勢制御」を書きましたが、一つ考えなくてはならないのは、
相手ロボットの背が高く、カメラの視界をふさがれるケースです。

対処法としてまず思いつくのはできるだけカメラの位置を高くすることですが、それでも完全ではありません。

そのため、結局はカメラだけではなくジャイロセンサーも同時に搭載することになるでしょう。
最初に参加した関東大会ではジャイロを搭載しておらず、オウンゴールを何度かしてしまいました。

ただし全方位カメラであれば、自陣ゴールが見えないという状況はあまりないと考えられるので、 ジャイロなしでも不可能ということはないかもしれません。それでもやはり積んでおくと安心です。

ジャイロに関しては、別の記事で詳しく書く予定です。

やや重い(?)

これはどうしようもありませんね。

具体的には、私たちの使用した「OpenMV Cam M7」の重さは16gです。これを重いと感じるか軽いと感じるかはあなた次第です。(笑)
一応Pixy(27g)よりは軽いのですね。

OpenMVとPixyの比較も後日詳しく書く予定です。
結論を先に言ってしまうと、可能ならばOpenMVの方をお使うのが良いでしょう。
私達が大会に参加しだしたときはそう考えたのですが、今年度Pixy2がリリースされ、状況が変わってきているようです。そちらもぜひ調べてみてください。

まとめ

カメラのメリットをまとめると:

  • 戦略の幅の広がり
  • 良い(まともな)シュート

一方、デメリットは:

  • 状況によって不安定

使ってみた私たちの感想としては、やはりあったほうが良いです。

不安定さというデメリットよりも、メリットの方を取ったわけです。

私たちSKY Crewは結構アイデア志向のチームなので、その意味でもかなりカメラとの試行錯誤は楽しいものでした。

その分不安定さの解決は頑張りました。きっちり前もって対策をして、スムーズにカメラの調整を行えるように努力する必要があります。

また、今までのロボットは重さの制約上キッカーを搭載することができませんでしたが、 キッカーを載せるならカメラの効果はとても大きいでしょう。

ロングシュートが相手キーパーを避けてスカーンを決まったら楽しそうですよね!

将来的にこのサッカー競技が発展して、レベルが上がっていけば、 どちらにせよオープンのようにいつかはカメラ必須のような状況になるのではないでしょうか。

先進的なサッカーをしたいと考えるのならば、 カメラは積むべきと言えるでしょう。

さて、今後は先程も申し上げたように、「カメラ」カテゴリで処理の内容や戦略について解説していきます。

それから、きっと近いうちに自分以外の暇なメンバーが世界大会の試合以外の評価について解説記事を書いてくれることでしょう(プレッシャー)。
ご期待ください。

ちなみに、今回ブログ全体のデザインを若干変更しました。

トップページもかっこいい感じにしたいと思います。

記事に関してもデザインに関しても、良くないところや改善点、どんな感想でも送っていただけると大変嬉しいです。

スマホの表示のカスタマイズが出来なすぎる
livedoorさん…

↑このページのトップヘ