今回の課題

 今回の課題は、NQCを2台使って缶をゴールまで運ぶという課題でした。また、缶を積み上げると点数が高くなり、より高得点が狙えます。使用する缶は、空き缶です。今回私達の班では、NQCをそれぞれ1台ずつ別のロボットに使用して、1台は缶を集めるロボット、もう1台は缶を積み上げるロボットを作りました。私は、積み上げるロボット担当。

コース説明

コース

 今回のコースは前回の課題で使用したコースを2つ合わせてあります。スタート地点とゴール地点は、図の通りです。ロボットが結構大きなものとなってしまったので、スタート地点に2台ロボットを置くのは大変でした(;´・ω・)ゴールの大きさのイメージとしては、横・縦それぞれに缶2つ分くらいです。線上に缶が乗っても、得点がもらえます。

メンバー

 -yunagi 私です(笑)缶を積み上げるロボット製作担当です。  

 -mato 今回の課題の相方さんです。プログラミングをしてくださいました。

 -uirin 缶を運ぶロボットのプログラミング&ロボット製作をしてくださいました。

 -ryois 缶を運ぶロボットのプログラミング&ロボット製作をしてくださいました。

ロボットの紹介

 私が担当した積み上げるロボットを詳しく紹介します‼運ぶロボットの詳しい説明は、uirinさんとryoisさんのページをご覧ください。双子ちゃん( *´艸`)

缶を運ぶロボ

運ぶロボット

 シンプルイズベスト‼ライントレースをして、コース上の缶を運びます。目があります(笑)

缶を積み上げるロボ

積むロボット

 缶を掴むアームと缶を上げるリフト、移動用のタイヤの3つにモーターが使われています。タイヤに一つしかモーターを使うことが出来なかったため、前進と後進しかできないのが難点です。次に、こだわったポイントごとに説明します。隠れている目が可愛い(笑) 

こだわりポイント

 -アーム

アーム

 前回の課題と似たようなアームです。今回は、缶を持ち上げる動作があるため、どうすれば持ち上がることが出来るか試行錯誤しました。その結果、缶を2缶同時に掴み、手前の缶を壁にしつつ、奥の缶を持ち上げる仕組みにしました。缶は、2缶掴まないと持ち上げることが出来ないのが少し難点です。その為、缶を1つ積み上げることは出来ますが、それ以上となるともう少し改善が必要となります。持ち上げた缶が落ちないように、アームを延長したり、横に壁を作ったことで、重くなったのも難点です。

アーム

 横からみるとこんな感じです。シンプルな構造となっています。アームを支えるのが難しかったですが、上と下を両方支えることで、固定することが出来ました。

 -リフト

リフト

 タイヤを2つ使って缶を持ち上げる仕組みになっています。タイヤの回転が速いので、缶がスムーズに上まで上がります。上にストッパーがあるのは、それ以上缶が上がらないようにするためと、タイヤを逆回転して、缶に乗せる時にうまく乗るように支えるためです。小型のタイヤにしようかと考えましたが、大きなタイヤにしたことで、缶との接触面が増え、スムーズに積み上げることが出来ました。

プログラムの説明

 プログラムは、相方さんがしてくださいました。缶を積み上げるロボットのプログラムは、割とシンプルです。ライントレースは出来ないので、前進と後進を調節することでゴールまで進み、缶を積み上げます。缶を運ぶロボットのプログラミングは、uirinさんとryoisさんのページをご覧ください。

定義

 defineを使って、プログラムを定義します。  

#define HIPOWER 2 //モーターのパワー
#define LOWPOWER 1
#define set_power_H SetPower(OUT_AC,HIPOWER); 
#define set_power_L SetPower(OUT_AC,LOWPOWER);
#define go_forward(t) set_power_H; OnFwd(OUT_A); Wait(t); Off(OUT_A); //前進
#define go_back(t) set_power_L; OnRev(OUT_A); Wait(t); Off(OUT_A); //後進
#define can_hold(t)set_power_L; OnFwd(OUT_C); Wait(t); //缶を掴む
#define can_up(t) set_power_L; OnFwd(OUT_B); Wait(t); Off(OUT_B); //缶を持ち上げる(タイヤ回転)
#define can_down(t) set_power_L; OnRev(OUT_B); Wait(t); Off(OUT_B); //缶を下す(タイヤ逆回転)
#define can_rerease(t) set_power_L; OnRev(OUT_C); Wait(t); Off(OUT_C); //缶を離す
モーターA:足(タイヤ)
モーターB:リフト
モーターC:アーム

   次にサブルーチンを使って、缶を掴むプログラミングを入力します。

缶を掴む

sub can_stack() //缶を積み上げるまで
{    
 
 can_hold(100); //缶を掴む(1秒)
 go_back(30);  //後進(0.3秒) このプログラムを組み込むことで、缶を揃えている
 go_forward(50);  //前進(0.5秒)
 can_up(700); //リフト回転 缶を持ち上げる(7秒)
 go_forward(200);  //前進(2秒) 2個目の缶を持ち上げた缶の下に移動するため
 can_down(200); //リフト逆回転 缶を下げる(2秒)
 can_rerease(60); //缶を離す(0.6秒)
 go_back(1000);  //後進(10秒) スタート地点に戻る
  
}

全体のプログラム

task main()
{
 
 go_forward(600); //前進(6秒) ゴール地点で待機
 Wait(3000); //待機(30秒)
    
 can_stack(); //缶を積み上げる(サブルーチン)
 
}

感想と反省点

ロボットについて

 今回、ロボット製作にはとても時間がかかりました。作るのに時間がかかったというより、アイデアを出すまでに時間がかかりました。製作は、ロボコン前日に徹夜で(;'∀')缶を持ち上げるアイデアがなかなか思いつかず切羽詰まっていました。1つのNQCに使えるモーターが3つということで、移動用のモーターを1つにせざるを得なかったのが少し残念です。前日までタイヤしかなかったロボットが、ちゃんと完成し、さらに缶を積み上げることにも成功し、本当に嬉しかったです‼頑張ってよかったと思います。

プログラムについて

 プログラミングは相方さんに任せてしまいました。ロボットがきちんと動くのもプログラミングのおかげです‼ありがとうございます。移動がシンプルなので、プログラミングもシンプルに。ライントレースが出来なかったのが課題点でしたが、ロボコンの時にうまく動くことが出来たのでよかったです。

全体を通して

 今回の課題は、正直ロボコン前日まで絶望的な状態でした。しかし、アイデアをうまく活かし、ロボットを作り上げることが出来ました。ロボコンの時、缶の積み上げに成功した時の喜びは、忘れられません(笑)ロボコンは、2位という素晴らしい結果でした。他の班のロボットもユニークなものが多く、作る人が違えば、部品が同じでも全く違うロボットが出来ることに感動しました。この授業を通して、ロボットがまた好きになりました‼ありがとうございました(*´ω`)


添付ファイル: fileリフト.jpg 133件 [詳細] fileアーム2.jpg 153件 [詳細] fileアーム1.jpg 150件 [詳細] file積むロボ.jpg 215件 [詳細] file運ぶロボ.jpg 153件 [詳細] fileコース.gif 144件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-02-05 (水) 15:51:45