[[2008b/A5]]
*課題1・・・相方の似顔絵をロボットに作成させなさい [#k843008e]

#contents [#e4e9d40e]




**課題について [#h9ff4584]
ロボティクス入門で最初に出された課題は
 
-相方の似顔絵をロボットに作成させなさい
-このホームページを作成しそれにこのレポートを記述しなさい;

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


**ロボットの説明 [#we2357f1]
今回ロボットを作成する際に取り入れたかった要素は

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

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


&ref(2008b/A5/課題1左/右サイド.JPG);
&ref(2008b/A5/課題1左/キャタピラ横.JPG);
&ref(2008b/A5/課題1左/キャタピラテンショナー.JPG);
&ref(2008b/A5/課題1左/キャタピラ1110.JPG);
&ref(2008b/A5/課題1左/後ろ.JPG);
&ref(2008b/A5/課題1左/上.JPG);
&ref(2008b/A5/課題1左/前.JPG);





***工夫点 [#nb727d1f]

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

&ref(2008b/A5/課題1左/キャスター.JPG);
&ref(2008b/A5/課題1左/キャスター横.JPG);


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

&ref(2008b/A5/課題1左/空転歯車.JPG);

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

&ref(2008b/A5/課題1左/本体穴 下 .JPG);
&ref(2008b/A5/課題1左/本体穴 上 .JPG);

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

&ref(2008b/A5/課題1左/キャスター台座補強.JPG);

**プログラムについて [#de902e86]
***S助の場合 [#sd9976cc]
最初からこつこつとプログラミングしていってもいいのだが、どうやったら効率的にできるか考えてみた。

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);
 }




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

&ref(2008b/A5/課題1左/似顔絵.JPG);
&ref(2008b/A5/課題1左/似顔絵2.JPG);

***マサの場合 [#zbfe7f45]
***カズヤの場合 [#zbfe7f45]
 #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;//鼻
 }
*感想 [#uf51fff7]
-S助
~最初、ロボットを組み立てるのに夢中になってしまい、『改良』称して破壊と創造を繰り返した結果、ロボが完成してプログラミングとWebに差し掛かったのは期限の二日前になってしまった。徹夜を繰り返したものの期限に間に合わず、しかも徹夜で体調を崩し他の授業が残念なことに・・・。
~だけどそれで完成したロボットは納得の出来だったし、書いた顔も若干手を抜いたが、なかなかの出来でよかったと思う。ただプログラムは工夫次第でもう少しシンプルにできただろうなーと思います。
~まあ、『提出期限に間に合うよう、一部にこだわりすぎずに要領よくやりましょうね。』ということを実感した。

-マサ
-カズヤ
~ロボットをいろいろ改良するために遅くまで学校に残り大変だったがロボットが完成した時はとてもうれしかった。
- 写真ちゃんと載せてください。 -- [[なかむら]] &new{2008-11-12 (水) 17:12:12};
- 似顔絵の出来はすばらしいです。これからもがんばってください。 -- [[なかむら]] &new{2008-11-28 (金) 17:30:28};

#comment()

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS