2006a/MemberOnly/進行状況B

メンバー

  • さんさー
  • 偽プログラマー
  • ロボット制作者(株)
  • 偏頭痛
  • ゆかいな仲間たち
  • HAL

ロボコン

日時
8月2日 12:30〜
場所
20番教室

概要

ロボコンページ参照  2006a/ロボコン

作戦

確実に
何度も往復する時間や、確実なプログラムを作るのは難しいので1つの缶を確実にゴールに運ぶ。
小さく
障害物を極力動かさないようにコンパクトなロボットにする。

ロボット

1号

1_1.jpg
1_2.jpg
1_3.jpg
1号正面図
手前に見えるのが、上下に動くアームです。
アームと本体の接続部分
側面から見ると、しっかり固定してあるのがよくわかる。
これがないと崩れるかも。。。
アームを動かすモーター。
上下に動けます。
  • ロボコンエリアの右側半分を担当するロボット。
  • 缶の上からアームをかぶせる事により、缶を運ぶ。
  • タッチセンサ−1個と、光センサ−2個装備。
  • タッチセンサーにより、アームの上げ下げのタイミングをはかる。
  • ライントレースのための光センサーは、間隔をあまり離さず取り付けて、横線を読み込みやすくする。

プログラム

task main()
{
int count=0;                                   //変数 count を設定
SetPower(OUT_A+OUT_C,6);                       //モーターAとCの出力値を設定
SetPower(OUT_B,2);                             //モーターBの出力値を設定
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);

while(true)
    {
    OnFwd(OUT_A+OUT_C);

    if((SENSOR_1<45)&&(SENSOR_3<50))           //センサーが両方とも線に乗ったら
        {
        count++;                               // count に1を足す
        Wait(50); 
        }

    if(count==2)                               // count が2になったら
        {
        Wait(20);
        OnFwd(OUT_A);
        OnRev(OUT_C);
        Wait(250);                             //90度の時計回り
        count--;
        count--;                               // count を0に戻す
        }

    if(SENSOR_1<45)                            //センサ−1が線に乗ったら
        {
        Off(OUT_A+OUT_C);
        OnFwd(OUT_C);
        OnRev(OUT_A);                          //左に曲がって軌道修正
        }

    if(SENSOR_3<50)                            //センサ−3が線に乗ったら
        {
        Off(OUT_A+OUT_C);
        OnFwd(OUT_A);
        OnRev(OUT_C);                          //右に曲がって軌道修正
        }
           
    if(SENSOR_2==1)                            //タッチセンサーが押されたら
        {
        Off(OUT_A+OUT_C);                      //前進をやめ
        OnRev(OUT_B);                          //アームを下げる
        Wait(80);
        Off(OUT_B);
        OnRev(OUT_A+OUT_C);                    //2秒間バックする
        Wait(200);
        OnRev(OUT_C);OnFwd(OUT_A);             //右に90度回転する
        Wait(330);
        OnFwd(OUT_A+OUT_C);                    //以下のプログラムのみでスタート地点まで戻る
        Wait(350);
        OnRev(OUT_A);
        OnFwd(OUT_C);
        Wait(330);
        OnFwd(OUT_A+OUT_C);
        Wait(230);
        Off(OUT_A+OUT_C);
        OnFwd(OUT_B);
        Wait(150);
        Off(OUT_B); 
        OnFwd(OUT_A+OUT_C);
        Wait(240);
        OnRev(OUT_A+OUT_C);
        Wait(350);
        OnRev(OUT_A);
        OnFwd(OUT_C);
        Wait(200);
        }
   }
}

1号・2号の試作プログラム     2006a/B6/ロボコン/プログラム

製作過程

製作者 偏頭痛

  • 目指すはコンパクトでスムーズに缶の取り出し、運搬が行えるロボ。期待と不安を胸に製作に取りかかる。
  • まずはロボのベース作り。円滑なライントレースを可能にするためタイヤにすることに。問題はタイヤ間の幅、旋回時間を考えるとある程度前と後ろのタイヤの間は離したほうが良いということで基本の作りより広くすることにする。
  • 一方につき5枚のギア、左右で計10枚のギアを組み合わせこ調整に成功。モータ二つの間は極力狭くしコンパクトに作成。
  • 今回の要となるアーム部分取り付けへ。
  • 重心を考え本体を若干後方に設置。その高さを生かし、アーム用のモーターを本体上に取り付けギアを噛ませた。
  • 前方のライトセンサー、タッチセンサーの上にアームを作成。缶がつかみやすい高さ、起動範囲を何度もシュミレーションして決定。
  • 強度面に問題が発生。アームの上げ下げでモーターがはずれ、ギアに隙間が生まれ空回りしてしまう。
  • アームと本体の補強を加え完成に近づく。補強のパーツにも見た目を考えてスマートな作りに。
  • 缶を運ぶための囲いを設置、大きさは缶がしっかりと収まり移動時に暴れない程度に調整。アームが最大まで上がったときに缶に触れず、下がると缶を離さない高さにつける。
  • 後に失敗の反省から、囲いの大きさを、缶に対する進入角度に多少の誤差があっても補えるようにやや大きめにする。
  • プログラマーとの入念な打ち合わせを繰り返す。
  • 製作時時間10時間を超える長丁場を制し、ロボコンエリア(右側)を颯爽と駆ける。1号機がここに完成。

2号

2_1.jpg
2_3.jpg
2_4.jpg
2号の原型。
初めは1号にそっくりな形でした。
現在の2号
足回りはキャタピラになりました。
正面についたタイヤは浮いていて、
段差を超えるのを助けます。
2号を後ろから見た図。
スライド式のアームで缶を挟み込みます。
問題は強度。。。


2_6.jpg
2_7.jpg
アームスライドの仕組み。
キャタピラにギアを使ってしまったので、
輪ゴムを使ってみる。
意外とスムーズに動きます。
最終的な2号の形
タッチセンサーも取り付けました
  • ロボコンエリアの左側半分を担当するロボット。
  • 缶をロボットの後ろ側に受け取り、スラード式のアームではさんで運ぶ。
  • ゴール前の段差を超えられるように、キャタピラで足回りを作る。
  • ロボットの前後にタイヤをつけ、段差を超えやすくする。
  • 缶をのせる部分を可動式にする事で、ゴールに入りやすくする。。
  • ライントレース用に光センサ−を2個装備。1号機と同様。

プログラム

task main()
{
int count=0;
SetPower(OUT_A+OUT_C,6);
SetPower(OUT_B,2);
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);

while(true)                                    //プログラムは基本的に1号と同じ。
    {                                          //回転の向きをすべて逆にし、アーム操作のプログラムを加える。
    OnFwd(OUT_A+OUT_C);  

    if((SENSOR_1<45)&&(SENSOR_3<50))
        {
        count++;
        Wait(50); 
        }

    if(count==2)
        {
        Wait(20);
        OnFwd(OUT_A);
        OnRev(OUT_C);
        Wait(250);
        count--;
        count--;}

    if(SENSOR_1<45)
        {
        Off(OUT_A+OUT_C);
        OnFwd(OUT_C);
        OnRev(OUT_A);
        }

    if(SENSOR_3<50)
        {
        Off(OUT_A+OUT_C);
        OnFwd(OUT_A);
        OnRev(OUT_C);
        }
           
    if(SENSOR_2==1)
        {
        Off(OUT_A+OUT_C);
        OnRev(OUT_B);
        Wait(80);
        Off(OUT_B);
        OnRev(OUT_A+OUT_C);
        Wait(200);
        OnRev(OUT_C);OnFwd(OUT_A);
        Wait(330);
        OnFwd(OUT_A+OUT_C);
        Wait(350);
        OnRev(OUT_A);
        OnFwd(OUT_C);
        Wait(330);
        OnFwd(OUT_A+OUT_C);
        Wait(230);
        Off(OUT_A+OUT_C);
        OnFwd(OUT_B);
        Wait(150);
        Off(OUT_B); 
        OnFwd(OUT_A+OUT_C);
        Wait(240);
        OnRev(OUT_A+OUT_C);
        Wait(350);
        OnRev(OUT_A);
        OnFwd(OUT_C);
        Wait(200);
        }
    }
}

1号・2号の試作プログラム     2006a/B6/ロボコン/プログラム

製作過程

製作者 ゆかいな仲間たち、ロボット制作者(株)

  • 目指すべき形は円滑な受け渡しと、スムーズな缶の運搬。
  • ロボの後ろに缶をのせることにより缶を引きずるように運搬する。
  • 後ろに引きずる感じで作ろうとしたためにアームの取り付けに苦労。
  • はじめは1号と同様なアームにしようとしたが受け渡しができないことに気がつき横にスライドするように変更。
  • 横スライドはギアだけでなく、ゴムを使い調整した
  • アームを横にスライドさせようとしたが、うまくアームを固定できなかった。
  • スライドするブロックの前後、上をブロックで挟む事により問題解決。
  • 缶を引きずるためのアームをできるだけ軽量に、かつ丈夫に作成。
  • タイヤではなくキャタピラにする事により段差を乗り越える事が可能にしようと試みる。
  • 段差にキャタピラがぶつかってしまい段差を超えられない...
  • キャタピラよりも斜め上前に二つのタイヤをつけることにより、キャタピラよりも先にタイヤが段差に当たり、キャタピラの前進する力によって車体前部が浮き上がり段差を超えることが可能に。問題解決!
  • しかし、何度も試すうちにだんだん段差を超えなくなってしまう...キャタピラの間には4本のシャフトがあり、は両端の二本だけにホイールがついていたが、このままでは段差をこえることができない事に気がつく。
  • 4本のうち残りの2本のシャフトにもホイールをつけることによって段差を超えられるようになり問題解決!
  • 段差を乗り越える途中で缶を落としてしまう。
  • とりあえずアームを強化してみたが、失敗...
  • 何度も試行錯誤を繰り返すが、最終的には缶を渡す時のためにアームに遊び部分(2センチ程上下に動く)があったのだが、ブロックを積んで、遊び部分を狭くすることにより(1センチ程度)、アームの下の部分と後ろの部分(一番後ろの横につきでた2本の棒)の隙間が狭くなり缶を落とさずに段差を乗り越えることができるようになり、問題可決!
  • プログラムの人と綿密な打ち合わせにより円滑な動きを可能に。
  • これらの作業により左側を軽快に走る2号が完成。

結果

がんばりました!
ギリギリまで微調節をしました・・・

1.jpg
順調にライントレ−スする1号。
障害物にぶつかる事なく進みます。
2.jpg
が、うまく缶をつかむ事ができずに一時中断。
故障の部分を修正し、再びフィールドへ
3.jpg
ラストチャンス!!
見事な暴走っぷりでした。。。

得点の集計結果、平均6点。
ブービー賞という事になりました。
お疲れさまでした

メンバーの感想

さんさー
今回はみんなで集まってロボットを製作した日に用事で参加する事ができなかったこともあり、皆さんに迷惑をかけてしまい大変申し訳なく思っています。
ロボコンの結果はよくなかったけれど、みんな頑張っていてよかったと思います。あとは、単位がもらえれば…………。
お疲れさまでした。
偽プログラマー
腹が減ったので帰って寝ようと思います。皆さんお疲れ!!!!!!!!!!!!!!!!!!!!!!!
ロボット制作者(株)
最後にロボコンで結果が出せなかったのは少し残念でした。結果が大切で…結果が出たときだけ過程が重要とよく言われますが、今回のロボコンでは結果はついてこなかったもののその過程はとても充実したものだったと思います!! みんなで頑張って準備してきた時間はとても意義のある時間であり、また最高の時間だったと思います。 最後にみんな有り難う。
偏頭痛
ついに解放された、というのが正直な気持ちです。連日連夜ロボと格闘した日々、思い出すと涙しか出てきません。結果は残念でしたが、共に頑張って来た仲間がいい人ばかりでよかったです。皆さんほんとにお疲れ様でした。
ゆかいな仲間たち
第二の人生への一歩を踏み出せたと自負しております。今回のロボコンでは、ロボット製作者としてチームに貢献できたことを誇りに思います。また、大変な授業でしたが、多くの人と仲良くなれたことをうれしく思います。有り難うございました。
HAL
今回のロボコンはロボティクスの課題で、一番大変なだったように思う。
あまり手伝う事ができずまたHPばかりだったが、疲れた。

コメント

  • 概要としてはよく書かれていますが、作戦やそれに対する結果、改善点に関して乏しい気がします。もう少しそのへんを書いてみるといいでしょう。 -- まいける(TA) 2006-08-16 (水) 00:16:50


添付ファイル: file3.jpg 221件 [詳細] file2.jpg 208件 [詳細] file1.jpg 231件 [詳細] file2_7.jpg 251件 [詳細] file2_6.jpg 241件 [詳細] file2_4.jpg 238件 [詳細] file2_3.jpg 222件 [詳細] file2_2.jpg 122件 [詳細] file2_1.jpg 287件 [詳細] file1_3.jpg 238件 [詳細] file1_2.jpg 237件 [詳細] file1_1.jpg 252件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-08-16 (水) 00:16:50