2010a

目次

1、[課題:ロボコン]の内容

 start位置から障害物を越えてピンポン玉のあるところまで行き、ピンポン玉をできるだけたくさん採取し元の位置(start位置)に持ち帰る。

ロボコンのフィールド平面図

構想に関する図


フィールドの説明

   ・フィールドは約160cm×110cm
   ・15個のピンポン玉は19mm角の角材に囲まれた領域にある (角材の外周の一辺は約20cm)。
   ・スタート地点の壁および中央の障害壁の断面は約89mm x 38mm
   ・中央の障害壁のは中央付近の20cmのみ高さが約半分(45mm)になっている
   ・黒い線の太さは約25mm
                                                  ロボコンのページから引用しました。

2、メンバー紹介

 カワシマ、カズ、マコト、モロ、ヤマモトの5人でやってます。

3、コンセプト

 多くを望まず、確実に。

4、ロボット紹介

 私たちは二つの別の動きをするロボットを作成しました。

ピンポン玉を掬う方のロボット・・・

 ピンポン玉が溜まっているところまで行きピンポン玉を掬い取り運搬するロボットについて紹介したいと思います。

   【真上】

真上


   【正面】

正面


   【右側面】

右側面


   【左側面】

左側面


   【真後ろ】

真後ろ


動き

 ・モータを2つ使用したために、前後左右に動くことができます。
 ・前方についているモータが、負に回転することにより、黄色いスコップのような形状の部分が連動して動きピンポン玉を掬い取ることができます。
 ・RCXの下の部分の空洞にピンポン玉を最大2つ積んで運ぶことができます。少し少ないように感じるかもしれませんが、ロボットの大きさの観点から考えるとベストの大きさであると思います。また、これは私たちのコンセプトどおりであると思います。

工夫点

 ・ロボットの大きさをできるだけ小さくするように何度も作りなおしました。
 ・ロボットの足をキャタピラを使用することにより、タイヤを使用した場合よりもちょっとした凹凸を乗り越えやすくなりました。
 ・ピンポン玉を掬い取る部分の形状は、鳥の嘴をヒントに作りました。

反省点

 ・ギヤ比を変えることでスピードを調節することができればSetPowerを使用しなくてもよかったと思います。
 ・もう少しロボットの大きさを小さくしたかった。
 ・このロボットが移動の際に求められる動きは前後動だけなので、できれば使用するモータの個数を1つ(*移動に使用する)にして、軽量化を図りたかった。

土台の方のロボット・・・

 ピンポン玉を掬い運搬するロボットを障害物(木でできた塀)まで運びスロープを下ろすことによってピンポン球を掬い運搬するロボットが障害物を超えるのを助け、さらにピンポン玉を掬い終え帰還したロボットを元の位置まで運搬するロボットを紹介します。

   【真上】

真上


   【正面】

正面


   【右側面】

右側面


   【左側面】

左側面


   【真後ろ】

真後ろ


   【真上:スロープ開平時】

真後ろ


動き

 ・モータを2つ使用しているため前後左右に動くことが可能です。
 ・先ほど紹介したロボットを上に載せて運搬することができます。
 ・このロボットの前方にはスロープが搭載されており上のロボットが前進することによってスロープが姿を現し、上のロボットが障害を越える手助けをします。

工夫点

 ・スロープが出現するときにつぶれないように強度を上げてあります。
 ・できるだけスロープの角度が急にならないようにロボットの高さを障害物の高さぎりぎりにしました。

反省点

 ・スロープを開平した状態で走ることができない。(帰還することができない。)
 ・少し大きすぎたので、もう少し小さくしたかった。

颪琵鬚鮃臑里靴燭發

合体

颪鴾鬚望茲擦襪海箸砲茲辰胴臑里気擦討い泙后

5、プログラムの紹介

 ここでは、大まかに土台のロボットに関するプログラムと、ピンポン球を掬い運搬するロボットに関するプログラムの二つに分けて、さらに 銑韻瞭阿を機銑靴紡腓く分けて紹介していきたいと思います。(角が丸くて黄色い四角は鬚離蹈椒奪函角が角ばっていて水色い四角は颪離蹈椒奪箸鯢修靴討い泙后)

土台(障害を越えるためのマシン)のプログラム

  銑Г函△箸鵑猫〜韻納┐靴親阿にプログラムを添えて示します。

: 銑Г瞭阿

構想に関する図


#define GO OnFwd(OUT_A);OnRev(OUT_C);    // 左に方向転換する
#define STOP Off(OUT_A+OUT_C);           // 停止する
#define REV OnFwd(OUT_A+OUT_C);          // 前進する
#define CIR OnRev(OUT_A+OUT_C);          // 後進する
#define BACK OnFwd(OUT_C);OnRev(OUT_A);  // 右に方向転換する       
#define SOFT Float(OUT_A+OUT_C);         // 滑らかに停止する        
task main(){   

  STOP;
  Wait(1000);                   // 十秒間静止
  REV;
  Wait(310);          // :3.1秒間前進
  STOP;
  Wait(50);           // 停止(0.5秒間)
  BACK;
  Wait(145);          // :その場で右に約90度方向転換(1.45秒間)
  STOP;
  Wait(50);           // 停止(0.5秒間)
  REV;
  Wait(350);          // :3.5秒間前進
  STOP;
  Wait(50);           // 停止(0.5秒間)
  BACK;
  Wait(150);          // :その場で右に約90度方向転換(1.5秒間)
  STOP;
  Wait(50);           // 停止(0.5秒間)
  REV;
  Wait(355);          // :3.55秒間前進
  STOP;
  Wait(50);           // 停止(0.5秒間)
  GO;
  Wait(125);          // :その場で左に約90度方向転換(1.25秒間)
  STOP;
  Wait(50);           // 停止(0.5秒間)
  REV;
  Wait(300);          // :3秒間前進 
  STOP;
  Wait(8000);          // 停止(80秒間:もう一台のロボットが─銑の動作をおこなっている間)

 ここから下のロボットの動きに移ります。

:〜韻瞭阿

 ここからは実現できていない点がいくつかあります。(赤い矢印が薄くなっている部分、主に〜院)

構想に関する図


  CIR;
  Wait(1000);          // :10秒間後進
  SOFT;             // 滑らかに停止

 この時点でピンポン玉がロボットごと黒線を越えたため1点×2ゲット。

  GO;
  Wait(150);                    // :後進したまま進行方向左に90度方向転換(1.5秒間)
  STOP;                         // 停止する
  CIR;
  Wait(350);                    // :3.5秒間後進
  STOP;                         // 停止する
  BACK;
  Wait(150);                    // :後進したまま進行方向右に90度方向転換(1.5秒間)
  STOP;                         // 停止する
  CIR;
  Wait(350);           // :3.5秒間後進
  STOP;                         // 停止する
  BACK;
  Wait(150);                    // :後進したまま進行方向右に90度方向転換(1.5秒間)
  STOP;                         // 停止する 
  CIR;
  Wait(300);           // :3秒間後進
  STOP;                         // 停止する  
          }

ピンポン玉を掬う方のマシンのプログラム

 ─銑に示した動きにプログラムを合わせて示します。

:─銑の動き

構想に関する図


#define GO OnFwd(OUT_A+OUT_B);    // 直進する
#define BACK OnRev(OUT_A+OUT_B);  // 後進する
#define CATCH OnRev(OUT_C);       // ピンポン球を掬う
#define STOP Off(OUT_A+OUT_B);    // 停止する

 上記で定義した値を用いてプログラムを組みました。

task main(){
 
 SetPower(OUT_A+OUT_B,3);         // A,B出力のモータの出力を3にする (0〜7まで指定できる)  

 STOP;                            
 Wait(3500);                      //  銑Г瞭虻遒隆崢篁(35秒間)
 GO;
 Wait(600);                       // :ピンポン玉が溜まっている場所まで直進、その際、前進することでスロープを押し出す(6秒間)


:ピンポン玉を掬い運搬するロボットがスロープを押し出す瞬間。


:ピンポン玉が溜まっているところまで直進中。


 STOP;
 Wait(50);                        // 0.5秒間停止した後
 CATCH;
 Wait(500);                       // :ピンポン玉を掬い取る作業???掬うピンポン玉の個数の目標は2つです(5秒間)
 Off(OUT_C);
 Wait(50);                        // ピンポン玉を掬い取る作業をやめる(0.5秒間)

 SetPower(OUT_A+OUT_B,5);         // A,B出力のモータの出力を5にする (0〜7まで指定できる)
 
 BACK;
 Wait(1000);                      // :後進して土台のロボットに帰還する
 STOP;                            // 停止する
          }

 ここからまた上のロボットの動きに戻ります。

プログラムにおける工夫点

 ・STOPの後に0.5秒間間隔をあけることで、動きと動きの間に余裕ができ動きのずれが軽減された。
 ・定義を用いることで簡略化しました。
 ・SetPowerを用いることでスピードを変えました。

プログラムにおける反省点

 ・時間指定であるために、電池を交換するだけで大きなずれ。
 ・毎回何らかの影響で生じるずれをなくすために、そのつど時間を調節しなければならなかった。
 ・ロボットを出来る限り小さくしたが、まだ少し大きかったために動きが制限され〜韻鮗存修垢襪海箸できなかった。

結果

 全体で2位だったのですが、ピンポン玉を持ち帰ることができなかったので残念です。

6、ロボコンと授業全体に関する感想

 ここからはメンバーそれぞれの感想を紹介していきたいと思います。

カワシマ

 今回のロボコンにおいて、心残りな点が3つあります。まず一つ目はロボットの大きさ(もう少し小さくすれば、プログラムの動きを最後まで実現できました・・・)、二つ目は鬚離蹈椒奪箸妨・センサを搭載していたのに使用しなかった点(ポイントとなる地点にをいて使用すれば、ずれをなくすことができた。)、三つ目は本番で颪離蹈椒奪箸鬚離蹈椒奪箸傍還することはできたが、ピンポン玉を運搬中に落としてしまったためにピンポン玉を持ってこれなかった点です。これらの問題を抱えながらも総合2位という成績だったことには驚きましたし、まあ健闘したかな・・・とも感じました。今回本番で失敗した原因は主にプログラミングへの時間をあまり取らず、ロボットに時間をかけ過ぎたことが挙げられると思います。そのため今回のロボコンは、ロボット勝負になってしまっていました。反省し始めたらきりがないのでこれぐらいにしておきますが、もしこのような機会がもう一度あるなら、バランス良く1つ1つの部署に取り組むようにしたいと思います。
授業はこれで終わりですが、私がロボティクス入門ゼミを受講して印象深かったこと は、ロボットが文字式1つ変わるだけで、まったく違った動きをすることです。ここから私は現代人が頼っている電子機器、電子制御というものへの不安を感じました。と同時にプログラミングの難しさ、プログラムを組む者への責任の大きさ、そして、今世間に出まわっている電子機器のすごさについても再確認することができました。今後自分にはC言語を学ぶ機会があるようなので、習った知識だけでなく先ほど挙げた考え方もその学習機会になんらかのかたちで反映させることが出来ればよいと考えています。
 最後に、A2のみなさんお疲れ様でした。

カズ

このロボコンで思ったのは、どれだけプログラムが大切であるかということでした。ロボットの製作に多くの時間を使ってもプログラムができなかったら何もかも無駄になってしまいます。先生に言われて、今回のロボコンで思って改めてプログラムの大切さを知ることができました。これはこれでよかったのかとも思ってます。結果的には総合2位でしたが、一番悔しかったのはピンポン玉を持って帰ることができなかったことです。でも今回のロボコンはとても楽しかったです。
授業を通して自分はロボットにさらに興味を持てたと思っています。いろんなロボット、動きの違い、センサーを使ったりと多くの経験ができとても楽しかったです。自分の学科ではロボットも扱っているのでこの経験はこれからいかせていけたらと思っています。みんなといろんなロボットの話をしながら授業を受けられて楽しかったです。

マコト

運ぶロボットのアームの部分がうまくいかずに、何度も解体?改良を繰り返していたので気が遠くなりそうだった。時間も足りず、みんなが集まれる時間もなかったので完成までの道は全く見えませんでしたが最終的にまとまってよかった。 授業を通しての感想は、一言で言うとおもしろかった。プログラムを入力して、機会がその通りに動いてくれたときの嬉しさや、パーツを組み立てて完成までの想像をすることなんかも非常に面白かった。機会があればまたこういったことをやりたいと思う。

モロ

玉を入れるロボットの製作では、ギアの回転が速く、ボールを後ろに飛ばしてしまいそれを改善するのに苦労しました。プログラムのほうではせっかく玉をうまく入れるロボを作ったので、さまざまな角度からボールを取れるようにプログラミングできたら良かったなとそこが心残りです。  
授業を通して感じたことですがロボットは命令したことに関してかなり正確に何度も繰り返し出来るという利点と人間のように無意識のうちに修正する動き、力、速度に関してもしっかりプログラミングしないと動かないという欠点の双方を内包しているのだなと強く感じました。もうひとつ思ったのはセンサーの重要性です。センサーがあるだけで物が把握できるなど一つ一つのセンサーはロボっトのプログラムに関して大きな意味を持っていると感じました。今世の中にあるセンサーの他にまだ見ぬセンサーが開発されたときロボットはどのような方向に進んでいくかとても楽しみです。 
最後にこの授業はとても大変でしたがその分とても楽しかったです。

ヤマモト

今回、ロボティクス入門ゼミを受講して、自分のプログラミング技術を向上させることができたという点で自分にプラスになったと思います。今後もこういう機会があれば参加したいと思います。

7、コメント欄

 私たちのページを見て、感じたことを自由に投稿して下さい。 

  • 図などを使いつつ、区切って説明しているのはよいです。感想がまだ全員かけていないみたいなので、書いてください -- FI? 2010-08-11 (水) 13:56:19


添付ファイル: file027.JPG 348件 [詳細] file028.JPG 134件 [詳細] file034.JPG 142件 [詳細] file033.JPG 136件 [詳細] file構想.png 380件 [詳細] file037.JPG 121件 [詳細] file036.JPG 132件 [詳細] file035.JPG 133件 [詳細] file040.JPG 258件 [詳細] file041.JPG 386件 [詳細] file024.JPG 357件 [詳細] file023.JPG 344件 [詳細] file022.JPG 309件 [詳細] file021.JPG 336件 [詳細] file020.JPG 236件 [詳細] file019.JPG 312件 [詳細] file017.JPG 342件 [詳細] file016.JPG 252件 [詳細] file015.JPG 335件 [詳細] file014.JPG 353件 [詳細] file013.JPG 366件 [詳細] file038.JPG 109件 [詳細] file構想.png 357件 [詳細] filerobocon2010a.png 283件 [詳細] file構想0.png 367件 [詳細] file構想.png 139件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-14 (火) 23:03:02 (3263d)