2008b/A5

課題1・・・相方の似顔絵をロボットに作成させなさい

#contents [#e4e9d40e]

課題について

ロボティクス入門で最初に出された課題は  

  • 相方の似顔絵をロボットに作成させなさい
  • このホームページを作成しそれにこのレポートを記述しなさい;

の二つ。配布されたロボットキットでロボットを組み立て、それにプログラムを入力し似顔絵を描かせなければならない。プログラミングの作成にはNQCを使用した。

ロボットの説明

今回ロボットを作成する際に取り入れたかった要素は

  • できるだけコンパクトにする。
  • スムーズに小回りができるようにキャスターをつけたい。
  • 旋回するときの回転軸上にペンをつけたい。
  • キャタピラかっこいいからどこかに使いたい。

の4点。それを実現するために分解と構築を何度も繰り返してできたのがこちら。

右サイド.JPG キャタピラ横.JPG キャタピラテンショナー.JPG キャタピラ1110.JPG 後ろ.JPG 上.JPG 前.JPG

工夫点

1,キャスターひとつと駆動輪二つの三輪化したことで滑らかに旋回できるようになり、大きなタイヤと相まって機敏で速い動きができるようになりました。

キャスター.JPG キャスター横.JPG

2,ベースの中央には穴があいており、その上に設置したキャタピラにペンを輪ゴムで固定し、上下させて線を書くという仕組みになっています。ただ、これだと筆圧が弱くなってしまい、最初はうまく書けませんでした。筆圧を強めるためにペンを下げる方向にモーターで出力を加え続ければ解決しましたが、ペンを固定する輪ゴムとモーターに負荷がかかり続けるため、動力を伝える歯車の一つに一定以上の力がかかると空回りするタイプのものを使い、力の逃げ場を作りました。

空転歯車.JPG

3,キャタピラは二つの駆動輪の間にあり、回転軸のほぼ真上の位置にくるように付けました。これにより旋回時のペンの位置のずれがほとんどないため、位置を修正するプログラムを作る手間をだいぶ省くことができました。

本体穴 下 .JPG 本体穴 上 .JPG

他に細かいところでは、

  • 車体の安定化のためにキャスターのアームを延長してホイールベースを伸ばし、重量物であるRCXを三つあるタイヤのほぼ中心に置いた。
  • キャタピラがたるみがちだったので、内側のローラーの一つを若干外側に移し、張りを保たせた。
  • キャスターのアームや、キャタピラのベースが動かないように補強を加えた。

キャスター台座補強.JPG

プログラムについて

S助の場合

最初からこつこつとプログラミングしていってもいいのだが、どうやったら効率的にできるか考えてみた。

1,まず相方の顔をロボットでも書けるように簡略化し、とりあえず書いてみる。

2,顔を輪郭、髪、顔のパーツに分割し、パーツごとにプログラムを仕上げていく。

3,それぞれのプログラムを合体させる。

こうすることでパーツごとにテストや修正することができ。時間が短縮できた・・・と思います。~そしてできたプログラムがこちら。

task main() {

SetPower(OUT_B,07);

 OnRev(OUT_B);//penorosu 
 Wait(20);  
   

 //kao no rinkaku 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(45);

 OnFwd(OUT_A);//hidari kaiten 
 Wait(18);

 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(50);

 OnFwd(OUT_A);//hidari kaiten 
 Wait(32);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(45);

 OnFwd(OUT_A);//hidari kaiten 
 Wait(18);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(60);

 //kao no rinkaku owari
 
 
 //kami no rinkaku 
 
 Off(OUT_A);OnRev(OUT_C);//hidari ka-bu
 Wait(79);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(28);
 
 Off(OUT_A);OnRev(OUT_C);//hidari ka-bu
 Wait(79);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(10);
 
 OnFwd(OUT_A);//hidari kaiten 
 Wait(50);

 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(22);
 
 OnFwd(OUT_C);//migikaiten
 Wait(24);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(22);
 
 OnFwd(OUT_A);//hidari kaiten 
 Wait(24);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(22);
 
 OnFwd(OUT_C);//migikaiten
 Wait(24);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(22);
 
 OnFwd(OUT_C);//migikaiten 
 Wait(24);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(26); 
 
 OnFwd(OUT_A);//hidari kaiten 
 Wait(68);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(7); 
 
 //kami no rinkaku owari
 
 
 
 //kao
 
 OnFwd(OUT_B);//pen ageru
 Wait(20);

 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnFwd(OUT_A);OnRev(OUT_C);//hidari kaiten 
 Wait(60);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(15); 
 
 OnFwd(OUT_C);OnRev(OUT_A);//migi kaiten 
 Wait(10);
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_B);//penorosu
 Wait(20);
  
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(15); 
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnFwd(OUT_B);//pen ageru
  Wait(20);
  
  Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(20); 
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_B);//penorosu
  Wait(20);
  
  Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(15); 
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnFwd(OUT_B);//pen ageru 
  Wait(20);
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
  
 OnFwd(OUT_A);//hidari kaiten 
 Wait(80);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(30);
 
 //me
 OnFwd(OUT_C);OnRev(OUT_A);//migi kaiten 
 Wait(20);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(7);
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_B);//pen orosu
 Wait(20);
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(20);
 
 OnFwd(OUT_A);OnRev(OUT_C);//hidari kaiten 
 Wait(55);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(8); 
 
 //hana
 

 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnFwd(OUT_B);//pen ageru
 Wait(20);
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnFwd(OUT_C);OnRev(OUT_A);//migi kaiten 
 Wait(30);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(26); 
 
 OnFwd(OUT_C);//migi kaiten 
 Wait(50);
 
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_B);//pen orosu
 Wait(20);
  
 Off(OUT_A+OUT_C);//tomaru 
 Wait(70);
 
 OnRev(OUT_A+OUT_C);//tyokusin
 Wait(15); 
 
 OnFwd(OUT_B);//pen ageru
 Wait(20);
 
 //kuchi
 
 //kao owari
 
 Off(OUT_B+OUT_A+OUT_C);
}

で、これで書けた顔がこれ。

似顔絵.JPG 似顔絵2.JPG

カズヤの場合

#define pen_up OnRev(OUT_B);Wait(20);Off(OUT_B);
#define pen_down SetPower(OUT_B,3);OnFwd(OUT_B);Wait(50);
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);Wait(40);Off(OUT_A+OUT_C);Wait(50);
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);Wait(40);Off(OUT_A+OUT_C);Wait(50);
#define straight(u) OnFwd(OUT_A+OUT_C);Wait(u);Off(OUT_A+OUT_C);Wait(50);
task main()
{
pen_down;
OnFwd(OUT_A+OUT_C);
Wait(50);
Float(OUT_C);
Wait(235);
OnFwd(OUT_C);
Wait(50);
Float(OUT_C);
Wait(235);
Off(OUT_A+OUT_B+OUT_C);//輪郭
pen_up;
turn_right;
straight(10);
pen_down;
straight(10);
pen_up;//右目
straight(10);
pen_down;
straight(10);
pen_up;//左目
turn_left;
straight(50);
turn_left;
pen_down;
straight(25);
pen_up;//口
OnRev(OUT_A+OUT_C);Wait(15);Off(OUT_A+OUT_C);
turn_left;
straight(15);
pen_down;
straight(10);
pen_up;//鼻
}

感想

  • S助

    最初、ロボットを組み立てるのに夢中になってしまい、『改良』称して破壊と創造を繰り返した結果、ロボが完成してプログラミングとWebに差し掛かったのは期限の二日前になってしまった。徹夜を繰り返したものの期限に間に合わず、しかも徹夜で体調を崩し他の授業が残念なことに・・・。

    だけどそれで完成したロボットは納得の出来だったし、書いた顔も若干手を抜いたが、なかなかの出来でよかったと思う。ただプログラムは工夫次第でもう少しシンプルにできただろうなーと思います。

    まあ、『提出期限に間に合うよう、一部にこだわりすぎずに要領よくやりましょうね。』ということを実感した。

  • カズヤ

    ロボットをいろいろ改良するために遅くまで学校に残り大変だったがロボットが完成した時はとてもうれしかった。

  • 写真ちゃんと載せてください。 -- なかむら? 2008-11-12 (水) 17:12:12
  • 似顔絵の出来はすばらしいです。これからもがんばってください。 -- なかむら? 2008-11-28 (金) 17:30:28


添付ファイル: file右サイド.JPG 258件 [詳細] fileキャタピラ横.JPG 236件 [詳細] fileキャタピラテンショナー.JPG 297件 [詳細] fileキャタピラ1110.JPG 245件 [詳細] fileキャスター.JPG 272件 [詳細] fileキャスター横.JPG 271件 [詳細] fileキャスター台座補強.JPG 286件 [詳細] file空転歯車.JPG 269件 [詳細] file後ろ.JPG 269件 [詳細] file似顔絵.JPG 270件 [詳細] file似顔絵2.JPG 270件 [詳細] file上.JPG 282件 [詳細] file前.JPG 289件 [詳細] file本体穴 下 .JPG 256件 [詳細] file本体穴 上 .JPG 277件 [詳細]

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