*書道ロボa2L [#x2a6ac62]
#contents
**ロボット  [#c48337eb]
  このロボットは指定した文字を書くために作られ、もともとキャタピラ型だったものを都合上タイヤの方が動きやすいだろうということで急きょタイヤ型にチェンジし、また、数々の試行錯誤を重ねたのちに出来上がった2aLの初号機である。

&ref(2007a/A2/課題1左/cimg0240_Large.jpg,100%,書道ロボの画像);
***作成過程 [#x8c310e8]
  1 基礎部分・・・授業の初めの方で作った物を少し改造して使用  

  2 アーム部分・・・メンバーが自宅にて作成して来たものを使用

  3 接合&調整・・・ロボティクス授業時間内に進行、完了。   
***工夫(特徴) [#ba46ec93]
  アーム部分においてただ腕を振り下ろす仕組みではなく、ギアを駆使してペンを垂直に降ろせるようなものを作った。ギアは低速で、確実に降ろしたい場所におろせるように工夫。また、マシンの旋回のことを考え、ペンの位置をマシンの中央部に設置。マシン自体はバランスをとるために正面から見たときにできるだけ左右対称になるように心がけた。

&ref(2007a/A2/課題1左/cimg0241_Medium.jpg,90%,構造1);
&ref(2007a/A2/課題1左/cimg0243_Medium.jpg,90%,構造2);
&ref(2007a/A2/課題1左/cimg0244_Medium.jpg,100%構造3分解状態);
**「木」の字を書くプログラム [#d24ca4f0]
 #define PEN_TIME 10
 sub pendown()         //ペンを下ろす
 {     OnFwd(OUT_B);
       Wait(PEN_TIME);
       Off(OUT_B);
  }
 
 sub penup()          //ペンを上げる
 {
       OnRev(OUT_B);
       Wait(PEN_TIME);
       Off(OUT_B);
 } 
 
 task main()
 {
       pendown();           //1画目
       OnFwd(OUT_A+OUT_C);
       Wait(120);
       Off(OUT_A+OUT_C);
       penup();
       OnFwd(OUT_A);          //線を書かずに2画目へと移動
       OnRev(OUT_C);      
       Wait(92);   
       Wait(94);   
       OnFwd(OUT_A+OUT_C);
       Wait(50);
       Off(OUT_A+OUT_C);
       OnFwd(OUT_A);
       OnRev(OUT_C);       
       Wait(92);
       Wait(94);
       OnFwd(OUT_A+OUT_C); 
       Wait(60);
       Wait(55);
       OnFwd(OUT_A);       
       OnRev(OUT_C);      
       Wait(92);   
       Wait(94);   
       Off(OUT_A+OUT_C);
       pendown();          //2画目
       OnFwd(OUT_A+OUT_C);
       Wait(150);
       Off(OUT_A+OUT_C);
       penup();
       OnRev(OUT_A+OUT_C);            //線を書かずに後退、3画目へと移動
       Wait(100);
       Off(OUT_A+OUT_C);
       OnFwd(OUT_C);
       OnRev(OUT_A);        
       Wait(35);
       Wait(25);
       pendown();          //3画目
       OnFwd(OUT_A+OUT_C);
       Wait(100);
       Off(OUT_A+OUT_C);
       penup();
       OnRev(OUT_A+OUT_C);          //ペンを上げ、次の4画目のため向きを変える
       Wait(100);
       Off(OUT_A+OUT_C);
       OnFwd(OUT_A);
       OnRev(OUT_C);       
       Wait(70);
       pendown();          //4画目
       OnFwd(OUT_A+OUT_C);
       Wait(100);
       Off(OUT_A+OUT_C);
       penup();
 }

&ref(2007a/A2/課題1左/cimg0239_Medium.jpg,100%,ロボで書いた「木」の字);
**「田」の字を書くプログラム [#j558415a]
 #define TURN_TIME 93
   sub turnright()  //右に90度曲がる
 {
         OnRev(OUT_A);  OnFwd(OUT_C);
         Wait(TURN_TIME);
         Off(OUT_A+OUT_C);
 }
   
 sub turnleft()    //左に90度曲がる
 {
        OnFwd(OUT_A);  OnRev(OUT_C);

&ref(2007a/A2/課題1左/田.jpg,100%,「田の字」);
  #define TURN_TIME 93
   sub turnright()  //右へ90度曲がる
  {
        OnRev(OUT_A);  OnFwd(OUT_C);
        Wait(TURN_TIME);
        Off(OUT_A+OUT_C);
 }
  }
  
   sub turnleft()  //左へ90度曲がる
  {
       OnFwd(OUT_A);  OnRev(OUT_C);
       Wait(TURN_TIME);
       Off(OUT_A+OUT_C);
  }
  
  sub pendown()   //ペンを下げる
  {
        OnFwd(OUT_B); 
        Wait(10);
        Off(OUT_B);
  }
   
 sub pendown()    //ペンを下げる
 {
         OnFwd(OUT_B); 
  sub penup()    //ペンを上げる
  {
         OnRev(OUT_B);
         Wait(10);
         Off(OUT_B);
 }
    
 sub penup()     //ペンを上げる
 {
          OnRev(OUT_B);
          Wait(10);
          Off(OUT_B);
 }
    
 task main()
 {
           pendown();      //一画目
           OnFwd(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           penup();
           OnRev(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           turnleft();
           pendown();      //二画目
           OnFwd(OUT_A+OUT_C);
           Wait(120);
           Off(OUT_A+OUT_C); 
           penup();
           OnRev(OUT_A);  OnFwd(OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           pendown();      
           OnFwd(OUT_A+OUT_C);
           Wait(95);
           Off(OUT_A+OUT_C);
           penup();
           OnRev(OUT_A+OUT_C);
           Wait(48);
           Off(OUT_A+OUT_C);
           tuenright();
           pendown();      //三画目
           OnFwd(OUT_A+OUT_C);
           Wait(115);
           Off(OUT_A+OUT_C);
           penup();
           OnRev(OUT_A+OUT_C);
           Wait(60);
           Off(OUT_A+OUT_C);
           turnright();
           OnFwd(OUT_A+OUT_C);
           Wait(42);
           Off(OUT_A+OUT_C);
           pendown();      //四画目
           OnRev(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           penup();
           turnleft();
           OnFwd(OUT_A+OUT_C);
           Wait(53);
           Off(OUT_A+OUT_C);
           pendown();      //五画目
           OnRev(OUT_A+OUT_C);
           Wait(100);
           Off(OUT_A+OUT_C);
           penup();
  }
   
  task main()
  {
          pendown();     //一画目 1~2
          OnFwd(OUT_A+OUT_C);
          Wait(98);
          Off(OUT_A+OUT_C);
          penup();
          OnRev(OUT_A+OUT_C);
          Wait(100);
          Off(OUT_A+OUT_C);
          turnleft();
          pendown();     //二画目 1~3~4
          OnFwd(OUT_A+OUT_C);
          Wait(120);
          Off(OUT_A+OUT_C); 
          penup();
          OnRev(OUT_A);  OnFwd(OUT_C);
          Wait(105);
          Off(OUT_A+OUT_C);
          pendown();     
          OnFwd(OUT_A+OUT_C);
          Wait(96);
          Off(OUT_A+OUT_C);
          penup();
          OnRev(OUT_A+OUT_C);
          Wait(46);
          Off(OUT_A+OUT_C);
          OnRev(OUT_A); OnFwd(OUT_C);
          Wait(88);
          Off(OUT_A+OUT_C); 
          pendown();     //三画目 5~6
          OnFwd(OUT_A+OUT_C);
          Wait(110);
          Off(OUT_A+OUT_C);
          penup();
          OnRev(OUT_A+OUT_C);
          Wait(57);
          Off(OUT_A+OUT_C);
          turnright();
          OnFwd(OUT_A+OUT_C);
          Wait(44);
          Off(OUT_A+OUT_C);
          pendown();     //四画目 7~8
          OnRev(OUT_A+OUT_C);
          Wait(100);
          Off(OUT_A+OUT_C);
          penup();
          turnleft();
          OnFwd(OUT_A+OUT_C);
          Wait(55);
          Off(OUT_A+OUT_C);
          pendown();     //五画目 2~4
          OnRev(OUT_A+OUT_C);
          Wait(108);
          Off(OUT_A+OUT_C);
          penup();
   }
**プログラム作成にあたっての考察 [#l6675e8f]

 ロボットの構造上の「ペンが回転軸の中心にある」という利点を最大限に生かすようプログラムを組みました。ペンが回転軸の中心にある、すなわちロボットの通った軌跡を線として表すことができる。この特性により、角をプログラムでは回転運動のみで、何度も交わる画も、後退を取り入れることによりより正確に表せるようになっています。
 ・ロボットの構造上の「ペンが回転軸の中心にある」という利点を最大限に生かすようプログラムを組みました。ペンが回転軸の中心にある、すなわちロボットの通った軌跡を線として表すことができる。この特性により、角をプログラムでは回転運動のみで、何度も交わる画も、後退を取り入れることによりより正確に表せるようになっています。

**反省と感想etc [#vefaf9cb]
 ペンを回転軸の中心に持ってくるという案により、プログラム面での文字の構成は当初予想していた通り容易に達成することができました。

 しかし、ペン事態を支えるアームの強度が足りなかったため、回転時にペン先を点として固定することができず、回転時に一度ペンを紙面から離さねばならない問題が生じてしまい、それを期間内には改善することできなかったのが残念でした。
 しかし、ペン自体を支えるアームの強度が足りなかったため、回転時にペン先を点として固定することができず、回転時に一度ペンを紙面から離さねばならない問題が生じてしまい、それを期間内には改善することできなかったのが残念でした。

 さらに、ロボットの動き方として一番動きやすい方法を考えるとものによっては、違う書き順でないとプログラムが大変になってしまい、結局本来の書き方でなくなってしまったりしました。
 さらに、ロボットの動き方として一番動きやすい方法を考えると、ものによっては違う書き順でないとプログラムが大変になってしまい、結局本来の書き方でなくなってしまったりしました。

 また、プログラムの構成を前提としたロボットの設計だったため、重量が予想以上に重くなってしまったので、今後は一方にのみとらわれず、全体を見て設計をできるようにしたい。

 次の課題では「強度」という観点に対してより重点を置き、設計をしていこうと考えています。
 本番では紙の摩擦を考えボールペンにしたところ、線が薄くなってしまい写真に写りにくくなってしまった。

 ついしん、いろいろな関係により写真のupができなくてすみませんでした。次回はできる限り努力します(汗)。
 次の課題では「強度」という観点に対して、より重点を置き、設計をしていこうと考えています。

 ついしん、いろいろな関係により写真のupが遅くてすみませんでした。次回はできる限り努力します(汗)。

**改善するにはどうすれば良いか(議論) [#o9815b52]
  ペンを持つ強度について、アーム自体というよりもアームと本体の接合部に問題があり、また軽量化を強引に図ったため生じてしまったものと考えられる。改善するにはやはり計画性のある組立とより適した部品を使うことが大事だと思われる。

  回転時にペンを一回離さないといけない点について、これはペンを紙に押し付ける強さが強いため生じてしまうためだが、うまく調整しても途中までしかきれいに書けないことが実験の結果としてでているので、面倒でも一度ペンをあげることは必要だと思われる。

  書き順については今のところマシン自体をアームロボにするか、そのままのロボで長いプログラムを作成するしかないと思うが、良い考えが他にあればまた機会のある時に試してみたいと思う。

**コメント [#x0a48432]

コメントお待ちしてまーす!!
-作成過程の説明はよいと思います。「反省と感想etc」本文に誤字あり。 -- [[ヒロヤ]] &new{2007-05-24 (木) 00:35:32};
-◎にするには今ひとつ、考察や詳細な議論が足りない気がします。「ロボットの構造上の「ペンが回転軸の中心にある」という利点を最大限に生かすようプログラムを組みました。」についての詳しいこと。あとは、反省や感想に書いてあることを、改善すべき点(またそれにはどういう具体的な手順や考え方が必要か)として整理してまとめると、それらしいものになるかと思います。 -- [[まいける(TA)]] &new{2007-06-01 (金) 00:59:44};
-「改善するにはどうすれば良いか(議論)」として考察を述べているのが良い。 -- [[ヒロヤ]] &new{2007-06-06 (水) 21:50:26};

#comment


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