モーションキャプチャによるボールキャッチ可能なロボット制御コンポーネント群の開発
モーションキャプチャによるボールキャッチ可能なロボット制御コンポーネント群の開発
Post date:
Tue, 2015-10-13 17:26
概要
本プロジェクトは,ヒューマノイドロボットによるボールキャッチが可能とするコンポーネント群の設計と実装となります.モーションキャプチャの三次元位置データからボールの軌道を推定します.ボールの落下位置推定により,ヒューマノイドロボットHRP-4でボールキャッチを実現できます.
特徴
- OptiTrack のモーションキャプチャで,複数マーカの3次元位置がリアルタイムで取得可能
- ボールの軌道と落下点を連続的に推定可能
- 等身大ヒューマノイドロボット HRP-4 の手先位置を制御し,ボールキャッチが可能
コンポーネント群の詳細
- MocapDataSender
モーションキャプチャコンポーネント : モーションキャプチャを使用してボールの取得時間が付加された3次元位置を取得- MarkerPos [TimedDoubleSeq] : 時間情報が付与された複数のマーカの三次元位置出力 (t[ms], x1[m], y1[m], z1[m], x2[m]...)
- TrajectoryEstimation
ボール軌道推定コンポーネント : ボールの3次元位置情報を基にボールの軌道と落下点を推定- MarkerIn [TimedDoubleSeq] : 時間情報が付与された複数のマーカの三次元位置入力 (t[ms], x[m], y[m], z[m])
- PositionOut [TimedDoubleSeq] : 推定方法に基づく落下位置出力 (x[m], y[m], z[m])
- ArmController
ヒューマノイドロボット制御コンポーネント : 推定された落下位置にロボットのハンドを移動- qIn [TimedDoubleSeq] : ロボットの現在角入力 q [rad]
- position [TimedDoubleSeq] : キャッチするボールの三次元位置入力 (x[m], y[m], z[m])
- qOut [TimedDoubleSeq] : ロボットの目標関節角出力 q [rad]
- 論文: リンク
動作環境
- OS:
- Linux (Ubuntu12.04で動作確認済み)
- Windows (Windows8.1で動作確認済み)
- 言語:
- C++
- Python
- OpenRTMバージョン:
- 1.1(モーションキャプチャコンポーネント)
- 1.0(ボール軌道推定コンポーネント,ヒューマノイドロボット制御コンポーネント)
- デバイス:
- OptiTrack(モーションキャプチャ)
- Motive(モーションキャプチャ制御ソフトウェア)
- ボール(モーションキャプチャ用マーカ)
- HRP-4(ヒューマノイドロボット)
- 依存ライブラリ
- C++
- NatNetSDK : OptitrackのモーションキャプチャカメラをC++上で制御するためのSDK
- Python
- NumPy
- SciPy
- C++
マニュアル
※ 現在リンク切れ- コンポーネント群
- 各コンポーネント
ダウンロード
- 各コンポーネントのダウンロードは以下のリンクをクリックしてください.
連絡先
- 奈良先端科学技術大学院大学 ロボティクス研究室
- email:yuguchi.akishige.xu9@is.naist.jp
問合先(メールアドレス):
yuguchi.akishige.xu9@is.naist.jp
Last modified:
Fri, 2022-05-13 01:35
Comments
面白い動画とコンポーネントをありがとうございます.
あまりDoubleやLongのようなプリミティブ型を使うのをお勧めしていません. ちょっとハードルが上がりますが,複数マーカーの3次元位置を表すデータ型を作って,それを送受信するほうがいいと思います.また,3次元のポジションに関しては,TimedPoint3Dという型があるので,これをつかったほうが良いです. qIn, qOutはChoreonoid / OpenHRP3とのインターフェースなので仕方ないと思いますが・・・
コメントです.面白いです.ありがとうございました.