開発日誌みたいなの(4)

過去の開発日誌1へ
過去の開発日誌2へ
過去の開発日誌3へ

最新へ↓

9月2日

気がついたら2ヶ月も更新していなかった。
モーション再生を嫌って関節動作をキーに肢全体の動作を行わせることを考えたが、関節データの取得周期が長すぎて再現性が保てない。あっさりとこの案は捨てることにする。アナログ制御に近い制御ができたならば生体に近い制御ができるかもしれないが、ラムダのシステムだと全然力不足でした。

とはいえ、モーション再生には戻れないので、新しい関節制御の考え方が必要。ま、関節制御はサーボのPID制御のことと言えるから動作制御とでも言うべきか。結局は記述性や再現性を考えてIKをベースにしたモーション生成とするしかないと結論つけている。動作制御の要はモーションを補正することで動的フィードバックをかけることと、最適動作へとモーションを学習・修正することである。

これにはモーション自体を要素に分解して管理することが必要となってくる。7月まで検討していた関節ベースの制御も、考え方は一緒で、分解の単位を「関節」とおいていただけである。ただ、ロボットの肢の動作は関節単位に分解すると複雑になり、合目的的な最適化へ導くのが困難な気がする。

IKベースで制御するということは肢の動作を座標と姿勢の6要素に分解するということ。
歩くときの足の動きのように複雑な動作も比較的簡単な関数で記述できる。

また、関節単位で制御することを考えていた時は記憶されるべき1次元モーション(関節の動作そのもの)をアソシアトロンのような形で記憶・再生することを構想していたが、モーションのような大量のデータを記憶・再生する手段がわからずに時間を過ごしてしまった。 これも生体的でとても魅力があるのだが、ひとまずおいておき、もっとプログラム的なデータ記述方法で実装することとする。

いま、解決するべき問題は動的なモーション切り替え(補正とは区別したい)で、歩行を継続すること(これも歩行安定化と区別したい)。具体的には敷居にけつまずいても転ばない歩行ロボットを実現したいと言う事だ。

9月9日

新しい動作表現方法での歩行動作がやっとできた。コードを書いているうちに左右の足や、両手との強調動作のための記述が必要であるとか、位相ずれの表現とかいったことで表現を変えたいと思い出したりして、さらに書き直さなければならないっぽい。

現在の表現は、「足」を単位として、足が動きを持っているという表現だが、これでは胴体基準の動作と足先基準の動作を論理的に表現できない。簡単に言うと、胴体基準動作とは足先が外界に接触していない状態の動き、足先基準動作とは足先が外界に接触している状態での動きである。ロボットは外界に対しての働きかけや外界との関係があることが前提であるので、胴体基準の動作だけでは論理的な表現が不可能だろう。胴体基準動作と足先基準動作では胴体が受ける反力のベクトルは逆になるはずなのでフィードバックを考えても分けて考える必要がある。

今回は一定の時間間隔でサーボに対して座標データを送り続けることで任意の角度カーブを実現するつもりだった。サーボは目標角度に対してリニアに動作するので、表現したいカーブがリニアに近い時には送信コマンドを省略したりできないかと考えていた。実際に動かしてみると、サーボに目標角度と目標時間を与えると動作にムラが出てしまい、立たせるとロボット自体が振動してしまう。結局、送信データ量の圧縮は諦めて、目標時間ゼロでのステップ応答での動作をさせた方がスムーズな動作が行えるという結果になった。
コマンド型サーボってどうなんでしょね。ロボット用としては意義が薄い気がする。

それでも角度や負荷を取得できるというのはすぐれていてRCサーボでは用が足りないのも事実。

9月10日

RPU−100は無線LANで接続できるようになっているが、有線LANアダプタも使える。帰省した時や長期出張の時などにデバッグなどができるように有線LANアダプタも買っておこうと思ったのだが、、、。

動作するアダプタがBUFFALOのLPC-CF-CLTとPLANEXのCF-100TX。残念ながらどちらも生産終了の製品。ググってみると、どうやらモバイル端末なんかで需要があるみたいでシグマリオンの動作報告なんかに名前が出てくる。中古品でもいいから欲しいな。「買います」とかで広告だしとこうかな。

  

バッファローのほうがかっこいいけど、10BASE-T。プラネックスのは100BASE-Tだからプラネックスのがいいな。どっちでもいいけど。

・・と思ってヤフオクを検索してみたらバッファローのが出品してた。幸いにも最低落札価格設定。即効で入札して落札しました。3550円。10BASE-Tのカードと考えると高いけどね。手に入れられそうでよかったー。 しかし、火曜日から中国出張なんだけど、取引できるかなー??

9月12日

今日から一週間仕事で中国へ出張。今、飛行機の中でこれを書いてます。多分ホテルからアップできるかなーと思ってるんだけどできるのかな?

今回初めてビジネスクラスに乗ったんだけど、ものすごく快適です。エコノミーとの差が大きいなぁ。さらにファーストクラスってのは差があるわけだからどんなんだろう。(乗ったことないし、今後も乗ることないだろうけど)ビジネスクラスは「快適」だけど、ファーストクラスは「無駄」って気がするな。ファーストクラスが当たり前の人にとってはその無駄が当然なんだろうけどね。

もうすぐロボワンが開催されるけど、今年のお題は「うさぎ跳び」らしい。ロボット用サーボのトルクが40s・cmに突入してとうとうジャンプが可能になったらしい。ラムダに使ってるサーボは公称20s・pなんだけど、歩くのには支障がないくらいのトルクにはなっている。その倍のトルクってどんなんだろうな。更にジャンプするには膝を倍速で動かす必要があるのでダブルサーボにするってのが今風。ラムダにとってジャンプなんてのは先のまた先だけど、膝関節をダブルにするってのは効果があるかもしれない。

近藤科学の40s・pサーボも軽くて魅力があるのだが、結局はRCサーボ。RCロボットを対象に開発されている。トルクと軽さは魅力なんだけどな。
一方、フタバやダイナミクセルのインテリサーボ(コマンドサーボ)はインテリ具合が中途半端。ロボット用とは言っているが、ロボットには適さないんじゃないかと思う。
イメージとしてはアナログなサーボが必要なのだと思う。インプットアウトプットが物理量で常時入出力されているような感じ。ま、実際にはデジタルデータやPWM信号にするのだろうが。コマンドサーボに採用されているRS485は半二重なのが気に入らない。お陰でサーボの状況取得は会話型になっているのでオーバーヘッドが大きい。通信速度が遅いとかなんとか言い方は色々あるが、インテリジェンスの切り分け方が違ってるのではないかなーと思ったりする。各関節の持つインテリジェンスレベルが低すぎるという感じ。プログラム領域が開放されているインテリジェンスサーボが必要なのかなと思う。通信方式もRS485のようなマスタースレーブではなく、相互通信が可能な感じ。ATMEGA128程度のMICOMでいくつかのサーボを担当してってのはできないかな。1CPU当たりの受け持ちがサーボ3個くらいならなんとかなるかも。

ハイトルクサーボの必要性についてはバランスを崩した時に倒れる方向に足を出す動作をしなければならないけど、速度が重要になってくる。一応構造検討をしてみようかな。

ラムダの構想にはリアルタイムでのサーボの角度と負荷のモニタリング、トルクの制御が不可欠と思っているのだけれど、これを実現しているのはフタバのサーボとダイナミクセル。 トルクとサイズ(重さも)を考えてもダイナミクセルがベストのようにも思えるが、・・・今考えてもフタバサーボしか選択肢はなかったな。結局はフタバに元気が無いのが問題だ。

9月15日

久しぶりにベストテクノロジーのホームページをチェックしてDYNAMIXELでサーボの新製品が発売されることを知る。
なんとトルクが最大64s・p以上もあるらしい。ただし、価格は38,850円近くする。それを機にDX-117も価格改正で25,200円になるみたい。

ラムダももう少し歩けるようになったら、トルクが足りなくなるような気がしている。その時にはもっといいサーボが出ているかもしれないが、足だけでもDX-117などにする必要があるかもしれないと思うようになってきた。

目指しているのはバリスティック歩行であるだけに、トルク至上主義ではないのだけれど、姿勢を崩した時に回復するには一時的にも過大なトルクが必要になるのではないかと思う。

   

安定して歩ける4足歩行のロボットを作りたくなってきたなー。。 シグマか。。。

9月17日

今日は日曜日(のはず)、仕事に都合をつけて一日オフにしました。都合でホテルを変えたんだけど、このホテルはインターネットにつなぐのが有料(-_-;) その上一日1000円も取るらしい。ちょっとバカらしいので今日一日はインターネットなしで暮らすことに。

ラムダの足サーボにDX-117を使って、余ったRC601CRを4足歩行ロボット(クモ型ロボット)に流用して・・・と、あらぬ方向への構想が進みつつある。これ以上ラムダの歩行制御を遅らせるのはまずいな。寄り道はよした方がいいな。

9月19日

やっと中国での仕事も終わり、帰国の飛行機の中。今回の中国出張は数少ない海外出張の中でも比較的長い方だったけど、フリータイムはほとんどなかったので観光とか買い物にはあまり行けなかった。中国ならDYNAMIXEL、台湾ならPCパーツとかあるけど、中国じゃそっち方面の見所がないからあんまりすることもなかったかも。

中国出張中に動作の表現方法として、胴体基準と足先基準をまとめた、「動作」レベルでのデータ構造を考えようと思っていたけどそれについては何も進展せずだった。

「足」とか「腕」というものを汎用性を持たせて表現しなくちゃいけないような気になっているけど、自由に手足がつけたせるようなロボットならまだしも身体構造は固定なのだから「足」・「腕」などは固定でいいのかな。更には左右の「足」「腕」の関係も固定なわけだし、ラムダに特化したデータ構造、クラス構造でいいと割り切れば表現は随分と簡単になるはずだ。

9月20日

中国出張前にヤフオクで買ったCFの有線LANアダプタ、今日やっと動作確認ができました。

OS上のデバイス名とかがわからなかったのでコンソールでつないで ifconfig -a をしてみたら、 ne0 というデバイス名でつながってた。IPアドレスは無線LANの時と同じ設定。ふむふむつまりスロットに差し込むだけで無線LANの時と同じように考えればいいわけか。あとで /etc をみたら、 ifconfig.ne0 と ifconfig.wi0 があった。ちなみに無線LANアダプタのデバイス名は wi0 です。

ただし、この有線LANアダプタをつけると無線LANの時よりRPU-100から飛び出す寸法が大きいため、サーボをONにして腕を動かしたりするとアダプタにガツンガツンと当たってしまう。有線LANでつなぎながらサーボを動かすってのは考えにくいからまぁいいか。カメラとかマイク・スピーカーとかのソフトデバッグ用かな。それも無線LAN環境が無い場合の。

9月22日

注文していた力センサー、北陸電気工業のHFD-500が入荷したと連絡があったので受け取りに秋葉原へ行った。ひずみゲージをチップ化したようなもので、マイコンで読み込めるようにするには作動アンプやらなんやら周辺回路が必要ではあるのだが、判りやすそうだし他によさそうなのがみつからなかったのでとりあえずこれで足裏センサーを作ってみようと思い注文した。10個注文したのだが、10個だとサンプル扱いってことで1個1100円もした。まさか100個買ったら1個100円になったりしないだろうなー。

  

今日は珍しく秋葉原をブラブラして、ちょこちょこと買い物をした。

  

デジタルテスターとロジックテスターとデジタルパルサー

テスターというと、高校1年生の時に実習で組み立てたアナログテスターをいままでずーっと使っていたのだが、とうとうデジタルテスターを買った、2000円。安いなぁ。オシロスコープも欲しいなぁ。 ロジックテスターは研究室の先生が考案したハイインピーダンス状態も見分けられるテスター回路があったのだが、無くしてしまって自分で考えてみたのだがうまくいかなくて・・・という苦い思い出がありました。ロジックテスターとデジタルパルサー合わせて1200円。 使わないかもしれないけどね。

右側のは有名な上海問屋の激安MP3プレイヤー。 990円でした。 SDメモリーカードが余ってたからちょうどいいやってことで買って来た。一応は使えるね。再生曲順を変更するにはファイルに3桁の数字を付与してくださいってのにはまいりました。 今度1GBのミニSD買って来よう。2300円くらいでした。

ドッツっていう飾り物。マリオとかトロとかのがあったんだけど、行って見たらドルアーガとかマッピーとかがあった。大好きなドルアーガのを買って来た。もっとちっさいかと思ったら結構大きいの。

ザコン館にスピーシーズがおいてあるので、秋葉原へ行った時は立ち寄るのだが、相変わらずRS601CRしか置いてない。RS401CRや301も見たいのだがフタバのコーナーじゃないから無理なのかな。

DX-117で足を構成したら25,500円×14個=357,000円 これだけの投資の価値はあるのかなー。

9月23日

やはり、なんの確証もないままにロボットのトルクアップだけを行うのは問題なので、現在のハードで研究を続けることにする。だが、現状のラムダでは早晩トルク不足が深刻化するのは明白なので次のハードへの検討も水面下で進めておきたいと思う。

CPUも問題で、RPU-100のリソース不足も早晩やってくるだろう。OSもオープンではないし、ストレージが少ないのは今後足かせになりそうな予感がする。CPUとしてはビジオンシリーズが搭載しているピノーのCPUボードがいいんじゃないかと思ってる。OSはリナックスになるのかな?NetBSDは走るのだろうか?カメラと無線LANはUSB接続になりそうだがフリーUNIXは対応してるのかな。個人売りだとこっちになってしまいそうだが、I/Oボードとしてはこれが魅力的。有線LANがないけどUSBから無線LANが使えれば問題ないはず。

そのときにはサーボは足はRX-68、腕はDX-117って構成かなー。100万円越えそうだな。(-_-;)

あまり2足歩行がうまく行かないので、自分は自律ロボットを作っているんだから、4足でもいいんじゃない?同じ12個のサーボで4足ロボット作れるから。。 と思ってみたが、クモ型のロボットに上半身がついてるのが家をうろうろしてても愛せないなぁって思った。(>_<) やっぱり2足の方がいいかな。

動作のモデル化は色々とアイディアと心配ごとが出てきて自分内議論がまとまらない。ポイントは動作の自己補正ができること、姿勢が崩れた時にフォロー動作ができることってことなので、補正データを自己構築できること、地面を基準とし胴体姿勢を可変とした動作生成ができることが必要。

補正データとしては予備動作による補正、カウンターによる補正などがありそう。 補正の方向はその前後の動作に強く関係するが、モーメントも考えなければならない。実際には平面状のベクトルとして考えて、そのベクトルを打ち消す形で補正動作を与えるということになりそう。

2足ロボットはただ立っているだけでもダイナミックな制御が必要。自由度当たり1個のサーボではなく、動物のように伸筋と縮筋のバランスで制御した方がバックラッシュレスになるので理想なのだろうなと思う。

重心移動のデータ取りをしようと思って転倒防止のスタンドを作った。目分量で材料を買って来たらちょっと高さが低かった。(>_<) 頭ユニットをつけたら頭がつっかえる。

9月24日

考えるといろいろと不満が出てきて、構造を見直してみることに。

ラムダの足は背を低く抑えることを中心に考えた結果、大腿と脛の長さが違う。まっすぐにしゃがむと後ろにひっくり返ってしまう。ただでさえ、胴体の重心が後ろよりなのでラムダにとってはしゃがむのは難しい姿勢となっているのだ。 また、膝を曲げて立ったとき、脛のクランク部分がちょうど折りたたまれる形になってあまり格好が良くない。

で、股関節のY軸回転サーボを片持ちにして、大腿側にX軸回転サーボを移し、大腿を少し短くしたり、脛のクランクを小さくしたりして大腿と脛の長さを同じにしてみた。足自体の長さはほとんど変わらない。ただ、股関節のX軸回転範囲、特にマイナス側の動作範囲を確保するために股関節の直交軸位置を少し手前に移動した。胴体の重心は更に後ろにずれた格好となってしまった。

  

  

板金部品を数点作れば改良は終わるのだが、この構造採用すべきかどうか。。 もうちょっと検討の余地あり。

2足歩行ロボットの足構造は胴体に股関節のZ軸回転サーボを持ち、股関節と足首は直交ブロック、そして膝はダブルサーボという構成が基本となるのではないか。次に設計するときはそうしよう。それにしてもRS601CRは実装しづらいサーボです。 (>_<)

9月25日

新足構造が完成した。足首の直交ブロックまで見直したことで、しゃがみ姿勢の足の可動範囲が随分と拡大した。これなら手間掛けて改良する価値もあるだろう。膝の連結部品がチャチなのでもう一工夫要るが、概ね変更は無いだろう。唯一現在の構造の方が可動範囲が広いのが後ろ反り返りの姿勢。でもこの姿勢は恐らく必要ないからいいだろう。 接地部もほぼ前後で均等な寸法にした。 元々は踵を上げることでスムーズな歩行姿勢(膝を曲げない歩行)ってのが出来るようにってことで足首関節を後ろ側に配置したのだけど、そんなとこまで行けないので安定性優先です。

  

↑見た目はあんまり変わらない。

    

↑左足が新構造。 胴体中心に足首が来るようになった。

  

↑丸まり姿勢もちょっと改善 反り返り姿勢は右足の方が後ろまで行っている。 こんな姿勢じゃ立てないから意味ないけど。

9月27日

サーボに数十ミリ秒単位でデータを送って動かしてみているが、どうも動きに納得がいかない。脈動がひどいのだ。20ms毎のステップ応答で進めていたが、なんとなく動作が不安定。繰り返し動作なのにタイミングがずれてそうな感じ。動作の節目までの移動データを送った場合と比べると動きの違いが歴然としている。これじゃ、進められない。

小刻みデータで動かすとトルクが出ない。これはコンプライアンススロープに大きな値が入っていたからで、小刻みなので目標角度までが近いので、トルクが出ないのだ。 もしかしたら例の加減速パラメータの設定が間違えているのでは?とも思ったが、それも違った。加減速パラメータを設定したら脈動がとってもひどくなった。

10月1日

昨日からラムダの足構造改良用部品を作成。土曜日だけでできるかな?とか思っていたが、穴あけさえ終わらなかった。 来週の休み中には完成するだろう。

 

左上 結局これだけの部品を作ることに。。
右上 モミツケ完了。 いつも思ったより時間がかかる。
左 ホールソーを使う、穴あけができなかった。 あとは来週。

久しぶりの板金工作なので、細かなノウハウを忘れてしまっている。思い出して、テクニカルノートに記録しながらやったりしてた。オプティカルセンターポンチの販売店を探してたら、以前に探してた板金ベンダーを見つけた。これはいい感じ。$500するけど買っちゃいたいな。次のラムダを作る時にはこれを買って板金を曲げよう!

10月8日

先週の続きで、板金加工。 土曜日一日使ってもまだ終わらない。夕方6時にやっとヤスリがけが完了。その後テレビを見ながらカエリ取り。残りは月曜日、または来週の土日。 結構かかるなー。 前回はもっと根をつめて工作したからもうちょっと早かったのかな。 サーボの制御を色々検討している最中なのでラムダをばらしてしまうのはちょっと避けたい気分なのでブレーキがかかってるのかも。

日曜日は出かけたついでに東急ハンズによって買い物。 こないだ買ったラムダ用スタンドが高さが足りなかったのでもう少しだけ長いパイプを買って来た。
ハンズの中を見てまわっていたら面白そうなものを見つけた。

ライオンボードって言うらしい。 これで簡易的にラムダの外装が作れるかも。少なくともデザインを考えるためのツールになりそう。

インベンターって自由曲面とかは描けないみたいなんだよね。描けるのかな?



これは作業用ルーペ。スタンド式の上にライトまでついてるのに1890円と安い。SMDの半田付けはもう肉眼ではつらい。これくらいのルーペがあればできると思うのだが。

10月13日

板金加工も途中なのだが、いつまでもモタモタしているサーボ制御についても結論を出さなければ先へ進めないと思い、パンチ設定・コンプライアンス設定・加減速設定などと脈動の関係を整理しようと思ったのだが、どうもサーボの初期化がうまく行っていないようなのに気付いた。

どうもマルチサーボコマンドがうまく働かず、サーボの初期化ができていない。加減速設定も思い通りに切り替わらないことに今更気付いた。(>_<)
115200bpsでコマンドを送ると正常に働くのだが、460800bpsだと同じようには行かないのだ。ライブラリー関数のバグっぽいのだが、スピーシーズの対応は当てにならないのでプログラムで逃げることにする。結局、サーボあたり8byteの設定データだと、一度に送れるサーボ数は6が限界。(6byteにすれば8サーボまでOK)これが115200bpsだと22サーボに対して8byteデータ(合計:176byte)でも問題なく動作するのだ。これを考慮した初期化プログラムにして調査を再開した。

それぞれの制御方法をこのように呼ぶことにする。
@コマンド制御:関節の角速度を一定に近似してサーボに対しては目標角度と到達時間を指示する。
Aパルス制御:関節角度だけを指示し、サーボにはステップ応答を連続的に行わせる。
B短コマンド制御:サーボに送るコマンドを100ms毎とし、曲線近似する。

・短コマンド制御では脈動は取れない。パンチ・コンプライアンス・加減速設定すべて効力なし。
・短コマンド制御でのコマンド切り替わり時にはトルクが維持されない。
・パルス制御での振動はほぼ無視できる。20ms毎が理想。30ms毎までは許容できるが、40ms毎となると振動が目立つ。
・パルス制御でもトルクは落ちる。
・コマンド制御ではデータ送信回数が少なくて済むが、データエラーが発生したときの影響は大。
・パルス制御ではデータ送信回数が非常に多い。しかし、データエラーが発生しても次のデータがすぐにくるので影響は少ない。
・コマンド制御では、ある意味動作予約がかかるのだが、キャンセルや途中停止が出来ない。

これらの点を考えると自分がやりたい受動的動作やバリスティック動作を行うにはパルス制御しかない感じである。フィードバック要素が少なく、トルクが必要な場合はコマンド制御を採用するという併用も考えたが、それでも脈動の問題は残るので、まずはパルス制御中心で進めることにした。

結局はPWMサーボのような制御が一番理想的なように見える。サーボ情報の取得と両立できればよいのだが、今のところはそんな都合のいいサーボは無いですね。

10月18日

先週末で新構造の工作は完了させようと思っていたのに、板金工作精度が悪くて組み立たない。 曲げ逃げを設けなかったために曲げ位置がずれてしまったようだ。前回はなんとか組めたのにな。 来週末まで板金加工はできないし、ちょっとがっかり。 設計は曲げ逃げを加えた形で設計変更をしておいた。

脈動については、サーボのファームを最新にすれば改善されているかも! ということでスピーシーズに問い合わせをしておいたのだが一向に返事が無い。 返事の催促をしたらどうやら問い合わせ先のメールアドレスが変わっていたらしい。 改変内容については双葉電子工業に聞いてくれとのこと。 教えてくれてもいいのに。。(-_-;)

新足構造のラムダ全景。 ネジもちゃんとモデリングしないと設計チョンボの元だねぇ〜。 めんどくさい。



仮組み状態のラムダ改。 左足は部品不良で組みあがらなかった。  情け無い。。。

もっとも変わった股関節部分のアップ。特に変わった構造じゃないんだけどね。前の構造の方が変わってたな。。(^^ゞ

股関節に片持ち軸があるのは不安だけど、スラストベアリングも入れてるし、この重量なら大丈夫かな〜。 このサーボのご自慢の直交構造って片持ちなんだよね。

トップページに「ロボットについての考察」ページを追加した。 ロボットって言っても未来のロボットや理想のロボットではなく、ラムダやアイボといった、当世のロボットの実現手段についての考察にしようと思ってる。思うところはたくさんあるんだけど、なかなか進まなくって脳内で腐ってしまいそうだからとりあえず冷凍保存したい。 ラムダやアイボでの実現と合わせて文章化するのが本筋ではあるが。 受動的関節については原稿草案は作ったけど、止まってる。やらねば。

10月21日

いくつかの部品を作り直してやっとこさ改良版ラムダが組みあがった。

  

ぱっと見は変わらないけど、しゃがむ姿勢が美しくなった。 でも、ケーブルの長さは全然変わってしまったので作り直しだなぁ。 ちょっと切断しそうな箇所もあるし。 あと、左右に1ヶ所ずつサーボのコネクタ部に穴を開けるのを忘れている箇所がある。 明日もまた工作だなぁ。

サーボのファームのバージョンアップはCPUユニットも同時に行わなければならないらしい。 2週間かかるらしい。 いったい何があったのだろう? 双葉に問い合わせても返事なし。 すると、古いサーボを持ってる人が新しいCPUモジュールを使って接続すると不具合が出るのか。 ま、RS601CKとRPU−100は一般売りしないみたいだから大丈夫なのだろうか? サーボ増設の時に困るのか。

じゃぁ、、、サーボを預けてる間はどうしようか。音声認識ソフトの移植検討とか、足裏センサーの設計検討とか、まぁやれることはいっぱいあるのだが。

アイボを使った開発の活動記録をまとめるってのをやりたいんだけど、時間ないなぁ。

10月22日

足構造の改良も終わって、サーボの制御方法も決まって、やっと本論の動作制御に戻れる。 足の構造見直しは今のところ成功のようだ。まっすぐに足を縮めるだけでしゃがめる。そのままサーボゲインをオフにしてもこけないし、よかったよかった。しかし、サーボゲインを90%にしていたんだけど、立ち上がるのに膝だけは100%にせねばならなかった。トルク足りて無いなぁと実感してしまった。

週末に最新号のロボット学会誌が届いた。今回の特集は「実世界の性質を利用した知覚と制御」。 受動制御やバリスティック歩行を考えている今、タイミングがいいように思って読んでみた。ダイナミクスベースド制御については「新版 ロボットの力学と制御」(有本卓著)に詳しいらしく、参考になりそう。実は随分と前に面白そうだから買って家にあるのだが、開くとむずかしくって全然わからなかったのだ。 読むと一瞬で夢の世界に連れて行かれそうになるのでなるべく数式は読まずに全体を読むように。 あと、生態心理学というのが紹介されていて、アフォーダンス理論というものでフレーム問題が解決できるかもしれないらしい。 これも面白そう。紹介されている入門書を読んでみようかと思う。

今、検討のテーマにしている「受動的動作」は難しいのだが、立位状態での移動動作を体系化するのは形が見えてきた。これができると色んな動作を簡単に記述できるので期待が大きい。

10月24日

各関節の角度や負荷を監視することでフィードバックをかけて、動作を修正していくということを考えているので、やはり各サーボのデータを取得しなければならないと思い至る。いままでは一回のインターバルルーチンで角度を取得できるサーボ数を2個程度に限定していたのだが、足の全関節を監視しなければならないというのが結論となった。歩かないで腕で作業をする時は腕の方を監視する、という具合に切り替えをしなければならないだろう。インターバルルーチン内で、片足の全サーボデータ取得、ジャイロデータ取得、上半身のサーボデータ1つだけ取得、その他ヘッドモジュールともデータ取得やコマンドデータ送信があるし、今後、足裏センサーやマニピュレータにもマイコンを置こうと思っているのでその通信もある。

すると、30ms周期でやっと間に合う程度になってしまった。角度送出周期が30msがギリギリなのでこれ以上周期を大きくすることはできない。 これで、足の角度データは60ms周期でデータ取得することができたのだが。。。ちょっと余裕がなさすぎ。 足のサーボデータ取得と ジャイロ、上半身サーボ、その他のマイコンのグループを分けてデータ取得をした方がいいかもしれない。そうすると、 インターバル周期が30ms⇒25ms、角度データ送出周期が30ms⇒25ms、足のデータ取得周期は60ms⇒100ms、 ジャイロデータは30ms⇒50msとなる。上半身サーボのデータ取得周期は500ms以上になる。これが限界かなぁ〜。 RS485通信のウェイトタイムの設定が115200bpsでの設定値のままだったので、460800bpsに合わせて修正してみたが、効果は小さかったみたい。

明日にはラムダをばらして、サーボのファームバージョンアップのために発送してしまう予定だから、それでしばらくは店じまいとなる。 しばらくは論理検討と音声合成モジュールの改良などをしようかと思っている。

11月4日

去る10月30日にラムダをばらしてスピーシーズに送り返した。 ファームバージョンアップしたらいいことがあるのかどうか判らずだったが、まぁ、バージョン上げて損はあるまい。 2週間ほどかかるという話だったが、なんだか混んでるみたいで時間かかるかも知れないと言われてから土日明けの30日に送った。 ラムダがあるうちに出来ることやっておこうと思ったのだけど、音声合成プログラムをラムダのプログラムにつなぎたくって仕方なくなって、ラムダがなくても開発できる音声合成に着手してしまった。アホです。 まぁ、まだ動作の表現が固まってないからコーディングができないわけで、ここにきてあせっても仕方ない。

 ←分解前 分解後→  

ところが、修飾タグの実装にものすごーくハマってしまって、なんとかなったのが、今日の午前中。(>_<) 疲れた〜。自分のアタマの悪さを実感するんだよね、こういうとき。。。 それにしても構文解析って難しいな。色んな状態を想定しないとならない。 ま、ラムダに組み込んだら、決まった文字列しか送られないはずだからそんなに厳密にエラー検出する必要はないのだが。

あと、ロボットと会話がしたい。 自然な会話じゃなくてよくって、ロボットはアホでいいんだけど、言葉とか、物の名前を教えられたりするような知能プログラムが作ってみたい。

ラムダが留守中にやりたいこと、、結構いっぱい出てきた。

  1. 音声合成モジュールまとめ やりだすといくらでもやることあるからキリないんだけどねぇ。
  2. ラムダの動作表現 これは戻ってきたらコーディングにとりかかれるように。
  3. ロボット考察 原稿まとめ。ま、これはプライオリティ低いな。日ごろからこつこつやろう。
  4. アイボ。 アイボはもう随分と触ってない。実はちょっと触りたいのだ。行動計画とかの開発、実験をアイボでやろうと思ってるんだけど、もう忘れちゃった感じ。思い出す意味で。

で、今日、アイボを久々に充電して動かしてみた。 もう2年も前に作ったプログラムで、画像から物体を抽出して追尾するプログラム。 ピンクボールみたいにデジタルじゃないからすぐ見失ってしまうんだけど、久々に動いてる見てちょっと感動した。

アイボは4足だから歩行も安定してる。こけることを考えなくてもいいから行動計画とかの大脳的プログラムの検討に使える。カメラの画角が狭いとか物を持ち上げるのは咥えるしかないとか、それなりに制限も大きいが。

とりあえずは既に作った汎用の歩行・モーションプログラムのマニュアルをまとめようかね。すっかり忘れててどうしようもない。(^^ゞ

11月12日

アイボの歩行オブジェクトのマニュアル作りをしていると、だんだんとオブジェクトを使って行動制御プログラムを作りたくなってきた。行動制御プログラムは移動・認識などの周辺技術がなければ成り立たないからやりたいやりたいと思いつつ、まだサッカーボールをゴールへ蹴りこむという競技のためのプログラムしか作ったことがない。 考えれば考えるほど難しいプログラムだ。 いくら歩行オブジェクトがあっても物体認識や空間認識ができなきゃ昆虫レベルの行動プログラムしか組めないからすぐにどうこうってわけじゃないんだけど、ラムダで歩行制御プログラムを考えてる時よりは行動について考えることが出来る感じ。 アイボは簡単にはこけないからね。

行動制御プログラムを考えるのって、ラムダの歩行プログラムを考えるくらいの思考検討だからちょっとなんなので、アイボのGtalkをラムダのGtalkと同レベルにしておくことにします。今なら色々わかってるから作業もスムーズだろう。 って思ってとりかかったんだけど、アイボオブジェクト特有の部分と、できるだけソースをラムダのと共通にしたいっていう気持ちからちょっと苦労してしまった。 最後はメモリー割り当ての問題が出て、解決するのに半日かかった。 なんだかわからんが、calloc( ) が正常に動いてない、 malloc( )に切り替えたら正常に動くようになった。

音声合成はほぼ完了なので、今度は音声認識。 juliusの移植です。 juliusはCygwinやLinux、FreeBSDでは動くんだけど、NetBSDでは動かない。 NetBSDのオーディオドライバーはsolaris2のそれとほぼ同じようなので、solaris2用のソースをいじってNetBSD用にしました。 途中ライブラリがおかしくてはまったけど、なんとか抜け出してNetBSDへの移植を完了。 思ったよりスムーズに行ってよかった。これでRPU-100へは移植できる可能性が出てきた。ちなみにマイク音量が足りなくて、大声でマイクに怒鳴らなければ認識してくれないから認識率は低めでした。 この先、画像処理も考えるとRPU-100だけでの処理は厳しくなってきた。RPU-100は小脳にして、大脳の導入を考えねばならないかもしれない。 ビジオンみたいに小脳はマイコンにしてしまってもいいかもしれないと考えている。数個のマイコンで協調動作させた方がいいような気もしてるんだなー。 大脳と小脳を共有目メモリーでつなげたりできれば完璧なんだけどね。

さて、juliusのラムダ(RPU-100)への移植やアイボへの移植も魅力だけど、アイボの物体認識プログラムをもうすこし工夫して動体認識もできるようにしたいなと、空間認識のための画像処理も欲しいなとか考え出した。2年近く前の書いたソースなんだけど、覗いたらさっぱりわからん。ちょっと時間かけて読まないとだめみたい。

  デルタックスのラピュタのロボット兵。 いい出来だー。欲しいな。

11月18日

約2週間でサーボとCPUユニットが戻ってきた。 問い合わせるまで連絡無いし、バージョンアップの内容も不明のまま・・・。 あいかわらずイマイチな感じ。

アイボの行動プログラムで盛り上がってきたところなのでちょっと後ろ髪引かれる感じだけどとりあえずはラムダを組み立てておかなきゃ始まらない。

ではサーボの動作確認をして組み立てようと思ったんだけど、CPUユニットは完全に初期化されていて設定に手間取ってしまった。 サーボのIDを確認して、、あれ?ID1が二つある。ああ、追加購入したサーボは1にしてきたのかーと思ってIDを22に修正しようとしたんだけど、バージョンアップ前と違ってサーボにリセットがかからない。案の定電源を入れなおすと設定が元に戻っている。 ボーレート変更も試してみたが同じ状態。ボーレート変更はリブート後に適用なので何の変化も見られない。 サーボの仕様書を見ると、ROM書き込みはコマンド送信の時にFLGのあるビットを立てることになっている。ID変更もレート変更もスピーシーズ供給ライブラリを使っているんだけど、さてはこの辺がサーボのファームアップの対象か、今までのファームは仕様書どおりに動いてなくて、ライブラリの関数もそれに合わせたものだったんじゃないかなー。ファームアップしたらライブラリーのバージョンも上げなきゃならないんだろうな。 本当に適当な連中で困る。 頭部ユニット制御用のATMEGA32マイコンでライブラリ関数の送り出しているコマンド列を表示させてみると案の定FLGはゼロのまま。 で、仕様書どおりのコマンドを送るようにプログラムを組んでみたんだが、結果は同じ。さて困ったぞ。仕様書も変更になってるのかー、と悩むことしばし。 そういえばフタバのHPにもRS601CRの仕様書がダウンロードできるようになっていた覚えがあるので見に行ってみる。 ・・・ 予想どおり仕様書も変更になっている。ROM書き込みとリブートはFLGのビットを立てて、アドレスをFFにしてデータなしで送るらしい。 これをプログラムしてみたら、やっとIDが書き込めた。 それからやっとラムダの組み立てに入ったんだけど、CPUユニットの設定やサーボのゴタゴタのせいもあって今日一日かかってしまった。

ラムダの組み立てが難しいのも問題。厳しい設計になってるから組み立ての手順があちこち決まってて、組んではばらし、訓ではばらしってやってしまった。ちゃんと手順書を作っとかないとだめだな。

11月19日

とうとうファームバージョンアップ版のサーボでラムダが動き出した。メモリーマップまで変更になっているのでそうとう手を入れないと動かなかった。 460800bpsでマルチサーボ命令に容量限界がある点は変わってない。ハードウェアの問題と言われたが本当かなー? マユツバです。

それにしてもアタマつけなきゃな。 

11月27日

ラムダの組み立てが完了した途端に高熱が出て、寝込んでしまった。いままでで最長の5日間も発熱が続いてやっと週末に復活デキマシタ。せっかくの飛び石連休だったのに。。

NetBSDにジュリアンを移植した時、オーディオデバイス関係以外はあまりにもすんなりと作業が進んだので、RPU-100への移植もやってみることにした。先週のうちにオーディオ部を残してコンパイルは完了。Gtalkの際には判らなかったvarlist関係のコンパイルもできました。で、WAVファイルでの音声認識も成功。エンディアンの違いも問題ありません。(「ありません」じゃなくてちゃんとソースがそうなっているからなのだが。) 

病気も治ったのでオーディオデバイス部分の移植をさっさかと終わらせてジュリアンの移植を完成させちゃおう。 おかしなRPU-100のオーディオデバイスの動きに惑わされつつ移植が完了。 先ほど、ジュリアンキットで「ブドウをください」とか「みかんを三つください」とか認識できるようになりました。

これで音声合成と音声認識の目処がついた。ラムダと会話できる日も近い!

それにしてもRPU-100のおかしなオーディオデバイスの挙動はきちんとドキュメント化しておかなければ、触るたびに戸惑う。

RPU-100のオーディオ仕様:
@デフォルトで16bit 16kHz 2ch 符号付きshort(ビッグエンディアン)のデータを出す。
Aデバイスへのデータ操作ではこの設定は変更できない。 専用コマンド chgausr でサンプルレートのみ変更できる。
Bデバイスへのデータ操作(AUDIO_SET_INFO)で操作できないデータを設定するとエラーを返す。ま、これは普通か。
C2chデータだが、どちらも音源が同じ。 1番目のデータの方がゲインが大きいのでこちらを使った方がいいだろう。

仕様とはいわないな。バグだらけって感じ。(-_-;)

これによるとGtalkが今のソースでちゃんと動いてるのはエラー処理をちゃんとやっていないからのようである。直さなきゃ。。。varlistも。。。

11月29日

ラムダが入院中にアイボを触ってたことや、Julianの移植が思いのほかうまく行ったことで、やりたいことが飛躍的に増えてしまって困った。ざっとあげてみると、

  1. ラムダの下半身動作のモデル化 ⇒ 歩行
  2. Gtalkの更なる改造。 発生文のスタック受付とデュレーションの管理
  3. Julianの改造。 音声受付のON/OFF制御・認識単語の動的追加 ラムダへマイクの実装
  4. Gtalk、Julianを使って会話を行えるようにする。
  5. アイボ歩行モジュールの改良。 歩行準備姿勢への移行を行わずに歩行を開始できるように。 角度調整範囲の拡張。
  6. 動体認識
  7. 姿勢移行の自動生成 ⇒ モノを咥える行動生成
  8. アイボの行動プログラム開発
  9. アイボへJulianの移植(これはR-CODEを使えばいいかもしれない。ただし、新規認識単語の登録ができないだろうが。)
  10. 足裏センサーの設計・製作
  11. ラムダの受動的動作の開発 ⇒ ラムダ転倒動作

当然のごとく、1のラムダの下半身動作のモデル化 が重要度第一位なんだけど、なんせ難しくって検討がなかなか進まない。 他の方が簡単にできちゃいそうで目移りしてしまう。 歩けないロボットはみじめだしなぁ。早くラムダを自由に歩かせたい。

12月2日

下半身動作のモデル化も少しずつ進んできた。アイボのような4足歩行の場合はそれぞれの足の動きは基本的に同じで位相をずらした形となったが、2足歩行の場合はそれほど簡単ではない。 色々と考えた結果、体重移動⇒両足をそろえる⇒角度移動⇒足を広げる⇒体重移動(戻す) という動作の連鎖であり、それぞれの動作が終了することで次の動作のトリガーとなる位相ずれではなくて、入れ子型というか、マトリョーシカ構造というか、ネスティングというかそういう感じであるという結論となった。 こういうイメージが出来上がると事がスムーズに進む。 逆にイメージができないとなにかしらハリボテを作っているような中身のなさを感じてモチベーションが上がらないのだ。

下半身姿勢モデルを足のIKモデルに変換するところまではできた。現在の姿勢を下半身姿勢モデルに変換するというのが難しく、完全変換はできない。足首の姿勢を無視するような形でやるしかないかと考えている。 現在の足のIKモデルは足裏が地面に完全に接地していることを前提としたモデルとなっているので、つま先立ちの状態を表現できないのだ。実際には足の裏ではなく、足の辺だけが接地しているような姿勢でも立つことは出来るので、そのような場合におかしなことになってしまうのだ。

あと、アイボの歩行モジュールの改良も平行して行っている。 この改良ができると随分と洗練された歩行モジュールとなると思う。

Julianの移植がうまくいったのでマイクの実装を急がなければならない。やはりマイクは頭部に設けたいところだが、ケーブルは長くなるし、面倒だしってことで、胸のバンパー部分に仕込むことにした。 

マイクの実装ができたら、初期計画のセンサーの実装がやっと完了する。

12月3日

マイクの実装が完了。 なかなかうまく収まった。これで、サーボを動かした時にどれくらいノイズを拾うかが問題だな。

頼まれたビデオの編集をしたり、買い物に行ったりであまりロボットに時間を使えなかったのだが、がんばってラムダの下半身制御はすこし進めた。 コードを書くとちょっとずつイメージがわいてくる。 書いては消し、修正し、の繰り返しで進めていくのだ。 アイボの歩行改良はさっぱり手をつけられなかった。

そういえば、うちのマンションにもBフレッツ光が入るらしい。ベストエフォートだからどれくらいの速度になるのかわからんけど、ADSL8Mよりは良くなるだろう。我が家は電話局の近くなのでADSLも安定していてそれほど不便はないのだが、この機会に電話も光に切り替えてみようかと思ってる。テレビなんかは無理なんだろうなぁ。スカパー見たい気もする。

12月10日

この週末は土曜日はアイボの姿勢移行歩行の実装・日曜日はラムダの下半身動作のコーディングと計画していた。 結果はアイボの姿勢移行歩行の実装でまるまる2日間終わってしまった。(今、10日24時30分) 出張へ行く特急の中や平日の夜に事前検討を十分やったにも関わらず、いくつかの考慮漏れとくだらないバグで時間を食ってしまった。 とりあえずは直立状態からいきなりクロール歩行を行えるようになったので、満足。これで、物体追尾の足取りもまろやかになるはずだ。

それにしてもアイボ(というかOPEN-Rというか、)はすばらしい。 プログラムのロードにMSを抜き差ししなければならないのがめんどくさいし、いちいちブートしなければならないのもイマイチだが、ロボットとしては随分とまとまりのいいシステムだと思う。これがなくなるなんてもったいないなぁ。 アイボはいいとしてもキュリオまでお蔵入りなんて本当にくだらない結論をだしたもんだ。ソニーは。

今週からは忘年会シリーズに突入。その後は帰省と、時間が自由に取れないのだが、ラムダの下半身動作のコーディング早く終わらせたいな。

12月16日

ラムダの下半身制御の目処がつく前にアイボの歩行の改良をやったのは、実はアイボが触りたくて仕方なかったからだ。アイボが好きとかじゃなくて、ロボットの行動プログラムが作りたくなっている。 今も実はJulianのアイボへの移植や、動体認識プログラムの構想が脳内で始まっているのだ。肝心の行動プログラムの骨子がさっぱりなので長い道のりなのだが、真剣に検討に入りたいなぁと。。。

で、作った行動プログラムを配布してみたいなぁ〜と考えたりしてる。 いまだにアイボを所有しているユーザーってのは「アイボライフ」向きのユーザーか、自分でプログラムを開発できるユーザーや勉強のためにアイボを教材として使っている人たちだろうから需要があるとも思えないのだが、「人を楽しませる」ロボットではなく、「ロボットのための」ロボットってのか、「ロボット」そのものを作りたいという目的の原点に一番近い題材がアイボだしね。あまり賛同者がいない俺のロボット観を共有できる人が見つかるかもしれないし。

アイボを触ったあとだとラムダのハードウェアとしての完成度の低さも腹立たしい。モチロン未完成品なのは承知の上なのだが、これはなんとかしないとなぁ。

さて、そうは言ってもラムダも大事。 下半身制御プリグラムを早く仕上げよう。 自由姿勢から下半身姿勢モデルへの逆変換が思ったより難しいことに気付く。 また幾何学と格闘せねば。

ハードウェアの完成度といえば、RS485での通信エラーの多さが問題。そろそろオシロを買って通信部分に手を入れようかな。

SDS200A USBオシロ USB接続200MHzデジタルストレージオシロスコープ SDS200A 82,500円。 ボーナスで買おうかな。 随分前から迷ってる。



12月17日

実は2代目アイボERS-210は3台持ってる。ERS-7は1台なのだが、もう1台くらい欲しくて時々ヤフオクをチェックしてる。 ERS-210はモジュール化されてるし、ハードウェアの完成度も高いし、イジリ甲斐があるのは210だと思うのだが、7の完成度にはかなわない。7はパワーもメカも最強アイボです。でも、7は高いんだよね。プレミア価格とまではいかないけど定価ぐらいで出されてる。 反して210は結構安値で取引されてる。首がいっちゃってるのは2万円以下。見つけるたびに、これは買いだなー、いやいやもう3台あるうえに寝てるから。。っていちいち葛藤してしまう。 210の2台目さえも改造目的で買ったのに手付かずだもんな。 210は顔をかしげる動作ができる関節があるんだけど、これがムダなんだよね。あれをダブルチルトに改造できれば使い物になるだろうになぁと考えてるのだが、改造できないもんかな。

今日はラムダの下半身動作が動くところまでこぎつけた。 タイミングや動作カーブなんかは手付かずだし、カーブを調整できる仕組みは実装していないのでまだ手をたくさんいれないとならないが、大きな意味での動きは完成した。

動かしてみると、動作の流れはいいのだが、実際の歩行動作とは程遠い。タイミング調整などで適切な設定を見つけるのに苦労しそう。 それより、その設定を自動生成したいと考えているのだが、敷居が相当高そうだ。 GUIのエディターが欲しくなりそうなのだが、GUIアプリに行くべきか、CUIで頑張るか。迷うところ。

12月18日

ROBOT WATCHに「第1回 KYOSHO アスレチクス・ヒューマノイドCUP開催」の記事が載っていた。京商の「マノイ」を使ったロボットの大会らしいのだが、自律部門とかパフォーマンス部門とかがある。自律部門ってのはリモコンではなく、フルオートで徒競争をするらしい。 〜アイボのカンファレンスの徒競争が懐かしい〜 で、その自律部門で完走者が出たって驚きの(それが驚きなのだが)結果が出たらしい。そんなんでいいのかねぇ。 パフォーマンス部門なんか、もっとひどい。 マノイにビデオカメラつけたとか、発声機能つけたとか。。それで1位だし。 マノイもロボットも関係ないやん。(-_-;) そんなんでいいのかねぇ〜。 パフォーマンス部門の1位(カメラつけたりのやつね)は他の人と1ランク違った納得の受賞って。。orz

アイボに物体認識をさせて、ごみ集めをするっていうパフォーマンスをやろうとして、物体認識さえできなかった時のことを思い出した。 そのときのアイボのカンファレンスでのパフォ優勝者は逆立ちモーションだったしなぁ。 逆立ちモーションで5万円分の商品券獲得(ソニー製品オンリーだけどね) 。

結局は今のロボットのレベルってそんなもん。ASIMOもキュリオもそれほどずば抜けてすごいわけじゃないんだよね。こないだアシモが階段を登る時にこけた映像を見たけど、受身もなにもとれない。 キュリオの開発者のブログの話とかを読むと感じるけど、あれってどっちもロボットってより、歩行機械なんだよなー。 ここにもロボットはいなかった。 青い鳥みたいだ。

時々思う。理想高く、難しいことを時間かけてやるより、今できることを確実にやって実績を積んでいくことも大事だと。 そういう器用さは生来持ち合わせていないらしく、そっちに基軸をあわせた途端にモチベーションが下がってしまうのは今まで何度も経験済みだからいまさらそんな方向へは進めないのだが。

12月20日

(昨日だけど・・)草なぎ剛主演の「僕の歩く道」が終わった。 「僕の・・・」シリーズ3部作の3部目ってことだけど、前の二つも面白くて結局3部作全部を観た。 静かな話の進み方と、出てくる人たちがみんな優しいのが妙に心地よい作風で、「性悪説」を主張する自分にとっては毎回観ていると涙が出てくる場面が多くて困ったりもしたけど、好きな作品でした。 「僕の歩く道」が始まる時に草なぎ剛が自閉症の青年の役をやるってことで、闘病っていうか障害と闘うっていう感じの作品なのかと思って少し心配したけど、全然違っていて今までの「僕の・・・」シリーズと通ずるものをもっていました。

単にドラマを楽しむと共に草なぎ剛が演じる自閉症の青年の行動を見ていてちょっと気がついたことがあります。 ドラマがどれほど自閉症という病気を正確に表現しているかは判らないし、自分は自閉症に対して知識があるとはいえないので誤解している部分があるかもしれませんが、単刀直入に書いてしまいます。

自閉症演じる草なぎ剛を観ていて、自分が考えるロボットの行動を見る思いがしました。 自閉症の特徴として、融通が利かなかったり、いつも同じ事を繰り返すといったことがあります。 もちろん、今考えられるどのような人工知能よりも認知力は高いと思いますのでロボットと同一視するわけではないのですが、融通を効かせるということが非常に高度であることや、 動物の特性を急に唱えだす姿をみて、連想して出てくる情報をバッファを介することなく発声してしまうことなど、その様子で人間の思考の様子を感じてしまいます。

ちょっと不謹慎な気もしないではないのですが、人工知能のイメージの構築ができそうな気がして、自閉症の症例などを調べてみようかとも思っています。なにかヒントが隠されているかもしれません。

12月23日

下半身動作のパラメータはあまりにも多いので、やはりGUIクライアントを作る方がいいだろう。 いままではWindowsアプリが簡単に作れるのでVB6で作っていたのだが、VBって細かな変数の扱いや一部文法がC言語と異なるため、コーディングをミスってしまってくだらないバグを作り込んでしまうというミスにたびたび遭遇してる。 手軽だからいいんだけどなー。

で、今回はVC++で作ることにした。MFCで作れば結構簡単に作れそうだなってのがわかったので。。 でも、久しぶりにVC++を立ち上げたら、完全に忘れてる。。 何をやっていいのか全然わからない。で、以前に見つけたこういうページを参考にしながらクライアントソフトに着手。まだフォームしかできてないけどね。

もっとも、GUIクライアントと通信するプログラムなんかも書かないといけないからちょっとめんどくさいんだけどね。急がば回れかな。

今日の午前中にぼんやりとネットを見てたのだが、ひさしぶりにはじめ研究所を訪れた。 だれかのブログで「最近ぱっとしないはじめロボット」という書き込みがあったので、そういえばと思ってちょっと立ち寄った感じだったのだけど、はじめロボットはもう世界に行ってるんですね。はじめロボット18は1体200万円で販売してるらしい。下半身はRX-64で上半身はDX-117と、ラムダ2号で考えているアクチュエータ構成。 カメラはアタマと胸にあって、合計2台。この構成も考えたけど、なんとなくボツ案になってる。どんなふうに使い分けているのだろう? アシモが胸か腰にカメラをつけてたら社長に怒られたとか言う話があって、ロボットは人間じゃないんだからいーじゃんと思ったこともあったな。 どんどん先にいくはじめロボット。 追いつけるのかなー。頑張るしかないな。

12月24日

板金折り曲げ機。 これ同じものだと思うんだけど、片や59,800円、 片や39,800円 輸入品だから色々あるんだろうけど、値段違いすぎだなー。
安い方に問い合わせてるけど返事なし。

     

12月26日

昨日の忘年会で今年の忘年会は終わり。 まれに見る忘年会の多さと、一回当たりの出費の多さでもう瀕死の貧血状態。(>_<)

帰省までの残り日数もわずかなので今日は是が非でも年賀状を作らねばなりません。 なのに昨日忘年会だったから見れなかった「のだめ」の最終回を見なきゃならなかったり、待ちに待ったプルートゥの4巻(通常版)の発売日だったりで世の中なかなかうまく行かないものです。

去年の年賀状には立ち上がれないラムダを登場させたのだが、これ以上、外装のないラムダをロボットと縁のない人たちにさらすのはつらいので今年はこれに登場してもらいました。

これ、鉛筆削りなんだけど、鉛筆を削るとゼンマイが巻かれてジージー歩くってもの。 買って飾ってたんだけど、年賀状撮影のために箱から始めて出した。 試しに歩かせてみたらゼンマイが巻けない。orz  壊れてるのかなぁ〜、買ったの甲府駅前だから交換してもらいに行くの面倒だなぁ。。

ちょっとロボット制御の話を。。。
今検討している「下半身動作制御」は歩行の基本動作を単純な動作の連鎖として表現することで、表現・管理をしやすくしようという試み。 ロボットの歩行動作自体は倒立振子で表現できるらしいし、ZMP規範の動作生成を行えればそのような近似表現は不要とも思えるのだが、どうも釈然としないのだ。 ただ歩かせるだけではなく、学習できるようにするのが目標なので、計算ずくという仕組みはよろしくない。 だが、パラメータの多さはべらぼうであり、試行錯誤でなんとかなるものではないのは明白。 ここにきて、動作生成のパラメータ決定にZMPの計算によるガイドラインの生成などが必要ではないかと思い出した。 この年末年始はその辺りの数式の洗い直しをしてみようかとも思っている。

もう一つ、アイボの行動生成も。。

12月27日

明日は仕事収め。 そして、帰省、としばらくはゆっくりとコーディングができる時間は取れそうにない。ZMP計算の検討と、行動生成についての検討に時間を使おうかと思っている。

早速今日は行動生成について考えていた。 今後のヒントにもなりそうなので、メモしておく。

行動とは、演繹によってもたらされるのではなく、帰納的にもたらされるものではないだろうか。
ある目的を持って行動するのではなく、あるシーンにたどりつくにはその行動が必要だから、行動が発動するのではないかと考えた。

ロボットが日常空間で活動するには「世界観」が必要である。反射や単純なルールだけでは限られた活動しかできない。 世界観とはこの世の成り立ちや広がりや構造を理解することで、人はみな、レベルの違いこそあれ世界観を持っている。 成り立ちや広がりや構造といっても理路整然としているわけではなく複雑に絡み合っており、全貌を完全に把握しているわけではない。 おそらく、経験したシーンをつなぎ合わせたり、連想したり応用したりしてそれなりの形を形成しているのが普通だと思われる。 ルールではなく、経験から得た世界観により行動を生成するということはどういうことか。

まず、ロボット(コンピュータと言ってもよいか)の持つ世界観とは何なのか。 これはネットワークだと思う。 シーンのネットワークだろう。 シーン自体もネットワークであり、もやもやとした雲のような「シーン」がたくさんあり、それらがリンクにより接続されているのだろうと思う。 そのつながりとは明確な関係ではない、たまたま連想することであったり、たまたま同時に経験したことであったり、理由や関係はさまざまだろう。 シーン自体もネットワークで表現するのは現状では不可能なので、データ構造としてはある構造体にシーン情報を入れることを考える。構造体同士はリンクが張られており、これにてネットワークを形成する。

ロボットが、あるシーンを認識したとする。 経験したことのあるシーンと酷似または類似するため、あるシーンが想起される。 シーンの想起はネットワークを通じてリンクされた他のシーンを呼び起こし、複数のシーンが想起することになる。 ここで想起したシーン同士にはとりあえず相互妥当性は問わない。

次に想起したシーン同士を論理的に接続する試みが行われる。 シーンAとシーンEが想起しているとき、シーンAからシーンEへ移行するにはどのような条件が満たされないといけないかを検討することになる。 ここでは論理とか検討とか表現しているが、これらも上記の想起の連鎖で構成されるのかもしれない。

検討の結果、シーンA⇒シーンB⇒シーンC⇒シーンD⇒シーンEと論理的な移行が可能とわかったとする。シーン移行が現実的となったとき、想起していた行動は現実の行動の発動となる。 この場合、シーンBに相当する行動として発動される。ただし、その検討結果は保存されておらず、シーンが変わった途端にまた想起が始まり、検討が始まる。 思考した結果を記憶し、順次行動に移すという計画的な行動はこれらのさらに上位概念であり、もっと複雑な構造の中で行われるのだろう。

これらはまだ整理されておらず、イメージだけではあるが、モデルの方向としてはなかなかいい感じである。行動が目的に直結していないのが良い。行動が目的に直結するのは相当な上位概念であるから下位の行動発動では目的というものを強く前にだした考え方はよくないのではないかと思っている。

12月29日

昨日、マッスルミュージカルの年末公演3部作の第一夜「HOP〜誕生〜」を観て来ました。 迫力ある筋肉の躍動をイメージしていたのですが、それよりも70人もの出演者がシンクロしながら織り成す演技に感心しました。 拍手しすぎて見終わったあと疲労感が。。 倒立で30メートルを駆け抜けるオトコが輝かしいです。

マッスルを観たあと、本屋による機会があったので、人工知能関係の書籍を物色。これを見つけました。 入門書というか概論書というか、とっつきやすい書き口はいいのだけど、概論で終わり過ぎるのもなぁ、、と思いつつ、確立していないこの分野については概論の方が良いのかもしれないとも。

タイトルに覚えがあったので、もしかしたら既に持っている可能性もあるなとおもってISBN番号だけ控えて買わずに帰ってきた。

  

これでした。「こころ」と「心」違い。 下のは哲学を引用して知能を語る感じのモノで、おもしろくはあるけど、あまり感化はしなかった。
上のは、比較的具体的で「ロボットに言葉をしゃべらせる」しゃべらせるというのは発音するのではなく、言葉そのものを理解させるために必要なものはなになのか?ということで知能(想像力)を考えるというもの。 前半半分は基礎知識編ですでに知っていることの復習ばかりなのだが、詠んでおこうかな。 昨日買って帰省先で詠めばよかった。 これからアマゾンで注文しても手に取れるのは年明けだし。 うーん。。。今日もう一回渋谷まで行く? 買っとけばよかったぁとちょっと後悔。 それぞれのリンクは出版社の書籍紹介。

めんどくさい通信部分のコーディングをしないことには先に進みそうにないので頑張って通信部分の作り込み。

しかし、半年ほど前にやった(と思ったら今年の2月ごろだったらしい)ネットワークプログラミング。 完全に忘れてる。 どんなテストプログラムを書いたかさえ覚えてなかった。(>_<)  残しておいたサンプルプログラムを正しく動かすのでさえちょっと悩んでしまった。勉強したことはキチンとノートにまとめておかなくちゃ意味がないなぁ。 

どうやら年内に通信部分のコーディングが完成する見込みはほぼ無くなった。 

12月30日  <Wii思いがけずゲット>

本を買いに行くかどうか迷っていたけど、今日は土曜日だし、開店時間あたりだったらWiiが手に入るかも!と思って、渋谷まで昨日の本「ロボットのこころ」を買いに行ってきました。
渋谷のどの量販店にもWiiはなかったけど、帰りに寄った近くのマルイに入っているおもちゃ屋さんにありました。(^^)v

渋谷のサクラヤやビックカメラにはなかったので、本だけ買って帰るのも悔しいから、土日あたりにWiiの抽選をやっているノジマ電機に寄ろうと帰りの電車を途中下車しました。
ノジマに行くと「Wii入荷情報」てのが貼り紙してて、「次回の入荷は1月2日に72台。 10時〜10時半に抽選券を配布します。抽選は11時」だそうで、帰省中だからアウト。
じゃ、諦めてネットワークプログラムのデバッグでもやるかぁ〜と思って駅に向かって歩いていたら、すれ違った子供がでかいマルイの紙袋を持ってる。すれ違う一瞬に子供の笑顔と袋の中身に「Wii」のロゴが見えた気がしてハッとした。 あ、マルイのおもちゃ屋もあったなー。 念のためチェックしにいくと、、、、「Wiiありますか?」 「はい。ございます。」 軽いなぁ〜。。 渋谷のサクラヤで、「いつ入荷なの!?何時なの!?ホントにないの!?」って店員を攻めてたおじさんにも知らせてあげたい。(^.^)

マリオ待ちだからマリオ発売まではウィー向けアクションゲームかなんかをやってようかね。 それともゼルダかな。 いやいやラムダやらなきゃなー。(^^ゞ

とりあえず、「ヒューマノイドロボット」(本) と「ロボットのこころ」と Wiiを持って帰省してきます。

このページの先頭へ