まじかる☆マリオネット: 開発日誌 (200402)

2004/02/29 ★ X+0
★ X+3h まだまだ先が長いね…

電源回りの配線は全部完了したさ。
屈伸時の各関節の回転角度の解析も終わったさ。
コントロールプログラムもバージョンアップしたさ。

…しかし…

左に重心移動させていたら足首のサーボが突然力を失って転倒…
起こしてみるとまたちゃんと立ってるけど、ちょっとするとまた転倒…

…な、なんで…

サーボのトルク不足なのか…
サーボがお亡くなりかけてるのか…
定電圧電源の電流容量が足りないのか…
それとも集線基板の接続不良なのか…

まだまだ「人形遣い」の経験値が足りないらしい…(T-T

ええ、今回も棄権になってしまいました。

---
1000エントリ目がこれとはね…
お祝いは 1024エントリ目にしよう (何


  ☆[コメント]

2004/02/28 ★ X-0
★ X-7h う…また右脚の集線基板が…

また股関節ロールサーボの信号線が変…
集線基板のコネクタ部分の半田不良が原因でした。

ちゃんとしたコネクタを使わなかったのがいけないのかな…
大会が終わったら作りなおさなきゃ。

---
あ、これ 999エントリ目だから。忘れないように > わたし


  ☆[コメント]

2004/02/27 ★ X-1
★ (URLメモ) 12万円の小型人型ロボット組み立てキット

小型人型ロボット組み立てキット(2004/2/25) ( from iXs Research Corporation )
近藤科学株式会社(社長:近藤博俊、東京都荒川区)、株式会社イトーレイネツ(社長:伊藤満、三重県鈴鹿市)、株式会社イクシスリサーチ(社長:山崎文敬、神奈川県川崎市)は、一般、及び教育機関向けに、手軽に組み立て可能な小型人型ロボット(写真)を共同開発し、2004年4月下旬から全国に一斉発売する。
 小型人型ロボットは、近藤科学株式会社が開発したロボット専用の新型サーボモータとコントローラを装備し、最大で17個の関節を持つ(拡張により24個まで増設可能)。また、手軽に動作を設定できるように、このサイズの人型ロボットとしては異例の教示による動作設定機能(※)を搭載。教示だけでなく、パソコンのマウス操作によっても簡単にロボットの動作を作ることができる。


第5回 ROBO-ONE に出た、「ちょんまげの啓三」の量産型。
「10万円台で…」という話はあったけど、まさか 12万円を切るなんて…
ゴーレムくんの純制作費(使ってる部品だけの合計)の半額以下…

17自由度ってことは1サーボ 5000円くらいかな。
体重 1.2Kg だから、それほどトルクは出ないサーボなのかも…
でも、「教示機能」があるってことは、サーボの現在位置を外部から取り出せるってことか…

ゴーレムくんを作るのに2年もかかってるから、まわりの技術進歩に抜かれちゃうなぁ…

---
でも PDS-2144 に角度フィードバック機能を追加する方法の素案はできてるから大丈夫さっ
(…と自分をなぐさめる)



  ☆[コメント]

★ 脚のモーション作成式(その3)

…なんか花粉症の症状が炸裂していて、頭が回りません。
こんな状況でプログラム作れるのかな…

とにかく再整理

目標:
腰位置、右足裏、左足裏の位置を決めた場合の、脚部各関節の角度を算出する式の導出。
ただし、足先は身体の正面に向け、足裏は地面と水平。

準備:
まず、座標軸の定義
座標軸は、右脚、左脚、右腕、左腕、胴体+頭 をそれぞれ別々に定義することにします。
(まぁ、ちょっと思うところがあって試しに…)

右脚の座標軸は
    X: 身体の正面方向
    Y: 身体の右手方向
    Z: 身体の下方向

左脚の座標軸は
    X: 身体の正面方向
    Y: 身体の左手方向
    Z: 身体の下方向
と取ります。
(左側の座標系はベクトルの回転を考えるとZ軸が逆方向)

X,Y,Z軸回りの回転を、それぞれ ロール、ピッチ、ヨーと呼ぶことにします。
(私にとって判りやすい飛行機の場合と同じに)

角度の正方向は
XY平面上の関節角度の場合に、第1象限でX軸からY軸方向へ回す方向を正とします。(Y-Z平面なら Y→Z、Z-X平面なら Z→X)
(数学的にどう表現するのが正しいのか不明…忘れただけ?)

---

次に脚部関節の配置
ゴーレムくん弐号では、股の付け根から股ヨー、股ロール、股ピッチ、ひざピッチ、足首ピッチ、足首ロールの順に連結されており、股ヨー軸と股ロール軸のみが直交。
それぞれの関節の文字表記は
    J1: 股ヨー
    J2: 股ロール
    J3: 股ピッチ
    J4: ひざピッチ
    J5: 足首ピッチ
    J6: 足首ロール
とします。
加えて、腰原点を J0、足裏を J7 とします。
(足裏 J7 は足首ロール軸と足首ピッチ軸を足裏に投影した際の交点)

さらに、軸間距離(リンクの長さ)を Lab(a,bは 1〜6) で表します。
関節の回転角度は、Jax (xは1〜6) で表します。

---

さて、それでは、股ヨー軸の位置を Xj1, Yj1, Zj1 としたときの…
「あー、そこ、人形つかいさん? 鼻を押さえてぼーっとしてないで…」



  ☆[コメント]

2004/02/26 ★ X-2
★ 脚のモーション作成式(その…ちょっと待て…

次は…股ピッチ、股ロールを動かした場合の腰の高さを
…と考えはじめたところで気付いた…

私が欲しかったのは、地面からの高さを一定にしつつ、腰の位置を前後左右に動かす場合の各関節の角度じゃなかったっけ…

これって、結局、「足先を身体の正面向け&足裏が地面に水平」という条件下で逆運動学を解いてるだけ?

むむ…そこまでするなら、OGAWA'S ROBOT LABDH法による順・逆運動学の行列式をそのままいただいてしまう方が…

…って、あの行列式が理解できないから、こうやって少しずつ計算してるんだった…



  ☆[コメント]

★ 脚のモーション作成式(その2)

1)式の左辺が θ5 になるように変換すると

  L34 * sinθ3 = L45 * sinθ5
        sinθ5 = sinθ3 * L34 / L45
           θ5 = asin( sinθ3 * L34 / L45 )

これを 2)式に代入して

  θ4 = θ3 + asin( sinθ3 * L34 / L45 )

Ruby で計算する場合 (Jx は θx の値を持つ変数とする)

  J4 = J3 + Math.asin( Math.sin( J3 * Math::PI / 180 * L34 / L45 ) )

  さらに
         
  L35 = Math.hypot( L34 + L45 * Math.cos( J4 * Math::PI / 180 ),
                    L45 * Math.sin( J4 * Math::PI / 180 ) )

  ※) Math.hypot(x,y) は sqrt(x*x, y*y) を返すモジュール関数

ServoCreationのDXFデータからサイズを拾うと
L34 = 39.0 mm + 30.0 mm = 69.0 mm
L45 = 39.0 mm + 39.0 mm = 78.0 mm

参考:他のリンクの長さ
L12 =  0.0 mm (股ヨー、股ロール間は直交)
L23 = 60.0 mm
L56 = 30.0 mm + 14.9 mm = 44.9 mm
L67 = 30.0 mm + 1.2 mm + 3.8 mm = 35.0mm (足首から足裏まで)

次は、股ピッチ、股ロールを動かした場合の腰の高さの計算式作成



  ☆[コメント]

2004/02/25 ★ X-3
★ 脚のモーション作成用の式とか

調子が悪いのは風邪じゃなくて花粉症なのかも…

とりあえず、考え付いた部分だけでもメモ

命名規則:
    Jx: x番の関節: x は以下の通り
        1:股ヨー 2:股ロール 3:股ピッチ 4:ひざピッチ 5:足首ピッチ 6:足首ロール

    θx: x番関節の角度(角度は Jx から J(x+1) を見たときの角度)

    Lab: 関節a、関節b を結ぶリンクの長さ

上体をまっすぐにしたまま屈伸する場合の J3,J4,J5 の条件
    1) L34 * sinθ3 = L45 * sinθ5
    2) θ4 = θ3 + θ5 (あれ?符号が変?)

J3(股ピッチ)、J5(足首ピッチ)間の距離 L35 を求める式
    (L35)^2 = ( L34 + L45 * cos(θ4) )^2 + ( L45 * sin(θ4) )^2

θ3,θ4,θ5 がとれる角度は有限個(70ポイントくらい)なので、事前に計算してテーブルにしちゃえばいいかな。

…って
各関節の正回転の方向を決めないとぐちゃぐちゃになっちゃう。
しかも、正回転の方向と実際のサーボの回転方向が一致しないのもあるし…

このあたりを変換するプログラム書かなきゃなのか…
うう…めんどいなぁ

---
図が無いと全然わからないね…

--- 修正 2004/02/26 01:35
L35 を求める式で、cos(),sin()の中は θ4 そのもので良かった
180から引く必要は無い。

修正前:
    (L35)^2 = ( L34 + L45 * cos(180度-θ4) )^2 + ( L45 * sin(180度-θ4) )^2

修正後:
    (L35)^2 = ( L34 + L45 * cos(θ4) )^2 + ( L45 * sin(θ4) )^2


  ☆[コメント]

2004/02/24 ★ X-4
★ 風邪ひき続行中

土曜日から続く風邪でずっとベッドの中。

ひざの曲げ角に対応した、股ピッチ、足首ピッチの角度計算式とか
股ピッチ関節と足首ピッチ関節間の距離の計算式とか
…やること一杯あるのに…

---
URLメモ:
吉野のロボット から
2L2の歩行の調整方法

OGAWA's ROBOT LAB から
関節配置
DH法による順・逆運動学

Super MachineR から
2004年2月17日の日記 : 吉村式歩行モーション作成法

レッツバーニング!BBSの700番の西さんの書き込み:
・三角関数の精度について (asin, acos より atan の方がいい。L^2=X^2+Y^2 を利用など)


  ☆[コメント]

2004/02/22 ★ X-6
★ (URLメモ) 受身の練習してるし…

ROBO-ONE 2連覇の菅原さん&影さんのところから

URA-Giken ぼちぼち日記 No.059 の動画

…すごすぎる…
ゴーレムくんがこのレベルに到達するのはいつになるだろう…


  ☆[コメント]

★ 少しは工学らしく…

ちょっと熱っぽいけど、痛いほどじゃないので開発作業。

屈伸の前段階として、サーボへの角度指示(PWMのピーク幅で指定)と実際の関節角度の対応を測定中。

測定値:
左辺:中立時の値からの変位
      (中立値+左辺) × 0.02msec が実際にサーボに送られる信号のピーク幅
右辺:実際の関節の角度(中立時を 0 とした場合の変位)

ひざ関節(最屈時 125 deg)
RL4: 0=0 deg, -41=-90 deg, -42=-92 deg, -57=-122.5 deg -58=-124 deg
LL4: 0=0 deg, 43= 90 deg, 44= 92 deg, 58= 122 deg, 59= 123.5 deg

股関節ピッチ
RL3: 0=0 deg, 19= 44 deg, 20= 46 deg, 40= 90 deg,
LL3: 0=0 deg, -19=-44 deg, -20=-46 deg, -40=-90 deg

「ひざ関節の値がなんかばらつく…」と思いながら作業していたら、入力値を間違えて、右股ピッチサーボがロック…

慌てて中立位置に戻したけど、なんか遊びが増えたような…

…って、ばらつきはこれが原因なのね…
一度ロックさせちゃうと、ギヤの遊びが増えちゃうんだろうな…
(一段目のプラスティックギヤをアルミに交換すればいいんだろうけど)

  ☆[コメント]

measurement of the angle
角度測定中
★ (URLメモ) 100ドルの二足歩行ロボ RoboSapien

Jin Sato's Robot Factory日記から:
100ドルの2足歩行ロボットRoboSapienのビデオ

Jinさんによると、7つのモーターでこれだけの動きを実現していて、乾電池で20時間稼働するとか…
すごい…

上半身をゆらして重心を移動させるのは、ゴーレムくん零号のコンセプトと同じだなぁ…
あんなふうに足裏を弯曲させなきゃいけなかったのか…



  ☆[コメント]

2004/02/20 ★ X-8
★ 現実逃避… (ROBO) X-8 現実逃避…

「こんなことやってる場合じゃないでしょー」と思いつつも、
ゴーレムくんの頭を作ってみました。
ちょっとサイズが小さいかな…

モーターヘッドのイメージからは離れてしまいました。


  ☆[コメント]

front view
正面やや右上から
2004/02/18 ★ X-10
★ ゴーレムくんは「御辞儀」を覚えた!賢さのレベルが1つ上がった

ようやく…ようやくここまで辿り着きました。

Metallic Fighter流儀の 御辞儀 (AVI形式 1.2MB)です。

インチキ無しで、L-Card -> PIC -> サーボ という経路で制御しています。
…もっとも、プログラムはシェルスクリプトなんですが…

現時点で、一秒に10回程度、L-CardからPICに角度指示を送っています。
(正確な値を測定するのを忘れました)

秒20回程度は更新しないと、動きがガタつくような気がします。
プログラムを C で書き直す必要がありそう。
それと並行してモーション作成。

---
動画ファイルってどうやれば小さくなるんだっけ…
AVI形式だと画像が荒いし、QuickTime形式だとサイズが大きいし…
DivX?

参考までに QuickTime形式のは これ (4.7MB) です。


  ☆[コメント]

the bow
御辞儀(クリックすると動画再生)
2004/02/16 ★ X-12
★ 左脚ヒラメ筋の異常

コネクタが抜けてただけでした… _| ̄|◯

お騒がせしました。 > みなさま

…でも
軽く曲げ伸ばしするだけでコネクタが抜けちゃうのは問題だね。
ビニールテープで固定するかな…


  ☆[コメント]

★ あう…

前々から調子がおかしかった(手で回したときに引っかかるような感じがあった)ので すが…

左足首ロール軸のサーボ(PDS-2144)がお亡くなりになりました。
困ったな… 2144ってもう手に入らないのに…
こういうのって、モーターと制御基板のどっちがお亡くなりになってるのかな…

左足首だけ別サーボにしたら左右のバランスおかしくなりそうだし…
まだまだ前途多難…


  ☆[コメント ]

2004/02/14 ★ X-14
★ 頭と顔…どうしようかな…

…と思いながら、
ベッドのそばにあった「フ ァイブスター物語 VIIII」を見てたら…
終わりまで読んじゃいましたよ…

※) 最新刊は XI です。

A・トール っぽい単眼にしようかと思っているところ…

(いや、その前にプログラムつくらなきゃでしょ…

--- 修正: 2004/02/15 10:50
数字が間違ってたので直しました。
XIIII -> VIIII
IX -> XI

  ☆[コメント ]

★ ゴーレムくん起動!

自立しました。 ヽ(*'-')ノ

パソコンを直結してデータを送ってるし、定電圧電源から電源供給してるので、自律じゃないけど…

次はモーション再生プログラムを作って、挨拶と屈伸かな

…って顔は? 付けるスペースあるの?

001-s.jpg : 立ってます!
002-s.jpg : 上半身 (電池パックはまだ入ってません)
003-s.jpg : 頭部のサーボ制御基板
004-s.jpg : 上半身 (背面)
005-s.jpg : 脚部集線基板(ふとももの裏側)

001-s.jpg

002-s.jpg

003-s.jpg

004-s.jpg

005-s.jpg


  ☆[コメント]

★ 集線基板の修理完了


結局、ピン端子の半田付け不良でした。
…ちゃんとチェックしたつもりだったのに。

今度こそ立てるかな…



  ☆[コメント]

2004/02/13 ★ X-15
★ PIC ポートB 出力異常の原因判明

ゴーレムくんから PIC基板を外して、ポートBに予備のサーボを繋いで各ピンの出力を順番にチェック

…と B3 (ポートBの4番ピン) にサーボを繋いでいるとPICのシリアル通信がハングアップすることが判明

「B3 って何かあったっけ…?」
と調べてみると
低電圧プログラミングの設定端子でした。

CONFIGの LVPビット が 1 になってた…。
修整したらちゃんと動作しました。

次は右脚集線基板の配線切れチェック

---
参考:
PIC16F87xの特徴と使用上の注意 (from 電子工作の実験室)



  ☆[コメント]

★ ゴーレムくん立ち上がれず…

各サーボの中立を順に調整していくと…
PICのポートB0-3の出力(ゴーレムくんの右脚サーボを制御)が変
あと、右脚の集線基板5番ピンが配線切れ
当然立てません…

明日の夜に基板を外して再チェック。


  ☆[コメント]

2004/02/12 ★ X-16
★ 仮配線のハンダ付け完了

とにかく動かすための仮配線作業。
コネクタ類のハンダ付けが全て完了しました。

これから組み立てて通電です。

---
申し込み〆切まで、あと 1時間30分

  ☆[コメント]

2004/02/11 ★ X-17
★ 進捗…

まだまだハードウェア周りの作業中
ROBO-ONE Special の参加申し込み〆切はもう明日なのに…

サーボ付属の配線長が足りないのは、後回し(姿勢を限定する)にして、とにかく一度全部配線してしまうことに。

各部サーボの配線、電源ラインの配線と格闘中。
(優先 作業リストの 1.5〜1.6あたり)

「1.8 バッテリー保持ケース作成」は、いい方法を見つけて解決すみ。
早く火をいれて挨拶をさせたい…

配線長が足りない分は、お亡くなりになったサーボさま&短くていいサーボさまからいただくことにします。


  ☆[コメント]

The case for four AA size batteries
単三用電池ボックス

Battery pack folder
加工後
2004/02/07 ★ X-21
★ うう…センスなさすぎ

結局平日に作業できたのは月曜日だけ。

Special当日の参加資格審査を目指して開発再開(ちがうって…

で、サーボ制御線と電源ラインの配線を考えているのだけど…

・上半身の自由度上がってるせいでサーボ付属の配線が届かない
・電源スイッチを付ける場所を考えてなかった
    (胸部パーツにスイッチ付ける場所を作っておけば良かった)
・腰のヨー軸の動きに配線がついていけない

とか課題続出…

バッテリー保持ケースは、大会のときに付けてたのじゃデザイン悪いし…倒れたときに壊れちゃいそうだし…

うーん…センスないなぁ…



  ☆[コメント]

2004/02/03 ★ X-25
★ ROBO-ONE Special 参加資格…

第1回 ROBO-ONE Special の 「参加資格」のところに
ロボットの重量が7kg以下で第5回ROBO-ONE参加資格審査を通過したロボット。
第5回大会で参加資格審査を通過したロボットはロボットの規格審査のみとします。

なんて書いてあるんですが…

これって
「参加資格審査を受けなかったゴーレムくんは参加資格無し」
ってこと??

ひいき目に考えると、ROBO-ONE Special の当日に参加資格審査が行われるようにも 見えますが…
そうであることを切実に願います。


  ☆[コメント]

★ 中枢神経復活!

復活というかなんというか…
原因は RS232Cレベルコンバータ(SIPEX SP3232ECP)の配線ミス。(汗
繋ぎ直したらあっさり動きました。

これが一週間前だったら気付いて直せたんだろうけどねぇ…
まぁ、夏休みの宿題を始業式の直前にやってた人には無理なのかも…

これで L-Cardの二つのシリアルポートと PIC のシリアルポートが全て RS232Cレベルの信号になりました。
PCからのデバッグがかなり楽になるはず。


  ☆[コメント]

2004/02/02 ★ X-26
★ 第5回大会ニュースリンク

見つけた順に羅列



  ☆[コメント]

★ 第1回 ROBO-ONE Special へ向けて

次の目標「第1回 ROBO-ONE Special
に向けてカウントリセット

「階段登り降り」とか「うつぶせから起き上がって走る」とか、
歩くことすらできていないゴーレムくんには苛酷な目標ですが…
頑張ります。

まずは、切れてしまった中枢神経の復旧から。


  ☆[コメント]


  • このサイトは「人形つかい」が提供しております。
  • リンクはご自由に。(そんな人いないだろうけど…)ただし、トップページ以外のURLは変更になる可能性があります。
  • このサイト内のコンテンツ(ドキュメント、画像、プログラムなど)は特に明記しない限り、「人形つかい」が著作権を保持しています。転載する場合は御連絡ください。引用は常識の範囲でどうぞ。

開設日: 2002/12/10
管理者: 人形つかい/魔女みならい
連絡先: witch-marionette at mtlab.jp (" at " は "@" に置き換えてください。)