Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add gym-environment (parallel bars) #317

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

kazu-robo
Copy link
Contributor

add cnoid file for parallel bars

@YoheiKakiuchi
Copy link
Member

大学院に行くと、授業で習ったりするんですが、
https://github.com/YoheiKakiuchi/robotsimulation-docker/tree/master/choreonoid_docker

以下のように立ち上げると、

rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch LOAD_OBJECTS:=true ENVIRONMENT_YAML:=/robotsimulation-docker/choreonoid_docker/footsal.yaml

このようなyamlファイルを書くことで.cnoidファイルを作らずに環境構築できます

https://github.com/YoheiKakiuchi/robotsimulation-docker/blob/master/choreonoid_docker/footsal.yaml

また、

rtmlaunch hrpsys_choreonoid_tutorials create_environment_example.launch

とすると、

yamlファイルに記述して、
https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/config/create_environment_sample.yaml

ロボットの初期位置や関節角度まで指定することができます。

@YoheiKakiuchi
Copy link
Member

@kazu-robo
このPR生成ファイルとかも含まれちゃってるのだけど、それを抜いてキレイにしてもらえないかな?

@YutaKojio @yuki-shark
いい感じの環境作ってたと思うのだけどPRしてもらえないかな

@YutaKojio
Copy link
Contributor

@yuki-shark のPCで作業していて僕のブランチにはないので,@yuki-shark お願いします.

@kazu-robo
Copy link
Contributor Author

整理したつもりでいます。不備があったらご指摘ください。

(PRだしたブランチだということを忘れてしばらく作業を続けてしまっていたようで、
当初の平行棒環境以外は消したほうがよいかもと思っています、
座るための箱をおいてる程度の環境でしかないなので)

@yuki-shark
Copy link
Contributor

@YoheiKakiuchi @YutaKojio
遅くなりましたが, #329 で凸凹した環境や,足場に段差がある環境(周りの壁や木のオブジェクトなども含め)を追加する PR を投げました.

@YoheiKakiuchi
Copy link
Member

@kazu-robo
コミットまとめられるかな。

あと、
@yuki-shark @kazu-robo
.cnoidがどんどん増えてゆくので、以下の方法でyamlを作ってみましょう

大学院に行くと、授業で習ったりするんですが、
https://github.com/YoheiKakiuchi/robotsimulation-docker/tree/master/choreonoid_docker

以下のように立ち上げると、

rtmlaunch hrpsys_choreonoid_tutorials jaxon_red_choreonoid.launch LOAD_OBJECTS:=true ENVIRONMENT_YAML:=/robotsimulation-docker/choreonoid_docker/footsal.yaml

このようなyamlファイルを書くことで.cnoidファイルを作らずに環境構築できます

https://github.com/YoheiKakiuchi/robotsimulation-docker/blob/master/choreonoid_docker/footsal.yaml

また、

rtmlaunch hrpsys_choreonoid_tutorials create_environment_example.launch

とすると、

yamlファイルに記述して、
https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/config/create_environment_sample.yaml

ロボットの初期位置や関節角度まで指定することができます。

@yuki-shark
Copy link
Contributor

yuki-shark commented Apr 27, 2020

@YoheiKakiuchi
コメントありがとうございます. yaml でも環境設定が出来るんですね,知りませんでした...
yaml の方が cnoid に比べて簡潔に書けるのは良さそうですね.

以下2点質問です.

  • cnoid ファイルは choreonoid 上で試行錯誤しながら物体の位置を色々変えてから project を保存してあったものを cnoid.in 用に path だけ書き換えるという作り方をしているのですが, yaml ファイルを作成する場合はどのような作り方をされているでしょうか.(cnoid ファイルから簡単に生成できるのかといったことが知りたいです)
  • 環境を作るごとに cnoid ファイルが増えるのは微妙だと思いますが, yaml でもファイル自体は環境ごとに作らなければいけないという認識で正しいでしょうか.
    -> もしかして cnoid で書くと CMakeLists.txt がそれでいっぱいになるのが微妙ということでしょうか.

@YoheiKakiuchi
Copy link
Member

さすがに全部変えるのは現実的でない気がするので、こちらの環境作る方で構わないと思います。

ENVIRONMENT_YAML:=/robotsimulation-docker/choreonoid_docker/footsal.yaml

環境の作り方は、そんな感じかと思います。
cnoidから作れると確かに良いのだけど、yamlに転写するのはそんなに問題ないんじゃ無いかな、ファイル名とposとrotをコピペするだけでいい。

ファイル名は、$(find jvrc_model)/ の形でかけて .in ファイルを作る必要がなくなる。
https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/config/create_environment_sample.yaml#L5

これの一番の利点は、ロボットと環境が分離すること。
環境の定義ファイルは作らざるを得ないが、つくったファイルはロボット間でシェアできる。
なので、jaxonとHRP2、CHIDORIで同じ環境をファイルを増やさずにシェアできる。

最終的にはWRS方式の方がすんなりしている気がする。
あれは、ROBOT.cnoidとENVIRONMENT.cnoidがあって、pythonスクリプト(choreonoid内で走るもの)で上手くロードしている。

@kindsenior
Copy link
Contributor

最終的にはWRS方式の方がすんなりしている気がする。
あれは、ROBOT.cnoidとENVIRONMENT.cnoidがあって、pythonスクリプト(choreonoid内で走るもの)で上手くロードしている。

この点なんですけど,環境ごとに異なるロボットの初期位置を保存できる方がいい気がしていて,それは簡単に実現できるんでしょうか?

@YoheiKakiuchi
Copy link
Member

この点なんですけど,環境ごとに異なるロボットの初期位置を保存できる方がいい気がしていて,それは簡単に実現できるんでしょうか?

いまのところ、これが問題かな。
Hotfix としては、環境自作の場合は環境の方を既存ロボット初期位置に合わせる。
あと、値をどうやって渡そうかなという問題はありつつも、スクリプトならなんとでもできるので今後は改善していくはず。

@yuki-shark
Copy link
Contributor

@YoheiKakiuchi
cnoid.in ファイルを yaml ファイルに移植しているのですが,デフォルトで invisible にするような変数の設定方法などご存じないでしょうか.(ドキュメントを探したのですが見つけられませんでした...)
使いたい場面としては,「周りを囲う壁が必要だが,ロボットが隠れてしまうため毎回 choreonoid を立ち上げてから消したくない」といったところです.

@YoheiKakiuchi
Copy link
Member

cnoid.in ファイルを yaml ファイルに移植しているのですが,デフォルトで invisible にするような変数の設定方法などご存じないでしょうか.(ドキュメントを探したのですが見つけられませんでした...)

いまのところ無いね。
yamlにそうなってほしいobjectに、checked: false みたいなのを加えておくと、今後のPRで消えるようになるかもしれない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants