* 目次 [#h39cdc49]
目次
#contents
*(1)課題 [#e5f41605]
テニスボール3個を所定の位置から所定の位置まで運ぶ


*課題:ボール運搬ロボット [#e5f41605]
**競技の目的 [#d13046f7]
-テニスボール3個を所定の位置から所定の位置まで運ぶ

**競技コース [#kf643941]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2007b%2F%A5%ED%A5%DC%A5%B3%A5%F3&openfile=robocon2007b.png

基本ルール
**基本ルール [#r0fa1845]

 テニスボールをすべて運び終わった時点、審判によって続行不能とみなされた時点、または競技者がリタイアを宣言した時点で競技終了となる。
-テニスボールをすべて運び終わった時点、審判によって続行不能とみなされた時点、または競技者がリタイアを宣言した時点で競技終了となる。

 スタート時には一部でも円や障害の上およびその上空にあってはいけない。
-スタート時には一部でも円や障害の上およびその上空にあってはいけない。

 スタート時のロボットの数は3個を超えてはいけない(スタート後にいくつに分裂してもかまわない)。
-スタート時のロボットの数は3個を超えてはいけない(スタート後にいくつに分裂してもかまわない)。

 競技開始5秒以内にスタートボタンを押す。
-競技開始5秒以内にスタートボタンを押す。

 競技終了まで遠隔操作したりロボットに触れたりしてはいけない。
-競技終了まで遠隔操作したりロボットに触れたりしてはいけない。

 うまくいかなくなったとき1度だけ再スタートできる。
-うまくいかなくなったとき1度だけ再スタートできる。

 競技終了時点で運び終わったボールにロボットが触れていてはいけない。
-競技終了時点で運び終わったボールにロボットが触れていてはいけない。

**得点 [#yf61334b]
***基本得点 [#y9a301b2]
-ボールを1個運ぶと4点
-ボールを2個運ぶと8点
-ボールを3個運ぶと16点

運び終わったあとロボットがボールに触れていた場合には、(運んだボールの合計数)×(-2点)

***技術得点 [#s868f9f6]
以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の全てのチーム(5チーム)が20点満点で採点し、その平均点を求める。 得点の目安:
-ボールを集める動作 (4点)
-ボールを運ぶ動作 (4点)
-2台以上のロボット、あるいは単体のロボットの場合は2台のRCXの連携の良さ(4点)
-自立型のロボットとしての形や動作の美しさ、斬新さ(4点)
-その他 (4点)

***タイム得点 [#k58f48b4]
平均タイムのもっとも速いチームから順に、4点、3点、2点、1点、0点とする。 ただし平均タイムは以下のように計算する
-ボール1個運んだ場合には、スタート時から運び終わるまでの時間
-ボール2個運んだ場合には、スタート時から運び終わるまでの時間を3で割った値
-ボール3個運んだ場合には、スタート時から運び終わるまでの時間を5で割った値


*戦略 [#u7aaa796]
ロボコンにおいて、戦略はロボットの制作やプログラムなどの全ての基礎となる大事なことです。A3チームでは、課題を達成するために以下の3つの戦略を考えました。
**戦略1 [#kc5490cd]
-(図)ボールを拾い、橋を伸ばして直接ゴールに入れるロボットと、橋を転がってきたボールがゴールの枠から出ないように受け止めるロボットの2台でボールを運ぶ。最初に考え、ロボットも途中まで制作しましたが、橋の上で転がる高さまでボールを持ち上げるのが困難で断念しました。
**戦略2 [#g11bcc7d]
-(図)枠からボールを押し出すロボットと、そのボールをゴールまで持っていくロボット2台でボールを運ぶ。ボールが運搬ロボットの進路上に3つ並ぶため良い案に思えましたが、押し出しロボットのボールの設置位置が
不正確なことと、1つ1つのボールで運搬ロボットが持ち上げる位置が変わるためプログラムが面倒になるということで断念しました。
**戦略3 [#jd82b45a]
-(図)枠からボールを押し出すロボットと、そのボールをゴールまで持っていくロボットと、押し出されたボールを運搬ロボットの進路上まで運ぶロボットの3台でボールを運ぶ。最終的にこの案を採用しました。


*ロボット [#gab5be88]

ロボット1はボールを押し出すロボット、ロボット2はボールを進路上に運ぶロボット、ロボット3はゴールまでボールを運ぶロボットです。
**ロボット1 [#taeebcbf]
**ロボット2 [#c41246c7]
**ロボット3 [#kb6b91f2]
本体

&ref(080205_1113~04-2.jpg);
&ref(080205_1113~03-2.jpg);
&ref(080205_1113~02.jpg);
&ref(080205_1113~01-1.jpg);
&ref(080205_1107~05-1.jpg);

アーム

&ref(080205_1107~04.jpg);
&ref(080205_1107~02.jpg);
&ref(080205_1107~01.jpg);
&ref(080205_1106~01.jpg);
*プログラム [#z7f0b276]
**ロボット1,2のプログラム [#jef7212b]

*競技結果
総合3位
運んだボールの数:1個
**ロボット3のプログラム [#dfa2d787]
 #define THRESHOLD          40  //光センサーの感度設定
 #define turna 50  //旋回時間
 #define turnb 100
 #define fwd 60  //前進時間
 #define ballup 150  //ボール持ち上げ
 #define ballput 60  //ボール設置位置まで
 #define back 280  //
 
 sub linetrace()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);  //センサ1とセンサ3は光センサ
 SetSensor(SENSOR_3,SENSOR_LIGHT);
 if ((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD))  //センサ1とセンサ3が白紙上
 {
 OnFwd(OUT_A+OUT_C);  //直進
 }
 if ((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD))  //センサ1とセンサ3が黒線上
 {
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(turna);
 Off(OUT_A+OUT_C);
 OnFwd(OUT_B);
 Wait(ballput);
 Off(OUT_B);
 OnFwd(OUT_A+OUT_C);
 Wait(fwd);
 Off(OUT_A+OUT_C);
 OnFwd(OUT_B);
 Wait(ballup-ballput);
 Off(OUT_B);
 OnRev(OUT_A+OUT_C);
 Wait(fwd);
 Off(OUT_A+OUT_C);
 OnRev(OUT_B);
 Wait(ballup);
 Off(OUT_B);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(turnb);
 Off(OUT_A+OUT_C);
 while(SENSOR_3>THRESHOLD)
 {
 OnFwd(OUT_A);
 OnRev(OUT_C);
 }
 Off(OUT_A+OUT_C);
 OnFwd(OUT_B);
 Wait(ballput);
 Off(OUT_B);
 }
 if ((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD))  //センサ1が黒線上,センサ3が白紙上
 {
 Off(OUT_A);  //左旋回
 OnFwd(OUT_C);
 }
 if ((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD))  //センサー1が白紙上,センサー3が黒線上
 {
 OnFwd(OUT_A);  //右旋回
 Off(OUT_C);
 }
 }
 
 sub rcv()
 {
 Off(OUT_A+OUT_C);
 OnFwd(OUT_B);
 Wait(ballup-ballput);
 Off(OUT_B);
 OnFwd(OUT_A+OUT_C);
 Wait(80);
 Off(OUT_A+OUT_C);
 OnFwd(OUT_A+OUT_C);
 OnRev(OUT_B);
 Wait(80);
 Off(OUT_A+OUT_C);
 Wait(ballup-80);
 Off(OUT_B);
 OnRev(OUT_A+OUT_C);
 Wait(back);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(turna+turnb);
 Off(OUT_A+OUT_C);
 while(SENSOR_3>THRESHOLD)
 {
 OnFwd(OUT_A);
 OnRev(OUT_C);
 }
 }
 
 task main ()
 {
 SetSensor(SENSOR_2,SENSOR_TOUCH);  // 
 Wait(500);
 while(true)
 {
 if (SENSOR_2 ==0)  //タッチセンサが反応しないとき
 {
 linetrace();  //ライントレース
 } else {  //タッチセンサが反応したとき
 rcv();
 linetrace();  //ライントレース再開
 }
 }
 }

*感想
*競技結果 [#ed411b46]
-順位:総合3位
-運んだボールの数:1個

 リハーサルでボールを3個運べた事があったので、あと2、3回の微調整でボール3個できたはず!バラバラの3個のロボットがきめられた動きでうまくボールを運んでいくところが工夫できたところです。 
*感想 [#vc0b8756]
-リハーサルでボールを3個運べた事があったので、あと2、3回の微調整でボール3個できたはず!バラバラの3個のロボットがきめられた動きでうまくボールを運んでいくところが工夫できたところです。 


コメントをどうぞ
#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS