[[2009a]] *目次 [#a7947b20] #contents *私達のロボットができるまで[#gd425900] 今回の課題のロボットは''「お絵描きロボット」''&br; 内容は自分たちのロボットにペンを装着させ、それぞれお互いの顔を描くというものだった。医学部と教育学のペアである私達は慣れないパソコンにうろたえていた…。&br; 私達が考えたロボットは''「simple is the best」''最初に作った機体をフルに活かしたものであった。&br; まず、考えたのはやはり''アーム''である。 #ref(2009a/A10/課題1左/090521_1811~01.jpg) どうすれば必要最小限の部品量でアームが作れ、かつ安定してかけるか?&br; そこで注目したのは''重力''。重力を活かせば、安定して描ける。その作戦は見事に成功。最初は重心が安定せず機体自体が倒れてしまうこともあったのだが、電池BOXの位置を縦から横に変更したことで解決した。残念ながら、アームはシンプル過ぎて少し輪ゴムを使ってしまうことになったが、手作り感があってまた良い!&br; こうして私達のお絵描きロボットができあがった。 #ref(2009a/A10/課題1左/090521_1831~01.jpg) *プログラミング [#ac5777e7] 今回、一番苦労したのがこの''プログラミング''だ。&sad; **「簡易版柳原氏」 [#t7822bd7] まず考えたのがどのようにすれば円が描けるのか?そして、アームは機体の右端に付けてAドライブを正回転させ、Cドライブを逆回転させるのが、一番適当な大きさの円を描ける方法ということが分かった。&br; 次に取りかかったのが、口である。口は比較的簡単にできた。ただの方向転換と直進で表現した。&br; 次が目で柳原氏の微妙な表情を''如実''に表現している。ここの距離の間隔をとるのが大変だったことを覚えている。 &br;これでできたのが、我々の初のプログラミング作品''「簡易版柳原氏」''である。他にもやることが''た〜くさん''ある私達は彼を改良することができなかったが最初の作品にしてはなかなかの出来である。&br; こちらの作品は少し機体が変化しているので載せておく&br; #ref(2009a/A10/課題1左/090521_1941~01.jpg) #define turn_a OnFwd(OUT_A);OnRev(OUT_C); #define turn_b OnFwd(OUT_C);OnRev(OUT_A); #define write_a OnFwd(OUT_A+OUT_C);Wait(35);Off(OUT_A+OUT_C);OnFwd(OUT_B);Wait(10);Off(OUT_B); task main()&br; {turn_a; Wait(720); Off(OUT_A+OUT_C);//輪郭線を強調するため2周 OnFwd(OUT_B); Wait(10); Off(OUT_B); OnRev(OUT_A+OUT_C); Wait(20); Off(OUT_A+OUT_C); turn_a Wait(90); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(10); Off(OUT_B); OnRev(OUT_A+OUT_C); Wait(135);//直線の口を描くまでの移動と口 Off(OUT_A+OUT_C); OnFwd(OUT_B); Wait(10); Off(OUT_B); turn_b; Wait(90); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(70); Off(OUT_A+OUT_C); turn_a; Wait(100); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait (10); Off(OUT_B); write_a; OnFwd(OUT_A+OUT_C); Wait(35); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(10); Off(OUT_B); write_a;//両目を描く OnFwd(OUT_A+OUT_C); Wait(200); Off(OUT_A+OUT_C);//Finish} ''これが完成した絵だ!'' #ref(2009a/A10/課題1左/090522_2003~01.jpg) **「簡易版河島氏」 [#xa651ab8] どうしても、他の班とは違うものが作りたい!!!そう思って作ったのがこの''体つき''似顔絵である。上を見上げる河島氏…。そのめは少し眠そうな顔をしている。誰もが考えなかった、体つき似顔絵がこの「簡易版河島氏」である。 #define drive_a OnFwd(OUT_A+OUT_C);Wait(40);Off(OUT_A+OUT_C);OnRev(OUT_B);Wait(10);Off(OUT_B); #define drive_a OnFwd(OUT_A+OUT_C);Wait(40);Off(OUT_A+OUT_C);OnRev(OUT_B);Wait(10);Off(OUT_B); #define drive_a OnFwd(OUT_A+OUT_C);Wait(40);Off(OUT_A+OUT_C);OnRev(OUT_B);Wait(10);Off(OUT_B); task main( ) {OnRev(OUT_A);//顔の輪郭 OnFwd(OUT_C); Wait(530); OnFwd(OUT_B); Wait(20); Off(OUT_A+OUT_C); Off(OUT_B); OnFwd(OUT_C);//体 Wait(510); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(9); Off(OUT_B); OnRev(OUT_A); Wait(120); Off(OUT_A); OnFwd(OUT_B); Wait(10); Off(OUT_B); drive_a;//泣きそうな目 OnFwd(OUT_A+OUT_C); Wait(25); Off(OUT_A+OUT_C); OnFwd(OUT_B); Wait(14); Off(OUT_B); drive_a; OnFwd(OUT_A+OUT_C); Wait(150); Off(OUT_A+OUT_C);} ''これが完成した絵だ!'' #ref(2009a/A10/課題1左/090522_2021~01.jpg) *感想 [#z36e16f8] **河島氏 [#a9459379] 今回、私が主に担当したのはアームの作成、「簡易版柳原氏」のプログラミングだ。&br; まずアームだが、なかなか難しいものだった。''よし、つくろう!''という意気込みは誰よりもあったのだ。しかし、やろうやろうと思えば思えば思うほど意外にもアイディアは浮かばず、簡易型のアームではあるのだが、随分時間を喰ってしまった。それでも作ったアームは重力を最大限に活かし、スラスラと絵を描いた。その喜びは天にも昇る様な思いだった!&br; しかし、次に作った「簡易版柳原氏」のプログラミングがその上をいく喜びを与えてくれるとは思ってもみなかった。そのクォリティは遥かに「簡易版河島氏」を越え、描く線の一つ一つが呼吸でもしているかの様な''美しさ''であった。確かに本物の柳原氏にはほど遠いが、苦労したプロミングは実に良い作品だと言えよう。&br; 今回の課題を通して感じたのはロボットと人体の違いで、如何に人体が複雑に出来ているかということである。私が保健学科に属しているかもしれないが、人体の複雑さを改めて感じさせられた課題であった。私が自分の人生全てを注ぎ込んで、人間そっくりのロボットを作れるだろうか?きっと無理であろう。きっと、人間は自分以上の存在を作ることはできないようになっているのではないか?答えはないのだが、まあそんなこんなで人体の凄さを改めて実感させてもらった素晴らしい課題であった。 **柳原氏 [#k557784d] 私は今回、「簡易版河島氏」のプログラミングとホームページの作成を主に担当した。&br; まず、最初に取りかかったのが「簡易版河島氏」の作成だった。初め私達は締め切りの日を勘違いしており、急いで作ったのがこの作品だった。初めての本格的なプログラミングは思っていたよりかなり大変でかなりの時間を要した。多めに取っていた時間の全てを割いて作った「簡易版河島氏」はなかなか愛くるしい表情を私達に向け、その労をねぎらってくれた。&br; 次にこのホームページ作成には、''全ての時間を捧げた!''というのは大袈裟かもしれないが、相当の時間を使った。最初はテキスト整形の仕方がルールを見ても分からず、色々な試行錯誤を繰り返した。あるときは授業を休んだりもした…。書く文章は多いは、写真の張り方はどうするのか、問題は山積みだったが最終的に完成した喜びは皆も感じた通りだ!&br; 今回の課題を通して私が感じたのは仲間との協力の大切さだと思う。このロボティクスは正直他の授業に比べて負担が大きい。授業外での作業の方がきっと多いのではないか?しかし、そんなときはパートナーと協力すれば意外と頑張れるもので、逆にいないと必ず挫けてしまうだろう。やはり、仲間は大切で大きな存在だなぁと思った課題であった。 *皆のコメント [#zb43f8e5] まだまだ未熟者の私達に何か教えて頂けることがあったら、どんなことでも歓迎ですので是非一言お願いします。⌣ - 熱意が伝わるレポートです。NQC入門を読んで、プログラムにサブルーチンやマクロを使ってみてください。また、プログラムの各行の最初を半角一字空けることで見やすく表示されます。 -- [[FI]] &new{2009-05-21 (木) 19:51:13}; - 詳しい文章によりロボットがわかりやすく説明されています。その詳しさをプログラムの方にも是非!説明をつけることは、「サブルーチンや関数、マクロなどを使って部品に分けること」の手助けになります。 -- [[こさか]] &new{2009-05-21 (木) 23:04:29}; - マクロの使い方はOKです(「簡易版河島氏」に同じ#defineが3回ありますが、エラーになりそうな…)。説明を追加するだけでなく、段落を分ける等して見やすくしてみるといいと思います。 -- [[こさか]] &new{2009-05-28 (木) 23:15:20}; #comment