環境をざっくり.
Windows10 PC(Motive要求スペック)
Ubuntu 18.04 PC (ROS 1 Melodic)
WinでMotiveを使用してMCのデータを取得し,剛体設定している剛体の座標をUbuntuで受け取りROSで扱うことが目標です.と言っても公式が出している情報通りで英語が読めればOK.
今回は
OptiTrack (NatNet) streaming engine with mocap_optitrack ROS package
すなわち,Motiveにデフォルトで用意されている機能を使用して目標を達成する.
WinとUbuntuは同じネットワークに接続する.
通常通りMotiveで撮影環境のキャリブレーションと剛体設定を行う.
View > Assets Pane をクリックし表示されるAssets Paneで剛体の名称を設定する(ここでは1).
View > DataStreaming Pane をクリックし表示されるStreaming Paneでストリーミング情報を設定する.まずはPaneの3点リーダをクリックし,Show Advancedをクリックする.
- Broadcast Frame Data: On
- Local Interfaces: Win PCのIPアドレス
- Labeled Markers: 必要に応じて
- Unlabeled Markers: 必要に応じて
- Asset Markers: 必要に応じて
- Rigid Bodies: On(剛体の情報をストリームする)
- Skeletons: 必要に応じて
- Skeleton Coordinates: 必要に応じて
- Skeleton As Rigid Bodies: 必要に応じて
- Bone Naming Convention: 必要に応じて
- Up Axis: Y Up(デフォルトのY UpでROS上ではZ Upで表示される)
- Remote Trigger: 必要に応じて
- Transmission Type: Multicast
- Subject Prefix: 必要に応じて
- Visual3D Compatible: 必要に応じて
- Scale: 1
- Command Port: 1510
- Data Port: 1511(mocap_optitrackのデフォルトに合わせる)
- Multicast Interface: 244.0.0.1(mocap_optitrackのデフォルトに合わせる)
- Multicast as Broadcast: On
- Soket Size: 1000000
- VRPN Streaming Engine: Off
- Trackd Streaming Engine: Off
この設定でLive録画を開始する,またはEDITで再生するとローカルネットワーク上に剛体の位置姿勢がストリーミングされる.
次にROS側の設定を行う.
適当なワークスペースのsrcにで
$ git clone git@github.com:ros-drivers/mocap_optitrack.git
して,ワークスペースをcatkin_makeする.
ワークスペース/src/mocap_optitrack/config/mocap.yamlを編集する.
rigid_bodies:
'1':
pose: Robot_1/pose
pose2d: Robot_1/ground_pose
odom: Robot_1/Odom
tf: tf
child_frame_id: Robot_1/base_link
parent_frame_id: map
optitrack_config:
multicast_address: 224.0.0.1
command_port: 1510
data_port: 1511
enable_optitrack: true
以上の設定で
$ roslaunch mocap_optitrack mocap.launch
すると.ymalで設定したトピックにそれぞれの情報がPublishされ,
RvizでRobot_1のbase_linkが表示可能になる.
以上.
追記:
MotiveのPropaties->General Settings->Streaming IDが1になっていることを確認する.
0 件のコメント:
コメントを投稿