目次
*目次 [#s1ecb3d6]
#contents


*課題:ボール運搬ロボット [#e5f41605]
*(1)メンバー紹介 [#zb14c85c]
-フミ(初号機、弐号機担当)、ヒコ(初号機、弐号機担当)、ダイ(零号機担当)、ヨシ(零号機担当)


*(2)課題:ボール運搬ロボット [#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個を超えてはいけない(スタート後にいくつに分裂してもかまわない)。

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

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

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

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

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

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

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

-得点の目安
--ボールを集める動作 (4点)
--ボールを運ぶ動作 (4点)
--2台以上のロボット、あるいは単体のロボットの場合は2台のRCXの連携の良さ(4点)
--自立型のロボットとしての形や動作の美しさ、斬新さ(4点)
--その他 (4点)

***タイム得点 [#k58f48b4]
平均タイムのもっとも速いチームから順に、4点、3点、2点、1点、0点とする。 ただし平均タイムは以下のように計算する
-ボール1個運んだ場合には、スタート時から運び終わるまでの時間
-ボール2個運んだ場合には、スタート時から運び終わるまでの時間を3で割った値
-ボール3個運んだ場合には、スタート時から運び終わるまでの時間を5で割った値
-平均タイムのもっとも速いチームから順に、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台でボールを運ぶ。最終的にこの案を採用しました。
*(3)戦略 [#u7aaa796]
-ロボコンにおいて、戦略はロボットの制作、プログラムそしてチームの進むべきベクトルをきめるの全ての基盤となる重要な考え。A3チームでは、課題を達成するために以下の3つの戦略を考案。
**作戦1 [#kc5490cd]
-ボールを拾い、橋を伸ばして直接ゴールに入れるロボットと、橋を転がってきたボールがゴールの枠から出ないように受け止めるロボットの2台でボールを運ぶ案。最初に考え、ロボットも途中まで制作されたが、傾斜した橋を転がる高さまでボールを持ち上げるのが困難で断念。
**作戦2 [#g11bcc7d]
-枠からボールを押し出すロボットと、そのボールをゴールまで持っていくロボット2台でボールを運ぶ案。ボールが運搬ロボットの進路上に3つ並ぶため良い案に思えたが、押し出しロボットのボールの設置位置が不正確なことと、1つ1つのボールで運搬ロボットが持ち上げる位置が変わるためプログラムが面倒になるということで断念。
**作戦3[#jd82b45a]
-枠からボールを押し出すロボットと、そのボールをゴールまで持っていくロボットと、押し出されたボールを運搬ロボットの進路上まで運ぶロボットの3機でボールを運ぶ案。作戦2の問題点を一挙に解決でき、最終的にこの案を採用。


*ロボット [#gab5be88]
ロボット1はボールを押し出すロボット、ロボット2はボールを進路上に運ぶロボット、ロボット3はゴールまでボールを運ぶロボットです。
**ロボット1 [#taeebcbf]
**ロボット2 [#c41246c7]
**ロボット3 [#kb6b91f2]
本体
*(4)ロボット [#gab5be88]
**A3 TEAM'S ROBOT------  [#naf651b8]
-今回大会のロボコンでは唯一3機のロボットで競技を行なう。

アーム
-バラバラの3台のロボットがきめられた役割で活躍し、力を合わせてボールを運んでいく。3代ともシンプルな構造ながら他のチームにはない斬新なロボット。

*プログラム [#z7f0b276]
**ロボット1,2のプログラム [#jef7212b]
-各ロボットの役割を説明すると、初号機はボールを枠から押し出し壁に押し付ける事でボールを一列にするロボット。弐号機はボールを穴の目の前のライン上まで運ぶロボット。零号機はゴールまでボールを運ぶロボット。

**ロボット3のプログラム [#dfa2d787]
 #define THRESHOLD          40  //光センサーの感度設定
 #define turna 50  //旋回時間
 #define turnb 100
-初号機、弐号機の動きは前進後退しかできない。零号機はチ−ムの全技術が結集された機体。複雑な動きを可能にしたシリーズでは異色の存在。

-ちなみにリハーサルでは非公式ながら全チーム中唯一3個すべてのボールを運ぶことに成功。

-このように一機一機の力は小さいが力を合せることでとてつもなく大きなパワーを産み、どんな困難でも克服できることをわれわれに教えてくれたロボット。


**初号機 [#taeebcbf]
***全体 [#sd1a2441]

&ref(初号機.jpg);

***外観 [#id1e2ad7]
-全体


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

&ref(簡易キャタピラ.jpg);

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


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

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

**弐号機 [#c41246c7]
***外観 [#gfde7ab5]

&ref(弐号機.jpg);

***特徴 [#g2c14cd3]
-全体

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

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

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

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


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

**零号機 [#kb6b91f2]
***外観 [#kf27e83f]

&ref(零号機.jpg);

***特徴 [#a606f301]
-全体

&ref(DVC00018.JPG);
&ref(DVC00019.JPG);

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

-アーム

&ref(DVC00040.JPG);
&ref(DVC00050.JPG);

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

-足回り

&ref(DVC00037.JPG);
&ref(DVC00038.JPG);

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

-光センサ

&ref(DVC00021.JPG);
&ref(DVC00047.JPG);

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

-タッチセンサ

&ref(DVC00036.JPG);
&ref(DVC00035.JPG);

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

-ローラー

&ref(DVC00048.JPG);

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

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


*(5)プログラム [#z7f0b276]
**ロヴォ初号機、弐号機のプログラム [#jef7212b]

 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);   //終了
 } 


**ロヴォ零号機のプログラム [#dfa2d787]
 #define THRESHOLD 40  //光センサーの感度設定
 #define turna 50  //旋回時間1
 #define turnb 100  //旋回時間2
 #define fwd 60  //前進時間
 #define ballup 150  //ボール持ち上げ
 #define ballput 60  //ボール設置位置まで
 #define back 280  //
 #define ballup 150  //ボールを持ち上げるまでのアーム作動時間
 #define ballput 60  //ボールを下げるまでのアーム作動時間
 #define back 280  //後退時間
 
 sub linetrace()
 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);  //直進
 	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);
 	}
 }
 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()
 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);
 	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);  // 
 Wait(500);
 while(true)
 {
 if (SENSOR_2 ==0)  //タッチセンサが反応しないとき
 {
 linetrace();  //ライントレース
 } else {  //タッチセンサが反応したとき
 rcv();
 linetrace();  //ライントレース再開
 	SetSensor(SENSOR_2,SENSOR_TOUCH);  //センサ2をタッチセンサに設定
 	Wait(500);  //5秒間待ってからスタート
 	while(true)
 	{
 		if (SENSOR_2 ==0)  //タッチセンサが反応しないとき
 		{
 			linetrace();  //ライントレース
 		} else {  //タッチセンサが反応したとき
 			rcv();  //ボールを受け取る
 			linetrace();  //ライントレース再開
 		}
 	}
 }
 }
 }

*競技結果 [#ed411b46]

*(6)ボールを入れるまでの流れ [#yb203f58]

スタート時

&ref(スタート3.jpg);

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

&ref(開始時.jpg);

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

&ref(DVC00007.JPG);

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

&ref(DVC00008.JPG);
&ref(DVC00009.JPG);
&ref(DVC00011.JPG);

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

&ref(DVC00012.JPG);

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

&ref(DVC00013.JPG);
&ref(DVC00016.JPG);

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

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


*(7)基本方針・工夫した点 [#m7cffd6c]
-シンプルイズベスト
-一致団結
-3機の連係プレイ


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

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

*(9)反省点・改善点 [#m2056250]
-途中で戦略を大幅に変えたため、本番前の調整時間が足りなくなったことです。


*(10)感想 [#vc0b8756]
-今回のロボコンでは全チーム中唯一3機のロボットで競技を行いました。リハーサルではボールを3個運べた事があったので、あと2、3回の微調整でボール3個できたはず!バラバラの3機のロボットみんながきめられた役割でそれぞれ力を合せ、ボールを運んでいくところがこのロボットのおもしろいところです。他のチームにはない斬新なロボットだと思います。初めて通しでボールを運べたのは大会中だったので本当によかったです。(ヒコ)

-このゼミで僕が一番得たものはロボットとプログラミングに興味がもてたことだと思う。ロヴォ弐号機とロヴォ零号機のボールの受渡した時は手に汗握り応援し、ゴールを決めた瞬間は思わず涙があふれそうになりました。(ヒコ)

-このゼミを通しロボットとひとが共感し支えあっていくことができる世の中を本当に信じたくなりました。遠い将来訪れるロボット時代の足音が聞こえた気がしました。にぱ〜(ひこ)

-ロボットの連携が良いこと、シンプルながらも確実であること、ボールを運べたこと等良かった点はあった。しかし、計画の遅れによる時間不足、結局本番では結果を出せなかったこと、より洗練された戦略があった等反省すべき点も多かった。しかし、ロボコンはその過程も、本番も充実していて楽しかった。(ふみ)

-制作段階で、まさかボールを3個とも運べるとは思っていなかったので、練習で3個運べたときは嬉しかったです。もう少し調整時間があれば本番でも成功したと思うと残念ですが、いつもの課題よりも人数の多いグループでやり遂げたことで、より大きな充実感を味わうことができました。苦労して作ったロボットを解体するのは悲しかったです。(ダイ)


コメントをどうぞ
#comment


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