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

2007/01/30 X-53
15:20 (メモ)Octave覚え書き(2.0.xから2.1.xへ)
(楽天アフィリエイト)
ヒューマノイドロボット

ヨー軸を含めた逆運動学計算どうしようか…
などと思いつつ
ヒューマノイドロボット(リンク先オーム社)」を最初から読み返してしまう

なんて逃避行動に走る今日この頃
(体調悪かったので仕事はお休み)

が、しかし、MATLAB用プログラムをOctaveで試そうとしたら…
↓は 2.4.2 再起呼び出しによるプログラミング (p43)での例
$ octave --braindead
GNU Octave, version 2.0.17 (i386-vine-linux-gnu).
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 John W. Eaton.
 
>> global uLINK
>> uLINK(1).name='BODY';
parse error:
 
>>> uLINK(1).name='BODY';
            ^
…え…
もしかして Octave では構造体の配列を扱えない??
…と思ったら2.1.xという新バージョンがある摸様。
参考:
数値演算言語 Octave (西村 明先生のページ)の
2.0.x から 2.1.x へ

「Debianには2.1.xが入っている」とのことなので、Debian上で再挑戦(上の例はVine3.2)
$ octave --braindead
GNU Octave, version 2.1.69 (i386-pc-linux-gnu).
Copyright (C) 2005 John W. Eaton.
 
>> global uLINK
>> uLINK(1).name='BODY';
>> uLINK(1).sister=0;
>> uLINK(1).child=2;
>>
>> uLINK(2).name='RARM';
>> uLINK(2).sister=4;
>> uLINK(2).child=3;
>>
>> uLINK
uLINK =
{
  child =
  (,
    [1] = 2
    [2] = 3
  ,)
 
  name =
  (,
    [1] = BODY
    [2] = RARM
  ,)
 
  sister =
  (,
    [1] = 0
    [2] = 4
  ,)
}
 
>>
うむうむ。すばらしい。

次は Maxima に同次変換行列の逆行列を作ってもらって…
…なんて逃避している場合じゃないので、プログラミング作業に戻らなきゃ。


[☆コメント] [△先頭へ]


2007/01/29 X-54
22:26 いい加減疲れました

確信犯(本来の意味で)っぽいので怒るに怒れない…

(先日の日記とは関係ない……)

[△先頭へ]


15:54 進捗 (すばらしいミス…さすが私のコーディング)

予想通りの個所(スクリプト終端判定)にミスがありました… (T-T
修正は帰宅してから。

(インタプリタの)プログラムカウンタや実行中スクリプト名をリアルタイムで表示するデバッグ環境が必要かも。


[☆コメント] [△先頭へ]


0:38 進捗 (やっぱりバグが…)

体調あまり良くなかったのもあって2日間ずっと引きこもり。
夜は小説でも読んでゆっくりしようかと思ってたけど…

今日のカンファレンスで「1日30分は必ず、ロボットを動かしている」という話があった (from なぐさんの日記)

というのを見て、作業することにしました。
この1ヶ月で作成した比較演算や条件分岐がちゃんと動くことを祈りつつー(誰に?)

…ダメでした。orz

正確には、
「比較演算も条件分岐もちゃんと動くけど、インタプリタのスクリプト終端判定にバグがあって、メモリ上で次にあるスクリプトも実行してしまう」
というバグ。
スクリプトの最後の命令が 1tick 消費しない命令の場合、その次の行も読み込んでしまう模様(…というように見える)

スクリプト管理方法をもうちょっとちゃんとしないとダメかな。

IKETOMさんの日記によるとRCB3は処理速度の改善版が出るらしい。
負けないように頑張らないと。(その前に追い付かないと)



[☆コメント] [△先頭へ]


2007/01/26 X-57
18:52 (URLメモ) Webサービスを組み合わせて新サービスを作るコンテスト

航海日誌(keisukenさんの日記)2007-01-24 経由
リクルート・サンのマッシュアップコンテスト、第2回受付開始 [@IT] 経由
Mash up Award 2ndトップページ
2007/01/23
サン・リクルートに加え、総計17の協力企業様・団体様のサポートのもと「Mash up Award 2nd」がスタート!!コンテスト期間は約50日間。有効に使って、楽しくマッシュアップしましょう!

Mash up Award 2nd 対象Webサービス一覧

へぇぇ、いつのまにかこんなに色んなWebサービスAPIが公開されているのね。
人工無脳のバックエンドに使うと楽しそう。

---
そう、だからその人工無脳を載せるボディを早く完成させなさい。
WebサービスAPIで遊ぶのはそのあと。


[☆コメント] [△先頭へ]


17:39 ネットの情報の遺伝というかなんというか
(リンク先はamazon)

攻殻機動隊(1)


け、消して欲しかったわけではなかったんですけど……
(「さま」つけて欲しかったのとデッドリンクを消して欲しかっただけ…)

自分が作ったページが引用・転載されるのは、論文が引用されるのと同じで良いことだと思うのです。転載・引用・再利用を楽にするために、更新情報やRSSフィードを公開しているわけですし。

発信源がいつ無くなるか判らないインターネットの情報が形を変えながらコピーされていくのは必然だと思っています。(それが良いか悪いかは別として)
生物の遺伝子が少しずつ形を変えながら引き継がれていくように…
(この表現は攻殻機動隊のコピーだ…)

身近な例では2ちゃんのまとめサイトかな。
複数のスレから複数のまとめサイトに情報がコピーされ、さらにそれがブログに引用されて…
元スレが消滅しても、いつかまとめサイトが消滅しても、ブログや検索サイトのアーカイブなどに情報が残るような。
ROBO-ONE関係だと「プレイステーション・PAD/メモリ・インターフェースの解析」の情報がそんな感じ

そういう意味でROBO-ONE黎明期の参加者の開発日記が少しずつデッドリンクになっていくのは仕方がないのかもしれません。
過去の情報でも有用なものは、新しい参加者の日記にコピーされていくのでしょう。

私のページは…URLメモばかりで中身がありませんね…('-';;

---
あ、今度CCマーク(Creative Commons)付けておこう


[☆コメント] [△先頭へ]


2007/01/25 X-58
22:54 ひとりごと

(言いたいことを黙ってると夜寝られなくなるので書きます)

ROBOlepの某氏の日記経由で某企業のロボ情報系サイトを見に行ったらリンク集とは別に「スペシャル・リンク」というのがありました。
「へぇ何だろう」と思って見てみたら…
うちのアンテナhttp://ant.mtlab.jp/robo-one/のデータのコピペでした。

まぁ、技術情報とかじゃないただのリンク集なのでコピペされたって構いませんが…
一声かけて欲しかったとか、引用元へのリンク付けてくれとか言いませんが…
自サイトのリンク集が充実するまでのつなぎだろうとは思いますが…

せめて私の名前のとこに「さん」を付けるくらいの配慮が欲しかったです。
(うちのアンテナのデータなので私の名前にだけ「さん」が付いてない:笑)

個人ならともかく企業サイトなんだからそれくらいちゃんとしましょうよ。

---
ちょっちモチベーション下がった & 人間不信加速

--- 2007/01/26 02:00
「うちのアンテナのコピペ」という表現が誤解を招くようなので修正。
mtlab.jpドメインは私の個人取得のドメインです。(コピペページのURLではありません)

--- 2007/01/26 14:00
スペシャル・リンクが消えたようなのでこの話はおしまい。
メールか問い合わせフォームで連絡したほうが良かったかな…


[☆コメント] [△先頭へ]


2007/01/23 X-60
18:31 (NEWSメモ) タカラトミー、31,290円の二足歩行ロボット正式発表(7月発売予定)

Robot Watch から
タカラトミー、31,290円の二足歩行ロボット「Omnibot2007 i-SOBOT」正式発表
〜独自開発のサーボを搭載し世界最小を実現

 株式会社タカラトミーは23日、世界最小の二足歩行ロボット「Omnibot2007 i-SOBOT(アイソボット)」を7月に発売すると発表した。価格は31,290円。組み立て済みの二足歩行ロボットで、同社では二足歩行ロボットとして世界最小としている。

この価格で発売されると、またホビー用ロボの世界が変わりそう。
Robot Watchでの続報に期待。

出たら速攻で入手して分解しなきゃだ。
もちろん、ドールに組み込むため。


[☆コメント] [△先頭へ]


18:12 あ、カンファレンス締め切り… & 作業進捗

「締め切り延びたからまだいいか」と思ってたら定員になっちゃいました。
まぁいいか。
高島屋のバーゲンの売れ残りでも見にいこっと。
(…といいつつハンズでほとんどの時間をつぶすのだろうけど)

---
昨晩はひさしぶりにゴーレムくんを起動。
ここ2ヶ月で作っていたインタプリタに入れ替えてちゃんと動作することを確認。
(数ヶ所バグがあったけど修正完了)

次の作業は、センサー値、キー入力、ジョイパッド入力をシステム変数として読み出せるようにすること。
あと、余裕があれば Call/Return の実装

インタプリタが1Tick分のコマンドを処理する前と後に別のスクリプトを実行できると便利かなぁ…。
事前処理タスクと、モーション処理タスクと、フィードバックタスクのそれぞれをインタプリタで順次処理して…変数空間は共用でプログラム空間は独立で…
別スクリプトからのイベント待ちをするタスクを定義できるとまた便利かも…

…ああ、でも、そんな実装は普通に動くようになってから。

参考: (作業メモ)やるべきこと&暫定仕様 (2007/01/10の日記)



[☆コメント] [△先頭へ]


2007/01/21 X-62
15:05 (URLメモ)名古屋工業大学大学院教授 藤本英雄氏

ロボットのかどっこ (2007.01.16の日記) 経由
リクナビnext Tech総研 から
魚型浄化ロボットから伝統技能の解明まで、100のテーマに挑む触覚の権威・藤本英雄

触覚研究など次世代の“ネオロボティクス”で世界に知られるロボット博士であり、国内では川を浄化するユニークな「魚型エコロボット」の開発がマスコミにも注目された藤本英雄氏。15人の研究スタッフと総勢100人、100以上のテーマが走るという巨大研究室を率いる藤本氏の仕事観とは。

魚型ロボットはどうでもいい(ぇ?)けど、受動歩行ロボのFlash動画があります。
一昨年の9月に「科学と産業の体験フェア(名古屋サイエンスパーク)」で見て感動したのでした。

そうだ、インタプリタがちょっと動いたくらいでのんびりしてちゃだめだ。


[☆コメント] [△先頭へ]


2007/01/20 X-63
16:18 ハヤカワ文庫SF

“PLASSON”自作二足歩行ロボット(SLANさんの日記)の
「スラン」の表紙「人形つかい」の表紙、とても懐かしいです。

夏への扉、スラン、太陽からの風、地球へ、ポーの一族、狼少女ラン…

ハヤカワSF文庫と少年少女SFマンガ競作大全集は今の私にかなり影響を与えていると思います。
(あとNHKの人形劇と少年ドラマシリーズ)

暗いところが怖いのは楳図かずお先生とつのだじろう先生と諸星大二郎先生のせいでしょう。

---
今日は古い小説やコミックを掘り出してしまって作業にならない気がします。
…なんて言ってるけど…
あと2ヶ月しかないじゃん!


[☆コメント] [△先頭へ]


2007/01/19 X-64
18:46 アンテナ[主要処]とかメーカーのサイトとか

[主要処]の更新順上位にメーカーやショップのサイトが並ぶのはどうも…
それほど速報性が問われるとも思いにくいし。
  (ROBOSPOTの「参加者募集」は一気に埋まるので速報性高いかも)

全部消しちゃおうかとも思うけど、誰からも「メーカーやショップの更新情報は邪魔」と言われたことがないのでそのまま。

逆に「このメーカーのサイトを追加して欲しい」と言われて追加したサイトはいくつかあります。
でも「◯◯新聞に載りました」とか新着情報に載せられても私はあまり嬉しくない。
購入者、参加者向けの新着情報を別にしてくれるといいんだけどな…
新着情報がRSSになってるともっといいかな。

[主要処]に入れるサイトを利用者がカスタマイズできるようにするのが一番便利なんでしょうけどね…
そんなプログラム書いてる暇があったら別のことするってば!



[☆コメント] [△先頭へ]


3:17 (作業メモ)進捗&現状のインタプリタの仕様

1週間前に書いた「(作業メモ)やるべきこと&暫定仕様」のうち、「比較演算」と「条件分岐」の実装が完了。
シェル(モーションエンジンのシェル)からインタプリタのコマンドを直接呼べるようにしたので、外部(コンソール)からジャンプ先を切り替えたり変数値を変更したりできるようになりました。
これで、モーションの繰り返し再生、条件によるループ脱出等のモーションスクリプトを書けるはず。
週末には実際にゴーレムくんを動かせる…かな。

「変数値とリテラルの比較」とか「変数同士の演算」とか「文字列結合」とかは後回し。

現時点のインタプリタのコマンド仕様
  • インタプリタの 1Tick (スケジュール単位)は 20msec
  • サーボ角度反映コマンド'X'、ウェイトコマンド'W'の実行後に次の Tick へ移る。
    その他のコマンドは同一 Tick内で処理される。
  • コマンドが1Tick内で終了するかどうかは保証されない。
    (同一Tick内で処理すべきコマンドが多い場合、複数Tickを消費する可能性がある)
  • コマンドは行の先頭から始める(空白は認めない)
  • #から始まる行はコメントとして扱う
スクリプト名 : ^[0-9A-Za-z_\-\.]+$ で構成される文字列
リテラル形式 : ^[0-9A-Za-z_]+$ で構成される文字列(クオーテーション不要)
         [0-9]で始まる文字列は整数リテラル(格納形式は文字列)
変数名命名規則: ^[A-Za-z][0-9A-Za-z_]+$ で構成される文字列
ラベル名   : ^:[0-9A-Za-z]+$ で構成される文字列
 
ジャンプ先ラベル名:
    ラベル名、スクリプト名、スクリプト名とラベル名の連結 のいずれか
       ex) :label_fuga   script_hoge  script_hoge:label_fuga
 
変数処理コマンド:
 代入  : S 変数名=リテラル
 整数演算: S 変数名[+-*/]=数値リテラル
 比較演算: C 変数名1,変数名2  ※(双方の変数値が[0-9]で始まる場合は数値として比較)
 
ラベル宣言コマンド: ラベル名
 
ジャンプコマンド: (条件ジャンプはコマンドの前に実行された比較演算の結果に従う)
 無条件 : JM ジャンプ先ラベル名
 小なり : JL ジャンプ先ラベル名
 等しい : JE ジャンプ先ラベル名
 大なり : JG ジャンプ先ラベル名
 
サーボPWM指定 : A (Aの後に空白を空けずにサーボPWMピーク幅を十進数3桁で羅列する)
サーボPWM反映 : X
全サーボフリー: F
ウェイト   : W[0-9]* (指定数値のTick数分ウェイトする。省略時は 1Tick)
シェルコマンド仕様
 スクリプト読み込み: L:スクリプト名
 スクリプト実行  : X:ジャンプ先ラベル名 ※(実行時点で読み込み済みであること)
 実行キャンセル  : C ※(キューイングされていたコマンドもクリアされる)
 全スクリプトクリア: CA
 
 インタプリタコマンド実行: M インタプリタコマンド
 
 インタプリタ停止 : S ※(continue は未実装。Xコマンドでの再開のみ可能)
 
 全サーボフリー: F
 モーションエンジン停止: Q


[☆コメント] [△先頭へ]


2007/01/17 X-66
19:09 (URLメモ) 水銀燈さまが読んでくれる日本昔話

人によっては「ラクスさまが…」「志摩子さまが…」

rijiさんの日記(2007/01/17)経由
有限会社DEARS から
人気声優陣による『日本の昔話』朗読CD発売発表
 2007年2月9日、有限会社DEARSは「田中理恵」「若本規夫」「能登麻美子」を声優陣に迎え『日本の昔話』を朗読するCDを発売いたします。
(中略)
 幼い頃に聞いたことのある昔話を、定評有る声優さんの美声による玲瓏な朗読、朗読に合わせて伴奏された美しい旋律のピアノ曲、気鋭の若手クリエイターによる美麗なイラストでお楽しみ下さい。
(以下略)

こ、これを使えば
「水銀燈さまが読んでくれる日本昔話」
をマジで実現できるんではないかと妄想してみたり。

ドルフィードリームでいいから買ってこようかな…
(はっ…脱線脱線)


[☆コメント] [△先頭へ]


2007/01/16 X-67
22:37 (URLメモ)XYZで足位置制御を楽しもう!

年末年始にネットを見ていなかったので気づいていなかったっぽい。

Dream Drive !! 大学生HMのロボット製作とプログラミング(と日常生活)
2006年12月27日の日記から

XYZで足位置制御を楽しもう!

そうかぁ…
足首までの長さ √(x^2 + y^2 + z^2) を l と表すとこんなに簡単な式になるのね。

うちもヨー軸追加までやらなきゃだ。
…の前に逆運動学計算を背中のLinuxでできるようにしたい…
(はっ…脱線脱線)


[☆コメント] [△先頭へ]


2007/01/15 X-68
23:58 アンテナ

「キット改造系のサイトをチェックするアンテナ」誰か作らないかな…
最近はブログが多いからRSSリーダーで足りるのかもしれないね。

いいのがあったら「おすすめ(右上のとこ)」からリンクしたいと思うのだけど。
…と言っても私には「どのアンテナがいいか?」を判断できないから無理かな(笑

---
諸般の都合により、ROBO-ONEアンテナのURL変更を予定しています。
新URLは http://ant.mtlab.jp/robo-one/になります。
(http://a.mtlab.jp/robo-one/の方が短くていいのでそっちにするかも)
古いURLへのアクセスは新URLにジャンプするようにします。



[☆コメント] [△先頭へ]


18:28 (作業メモ)条件分岐実装完了&ハッシュライブラリにバグ

お昼休みにプログラミングして、
  • 変数同士の文字列比較
  • 比較演算結果による条件分岐(飛び先はスクリプトファイル名を指定)
まで完了
「次はスクリプト内でのラベルジャンプだねー」と思いつつ、「整数演算」とか「文字列演算」も欲しいなぁ…と
ハッシュライブラリを見ていたら…
「既存のキーの値を書き換えた時に、古い値の領域をfree()してない」… orz

つ、次はこのバグの修正かしら…

---
ロボット制御プログラムというよりも「俺言語」のインタプリタを作ってる気がします。(人工無脳とか)
出来合いの言語環境を移植したほうがいいような…
せめて yacc/lex を…
なんてやっていると脱線していくのでやめやめ。

処理が追い付かないようなら中間言語にコンパイルするようなタイプに作り替えなきゃかも。yacc/lex はそのときに考えよう。


[☆コメント] [△先頭へ]


2007/01/13 X-70
23:49 (作業メモ)爪先に自由度を持たせる方法

「爪先で地面を蹴って速く動ける子にしたいなー」と現実逃避しているうちに、爪先に自由度を持たせるための新しい方法を思いついたので忘れないようにメモ。
鍵は、「減衰力・反発力を調整できる小型のダンパー&スプリング」が売られているかどうか。
ラジコンカー用のサスペンションで使えるのがあるといいんだけど。
あとは、「板金加工をどうするか」かな。

詳細はちょっとの間秘密。
でも、作る暇が無くて誰かに先を越されてしまうだろうな…

---
「比較演算」の実装に必要になる「変数」を扱う機能の実装まで完了。
とりあえず、値は文字列として保持しておいて、取り出すときに変換できるように。

明日には「条件分岐」まで実装できるといいけどなぁ…
…あ、その前に「ラベル」の実装をしなきゃ。


[☆コメント] [△先頭へ]


2007/01/12 X-71
18:26 (URLメモ)ゲームAI連続セミナー「ゲームAIを読み解く」

どこかで役に立つかもしれないのでメモ

むアンテナ経由
ゲームAI連続セミナー「ゲームAIを読み解く」 第1回 レポート
[初級] 第1回 「KillzoneにおけるNPCの動的な制御方法」 レポート

 IGDA日本は、株式会社フロム・ソフトウェアの協力、日本デジタルゲーム学会(DiGRA JAPAN)の後援の下、12月16日(土)に東京大学本郷キャンパス工学部新2号館(東京都文京区)にて、ゲームAI連続セミナー「ゲームAIを読み解く」の第1回「KillzoneにおけるNPCの動的な制御方法」を開催しました。
(中略)
 講演に関する資料は、IGDA日本のサイトで配布されていますので、ぜひご覧ください。

今は実装する暇がないけど、いつかきっと…


[☆コメント] [△先頭へ]


2007/01/10 X-73
0:44 (作業メモ)やるべきこと&暫定仕様

カウントダウンはROBO-ONE 11thに再設定

やるべきことリスト
  1. 現行ハードのままで、とにかく動かせる状態にする。
    1. モーションスクリプトに比較演算と条件分岐コマンドを追加する。
      →暫定仕様
      • 比較演算は CMP:A,B (パラメータは変数or数値or文字列、当面同じ型の比較のみ)
      • 条件分岐は (JLT|JEQ|JGT):XXXX (第2、第3パラメータは当面ジャンプ命令だけ)
    2. キー入力状態を条件分岐の判定で使えるようにする。
      →キー入力を受け付けつつ、状態チェック時には最新の入力値を渡す
    3. うだうだ悩まずに事前審査モーションを作る
      →条件分岐とキー入力ができていれば作れるはず (前後左右歩行、起き上がり(前後)、180度ターン)
    4. とりあえず無線周りを完成させる(3.3V化はあとまわし)
      • 4バイトを1パケットとする。
      • 通番管理、チェックサムを実装。各バイトの上位2bitはパケット内データ順、1バイト目4bitにパケット通番、下位2bitにデータ種別。最終バイトの下位6bitにチェックサム
      • 正常時はACK、異常時はNAKを返信。パケット通番の欠番は無視。パケットが4バイト未満の時はNAK。
      • 最低でも0.5秒に一回データ送受信を行い、無線到達をチェック
  2. リポ化
    • リポ電圧低下時にブザーを鳴らす回路の作成
    • リポ保持用のフレーム作成
  3. サーボ制御基板でA/D入力できるようにする。(テスト済み。実装待ち)
  4. メインCPUをArmadillo-210に換装
    (3.3V UARTを無線側に使うかサーボ制御基板に使うかはそのとき考える)
  5. 脚フレームを新型に換装
  6. 腕をピルクスのPRS-321へ換装

と、いうことで頑張りましょう。
気を散らさないようにするのが鍵かな…

2月末にCPU換装まで終わってるといいんだけど…
ああ、面倒な割り込みジョブが入りそうなのでした。


[☆コメント] [△先頭へ]


2007/01/08 X+1
0:56 まだだ、まだ終わらんよ

第2回わんだほー」は棄権となりました。

…が、本命は2ヶ月半後の「第11回ROBO-ONE」。
やるべき事を一つずつこなして参加できる状態まで持っていきましょう。

熱っぽかったのでさっさと帰るつもりだったけど、懇親会は結局最後まで。
皆、少しずつ技術の方向が違うのが面白いよね。

「ビバ!わんだほー」
「GIYさんは太っ腹!」

--- 2007.01.08 02:15 追記
第2回わんだほーは、優勝がだうとさんのヨゴローザIV、二位は遊(ゆ)さんのnoir、三位はくぱぱさんのクロムキッドでした。
だうとさん、ゆさんは既に決勝出場権を持っているので、わんだほーからの出場権はくぱぱさんの手に。
おめでとーございます。


[☆コメント] [△先頭へ]


2007/01/06 X-11h
21:47 うう…全然だめ

作業すすまない…
第10回大会の状態から全然進歩してないです。

うーん…
制御系の機能追加はあきらめて、うつぶせからの起き上がりモーションだけでも作っておこう。


[☆コメント] [△先頭へ]


2007/01/01 X-6
1:25 「睦月」 あけましておめでとうございます

旧年中はたくさんの方にお世話になりましたが、ほとんど成果を出せませんでした。
今年は気合を入れて頑張ろうと思います。

本年もよろしくお願いいたします。


[☆コメント] [△先頭へ]



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

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