情報知能工学実験Iレポート

第3回:LEGO-競技1(発表会)

名前:OUTAHCHAK SALIPHONE

学番:0175101T

Homepage

レポート1

レポート2

  1. 目的:
  2. 競技1.スピード競争(Autonomous Speed Circuit)
    <ルール>

    スタートラインから黒線のトラックに沿いながら2周し,タイムとルートの正確さを競う.
    <点数>

    1.もっとも短いタイムでゴールしたチームを20点とし,以下タイム順に少なくなる.
    2.半周ごとに銀紙が貼ってあり,そこを通ったときに音を鳴らせば10点.   2周で計4回通ることになり最大40点となる.
    3.上記の点数とは別にして,1周できるごとに点.2周で計20点となる. これらの3つの合計点で競う.

    ※この競技では,マシンの構造はステアリング+後輪駆動に限定する.

  3. プログラムのソース
  4. 
    program test {
    	
    	#include 
    	#include 
    	#include 
    	#include 
    	sensor light2 on 2
    	light2 is light as percent
    	sensor rotation3 on 3
    	rotation3 is rotation as angle
    	
    	main {
    		ext InterfaceType "kFreestyle"
    		rcx_ClearTimers
    		bbs_GlobalReset([A B C])
    		try {
    			on [ C  ] 
    		} retry on fail
    		try {
    			forever {
    				if light2 < 37{
    					power [ C  ] 6
    					on [ C  ] 
    				}
    				else
    				{
    					if light2 > 52{
    						power [ A  ] 8
    						power [ C  ] 2
    						float [ A  ] 
    						if rotation3 < 0{
    							direction [ A  ] [ ]
    							on [ A  ]  for 100
    						}
    						else
    						{
    							direction [  ] [ A ]
    							on [ A  ]  for 100
    						} 
    						sound 3
    					}
    					else
    					{
    						if light2 > 43{
    							power [ A  ] 8
    							power [ C  ] 2
    							direction [  ] [ A ]
    							if rotation3 > -2{
    								on [ A  ]  for 7
    							}
    							else
    							{
    								float [ A  ] 
    							} 
    						}
    						else
    						{
    							power [ A  ] 8
    							power [ C  ] 2
    							direction [ A  ] [ ]
    							if rotation3 < 3{
    								on [ A  ]  for 8
    							}
    							else
    							{
    								float [ A  ] 
    							} 
    						} 
    					} 
    				} 
    			}
    		} retry on fail
    	}
    	
    	
    }
    
    
    
    
    

  5. フローチャー
  6. FlowChart

  7. 説明
  8. プログラムについてスピード(Autonomous Speed Circuit)である。ルールは、スタートラインから黒い線のトラックに沿いながら2周し、と半周ごとに銀紙が貼ってあり、そこを通ったときに音を出す。
    プログラムのソートについて、光センサーと角センサーを使った。光センサーが2番であり、角センサーが3番である。もしライトが37から(黒い線)小さかったら、(on Cがトラックの車輪バックのモーターである)パワーの設定Cが6である(走るパワー)、真っ直ぐに行く。37から大きかったら、他の条件に行く。次の条件もしライトが52から(銀紙など)大きかったら、次のループに行く、(Aがトラックの車輪前のモーターであるトラックが左か右か回り)パワーの設定Aが8であり、パワーの設定Cが2であり、またAがオフであり、次の条件に行く、もし回転(角度)<0、>0(ゼロらか小さい、大きい)方向の設定(右が左がする)後1.0秒"ピープ"が出て来る。ライトが52から小さかったら、次のループに行く、もしライトが43から大きかったら、パワーの設定Aが8であり、パワーの設定Cが2であり、方向の設定A(左にする)次のループ、もし回転(角度)>−2 --->on A 0.05秒、<−2 -->Off Aである。もしライトが43から小さかったら、パワーの設定Aが8であり、パワーの設定Cが2であり、方向の設定A(右にする)次のループ、もし回転(角度)<3--->on A 0.08秒、>3 -->Off Aである。条件が終わったら、ループ無限である。

  9. 競技結果
  10. 3回くらいやりました(2周回るようにする)、1番目がちゃんと2周まわりけども、音が1回出ない、時間がダイタイ54ー秒くらい。2番目が失敗しました。3番目がほとんど完成しました。2周完走,銀紙で音×4の完全完走。1番スピードが速いチームは20秒くらい。

  11. 考察
  12. トラック、準備する時、よく失敗するのは光さとか、トラックの走る方とか、。。。。与えるプログラムよく変わった。今回のプログラムが無限ループを使って書いてみたら、トラックが良く回りに走った。無限ループによってプログラムが何回も繰り返すことによって、繰り返し光センサーの値を読み続けるのでラインが変わるとすぐに反応しやすかった。角度センサーの値でステアリングの場合わけをしたので、コーナーに入っても、必要以上の角度で回らずにある程度スムーズに曲がることが出来たが、コーナーを曲がりきった後でも同じ角度で回り続けてしまうので、銀紙に乗らずに通りすぎてしまうことが何度かあった。センサーを前の方に付けてしまったので、どうしてもこのような事態が起こってしまった。マシンに関しては車体をあまり凝った風に考えなかった。というより車体の方を甘く見ていた。
    私たちのチーム、プログラムは他のチームと比べたらちょっと短いと思います。ルールによってトラックがちょっと遅いけども、ちゃんと動きました。

  13. 感想
  14. 今度の実験はとても面白かったです。当日競技前に実験時間がおそくなりましたけど、大変楽しかったです。特に発表会のとき自分のチームがどうなるか心配していましたが、通ったら、よかったと思いました。でも実験自身がもっと深い意味を持ってます。チャンスがあれば、今のプログラムをもっと速くて、うまく走りです。