NextageInterface

ChoreonoidからHiroNXProviderを通してHiroNX/Nextageを操作する方法を説明します。

動作環境

1.インストール

HiroNXProvideはgraspPluginに含まれておらずhrgPlugin内のRobotModels/HIRO/NextageInterface下にあります。

HandManipProvideはhrgPlugin内のRobotModels/HIRO/THK下にあります。

PortDuplicatoはhrgPlugin内のRobotModels/HIRO/ProtDuplicator下にあります。

以下のコマンドでHiroNXGUIを入手できます。(subversionが必要ですので無い場合はインストールしてください。)
 $ svn co -r 12 https://hironx-interface.googlecode.com/svn/HiroNXInterface/HiroNXGUI/

ROSをインストールしていないときはhttp://wiki.ros.org/hydro/Installation/Ubuntuを参考にインストールを行ってください。
次にHironx/NEXTAGE OPEN APIを以下のコマンドでインストールします。(http://wiki.ros.org/rtmros_nextage/Tutorials/Install%20NEXTAGE%20OPEN%20software%20on%20your%20machine )

 $ apt-get install ros-hydro-rtmros-nextage ros-hydro-moveit-ros-visualization ros-hydro-moveit-planners-ompl

graspPluginにRobotInterfaceプラグインを使用するようにしていない場合は、以下の手順でRobotInterfaceプラグインを有効にしてください。
 # chorenoidのトップディレクトリに移動
 $ cd choreonoid
 $ ccmake .

cmakeの画面が表示されるのでGRASP_PLUGINS項目にRobotInterfaceを追加し、cキーを押しconfigureを行い、gキーを押しmakeファイルを生成してください。
最後にmakeを実行し、choreonoidをビルドします。
 $ make

http://openrtm.org/openrtm/ja/node/30 を参考にOpenRTPをインストールしてください。

2.使用方法

2.1設定

HiroNXProvider

ロボットとHiroNXProviderとを接続するときのパラメータを設定します。
設定するファイルはhrgPlugin/RobotModels/HIRO/NextageInterface下にある

です。
.robotnameにはロボットのRTコンポート名を記述します。(例 RobotHardware0)
.robothostにはロボットのネームサーバのホスト名/IPアドレスとポート番号を指定します。(例 hiro011:15005)

HandManipProvider

HandManipProviderの設定ファイルを編集します。対象ファイルは”.port”です。
ハンドと接続しているUSBシリアルのデバイスファイル名を記述します。
通常は/dev/ttyUSB0です。

2.2起動

初めに、ロボットを起動します。ロボットのネームサーバの起動前にHiroNXProviderを起動するとロボットとHiroNXProviderが接続できなくなります。
次にHiroNXProvider, HiroNXGUI, HandManipProvider, PortDuplicator, Choreonoidを起動します。

2.3接続

各プログラムを接続します。

GUIによる接続

RTシステムエディタ(eclipse)を起動します。
メニューからウインドウ→パースペクティブを開く→その他を選択するとパースペクティブ選択画面が表示されますのでRT System Editorを選択します。
左側に"Name Service View"が現れます。
Name Service ViewにArmController0|rtc, HandManipContrller|rtc, HiroNXGUI0|rtc, HiroNXProvider0|rtc, PortDuplicator0|trcがあれば、各RTコンポーネントは正常に起動しています。
ツールバーの"Open New System Editor"(図中①)をクリックするとSystem Diagramウィンドウが表示されます。ここに先ほどのRTコンポーネントをドラッグアンドドロップします。
下記表のポートペアを接続します。
コンポーネント名 ポート名 コンポーネント名 ポート名
HiroNXGUI0 HiroNX PortDuplicator0 HiroNX
HiroNXGUI0 HIRO PortDuplicator0 HIRO
ArmController0 HiroNX PortDuplicator0 HiroNX
ArmController0 HIRO PortDuplicator0 HIRO
PortDuplicator0 HiroNX0 HiroNXProvider0 HiroNX
PortDuplicator0 HIRO0 HiroNXProvider0 HIRO
PortDuplicator0 HiroNX1 HandManipProvider0 HiroNX
PortDuplicator0 HIRO1 HandManipProvider0 HIRO

AllActiveボタン(図中②)を押しRTコンポーネントをアクティブにします。

NextageInterface_rtsystemeditor.png

コマンドによる接続

以下のコマンドを入力することにより、上記のGUIによる接続と同じRTコンポーネントの接続を実現することができます。

 $ source `rospack find openrtm_tools`/scripts/rtshell-setup.sh
 $ rtcwd /localhost
 $ rtcon $host/HiroNXGUI0.rtc:HiroNX $host/PortDuplicator0.rtc:HiroNX
 $ rtcon $host/HiroNXGUI0.rtc:HIRO $host/PortDuplicator0.rtc:HIRO
 $ rtcon $host/ArmController0.rtc:HiroNX $host/PortDuplicator0.rtc:HiroNX
 $ rtcon $host/ArmController0.rtc:HIRO $host/PortDuplicator0.rtc:HIRO
 $ rtcon $host/PortDuplicator0.rtc:HiroNX0 $host/HiroNXPorvider0.rtc:HiroNX
 $ rtcon $host/PortDuplicator0.rtc:HIRO0 $host/HiroNXProvider0.rtc:HIRO
 $ rtcon $host/PortDuplicator0.rtc:HiroNX1 $host/HandManipProvider0.rtc:HiroNX
 $ rtcon $host/PortDuplicator0.rtc:HIRO1 $host/HandManipProvider0.rtc:HIRO
 $ rtact $host/HiroNXGUI0.rtc $host/HiroNXProvider0.rtc $host/ArmController0.rtc $host/PortDuplicator0.rtc $host/HandManipProvider0.rtc

2.4初期操作

HiroNXGUIの"Set up Robot"ボタンをクリックし、HiroNXProviderとロボットの接続を行います。
HiroNXGUIの"Calibrate Joints"ボタンをクリックし、キャリブレーションを行います。
HiroNXGUIの"Go Initial"ボタンをクリックし、ロボットを初期姿勢にします。

NextageInterface_HiroNXGUI.png

2.5Choreonoidからのロボット動作送信

Choreonoidで動作を生成します。
ChoreonoidのInterfaceツールバーの"Move"ボタンをクリックすると生成した動作をロボットへ送信されロボットが動作します。

3.その他

ローカルでHiroNXProvider/HiroNXGUIをテストする方法

HiroNXProvider/HiroNXGUIの動作を実機に接続して試すのではなくシミュレー
ション上で試すには以下の手順を行ないます。

HiroNXProviderの.robothostファイルを以下の内容に書き替えます。

 localhost:15005

HiroNXProviderの.robotnameファイルを以下の内容に書き替えます。
 HiroNX(Robot)0

以下のコマンドによりhrpsys-simulatorを起動します
  $ source `rospack find openrtm_tools`/scripts/rtshell-setup.sh
  $ rtmlaunch hironx_ros_bridge hironx_startup.launch

後は、実機で接続したときと同じ手順を実行します。