2006a/C2/ロボコン


ロボコン特設ページVol.2

メインの輸送マシンとプログラムの説明

製作者:伊藤 伊藤 糸島 佐藤 堀 (五十音順)

ルールとか

カウンタ1252
ロボティクス入門ゼミ
2006a/C2
1ページ全体の構想、我々の,予想と結果とその原因・・・・
2ページこのページ
3ページ補助のマシン紹介のページ


輸送ロボット

全体図輸送ロボット
・メインの輸送ロボット
 
・缶をスタートからゴールまで運ぶ
 
・四角形のアームで缶を包み込む
 
・ライトセンサーを3つ持っている、これにより正確にラインをトレースできる
 
・この3つの光センサーの使い方に注目

マシン紹介

輸送ロボット
VFSH0006.JPG・アームとタイヤが接触することを防止するために急遽パーツを取り付けた

・ギヤ比は通常のドライブベースと同じ
 
・アームが缶の重さに負けないようにしっかりと装着した 
 
・これ一台で缶を運ぶ
 
・ライトセンサーを3つ持っている、これにより正確にラインをトレースできる
 
2台並んで
VFSH0001.JPG  VFSH0007.JPG   VFSH0010.JPG VFSH0008.JPG

プログラム紹介

#define light 35
#define light2 38
#define straight OnRev(OUT_A + OUT_C);
#define buck_turn OnFwd(OUT_A + OUT_C);
#define right_turn OnRev(OUT_A);OnFwd(OUT_C);
#define left_turn OnRev(OUT_C);OnFwd(OUT_A);
#define right OnRev(OUT_A);Off(OUT_C);
#define buck_right OnFwd(OUT_C);Off(OUT_A);
#define left OnRev(OUT_C);Off(OUT_A);
#define buck_left OnFwd(OUT_A);Off(OUT_C);
#define off Off(OUT_A + OUT_C);
#define up OnRev(OUT_B);
#define down OnFwd(OUT_B);
#define Stop Off(OUT_B);
int count = 0;
int count2 = 0;
int timer = 0;
int cm_per_s = 0;
int metel = 0;
int circuit = 0;

task main(){
    SetSensor(SENSOR_1,SENSOR_LIGHT);
    SetSensor(SENSOR_2,SENSOR_LIGHT);
    SetSensor(SENSOR_3,SENSOR_LIGHT);
     
    while(1){
    while(count < 2){
        if((SENSOR_1 > light) && (SENSOR_2 > light) && (SENSOR_3 > light)){
             straight;
        }else if((SENSOR_1 <= light) && (SENSOR_2 > light) && (SENSOR_3 > light)){           
             straight;
         }else if((SENSOR_1 <= light) && (SENSOR_2 <= light) && (SENSOR_3 > light)){
             left;
         }else if((SENSOR_1 > light) && (SENSOR_2 <= light) && (SENSOR_3 > light)){
             left_turn;
         }else if((SENSOR_1 <= light) && (SENSOR_2 > light) && (SENSOR_3 <= light)){
             right;
         }else if((SENSOR_1 > light) && (SENSOR_2 > light) && (SENSOR_3 <= light)){
             right_turn;
         }else if((SENSOR_2 <= light2) && (SENSOR_3 <= light2)){
             count++;
             Wait(10);
             switch(count){
                 case 1:
                     Wait(10);
                     straight;
                     ClearTimer(0);
                     break;
                 case 2:
                     timer = FastTimer(0);
                     cm_per_s = 25 / timer;
                     metel = 8 / cm_per_s;
                     circuit = (32 / cm_per_s) * 2 - 10;
                     Wait(metel);
                     off;
                     Wait(20);
                     right_turn;
                     Wait(circuit);
                     off;
                     break;
             }
         }
     }
     straight;
     Wait((40 / cm_per_s) * 3);
     off;
     Wait(20);
     left_turn;
     Wait(circuit);
     off;
     Wait(20);
     buck_turn;
     Wait((25 / cm_per_s) * 3);
     off;
     Wait(20);
     down;
     Wait(70);
     Stop;
     Wait(20);
     straight;
     Wait((25 / cm_per_s) * 3);
     off;
     Wait(20);
     left_turn;
     Wait(circuit);
     off;
     Wait(20);
     straight;
     Wait((40 / cm_per_s) * 3);
     off;
     Wait(20);
     left_turn;
     Wait(circuit);
     off;
     Wait(20);
     straight;
     Wait((25 / cm_per_s) * 3);
     off;
     Wait(20);
     right;
     Wait(20);
     off;
     Wait(20);
     straight;
     Wait((30 / cm_per_s) * 3);
     off;
     Wait(20);
     right;
     Wait(20);
     off;
     Wait(20);
     straight;
     Wait((30 / cm_per_s) * 3);
     off;
     Wait(20);
     right;
     Wait(20);
     off;
     Wait(20);
     straight;
     Wait((25 / cm_per_s) * 3);
     off;
     Wait(20);
     left_turn;
     Wait(circuit);
     off;
     Wait(20);
     straight;
     Wait((40 / cm_per_s) * 3);
     off;
     Wait(20);
     right_turn;
     Wait((25 / cm_per_s) * 3);
     }
 }
 

プログラム解説

通常走行プログラム(序盤のみ)解説

条件行動センサー位置状況
SENSOR_1 > light, SEN SENSOR_2 > light, SENSOR_3 > lightstraight(直進)case-white.JPG
SENSOR_1 <= light, SEN SENSOR_2 > light, SENSOR_3 > lightstraight(直進)case1-straight.JPG
SENSOR_1 <= light, SEN SENSOR_2 <= light, SENSOR_3 > lightleft(左輪正転のみ)case4-right.JPG
SENSOR_1 > light, SEN SENSOR_2 <= light, SENSOR_3 > lightleft_turn(左輪正転、右輪逆転)case5-right_turn.JPG
SENSOR_1 <= light, SEN SENSOR_2 > light, SENSOR_3 <= lightright(右輪正転のみ)case2-left.JPG
SENSOR_1 > light, SEN SENSOR_2 > light, SENSOR_3 <= lightright_turn(左輪逆転、右輪正転)case3-left_turn.JPG
SENSOR_1 <= light, SEN SENSOR_2 <= light, SENSOR_3 <= lightswitch文へcase6-cross.JPG

言い訳

コメント



1ページ全体の構想、我々の,予想と結果とその原因・・・・
2ページこのページ
3ページ補助のマシン紹介のページ
ロボティクス入門ゼミ
2006a/C2

添付ファイル: fileVFSH0001.JPG 311件 [詳細] filecase-white.JPG 344件 [詳細] filecase6-cross.JPG 319件 [詳細] filecase5-right_turn.JPG 316件 [詳細] filecase4-right.JPG 335件 [詳細] filecase3-left_turn.JPG 330件 [詳細] filecase2-left.JPG 327件 [詳細] filecase1-straight.JPG 315件 [詳細] fileVFSH0006.JPG 340件 [詳細] fileVFSH0007.JPG 337件 [詳細] fileVFSH0008.JPG 348件 [詳細] fileVFSH0009.JPG 364件 [詳細] fileVFSH0010.JPG 336件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-08-14 (月) 19:17:55