[[2009b]]
オレが、最強だ。

#contents

*課題:似顔絵ロボットを作ろう! [#jf77f7eb]

 似顔絵ロボットを作り、パートナーの似顔絵を描く!
 
 

*チーム [#yd28a479]
-チーム名 「合衆国陸軍JSOC統合幕僚本部」

-メンバー紹介(「」内は意気込み。)~
 戸田 津  (工学部) 「熱き魂の邂逅」~
 中村 晋也 (教育学部)「工学部2人がいじり始めるとすることないんですけど 汗」~
 湯浅 諒平 (工学部) 「がんばりたい。」~
~
~
(明日、似顔絵を完成させ、達成感に満ち満ちた、仲睦まじい3人の写真を更新予定。乞うご期待!!)~


*ロボット [#z1079e5a]
ロボットに似顔絵を描かせるには、本体はあまり動かず、アームが器用に動いて、絵を
描かせる方法と、本体が動き回ってその軌跡で描かせる方法の2つがあると思う。
(他にもあるかもしれないがそれは筆者が思いつかなかったので。orz)
最初のロボットは四輪でアームはスライド式にしてみた。
反省点はタイヤが大きすぎて、速度が速くて旋回がしにくかったこと、アームを降ろした状態のとき、固定されていなく、描きにくかったことだと思う。
そこで、次のロボットは単純にアームを回して降ろす形式にしてみた。
車輪は二輪駆動にして、自由に動く車輪をつけて、旋回しやすくしたつもりだった。 しかし、自由に動くタイヤが逆に曲がる邪魔になってしまった。
(´;ω;`)
#ref(2009b/A1/課題1左/hazimete.jpg,50%,最初のロボット)



**現在の構造になるまで [#ra1b7c02]
今のペンを上げ下げする構造はペンが地面に設置する部分が重心を射抜いておらずプログラムを組む際にその点を考慮する必要があったその為当初はマシンの重心(構造的重心)、現在ではCPUが居座っている部分に穴を開けてその部分にペンを上げ下げするスタンスで行こうとしたが技術的な面により断念 アームを用いる現構造を指針にする様方針を転換した
~
~ そこで次に出た案が前述したアーム上げ下げ方式(仮)である
~ただこのモデルは幅が狭く安定性能がイマイチである側面も併せ持っていた アーム装着のためにマシンの上背を高くしたのもその原因に一役買っていた
~ そして最終的に打ち出されたのが安定して走行 そして頑健なBodyを持つ という基本的スタンスを踏まえながらもこちらが発した命令を忠実に再現する第3世代ロボの開発である 
~
~
**このマシンを組む際に注意した点 [#xbdd9b89]
まずこのレゴロボの占める重量の内、かなりの部分がCPUに集まっている。~
そのため走行中のマシンを安定させるためCPUをマシンの下部に設置した。~ 
これは様々な試行錯誤の上にCPUを上部に乗せるのはナンセンスだと気付いた経験に基づくものである。
~
~ 
またそのためにマシンの幅を広くする必要に迫られたのだが、逆にこのことが安定性を更に上げてくれた。怪我の功名とはこのこと。 
~
~


**似顔絵ロボットを作る上で [#g6ed7ffc]


*プログラム [#j864400d]
現実は甘くなかった。プログラムも難しかった。~
特に、微調整に時間がかかり、かなりの時間がかかってしまった。~
以下はプログラムの解説。

**時間がないから・・・ [#gc30e406]

効率を考え、以下のように行った。~
~
+顔をいくつかのパーツに分ける
+分担して、プログラミングを行う
+出来たものをまとめ、スタンダードモデルを完成させる
+スタンダードモデルを各自改良し、オリジナルモデルを完成させる。

**スタンダードモデル [#x4ff312d]
-分担~
 戸田・・・欠席のため分担なし 主にメカニック担当~
 中村・・・髪・輪郭~
 湯浅・・・顔のパーツ~

-プログラム
分担して作ったプログラムを載せる。

  #define go_st(t) OnFwd(OUT_A+OUT_C); Wait(t);  
  #define go_ba(t) OnRev(OUT_A+OUT_C); Wait(t);
  #define off Off(OUT_A+OUT_C);
  #define right(t) OnFwd(OUT_C); Wait(t); Off(OUT_C);
  #define left(t) OnFwd(OUT_A); Wait(t); Off(OUT_A);
  #define h_right(t) OnRev(OUT_C); Wait(t); Off(OUT_C);
  #define h_left(t) OnRev(OUT_A); Wait(t); Off(OUT_A);
 
***中村 [#qea75d98] 

 sub mae_gami()
 {
     
      repeat(6){
          
          go_st(20);
          h_right(20);
          off
          
      }
      off;
 }
 
 
       
 task main()
 { 
     mae_gami(); //mae_gami
     go_ba(30);
     off;
     
     right(1250); //atama_rinnkaku
    
          
     
 }    
    

-解説~
前髪の部分は、~
本来移動のためのプログラムだったが、~
微調整の過程で変更することにした。~
角度の調整がとても難しかったが、~
根気、勇気、友情、愛情、根性で乗り切った。~
~
輪郭は、○を描くだけだったので簡単だったが、~
前髪から輪郭に移る部分の~
go_ba(30):後退のプログラム
が少し大変だった。~


***湯浅orz[#xa39a37a]

 void go_st(int x)
	 {
       OnFwd(OUT_A+OUT_C);  Wait(x);
      }
 void go_ba(int a)
	 {
       OnRev(OUT_A+OUT_C);  Wait(a);
      }       
 void  right(int y)
	 {
       OnFwd(OUT_A); OnRev(OUT_C);  Wait(y); Off(OUT_C);

        }
      
 void  left(int z)
	 {  
      OnFwd(OUT_C); OnRev(OUT_A);  Wait(z);  Off(OUT_C);

        }      

 #define off Off(OUT_A+OUT_C);

 #define l_right(t) OnFwd(OUT_C); Wait(t); Off(OUT_C);



 sub penup()
    {
    OnFwd(OUT_B);      Wait(20);     Off(OUT_B) ;
    }
   
 sub pendown()
    {
    OnRev(OUT_B);       Wait(10);     Off(OUT_B) ;  Float(OUT_B) ;
    }
 sub mae_gami()
 {
    
      repeat(6){
         
          go_st(20);
          right(20);
          off
         
      }
      off;
 }



  task main()
 {
  mae_gami(); //mae_gami
     go_ba(30);
     off;
    
     l_right(1250); //atama_rinnkaku
   

 
 
 
   //eyebow1
   go_st(40);
  
   //move to eyebow2
   penup();
   go_st(50);
   //eyebow2
   pendown();
   go_st(40);
   //move to eye2
   Float(OUT_A+OUT_C);
   penup();
   go_ba(40);
   right(90);
   go_st(20);
   //eye2
   pendown();
   go_st(40);
    Off(OUT_A+OUT_C);
   //move  to mouth
   penup();
   go_st(60);
   right(90);
   //mouth
   pendown();
   go_st(200);
   Off(OUT_A+OUT_C);
    //move  to eye1
    penup();
    right(100);
    go_st(70);
    //eye1
    pendown();
    go_st(40);
    Float(OUT_A+OUT_C);
    }


書き終えて [#re6fefea]


発想の仕方がきちんとしていますし、またそれをちゃんとレポートに書いてあるのはとても良いです。まだ、「書き終えて」以降に書いていなかったり、写真をアップしていないので、終わっていないと判断して評価はしませんでした。書いた似顔絵がどんなものか、そして各パーツがロボットの度の動きと対応するかわかるように写真をはったり、プログラムにコメントの形で説明を加えると良いと思います。 FI


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS