2014年06月13日

ラピロ製作日誌 プログラム編 ロボット開発基礎の基礎

ラピロ販売から一ヶ月少し経ちました。
店頭で興味を持ってくださるお客様は増えていっているのですが
皆様が一歩踏み出すのを思いとどまる理由に「プログラム」をしなければならないというハードルが
重くのしかかっているのではないかと思います。

そこで今回はそのプログラミングの初歩の初歩を解説していくシリーズの第一弾でございます。

ではまずは前回のおさらいから。
前回は組み立てた後に基板への書き込みなどを行いました。
かなり長い記事だったので最後の方のサンプルスケッチ(プログラム)の書き込みから見ていきましょう。

まず書き込むためのソフトウェアを立ち上げ

arduino IDEスクリーンショット

サンプルスケッチをコピーして貼り付け

arduino IDEスクリーンショット

ラピロとパソコンを接続、この際に間違えがちなシリアルポートの選択

arduino IDE シリアルポートスクリーンショット

ここが間違ってるとRAPIROが正常に動作しません。私もココの選択を間違えて全く動きませんでした・・・・
一度シリアルポートを開き
#M1
と入力してみて下さい。
動かなければポートの選択が間違っているのでやり直してください。
初心者のはココが一番つまずきやすいところかなと思います。
あとは前回の記事を参照していただきましたら難しいところはさほど無いかと思います。
<RAPIRO製作日誌 〜組み立て編〜>

さて、ロボットで重要なのはやはりプログラミング。
ハード(機体)がどんなにダメダメでも優秀なソフトウェアがあれば
不利も有利に形勢逆転することもあります。それぐらい重要です。
しかしながらこのプログラミングという作業、
初心者の方が一番つまづきやすく挫折しやすいポイントでもあります。
そこで!!
ラピロのサンプルスケッチを参考に、プログラミングというものがどういうものなのか、
何をしているのか簡単に解説をさせていただこうかと思います。

まずはそもそもロボットってどうやって動いてるの?
と言うところから理解していただけたらなと思います。
全てのロボットに言える訳ではないのですが、
ラピロのようなホビーロボットと呼ばれるロボットに関して言えば
実はロボットのモーション動きというのは
ストップモーションアニメと同じ原理で動いています。
ポーズを指定してそのポーズに移るまでどれだけの時間をかけるか
という事を指示してあげてはじめてロボットは動きます。
しかしながらロボットは自分がどういう姿勢をしているかは
センサなどを積んでやらない限り、彼らはモータの回転角度からしか
自分の姿勢を把握できません。
実は自分の手の長さや足の長さなどもホビーロボットの場合認識してない事が多いです。

ではラピロではどのようにその作業を行っているか、サンプルスケッチを実際に見てみましょう。

サンプルモーションスクショ

サンプルスケッチを実際に見ていくと
なにやら色んな数字が羅列されているのがわかります。
なんのこっちゃ?
となられる方も多くいらっしゃると思いますが、
この数字は各サーボモータのそれぞれのフレームでの角度、LED、遷移時間、などを示しています。
横1列の行がそれぞれのサーボモーターの角度などを表しており、
サーボモーターなどの割り当ては、列の左から



右肩を上げる軸、
右肩を回す軸、
右手、
左肩を上げる軸
左肩を回す軸
左手
右足を回す軸
右足首
左足を回す軸
左足首
赤色LED
緑色LED
青色LED
遷移時間

となってます。
サンプルスケッチではモーションは8フレーム、
つまり8個のポーズで構成されており、
1行が1フレームをあらわしています。
なお、『遷移時間』と言うのは1フレームの長さの事で、単位は『秒』です。
サンプルスケッチで見ると行の最後が遷移時間で、この数字が『5』に
なっているフレームは各数字の動きを5秒かけて実行しろと言うことになります。
モーション1(1Forword)の前進を見ていくと
このポーズではどのサーボを何秒でどのくらいの角度動かして、と言うのが
数値で見てわかるようになります。

ちなみに何度関節を動かすと言う指定は
前回組み立ての際に行った基本姿勢のサーボの位置が基準点となり
その角度を基準に何度関節を動かすという指示になります。
頭を前向きにさせるには90度回転させる、
90度というのは分度器の0度〜を基準にした場合の0度です。
サーボモータの可動域はほとんどの場合180度です。
この前進の動きの場合は頭を前に向けた状態なので
90度の位置で頭のサーボを維持すると言う指示がなされています。
基準となる点が基本的にサーボモータで言うところの
真上、つまり90度の位置を基準としていますので、
とりたいポーズをとらせるときはそこから逆算した角度を指定してやる必要があります。
ポーズを取らせる事もシリアル入力で可能なのですが、
今回はロボットがどう動くか、その過程を皆様にわかっていただければと思います。

まずはサンプルスケッチの数字をいじくってみて、
ラピロがどういう動きをするかを見ながら数字の意味や特性を
実感してもらえればと思います。
但しその際には稼動域、サーボを動かせる範囲に注意しながら慎重に行ってください。
サーボモータが壊れてしまう可能性があります。
特に外装同士が干渉する場所を動かす際には、外装同士が干渉しないように
注意しながら行ってください。

本当にこれはロボット開発における基礎の基礎なので
ここからもっと理解を深めていけば、ラピロだけでなく自分のオリジナルロボットを
開発できる日が近づいてきます。

随時解説記事をアップしていきますので
解りにくいところは当ブログを参考にラピロを動かしていっていただければと思います。
今年は各社からロボットが色々発表されたりとロボットブームに世間が沸いている年。
そんなブームに乗り波を作り出す側に回ってみたいと思いませんか?

ラピロは当店一階、通販ページにて販売しております!!


<RAPIRO ¥45360->

RAPIRO製作日誌シリーズ

RAPIRO製作日誌 〜組み立て編〜

RAPIRO製作日誌 プログラム編2 プログラムを書き換えてみよう!

随時更新してまいりますのでご期待ください!!

<記事:福島>



トラックバックURL