ロボット育成記録
Amebaでブログを始めよう!

起き上がりモーション

歩行モーションが出来た事に気を良くして、勢いで起き上がりモーションも作ってみました。


起き上がりモーション


かなりゆっくりですが、ちゃんと起き上がります。

だいぶバランスを保つコツが掴めてきたので、30分くらいで作れました。




歩行モーション (2)

ようやく歩行らしきモーションが出来ました。

という訳で、一応、公開します。


歩行モーション


・・・ですが、見ての通り、「よっこらせ」といった感じで、あまり機敏ではありません。
なおかつ、微妙なバランス(前後、左右とも)で倒れずに済んでいるので、ちょっとした外因でも、すぐにコケてしまいます。

もうちょっと、安定したモーションでないと、今後の応用が効かなさそうです。

そもそも、モーションエディタでのモーション作成には限界を感じているので、別の方向から攻めてみたいと考えています。


ちなみに、歩行モーションとしては、3ページを使用しましたが、ページを連続させると動作が安定しなくて困りました。

ページ単位では、問題なく動作するのですが、3ページを連続させるとコケてしまう問題がありました。

いろいろ悩んで、調整を繰り返したのですが、結果として、電源ケーブルが原因でした。

長い距離を移動させると、ケーブルと引きずるため、ケーブルを引きずる抵抗でバランスを崩していたようです。

電源ケーブルを外して、バッテリーで駆動させるようにすると、何とか倒れずに歩けるようになりました。

まあ、ケーブルの重み程度でバランスを崩すようでは問題があるわけですが・・・




歩行モーション (1)

ようやく、歩行モーションを作成し始めたのですが、かなり苦戦しています。


目標としては、


直立

 ↓

左足を半歩前へ

 ↓

右足を一歩前へ

 ↓

左足を一歩前へ


までの動作を繋げて行う事です。

左右の足を前へ出せるようになれば、あとは繰り返しで歩けるはず・・・

(直立状態へ移すモーションも必要でしょうけど)


という訳で、左足を半歩前へ出した状態から、右足を前へだすモーションに取り組みました。


で、いろいろ試してみる内に、足裏のグリップが良くないことに気づきました。

はっきり言って、引っかかってしまうのです。

あと、ゴムの厚みのせいか、ぐらつき感も増しているようで、安定しません。


という訳で、カーペット用の滑り止めシートは却下!

何か、他に良い素材(ある程度グリップがあって、足を浮かし始めれば抵抗にならないもの)は無いかと探してみると・・・

良さそうな代物を発見しました。

ガラクタが入っている引き出しに眠っていた、エアーマットの補修用生地です。

薄くて、滑り止め効果があり、非常に良い感じです。

さっそく、貼り替えてみました。

bioloid-026

結果としては、足を上げ始める時の動作が良くなりました。

足裏が床面と水平になっていれば、結構なグリップも効いているようです。


ちなみに、エアーマットの補修用生地とは、こんな↓物です。

bioloid-027

キャンプで、シュラフの下に敷くマットで、空気を抜いて丸めれば、かなり小さくなる物です。

写真の中で、説明書の横に写っている青くて四角いのが、生地です。

黒色と青色の2枚があったので、黒色を使用してみました。

(本来は、マットの補修用ですから、マットに穴が開いた場合にどうするかは、別途考えないといけませんね・・・最近、あまりキャンプに行っていないので、当面は問題なさそうですけど。)


あと、ロボット用ハンガー(見た目は、ハムスターとか入れるケージに近いですが)から紐でBioloidを吊ってみました。

歩行モーションを作成していると、頻繁に倒れてしまうため、破損が気になってきたためです。

床(木板)に倒れると、結構な衝撃があるので、少なくとも直撃を緩和するために両肩に紐をつけて、床に接地しない程度の長さで吊ってみました。

bioloid-025

ちなみに、使っている紐は、100円ショップで購入した靴紐です。(適度な伸びがあって良いです。)


さて、肝心の歩行モーションの方ですが、徐々にコツも掴めてきて、ようやく形にはなってきました。

形とは言っても、頭を軽く支えておけば倒れずに動くとかのレベルなので、まだまだですけど。

なんとか、11月中には、2歩くらいは歩けるようにしたいです。


そういえば、1時間くらいモーションを作っていた(特に片足を上げた状態)時ですが、足の付根のサーボがトルクがかからなくなった事があります。

これは、もしかして、逝ってしまったか!?と思ったのですが、それほど焼け焦げた匂いはしなかったので、電源を切って一晩放置しておきました。

次の日に、恐れながら電源を入れてポーズをとらせて見ると、ちゃんとトルクがかかっていたので、一安心でした。

どうらや、長時間(30分以上)に渡って負荷をかけ過ぎたせいで、温度があがり、保護回路(?)が働いたようです。(よかったよかった・・・)

温度センサー内蔵は伊達じゃなかったようです。

という訳で、それからは、30分くらい続けたらインターバルを取るようにしたのと、できるだけ負荷のかかるポーズは短時間で調整して、いったん脱力させるように気をつけています。


半歩 前へ(2)

モーション作成用環境の拡充を行ってみました。


いわゆるハンガーのような物を用意しようと思い、無印良品で紙製の角パイプとジョイントを購入してきました。(紙製ですが、結構高いです。全部で3,600円くらいしました。)

これで、直方体フレームを組んで、上からワイヤー等で吊るそうという計画です。

bioloid-023


ワイヤーで吊るしてみましたが、いまいちでした。

昨日の板に腰掛けた状態の方が、モーション作成には良さそうです・・・

bioloid-024

(上の写真は、吊るしていない状態です。)



さらに、撮影&動画UPの環境も改善してみました。

前回はデジカメの動画撮影機能を利用していましたが、今度は本格的(?)にビデオカメラにしました。

具体的には、以下の機材&ソフトを利用しました。

・撮影       DVD式ビデオカメラ 日立DVDカム WOOO

・記録メディア  8cm DVD-RAM

・ビデオ編集   CyberLink PowerDirector3 (ソースネクストにて購入)

(ちなみに、子供を撮るために、購入して利用していたビデオカメラです。ロボット用に購入した訳ではないですよ!)


という訳で、まだまだ安定した動作ではありませんが、環境を整えたのと、少なくとも倒れないようになったので左足を前に出す動画を公開します。


DVDカムで撮影し、デスクトップパソコンのマルチドライブで、DVD-RAMを読み込み

PowerDirectorでwmv形式に変換しました。

(本当は、三脚を用意して撮影したかったのですが、とりあえず・・・)


モーション動画  左足を前に・・・







半歩 前へ(1)

予定していた、左足を半歩前へ出すモーションを作り始めました。


作り始めて分かった事は、まず、片足状態で脱力させた際に、大きく振れないように注意することです。

とは言っても、Bioloidのサーボは脱力時にそれほど固くないので、足のように重い部分はすぐに重力に従って動いてしまいます。


という訳で、いろいろと考えたり試したりした結果、写真のような状態になりました。

bioloid-021

ちょっと分かりにくいでしょうが、固定した板に腰掛けた状態になってます。

(板は、近くにあったDVDレコーダで押さえています・・・いい加減)


それで、片足を少し上げた状態などは、これまた近くにあったメモ帳を足裏に敷いたりしています。

bioloid-022


こんな感じで、ある程度のポーズを作っておいてから、手で補正したり、パラメータで補正したりしてます。

実際に作業してみた感想としては、手だけで保持しながらポーズを作っていた時よりは、効率が良くなりました。


しかし、半歩前のモーションはまだ未完成です・・・

一応、左足をあげて、半歩前に出して、下ろすところまでは行くのですが、そこでバランスを失って倒れてしまいます。

もうちょっと、安定して動くようになったら動画を公開したいと思います。

(実は、2回ほど、うまく動いたので、喜んでデジカメで撮影していたら、3回目はこけてしまいました・・・)


ちなみに、モーション作成は、標準のモーションエディタ(GUIのやつ)で作成しているのですが、使い勝手はもうひとつですね。

欠点としては

・ときどき、CM-5とのコネクションが切れる(理由は不明?)

・ポーズを登録したつもりが、きちんと記録されておらず、PLAYするとBioloidが暴走する

 (私の操作方法が間違っていただけだろうか・・・暴走すると自動的に停止するので危険は少ないです)

・ポーズを上書きしたつもりが、間違って挿入になった際に、元に戻すことができない

 (ページをCM-5に保存せずに、再接続すれば戻せますが・・・)

 (上書きや挿入はドラッグで行っているのですが、ポーズを最大(7)まで作成した状態で、挿入を行うと、最後のポーズが消えてしまうのが困りものなのです。)


改善要望を挙げるとすると

・部分的に脱力状態にする機能が欲しい。(右足は固定したまま、左足だけポーズを変えたりしたい)

・パラメータの変更操作をもう少し使いやすくして欲しい。(スライドバーを付けるとか)

・「OFF」状態の時でも、特定のポーズの各サーボポジションを編集可能にして欲しい。

本格的にモーションを作る場合は、テキストベースのエディタを使えった方が良いとはマニュアルにありますが、せっかくなのでGUIのエディタも使いやすくして欲しいです。
(ソースを公開してもらえれば、自分で改造したいところです。)

屈伸のモーション(続き)

AX-FUN のページを見ていたら、新しいBioloid仲間として、「とも」さんのサイト が追加されていました。


そのロボットコーナーに、Bioloidの屈伸の動画がアップロードをされているのを見て、私も動画を公開することにしました。

(じつは、デジカメ(パナソニック DMC-FX7)で撮ってみたのですが、横向きだし、QuickTime形式だし、サイズでかいし、ということで躊躇していました。)


ここ(アメーバブログ)だと、動画の公開方法が分からない(ブログ使いこなせていません)ので、ホスティングサイトに動画ファイルを置いて、リンクを貼ってみました。


Bioloidの屈伸の様子  (「屈伸」をクリックして下さい)


また、新しい動作が出来たらアップしてみたいと思います。


--------------------------

11/11 追記

ふと、公開した動画をちゃんと音声を出しながら(普段、あまりスピーカーをONにしてないもので)再生してみると・・・ なんだか意味不明な話し声が入ってますね。

そういえば、デジカメで動画を撮影している時に、隣で娘(3歳)が一人遊びをしてました・・・


音声は、まったく意味がないので、気にしないでください。(笑)

今度から、音声OFFで撮影するようにします。





屈伸のモーション

手始めに、屈伸をさせてみる事にしました。

簡単に出来るだろうと思っていたのですが、なかなか難しいですね。


モーション作成前に、足裏がよく滑るので、足裏に滑り止め加工を施す事にしました。

そのまんま、カーペットとかの下に敷く、滑り止めシートを貼る事にしました。

両面テープを足裏に貼って、足裏の形にカットしたシートを貼り合わせてみました。

bioloid-018


こんな感じになりました。

bioloid-019


見た目はイマイチですが、グリップ力は抜群です。

(こういうのって、ROBO-ONEの規定違反にあたるのでしょうか?)


さて、本題の屈伸動作をモーションエディタで作成し始めてみたのですが、すぐ倒れてしまいます。

やはり、単純に静止状態でのバランスだけでなく、慣性も考慮しないといけないみたいです。

単純な動作だと、起き上がった際に、反動で前後に大きく揺れてしまい、倒れてしまいます。

とりあえず、畳の上で動かしているのが悪いのかと思い、板の上で動かすようにしてみました。

(結果的には、畳の上だからという訳ではなかったみたいです。)


倒れた時の衝撃を和らげるために、前後にクッション(前方は座布団ですが)を敷いてみました。

何度かモーションを作り直して、ようやく屈伸ができるようになりました。

bioloid-020


とりあえず、直立→屈む→直立の動きは出来たのですが、ちょっとズルしている部分もあります。

屈んだ時に、長めのウェイトを入れて、揺れがおさまってから、伸びの動作に入るようにしています。

やはり、単純にポーズをつなぎ合わせただけではスムーズな動作は出来ないようです。


これから、徐々にモーションの作り方に慣れていこうと思います。




腰の補強

他の方のブログなどでも言われているように、Bioloidの腰部分は軟弱です。

ここだけは、サーボホーン(回転する円盤部分)の片側で固定しているので、ちょっとグラグラしています。

それで、歩行のモーション(動き)を作っている人が言うには、それが原因で、動作が安定しないようです。


確かに、立たせた時にあまり安定感がなく、近いうちにサーボの軸あたりが、壊れるんじゃないかと思うくらいです。

という訳で、ちょっと補強してみました。


最初は、余りのブラケットを組み合わせて補強しようと、いろいろと考えたり試してみたのですが、どうもうまくありません。

とりあえず、サーボホーン部分しか接地面がないのが気になるので、そこだけ工夫する事にしました。


ようするに、滑りの良いスペーサを入れて、接地面積を増やすことで、少しは安定できるのではないかと・・・


(1)サーボモータのホーンの後ろ側部分に、円形のゴム板を半分に切って貼り付けた。(スピーカか何かに付属していた足裏用のゴム)

bioloid-017


(2)腰(腹筋?)部分のサーボモータの下に、プラスチック板をネジ止めして、ブラケットと接地させた。(見ての通り、ユニバーサル基盤を切って、削って、ネジ止めしただけです。)

bioloid-015

bioloid-016


補強した結果ですが、多少はぐらつきが低減されたような気がします。

ちなみに、ユニバーサル基盤をネジ止めしたため、ネジ頭が邪魔で、極端な内股姿勢はできなくなりました。(通常の動作には影響ないはず。逆に、ストッパーみたいになって、脱力時に足同士が、絡まりにくくなりました。)


歩行のモーションを作り始めてみたのですが、なかなか難しいですね。

歩かせられるようになるには、センスと根気が必要なようです。



ねじ

Bioloid って、大きさの割には重いですよね。

KHR-1 が約1.2kgなのに対して、Bioloidの約2kgは重いと思います。

組み合わせ自由度を高くしているため、ブラケットや固定用のねじが多いため仕方ないのでしょう。

(ブラケットをアルミで自作すれば、かなり軽くなりそうです。)


Bioloidは2Mと小さめのネジですが、そのネジ(ボルト&ナット)が結構重いんです。

組み立て前に、400個入りのボルトとナットの袋を計ってみたのですが、確か230gずつくらいありました。

全部ではないですが、かなりの本数を使用しているので、ネジだけでも400gくらいありそうです。

(長さ6mm以外のボルトや、太さの違うボルトも結構使いますし)


付属のネジは、普通の鉄(たぶん)なので、これをアルミなどにすれば、少しは重量が減りそうです。

という訳で、いろいろとWebで探してみたのですが、2M(2mm)サイズでアルミのボルトは見つかりませんでした。(特注すれば、作ってくれる所もあるようですが・・・)

その替わり、アルミではなくチタンならありました。


チタン製 「2M×6 ボルト」


これって、個人相手だと何個単位で販売してくれるのでしょうか?

(1000個くらいで3000円ぐらいだと嬉しいのですが・・・普段購入しないから相場が分からないですね)

他のサイズのネジも購入して、Bioloid用セットにしたら売れるかも?(面倒だから、私はやりませんよ)


ちなみに、ネジについては、ココ で材質の特徴などが解説されてました。








Bioloid用センサーが欲しい

その後、家の「Bioloid」は、飾り物状態と化している訳ですが・・・


とりあえず、構想だけはいろいろとありまして、その中でもセンサー類の搭載は必須だなと思っています。

今のところ、標準で距離センサーと音センサーはある訳ですが、やはり欲しいのは「ジャイロ」ですね。

あと、足裏(普通だと圧力か?)センサーも重要です。


Webでいろいろ調べてみたのですが、ロボット向けとなると、PWM信号が普通のようです。

Bioloidでは、PWMとは無縁なので、そのままでは使えません。

マイコンが得意な人だと、PICとかAVRとかで、ちょいちょいと自作してしまうのでしょうが、今の私にはハードルが高すぎます。


ジャイロ(正確には加速度センサーもしくは角速度センサー)単品も入手できるようで、その場合は電圧の変化を読み取る(AD変換が要る)事で、実現するようです。


<<メモ>> ジャイロセンサー

・スター精密3軸加速度センサ  (ツクモロボット王国)


PCでジャイロの値を読み取るとなると

ジャイロ(電圧変化)→AD変換器→RS-232C(PCのCOMポート)

としなければならず、なんだかイマイチです。


一番良いのは、Bioloidが標準で持っているセンサーのように、通信でIDとアドレスを指定して、値を読み取れる事なのですが。(配線もプログラムもスッキリするはず)

でも、マイコンに弱い私に、シリアル通信も含んだ変換機を作るのは難しいわけで・・・


そんな時に、このページ を見ていて思いつきました。

AX-12の中では、ホーンの角度位置を可変抵抗器で検出している訳ですから、

ジャイロ(電圧変化)→AX-12の基盤(角度検出用ピン)→CM-5(もしくはPC)

って可能なのでは?


要するに、AX-12を1個分解して、本来なら角度検出をする可変抵抗器の線の部分を、ジャイロの出力信号線に繋ぎ替えてしまえば、ホーンの角度の替わりに、ジャイロの値が読み出せるのでは?

まあ、そんなに単純じゃないのでしょうが・・・モータの逝かれたAX-12なら、自然と手に入りそうなので、試してみても良さそうです。

素直に、マイコン(Bioloid使うなら、AVRか?)の勉強をして、作ったほうが効率は良さそうですけどね。

(そもそも利用したいジャイロは、出力が3軸分あるので、ホーン角度だけじゃ足りないし)


ベストテクノロジーから、センサー系のオプション出してくれないかな?

センサー取り付け用のベースキットとかでも、嬉しいですね。

アナログ(AD変換)入力×8 ぐらいで、それぞれを特定のアドレスに2バイト値として保存してくれれば十分です。