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

2005/09/30 X-?
23:36 今日のお買物 (やじきた27巻、彩雲国物語、FSS DESIGNS)



リンク先はアマゾン

会社帰りに久しぶりに本屋へ。
…と、明日発売のはずの「彩雲国物語 心は藍よりも深く」が棚に…
その後、コミックの所へいったら「やじきた学園道中記」の新刊が一冊だけ残ってたのでお買い上げ。
さらに「F.S.S DESIGNS」も見つけたので購入。
もしかしてこれを描くために連載止まってる?
(リンク先はそれぞれの出版社の作品紹介ページ)

え?なんでこれが「ロボット」カテゴリーなのかって?
そりゃあ、FSS DESIGNS がゴーレムくんの外装を作るための参考資料だからですよ。
(キャラばっかりでMHが載ってなかったら泣く…かも)

わーん (T-T 良く見たら「A.K.D編」だって…エンゲージ載ってないじゃん。

  ☆[コメント]


0:49 今後のスケジュール (カンファレンス、練習会、ロボファイト、第9回大会)

夏休み前に放置した仕事に追われて全然作業できなかったり…
今週末に王国のリングで御披露目したかったのだけど、全然無理。

「日記なんか書いてる時間があったら作業すればいいのに…」という声は無視して今後参加予定のイベント一覧

カンファレンスまでには参加資格審査モーションができるようにしたい…


  ☆[コメント]


2005/09/25 X+8
21:54 帰宅&夏休み終了

1時間程前に自宅に戻って来ました。
9日間の総走行距離1060Km。

これで今年の夏休みも終わりです。
前半はROBO-ONE&高山観光
後半は実家でごろごろ&高校時代の友達と十数年ぶりに飲み会
またしても予選に出られなかったのは残念だけど、思いっきりリフレッシュできました。

高山観光は30年ぶりだったのかなかな…
久しぶりに屋台会館(実際に高山祭で使っている山車が展示されてます。「まつりの森」にあるのは観光客向けの見せ物)に行って巫女装束の係員さんに案内してもらいました。

なお、ゴーレムくんを見た父のコメントは
「倒れたら起き上がれない(加速度センサ付いてない)ようなロボットを大会に持って行くなんて恥をかきに行くだけじゃないか」
でした。

…むぅ…


  ☆[コメント]


2005/09/23 X+6
13:53 まだまだ夏休み

まだまだ夏休み満喫中(残り3日)
実家でごろごろしています。

ゴーレムくんは相変わらず前進、横歩き、起き上がりをバラバラにしか実行できません。そんな状態だけど甥っ子に見せたら大喜び。

まだ二歳なのにロボットって判るんですね。
バッグから出した姿を見て「かっこいい!」って(嬉
通電せずに坐ってるだけでも握手して楽しんでいたり。
歩行したときには興奮して喜んでました。
起き上がりを見せたときはちょっと驚いて逃げてたけど…(笑

こんな風に喜んでもらえると「ちゃんと動くようにしなきゃ」って気持ちになりますね。頑張らなきゃ。

あとで大林さん今どきの何か画像を見せたら、ヨゴカスタムがお気に入りみたいで、「ロボット」「かっこいい」を連発。
小さい子はロボットロボットしてる方がいいのかな。



  ☆[コメント]


2005/09/20 X+2
1:09 小さい足裏でも動きましたー

前進も横歩きも起き上がりもできました。
でもでも…今回も参加資格審査を通過できませんでした。

なぜって…
製作者が遅刻したから… orz

当日の朝6:00に実家に着いて、2時間仮眠した後、すぐに出かければ間に合ったかもしれないのですが…
「高速道路だから1時間ちょっとで着くでしょー」と甘くみて
朝ご飯食べた後、シャワーを浴びて9:00過ぎに出発したのでした。

しかし、高速道路のはずのその道は行程の半分近くが片側1車線の対面通行。
「こんな道を高速道路って呼ぶなぁーー!ばかーーー」
と車内で叫んでもあとの祭り。
会場に着いたのは11:30、資格審査の締め切りを12:00に延ばしていただいたものの、スイッチの処理と全モーションを繋ぐ処理を作るには時間不足でした。
午後からちょっと作業してみたら、小さい足裏でも個々のモーションはどれも動きました。
んー…遅刻しなければ予選に参加できてたのに…

うう…ふがいないマスターでごめんね。ゴーレムくん。
あいかわらず棄権で申し訳ありません > 応援してくれている方々



  ☆[コメント]


2005/09/16 X-0
22:57 X-11h 横歩き成功(ただし第7回規定の足裏)

できました。
ちょっとバランスが微妙だけど…
これから足裏サイズを変更して、その後出発です。

足裏サイズ変更後のモーションチェックと「自分で倒れる」は明日の朝、現地調整。

「実家に寄って仮眠してから現地へ…」と思っていたけど時間が無さそうな…


  ☆[コメント]


12:55 X-21h 進捗状況 (残りは横歩きモーション、足裏サイズ変更、スイッチ処理)

結局足裏サイズ変更作業はできないままに出社。
(来週一週間休むので今日はお休みにしなかった)

残り作業一覧(☆印は必須&未完、◯は完了)
  • ☆起動スイッチ取り付け(◯基板作成+◯配線+☆プログラム)
  • 見送り:加速度センサー取り付け(基板作成+配線+プログラム)
  • 見送り:デジタルコンパス取り付け(基板作成+配線+プログラム)
  • ◯予備バッテリー作成(単三NiH6本組み)
  • ☆足裏サイズ変更
  • ☆事前審査モーション作成
    • ◯?前進5歩
    • ◯?屈伸
    • ☆横歩き
    • ☆自分で倒れる
    • ◯?起き上がり

  • ☆予選デモモーション作成

先月(8/5時点の進捗)に比べたらかなり進んでる。
でも、足裏サイズを変更したときそのままのモーションで動くかどうか…

あと、今回もセンサー系は間に合わなそう。予選デモは転んだら終わりです。
…というよりも転ぶと PIC が暴走(?)したり、L-Cardにリセットがかかったりするので起き上がれなさそう。
転倒時にサーボが過負荷状態になって電圧降下してるんだと思う。
近藤科学のブースター7(中身はキャパシタ+レギュレータ?)を付けているけど容量不足みたい。

あ、無線モジュールをまだ取り付けてないや…
本戦に出られないとしても付けておかないとまずいよね。
頭部が50gくらい重くなっちゃうな。



  ☆[コメント]


5:41 X-28h ひざ曲げ歩き成功!

仮眠したんじゃなかったんですかっ!

足踏みモーションに左右の脚の振り+上半身の前後振子を追加して、力強い歩行ができるようになりました。
やったねっ! (*'-')b

今度こそ仮眠します。
起きてから足裏サイズを第八回規定に合わせる作業。


  ☆[コメント]


3:28 X-30h ひざ曲げ足踏み成功

ひざを伸ばした足踏みスクリプトを参考にして、ひざを曲げた足踏みを作成。
軸足側のひざに補正をかけて、足踏み周期を調整したら身体を前後に揺らすことなく足踏みできるようになりました。

これから前進と横歩きの作成。
…って一度仮眠したほうがいいかも。

足裏サイズの変更はいつやろうか…

  ☆[コメント]


2005/09/15 X-1
13:09 逆運動学(?)計算 by Ruby

ようやく Ruby でのプログラミング方法がわかってきた気がします。
全部ベタで書いていたのを少しずつクラスに書き換え中
…って、そんなことをやっている場合じゃないのですが…

「足裏が地面&前後方向の軸に平行(直立時と同じ向き)」という条件下での脚の関節角度計算プログラムが完成しそうです。

これでひざを伸ばした歩行モーションを一気に書き換えられる…かな。

でもでも、足裏サイズが第七回の規定のままなのでした。
今日、歩行できるようになったら切らなきゃ。

あと、会社帰りに旅行バック or キャリーバックの調達も必要。
ヨドバシに革製のキャリーバックがあってかわいかったんだけど…
外側にポケットとかなくて使い勝手はいまいちっぽかった。
(ローゼンメイデンに出てくるような鞄にキャスターがついてるの)


  ☆[コメント]


3:18 足踏みモーションは大丈夫っぽい

7/18に作った足踏みモーション (7/16の足踏みモーションの修正版)はちゃんと動くみたい。
(上体を前後に揺らすのは相変わらずだけど)
これをひざを軽く曲げた足踏みに作り替えて再構築…かな

これで残る作業時間は今日の夜だけとなりました。
名刺やエントリーナンバーを作っている暇はなさそう。
SISOさんごめんなさい。

  ☆[コメント]


0:26 Vectorクラス…

Ruby入門のページやリファレンスを見ながら作ってたのに…
すでに用意されてた… orz

参考) Rubyリファレンスマニュアル Vector

---
それくらい最初に調べなよ…

  ☆[コメント]


0:02 Ruby って…

コンストラクタのオーバーロード(多重定義)って無いんですね。
(というよりもメソッドのオーバーロードが無い?)

コンストラクタで引数の数や型を自分でチェックしろと…
し、知らなかった… orz

参考) ruby-list:4228
|あと、rubyではコンストラクタの引数の数によって挙動を
|変えるというのはできますか?

rubyにはC++の引数による多重定義(overloading)のようなことはで
きませんが,オプショナル引数や引数をまとめて配列としてうける
ことができますので,引数の数や型によってメソッドの中で分岐す
ることが出来ます.


---
…というか Ruby で逆運動学計算プログラム作ってる場合じゃないでしょーーー!!

ええ、ゴーレムくんはまだ起き上がりしかできませんよ。


  ☆[コメント]


2005/09/12 X-4
18:57 動画が見られないの…(泣

「Linuxをデスクトップに使ってるあんたが悪い!」というツッコミは置いといて…

拡張子 wmv なファイルで xine で見られるものと見られないものが…
ffmpeg -i で codec を調べてみると、
見られるものは Video: wmv2、見られないものは Video: WMV3
具体例をあげると、吉村さんとこ三月兎さんとこの動画は見られるのに、菅原さんとこの動画が見られない…(泣

動画を触れるような Windows環境がないので判らないのだけど、この違いは動画編集ソフトに依存するのかな…
win32codecs-essential-20040809 は入れてるのだけどこれだけじゃ足りない?

--- 2005.09.12 22:13 追記
teltelさんのコメントを参考に、MPlayerのcodecアーカイブの最新版を持ってきたら見られるようになりました。
WMV3 は Windows Media Player 9 のコーデックみたいですね。

ちなみに最新版は
ftp://ftp2.mplayerhq.hu/MPlayer/releases/codecs/
all-20050412.tar.bz2 だと思います。


  ☆[コメント]


2005/09/10 X-6
23:52 秋葉のイタトマ撤退?

今日、秋葉へ行ったとき、秋月、千石の通りに車を駐めたのだけど…
イタリアントマトの看板(入口の上のとこの)が無くなってた。
ビルのテナント看板(?)も1F部分は空白になってたし…
もしかして撤退しちゃった?


  ☆[コメント]


23:48 横歩きを王様にチェックしてもらいに

ロボット王国へ行きました。
午後7時55分に… (大迷惑
閉店後30分も相手をして頂いてありがとうございました。 > 王様

結論から言うと… 歩けません!

正確には、
うまくいくときはちゃんと足をあげて移動できるけど、ダメなときは送り足を着いた後、または引き足を持ち上げる時に転ぶ。

やっぱり直立姿勢が安定しないのが問題みたい。
角度センサーを載せて、ちゃんと直立するまで間をおくようにすればなんとかなる…かも。

王様の助言は
「ひざを軽く曲げたほうが安定するのでは」
「上体のバランスは腰よりも腕でとったほうがいいかも」
でした。

でもでも、それじゃぁ目指してる方向と違うーーーーー(泣
なんてことは参加資格審査を通過してから言いなさい > 私

前進モーションもうまくいかない(後退しちゃう…なぜ)ようになっていたので、明日はモーション作成頑張らねば…


  ☆[コメント]


23:37 先週末のお買物&もらいもの

後で書くための予約

---
カウントダウンは切り捨て値に変更


  ☆[コメント]


2005/09/09 X-8
1:01 バグ修正完了

結局、原因はMSC(PIC側サーボ制御信号生成プログラム)のパルス生成処理。
同じポートの出力ピンに繋いだサーボのパルス幅の差が 30μsec の時にパルス生成(というよりもパルスの立ち下げ)に失敗していました。
シリアル通信データの到着タイミングとの兼ね合いでうまくいったり、失敗したりという状況だったので、これまで見つからなかったみたい。

差が 10μsec, 20μsec の時は通信データを無視するようなロジックになっていたので、30μsec の場合も無視するように変更して不具合解消。

今度こそ大丈夫…と思いたい。


  ☆[コメント]


2005/09/08 X-9
17:58 (URLメモ)USBカメラをLinuxで使う

吉村さんや他の人のページを見ていると、「撮影したビデオをスロー再生して動作チェック」という話が出てる。
ゴーレムくん開発もそろそろそういう時期かな。

ということで、Linuxで使えるUSBカメラがあるといいんだけど…
「Linux USBカメラ Video キャプチャ」でGoogleして見付けた
永江研究室」の「Video for Linux, Open Sound System, Gtk, Xlib,...」によると、QV-4000, QV-700Nが使えるみたい。
…と思ったら、ドライバ開発停止って…

でもでも「LinuxとWebカメラ - Ryutaroh」から辿れる「pwcドライバのページ」を見ると、最新パッチも出てるみたい。
んー、開発者違うのかな?

LinuxとWebカメラ - Ryutaroh」によると
  • ロジクール Qcam Messenger
  • ロジクール Qcam Communicate
  • Logicool Qcam Pro 4000 (QV-4000)
  • Logicool Qcam Pro 3000 (QV-3000)
  • Logicool Qcam For Notebooks Pro (QV-700N)
  • Qcam Orbit (QVR-1)
  • Creative WebCam 5
  • Creative WebCam NX Ultra

あたりが使えそう。

---
カウントダウンが変かも…残りは 8日と15時間
(いつから切り上げ表示に変えちゃったんだろう…)


  ☆[コメント]


1:16 こんな時期にバグがーーー

横歩きモーションを後回しにして、屈伸をさせていたらなんか挙動が変。
腰ピッチ軸の角度によって、股関節ヨー軸と腰ロールのパルスが出なくなっちゃう。

どうも各サーボのパルス幅の順序が逆転するところで起きてるような感じ。
MSP(L-Card側)のパルス幅ソートか、それともMSC(PIC側)のパルス生成かどっちかに原因があると思うんだけど…

…というか、今ごろになって発覚しないで… (泣


  ☆[コメント]


2005/09/07 X-10
3:52 正弦定理と余弦定理

昨晩、色々考えて解いた「脚の関節角度を求める式」ですが…
ついさっき「正弦定理」と「余弦定理」の存在を思い出しました。

で、見直してみると、式1 は正弦定理の変形、式3 は余弦定理の変形なだけ…
式4 に至っては、余弦定理で解いたほうが楽…

こ、こんなことで時間を無駄にするなんて… orz

参考:
  関西学院高等部 数学I
  正弦余弦の融合定理

  Google検索「正弦定理 余弦定理」

  ☆[コメント]


0:29 片足を持ち上げるときのバランス

「今ごろ気付くなよ」とツッコミが入りそうですが…
足裏を鉛直方向に持ち上げるから片足全体の重心が身体の前側に移動して前に倒れるのね。

…ということは、片足全体の重心が鉛直方向に移動するように動かす?
(だんだん難しくなってきた…)


  ☆[コメント]


2005/09/06 X-11
23:46 脚の関節角度を求める式 (その2)

深夜に書いた式は、括弧の数が間違ってました… (汗
Rubyで計算する場合の 式3'、式4' で、それぞれ開き括弧、閉括弧が不足。(修正済)

現在、L35の長さを入力すると J3,J4,J5 を返すプログラムを Rubyで作成中です。
実際に作ってみると、計算中はずっとラジアンにしておいて、最後に度に戻すほうが楽だね。

今のところ
L35=147.0 : J3= 0.0 J4= 0.0 J5= 0.0
L35=146.0 : J3= 7.1 J4= 13.4 J5= 6.3
L35=145.0 : J3= 10.1 J4= 19.0 J5= 8.9
L35=144.0 : J3= 12.3 J4= 23.2 J5= 10.9
L35=143.0 : J3= 14.3 J4= 26.8 J5= 12.6
L35=142.0 : J3= 16.0 J4= 30.0 J5= 14.1
L35=137.0 : J3= 22.7 J4= 42.6 J5= 19.9
L35=132.0 : J3= 27.9 J4= 52.3 J5= 24.4
L35=127.0 : J3= 32.3 J4= 60.6 J5= 28.3
な感じ。


  ☆[コメント]


2:06 脚の関節角度を求める式

もう一度原点に戻って、脚の関節角度を求める式へ。
2004.02.26の日記に書いた式を、股関節と足首の距離から関節角度を求める式に変換。
(めちゃめちゃ遠回りしてるけど数学思い出さないと先に進めそうにないです)

(参考資料:Wikipedia「三角関数」)
図から
θ4 = θ3 + θ5
L34 * sinθ3 = L45 * sinθ5
(θ4の回転方向が逆だが符号は気にしないことにする)

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

また、L34を延長し、∠J3,J4',J5が直角をなす点 J4'を仮定すると
L35^2 = L34'^2 + L4'5^2
L44' = L45 * cosθ4
L4'5 = L45 * sinθ4

式2)
∴  L35^2 = ( L34 + L45 * cosθ4 )^2 + ( L45 * sinθ4 )^2

これをJ4に対する式に変換する

右辺第1項を展開すると
L35^2 = L34^2 + 2 * (L34 * L45 * cosθ4) + (L45 * cosθ4)^2 +  (L45 * sinθ4)^2
      = L34^2 + 2 * (L34 * L45 * cosθ4) + L45^2  ∵ cosθ^2 + sinθ^2 = 1

左辺がθ4 になるように変換すると
2*(L34*L45*cosθ4) = L35^2 - L34^2 - L45^2
            cosθ4 = ( L35^2 - L34^2 - L45^2 )/(2 * L34 * L45)
式3) 
               θ4 = acos ( ( L35^2 - L34^2 - L45^2 )/( 2 * L34 * L45) )

さらにθ4の値からθ3を求めるため
θ4 = θ3 + asin(sinθ3 * L34/L45)
をθ3を左辺とした式に変換する。
 
sin(θ4-θ3) = sinθ3 * L34/L45
加法定理より
( sinθ4 * cosθ3 - cosθ4 * sinθ3 ) = sinθ3 * L34/L45
両辺をsinθ3で割ると
 sinθ4/tanθ3 - cosθ4 = L34/L45
          sinθ4/tanθ3 = L34/L45 + cosθ4
                 tanθ3 = sinθ4/(L34/L45 + cosθ4)
式4)
                    θ3 = atan( sinθ4 / (L34/L45 + cosθ4) )

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

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

式2')
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) を返すモジュール関数

式3')
J4 = Math.acos( ( L35**2 - L34**2 - L45**2 ) / ( 2 * L34 * L45) ) / Math::PI*180

式4')
J3  = Math.atan( Math.sin(J4 * Math::PI/180) 
                 / (L34/L45 + Math.cos(J4 * Math::PI/180)) ) / Math::PI*180

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

腰と足首を同一平面上にする J3,J4,J5 を求める式

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

L35が与えられたとき、J3,J4,J5 を求める式
J4  = Math.acos( ( L35**2 - 10845.0 ) / 10764.0 ) / Math::PI*180
J3  = Math.atan( Math.sin(J4 * Math::PI/180)
                 / (L34/L45 + Math.cos(J4 * Math::PI/180)) ) / Math::PI*180
J5 = J4 - J3


これで関節角を計算で求められる…かな。
(「ロール軸とヨー軸を無視すれば」だけどね)


  ☆[コメント]


2005/09/05 X-12
16:47 アンテナの設定は第八回大会終了まで凍結

「そんなことやってる場合じゃないでしょー」という脳内ツッコミを受けつつも、ついついアンテナのプログラムを触ってしまう大会二週間前。

こんなことではいけないので、大会終了まではアンテナの設定を凍結します。
エラーになろうが、更新チェック時刻がずれようが、プログラムにバグが見つかろうが、放置することにします。

御利用のみなさまには御迷惑をおかけしますが、御理解くださいますようお願いいたします。


  ☆[コメント]


1:50 横歩き…

相変わらず2回に1回くらい転びます。
どうも足を着くときに足裏が水平になってない感じ。
原点に帰って「足踏み」から調整しろってことかな…

あと、ひざ関節のガタは相変わらず。
昨日の飲み会で「アルミホーンはモノによってガタが大きい」という話を聞いたので、ローハイトホーンと交換してみます。


  ☆[コメント]


2005/09/04 X-13
1:25 帰宅しましたー

「ロボットだらけの水泳大会」から帰宅しました。
結局今回も最終電車を逃して川崎駅からタクシー。
0:01秋葉原発の電車だともう少し近くまで帰れるみたい。
(それでもタクシーだけど)

皆いろんなことを考えてるんですねぇ…
とても参考になりました。

ぴしいさんへ:
日記にコメントするときは↓の[コメント]をクリックして、
次の画面で右上にある[返信する]というボタンを押して下さい。
他人のコメントにコメントを付けたい場合は、左の「最近のコメント」で、コメントを選んで、表示される画面で[これに対して返事を書く]というリンクをクリックして下さい。

  ☆[コメント]


2005/09/02 X-14
15:12 エントリーNo.を貼ろう運動


sisoさん提唱の「エントリーNo.を貼ろう運動」
盛り上がってるみたいなので作ってみました。
(巴のマークはちょっと違う気がする)

…って、問題ありすぎなのでこのままでは使えません。


  ☆[コメント]


2:46 横歩き…できそうな…

横歩きって…一歩が何cmくらいあればいいんだろう…

3cm くらいずつなら動けそうな感じだけど…
まだ、2回に1回は転んじゃう。
引き脚(?)を戻す時の重心移動が難しいです。

でも、あと、もうちょっと…かな。
今日はこれで寝ます。


  ☆[コメント]


2005/09/01 X-15
18:50 「長月」 夜風が涼しくなりました

あっという間に夏が行ってしまいました。
今年の夏は全然遊んだ気がしない…
下旬の連休に期待だっ。

残り2週間ちょっと。
今日こそは横歩きのメドを付けなきゃ。


  ☆[コメント]



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

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