身体モデル自動生成

2016年7月頃に考えたネタで、いせしまこん以降、何人かに話している内容のまとめ。

概要

きちんと制御しているロボットは、運動学/逆運動学計算に必要な身体モデルを持っています。
ざっといえば、回転軸とその相対的な位置情報を組み合わせたデータです。

こんなの

#ref(): File not found: "身体モデル.png" at page "身体モデル自動生成"


これを使って、例えば
「腰を起点に、各関節に角度を与えた時に、指先がどこに移動するか?」(運動学)
や、
「腰を起点に、指先をある地点に移動させた場合の各関節の角度は?」(逆運動学)
などを計算します。
歩行させる場合は、各種センサー値から足をどこに降ろすかを計算し、そこから逆運動学で各関節の指令値を計算して実行する、みたいな使い方をします。

ところで「ドライバーを持ったロボットが、ねじを締める」といった場合は、どうしているかというと、HRPシリーズとかは手に持つところから以降、専用の処理を書いて実行しているそうです。
人間の場合は、手に持った場合に(もしあるなら)身体モデルが拡張されているのではないか?と考えます。
拡張されているからこそ、物を持った状態で、それを手の延長のように動かせたり、杖のように使ったりできると。
で、これをロボットに応用出来たら面白いと考えました。

もしこれが可能になると、ロボット内で移動のためのモーションをシミュレートできるので、例えば足が外れても代わりに杖をついて移動したり、歩行ができなくなったら代わりに匍匐前進したり、といったことが可能になるかもしれません。

ひとつの案

人間の場合は、視覚情報から身体モデルの延長を行うことが多いと思う。
同様に画像認識を使用して、信号に反応した部位を判定し、身体モデルを再構成する。

  1. 規格化されたIDをもつ信号でモーターが動くとして、適当に信号を送ると、反応するモーターが存在するので、その場所をIDと関連付けてマーキングする。
  2. あるモーターを動かした場合、他のモーターが引きずられるようなら、ID間に何らかの関係(固い棒でつながっているとみなせるのか、柔らかい縄でつながっているとみなせるのか、など)があると記録する。
  3. 上記を繰り返し、モーター間の距離と接続タイプを求めて身体モデルに反映する。
  4. 身体モデルに沿って、各モーターの可動域を確認していく。

まあ、めっちゃ難しそうです(^-^)
これ、最初はのたうち回っていたロボットがそのうち歩き出すっていう、ちょっとキモイものになるかもw



Total:775 Today:1 Yesterday:0


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-24 (金) 17:38:00