目次

(1)メンバー紹介

(2)課題:ボール運搬ロボット

競技の目的

競技コース

http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2007b%2F%A5%ED%A5%DC%A5%B3%A5%F3&openfile=robocon2007b.png

基本ルール

得点

基本得点

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

技術得点

タイム得点

(3)戦略

作戦1

作戦2

作戦3

(4)ロボット

A3 TEAM'S ROBOT------  

初号機

全体

初号機.jpg

外観

 長い車幅が特徴の奇異な形のロボット。キャタピラで走る。その巨体にから繰り出される3個のボールを一列に壁際まで並べる能力は他を圧倒する。初号機の通ったあとにはボール1個も残らないことから、「信濃の草刈り機」の異名を持つ。

簡易キャタピラ.jpg

 そんな初号機も試作段階ではキャタピラ間が非常に狭く枠の上に乗りあがって機能停止してしまうこともたびたび。しかしキャタピラ間を広くしたことによりその弱点を克服。確実に3個のボールを運ぶ動きを可能にした。動きは前進後退のみ、可動時間は競技開始8秒間と非常に短いがその役割は大きい。チームの大黒柱。  これほどシンプルで活動時間も短いという意味では全チームのロボットの中で最も斬新(というか異色)。

エピソード

 大会前のリハーサルでは最も確実に動き、全くのノーミスで、チームからは3機中一番安全視されていた。しかし大会当日、誰もが予想しなかったまさかの「ギアがはずれる」というアクシデントが発生し、チームを一時、危機的状況に追い込んでしまう。

 このまま弐号機、零号機は出番なしで涙を呑むかと思われた。しかしやり直しではギア周りをがちがちに固めて復活。きっちり仕事を果たし見事3位に貢献した。

弐号機

外観

弐号機.jpg

特徴

 初号機とは正反対で車幅が狭く縦長なフォルムの、黒いロボット。タイヤでフィールドを駆け巡る。後輪タイヤの後ろまでボディがあるのはボールを押している時車体がういてしまうのを防ぐため。初号機と零号機の動きを伝えるチームの中核。初号機によって壁におしつけられたボールを一気に、ライン上まで一列に穴の前まで並べる。動きは初号機同様前後のみだが、3個目のボールを1個づつ零号機に受け渡すまで動き続ける。

 たすき(ボール)を零号機に渡すシーンは今大会のロボコンでも感動のシーン。

 ちなみにRCXは初号機と共同。初号機が止まってから発進するので接触の心配はない。ただリハーサルではコードがよくからまりよく中断させていた。

エピソード

   シリーズでは一番の後継機にも関わらず初号機同様前進後退しかできない機体。ただプログラミングは複雑。開発着手が初号機完成近頃だったことにより完成は大会当日開会式数時間前と限限(ぎりぎり)だった。ボールを止める位置が試作機では不安定で、微調整が難航した。

 あと1時間なかったらボール1個も運べなかったかもしれず、あと1時間あったら3個運べたと言われ、ある意味チームの運命を一番握っていた機体。やりなおしでは結局プログラミングは完成しなかったため2個目のボールを零号機にバトンタッチできずその短い役割を終えた。  

零号機

外観

零号機.jpg

特徴

DVC00018.JPG DVC00019.JPG

 障害物の間を通るための狭い車体とアームが特徴の、縦長のロボット。弐号機が並べたボールを持ち上げ、ゴール地点まで運ぶ役割を持つ。チームの花形ポジション。

DVC00040.JPG DVC00050.JPG

 ボールを1つずつ運ぶことができる。ボールをつかむ、持ち上げるの動作を1つのモーターで行うことが可能。

DVC00037.JPG DVC00038.JPG

 その場で旋回したい、タイヤは車幅を短くしにくい、キャスターを用いると前進から後退への切り替えのときに車体の向きがぶれ、障害物の間を通りにくくなるなどの理由から足回りにはキャタピラを使用。新たに簡単でコンパクトな「簡易キャタピラ」を制作し、それによって10cmの障害物の隙間を通ることが可能になった。

DVC00021.JPG DVC00047.JPG

 ボールを受け取る場所からゴール地点まで黒線を追うためのセンサ。このロボットには光センサを2つ使い、スムーズに進めるようにしただけでなくゴール手前の黒線の交差点を感知し、それによってボールを置く動作に移るようにした。

DVC00036.JPG DVC00035.JPG

 ボールを持ち上げるために障害物を通り抜けたときアームを開かなくてはならないため、障害物にさしかかったことを感知するタッチセンサを装備。

DVC00048.JPG

 障害物の間を通り抜けるときに、黒線に対して車体が少しでも曲がっていると引っかかってしまうため、ローラーを車体の前後に取り付けて前進と後退どちらでも確実に障害物の間を通り抜けられるようにした。また、このローラーがあることでタッチセンサが確実に反応するようになっている。

エピソード

 ボールを受け取った後の180°旋回、ボールを置いた後の180°旋回がなかなかうまくいかず本体やプログラムを何度も改良した。最終的に、足回りのキャタピラの中に車輪を追加して補強し、さらに右回りに旋回して車体右前のセンサ3が黒線の上に来るまで旋回するようにプログラムを変えて解決した。リハーサルから本番にかけて特に目立った失敗はなく、安定した動きを見せてくれた。

(5)プログラム

ロヴォ初号機、弐号機のプログラム

task main()
{    OnFwd(OUT_A+OUT_C);   //初号機の発進
     Wait(400);
     Off(OUT_A+OUT_C);
     
     OnRev(OUT_A);   //初号機の後退(これで初号機は役割を終える)
     OnRev(OUT_C);
     Wait(400);
     Off(OUT_A+OUT_C);
     
     OnFwd(OUT_B);   //弐号機の前進(零号機の進路上までボールを運ぶ)
     Wait(895);
     OnRev(OUT_B);   //弐号機の後退。
     Wait(400);
     Float(OUT_B);   
     
     Wait(3500);   //零号機がボールをゴールしてくるまで待っている時間。
     
     OnFwd(OUT_B);   //弐号機、2個目のボールを押し出す。
     Wait(615);
     OnRev(OUT_B);   //弐号機後退
     Wait(400);
     Float(OUT_B);
     
     Wait(3500);   //零号機を待つ

   OnFwd(OUT_B);   //弐号機、3個目のボールを押し出す。
     Wait(615);
     OnRev(OUT_B);   //弐号機後退
     Wait(600);
   
     Float(OUT_B);   //終了
} 

ロヴォ零号機のプログラム

#define THRESHOLD 40  //光センサーの感度設定
#define turna 50  //旋回時間1
#define turnb 100  //旋回時間2
#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))  //交差点にさしかかったら
	{
		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)  //センサ3が黒線を見つけられるまで
		{
			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)  //センサ3が黒線を見つけられるまで
	{
		OnFwd(OUT_A);
		OnRev(OUT_C);
	}
}

task main ()
{
	SetSensor(SENSOR_2,SENSOR_TOUCH);  //センサ2をタッチセンサに設定
	Wait(500);  //5秒間待ってからスタート
	while(true)
	{
		if (SENSOR_2 ==0)  //タッチセンサが反応しないとき
		{
			linetrace();  //ライントレース
		} else {  //タッチセンサが反応したとき
			rcv();  //ボールを受け取る
			linetrace();  //ライントレース再開
		}
	}
}

(6)ボールを入れるまでの流れ

スタート時

スタート3.jpg

1.初号機ボールを押し出し後退

開始時.jpg

2.弐号機ボールを受け渡し地点まで運ぶ

DVC00007.JPG

3.零号機ボールを受け取る

DVC00008.JPG DVC00009.JPG DVC00011.JPG

4.零号機ボールをゴールまで運ぶ

DVC00012.JPG

5.零号機ボールをゴールに入れる

DVC00013.JPG DVC00016.JPG

6.零号機が受け渡し地点まで戻ってくる。この間に、弐号機がボールを1個、零号機が受け取れる位置まで押し出す。

*以下、1〜6をさらに2回繰り返す

(7)基本方針・工夫した点

(8)競技結果

(9)反省点・改善点

(10)感想

コメントをどうぞ



添付ファイル: fileDVC00050.JPG 339件 [詳細] fileDVC00048.JPG 342件 [詳細] fileDVC00047.JPG 348件 [詳細] fileDVC00040.JPG 368件 [詳細] fileDVC00038.JPG 358件 [詳細] fileDVC00037.JPG 351件 [詳細] fileDVC00036.JPG 362件 [詳細] fileDVC00035.JPG 336件 [詳細] fileDVC00021.JPG 357件 [詳細] fileDVC00019.JPG 311件 [詳細] fileDVC00018.JPG 319件 [詳細] file簡易キャタピラ.jpg 319件 [詳細] file初号機.jpg 337件 [詳細] fileDVC00016.JPG 298件 [詳細] fileDVC00013.JPG 328件 [詳細] fileDVC00012.JPG 326件 [詳細] fileDVC00011.JPG 330件 [詳細] fileDVC00009.JPG 349件 [詳細] fileDVC00008.JPG 382件 [詳細] fileDVC00007.JPG 332件 [詳細] file受け渡しまで.jpg 157件 [詳細] fileゴール!.jpg 158件 [詳細] file開始時.jpg 301件 [詳細] fileスタート3.jpg 317件 [詳細] file零号機.jpg 355件 [詳細] fileスタート+.jpg 130件 [詳細] file弐号機.jpg 322件 [詳細] fileゴール.jpg 154件 [詳細] fileスタート1.jpg 130件 [詳細] fileスタート2.jpg 134件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-05-27 (火) 15:39:51