それでは、いよいよIsaac SimとROSを連携していこう。
アームロボットには先ほどと同様にpandaを使用し、Isaac Sim上のアームロボットをROSのjoint_state_publisherから操作する方法を紹介する。
Isaac Simには「ROS Bridge」というモジュールがあり、これを起動するとIsaac Sim内の情報をトピックとして送受信できるようになる。つまり、従来のROSとGazeboの連携と同様の構成でROSとIsaac Simの連携を実現できるというわけだ。
なお、今回は以下の環境を使用する。単純化のため、Isaac SimとROSを同一のサーバPC上で動作させることとする。
先ほどIsaac SimをインストールしたサーバPCにROSをインストールしよう。
ROSの公式サイトの“Desktop-Full install”をインストールすれば必要なパッケージが含まれている。なお、ROS側にもIsaac Simと同じアームロボットのモデルが必要になるため、下記のa)もしくはb)の手順でpandaをインストールする。
任意のフォルダで下記コマンドを実行する。
$ sudo apt install ros-melodic-franka-ros
“catkin_ws/src”フォルダで下記コマンドを実行する。
$ git clone https://github.com/frankaemika/franka_ros.git
次に、インストールしたRVizを起動する。
“franka_ros/franka_description/robots”フォルダで下記コマンドを実行する。
$ roslaunch urdf_tutorial display.launch model:=panda_arm_hand.urdf.xacro
これでRViz上にアームロボットのpandaが表示される(ロボットが表示されない場合は、RVizの「Display」にある「Fixed frame」をpanda_link0に変更する)。そして、以下の図中にある、「joint_state_publisher_gui」のスライドバーでアームロボットが操作できることを確認する。
Isaac Sim側でROSの機能を使うためにROS_Bridgeモジュールを起動する。
Isaac SimからJointStateトピックをsubscribeするためには、「ROS_JointState」オブジェクトとロボットモデルを連携する作業が必要である。
以上で、ROSとIsaac Simの連携が完了した。RVizのjoint_state_publisher_guiのスライドバーでRVizとIsaac Simのアームロボットが連動する。
RViz側に卓上のカラーブロックは表示されていないが、Isaac Sim側の衝突設定が有効化されているので、アームをうまく動かせばIsaac Sim上のカラーブロックを移動させることもできるだろう。また、これらのROS設定は“File>Save as”でUSDファイルとして保存できる。
Copyright © ITmedia, Inc. All Rights Reserved.