start-jsk / rtmros_choreonoid

using chreonoid for simulator with hrpsys and other ros system
9 stars 43 forks source link

add SampleRobot HRP2JSK HRP2JSKNT HRP2JSKNTS choreonoid #328

Open Naoki-Hiraoka opened 4 years ago

Naoki-Hiraoka commented 4 years ago

このPRはhttps://github.com/start-jsk/rtmros_choreonoid/pull/326 を含んでいます https://github.com/start-jsk/rtmros_hrp2/pull/555 https://github.com/start-jsk/rtmros_hrp2/pull/565 https://github.com/start-jsk/rtmros_tutorials/pull/583 https://github.com/start-jsk/rtmros_tutorials/pull/591 が必要です

HRP2JSK HRP2JSKNT HRP2JSKNTSをchoreonoidでシミュレーションするためのコードを追加しました. https://github.com/start-jsk/rtmros_hrp2/pull/555 のブランチのrtmros_hrp2がworkspace内にある状態でhrpsys_choreonoid_tutorialsをコンパイルしてください.

rtmlaunch hrpsys_choreonoid_tutorials hrp2jsk_choreonoid.launch

hrp2jsk_choreonoid

rtmlaunch hrpsys_choreonoid_tutorials hrp2jsknt_choreonoid.launch

hrp2jsknt_choreonoid

rtmlaunch hrpsys_choreonoid_tutorials hrp2jsknts_choreonoid.launch

hrp2jsknts_choreonoid

HRP2JSKモデルの手首に6軸のbushが付いている関係で,JAXONCustomizer.cppを四肢*6軸のbushに対応可能なように変更する必要がありました.

YoheiKakiuchi commented 4 years ago

素晴らしいですね。

気になりポイントとしては、 launchまとまったりしないかな、同じことがたくさん書いてありそう。

setup.py だけど、urataの子クラスじゃないから、robothardwareのことろコピーになるのか。。。 これは後々、なんとかします。

FLATのような環境毎のcnoid作り出すといっぱい増えていっちゃうので、floorを抜いて以下を付け加えて、 ROBOT_NAME_LOAD_OBJ.cnoid.inを作るといい。

+    - 
+      id: 8
+      name: "add_objects.py"
+      plugin: Python
+      class: PythonScriptItem
+      data: 
+        file: "@JVRC_RTC_DIRECTORY@/launch/add_objects.py"
+        executionOnLoading: true
+        backgroundExecution: false

https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/config/JAXON_RED_LOAD_OBJ.cnoid.in

で、デフォルトを以下のようにlaunchを書いたらいい。

rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch LOAD_OBJECTS:=true ENVIRONMENT_YAML:=$(rospack find hrpsys_choreonoid_tutorials)/config/floor.yaml

するとフットサル環境とかも使える。

rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch LOAD_OBJECTS:=true ENVIRONMENT_YAML:=$(rospack find hrpsys_choreonoid_tutorials)/config/footsal.yaml
Naoki-Hiraoka commented 4 years ago

melodicでもそのまま歩きました。 自分のmelodic PCだとgazeboのreal time factorは0.1倍速程度なのですが、choreonoidだと0.5倍速程度に感じます。gazeboよりもchoreonoidの方がシミュレーションが5倍くらい速いです。 hrp2jsk

hrp2jsknt

YutaKojio commented 4 years ago

自分のmelodic PCだとgazeboのreal time factorは0.1倍速程度なのですが、choreonoidだと0.5倍速程度に感じます。gazeboよりもchoreonoidの方がシミュレーションが5倍くらい速いです。

ちゃんとモデル追えてないのでもしかしたらすでにしてあるかもしれませんが,足裏をplateにするとだいぶ早くなります. https://github.com/start-jsk/rtmros_choreonoid/blob/5332aa9d8998da53d2a5aa75b84e9790fd30507b/jvrc_models/JAXON_JVRC/LLEG_LINK5_L.wrl#L3077-L3093 のようにもともとの足平モデルの最後に薄いプレートを追加してもいいし, https://github.com/start-jsk/rtmros_choreonoid/blob/5332aa9d8998da53d2a5aa75b84e9790fd30507b/jvrc_models/JAXON_JVRC/JAXON_JVRCmain_hrpsys_bush.wrl#L1475 のようにbushモデルのcollisionだけ参照する足平モデルを変えてもいいです.

Naoki-Hiraoka commented 4 years ago

launchの共通部分をまとめてrobot_choreonoid.launchとし,個々のHRP2のlaunchがこれをincludeするようにしました. ROBOT_NAME_LOAD_OBJ.cnoid.in を使う形に変更しました.

同様にしてSampleRobotのシミュレーションを追加しました. SampleRobotはforcesensorの順番が違うために,これに対応するようにiob.cppを変更しました. samplerobot_walk