GRobotPlugin for Choreonoid
Choreonoid-1.4 がリリースされましたが、GR-001または同形のRIC30の動作がおかしいとの報告がありましたので、デバッグを行いました。
色々調査したところ、おそらくロボットへのコマンド送信タイミングが速すぎるか各関節に配置したモータのIDがあっていない可能性がありました。そこで、外部の設定ファイルからモータIDの変更と最小送信インターバル時間を調整できるように改修しました。
プラグインの導入
本ページに添付した参考資料にWindows用のChoreonoid-1.4対応のプラグイン (CnoidGRobotPlugin.dll)を、"C:\Program Files (x86)\Choreonoid 1.4\lib\choreonoid-1.4"の下にコピーしてください。
設定ファイルの配置
新しいGRobotPluginでは、デフォルトでGRobot.confというファイルを設定ファイルとして使用します。設定ファイルは、Choreonoidを起動したディレクトリにおいてください。Windows用のインストーラで導入した場合、メニューからChorenoidを起動すると作業ディレクトリは、"C:\Program Files (x86)\Choreonoid 1.4"になっていますので、そのディレクトリに添付されたGRobot.confを配置してください。
添付したGRobot.confは、下記のようになっています。
JointMap: HEAD: [ 2 ] # NECK_Y BODY: [ 1 ] # CHEST_P ARM_R: [ 3, 4, 5 ] # SHOULDER_P, SHOULDER_R, ELBOW_P ARM_L: [ 6, 7, 8 ] # SHOULDER_P, SHOULDER_R, ELBOW_P LEG_R: [ 9, 11, 10, 12, 13, 14] # HIP_Y, HIP_R, HIP_P, KNEE_P, ANKLE_P, ANKLE_R LEG_L: [15, 17, 16, 18, 19, 20] # HIP_Y, HIP_R, HIP_P, KNEE_P, ANKLE_P, ANKLE_R MinTimeout: 50
上記のファイルで、該当した関節にモータが配置されていない場合には、モータIDとして "-1" を記入してください。"-1"をモータIDに持つ関節には、動作命令が送信されなくなります。
また、設定ファイルを修正して再読込する場合には、プロパティウィンドウに ConfigFileという項目がありますので、その項目を選択&ENTERで再読込を行います。
なお、設定ファイルを "Prpgram Files (x86)" 以下に配置した場合、修正等には管理者権限が必要になりますので注意してください。
また、MinTimeoutに設定された値は、単位がmsecになっています。上記の設定では、最後に送信されたコマンドから50msec以内のコマンド送信は無視するようにしています。
通常は、10msecで十分だとは思います。
このプラグインを使用し何か不具合がありましたら、OpenRTMまたはChoreonoidのMLに投稿をお願いします。
資料