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 eusgazebo package #29

Closed
wants to merge 24 commits into from
Closed

Conversation

mmurooka
Copy link
Member

gzserverをバックグラウンドで起動して,
eusモデルをその場でurdfに変換してgazboシミュレーション環境に追加し,
動力学シミュレーション結果をeusモデルに反映させirtviewerに描画するプログラムです.

gazeboのウィンドウを立ち上げることなくirtviewerを見ながら,
eusのコマンドでシミュレーション開始・終了,モデル追加,モデル移動,結果取得などができるので,
インタラクティブ性が向上してシミュレーションが使いやすくなると思います.

どこに置くかは迷いましたが,
hrpsysに依存しないのでrtm-ros-roboticsではなく,
jsk-ros-pkgの中ではここが適しているかと思いました.

コア部分は実装して,以下のテスト関数で,
arrowモデルが地面の上で転がるシミュレーション結果が描画されるはずです.

roscd eusgazebo/euslisp; roseus eusgazebo.l "(test)"

@garaemon
Copy link
Member

catkin対応してくれると嬉しいです。
あと、testという関数名は変えると良いと思います。

2014年3月29日土曜日、[email protected]さんは書きました:

gzserverをバックグラウンドで起動して,
eusモデルをその場でurdfに変換してgazboシミュレーション環境に追加し,
動力学シミュレーション結果をeusモデルに反映させirtviewerに描画するプログラムです.

gazeboのウィンドウを立ち上げることなくirtviewerを見ながら,
eusのコマンドでシミュレーション開始・終了,モデル追加,モデル移動,結果取得などができるので,
インタラクティブ性が向上してシミュレーションが使いやすくなると思います.

どこに置くかは迷いましたが,
hrpsysに依存しないのでrtm-ros-roboticsではなく,
jsk-ros-pkgの中ではここが適しているかと思いました.

コア部分は実装して,以下のテスト関数で,
arrowモデルが地面の上で転がるシミュレーション結果が描画されるはずです.

roscd eusgazebo/euslisp; roseus eusgazebo.l "(test)"


You can merge this Pull Request by running

git pull https://github.com/mmurooka/jsk_roseus eusgazebo-devel

Or view, comment on, or merge it at:

#29
Commit Summary

  • added eusgazebo
  • added eusgazebo/euslisp/eusgazebo-core.l
  • implemtented core part of eusgazebo. you can execute test program by
    roseus eusgazebo.l "(test)"
  • added jsk_model_tools to depand packages

File Changes

Patch Links:


Reply to this email directly or view it on GitHubhttps://github.com//pull/29
.

from iPhone

@garaemon
Copy link
Member

とおもったら、catkinのみに対応してるのですね。
rosbuildの対応もやってくれると嬉しいです

2014年3月29日土曜日、Ryohei [email protected]さんは書きました:

catkin対応してくれると嬉しいです。
あと、testという関数名は変えると良いと思います。

2014年3月29日土曜日、mmurooka<[email protected]javascript:_e(%7B%7D,'cvml','[email protected]');

さんは書きました:

gzserverをバックグラウンドで起動して,
eusモデルをその場でurdfに変換してgazboシミュレーション環境に追加し,
動力学シミュレーション結果をeusモデルに反映させirtviewerに描画するプログラムです.

gazeboのウィンドウを立ち上げることなくirtviewerを見ながら,
eusのコマンドでシミュレーション開始・終了,モデル追加,モデル移動,結果取得などができるので,
インタラクティブ性が向上してシミュレーションが使いやすくなると思います.

どこに置くかは迷いましたが,
hrpsysに依存しないのでrtm-ros-roboticsではなく,
jsk-ros-pkgの中ではここが適しているかと思いました.

コア部分は実装して,以下のテスト関数で,
arrowモデルが地面の上で転がるシミュレーション結果が描画されるはずです.

roscd eusgazebo/euslisp; roseus eusgazebo.l "(test)"


You can merge this Pull Request by running

git pull https://github.com/mmurooka/jsk_roseus eusgazebo-devel

Or view, comment on, or merge it at:

#29
Commit Summary

  • added eusgazebo
  • added eusgazebo/euslisp/eusgazebo-core.l
  • implemtented core part of eusgazebo. you can execute test program
    by roseus eusgazebo.l "(test)"
  • added jsk_model_tools to depand packages

File Changes

Patch Links:


Reply to this email directly or view it on GitHubhttps://github.com//pull/29
.

from iPhone

from iPhone

## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この行とその下のcatkin_packageは必要でしょうか?

@mmurooka
Copy link
Member Author

作業途中のメモです.

修正した点

  • rosbuild, catkin対応(makeは通っていませんが.)
  • テストプログラム追加
  • 自動生成ファイルのコメント行を削除
  • eus2urdf_for_gazebo.py の addし忘れ

catkin_make test --pkg eusgazebo
でarrowモデルが地面の上で転がるテストシミュレーションが実行されるはず.

以下の問題でまだtravisでmakeが通っていません.
調べながら修正中です.

  • rosbuildでgazebo_rosの依存関係を正しく記述
    -- ros-groovy-gazebo-ros-currentを入れさせたい
  • roseusのメッセージファイルのgenerateをmakeの過程でやる
    -- gazebo_msgsのgenerateが必要
  • install時はcollada_to_urdfでエラーになる
  • rostestで正常時もエラー時も,tests,errors,failuaresが全て0になる

@k-okada
Copy link
Member

k-okada commented Mar 30, 2014

まだ,これでOKというようなプロセスが言い切れるレベルまで理解してはいませんが,だいたいこういう雰囲気ではないかとおもいます.

rosbuildでgazebo_rosの依存関係を正しく記述
-- ros-groovy-gazebo-ros-currentを入れさせたい

rosdepにデータがあるからポイントになります.
最終的には https://github.com/ros/rosdistro/blob/master/{groovy,hydro}/distribution.yaml を見ると良いですが,

$ rosdep resolve gazebo_ros_pkgs --rosdistro=hydro
#apt
ros-hydro-gazebo-ros-pkgs
$ rosdep resolve gazebo_ros_pkgs --rosdistro=groovy
ERROR: no rosdep rule for 'gazebo_ros_pkgs'

というふうにして両方あるパッケージを探します.無いとこれはしょうがないので,自分でダウンロードして使う,という方向性になります.
その場合は,
https://github.com/jsk-ros-pkg/jsk_common/blob/master/jsk_ros_patch/multi_map_server/catkin.cmake
のdownload_package_for_groovy が使えると思います.

ところでeusgazeoのgazeboはHydroだと何を入れるのかな?あまりにもgroovy/hydroの違いが大きいのはgroovyは諦めてもいいかとは思います.(使える人が減っちゃいますが,,)

実際にdebにするときは以下のようにしてリリースリポジトリにパッチを充てることができます.
https://github.com/tork-a/jsk_common-release/blob/patches/debian/groovy/multi_map_server/0001-add-ros-groovy-navigation.patch

roseusのメッセージファイルのgenerateをmakeの過程でやる
-- gazebo_msgsのgenerateが必要

#14 (comment)
と同じ状況という理解でいいですか?
#32
で対応するので,見守っていて下さい.

install時はcollada_to_urdfでエラーになる

jsk-ros-pkg/jsk_model_tools#12 を見て下さい.

rostestで正常時もエラー時も,tests,errors,failuaresが全て0になる

これはおかしいですね.一昨日ぐらいはeusが途中で死んでいるとそうなっていましたが,https://github.com/euslisp/EusLisp/pull/7/files で直して,
https://github.com/jsk-ros-pkg/jsk_roseus/blob/master/euslisp/test/unittest.l
で確認しているはずです.

@mmurooka
Copy link
Member Author

eusgazeoのgazeboはHydroだと何を入れるのかな?

groovy, hydroでそれぞれ,
ros-groovy-gazebo-ros-pkgs-current, ros-hydro-gazebo-ros-pkgs-current
を入れたいです.
rosdep resolveで見てみましたが,
groovy/hydroで共通にはできなさそう(そもそもgroovyでは見つからない)ので,
download_package_for_groovy を見てみようかと思います.

#14 (comment)
と同じ状況という理解でいいですか?

travisのテスト結果: https://s3.amazonaws.com/archive.travis-ci.org/jobs/21863614/log.txt
でtest時に以下のようなエラーになります.

�[0meustf roseus_c_util �[31m[ERROR] [1396165429.073537948]: Could not find /home/travis/.ros/roseus/groovy/gazebo_msgs/manifest.l
try rosrun roseus generate-all-msg-srv.sh gazebo_msgs�[0m
�[1;31m/home/travis/ros/ws_jsk_roseus/src/jsk_roseus/euslisp/jskeus/eus/Linux64/bin/irteusgl roseus-error: no such package GAZEBO_MSGS in (apply #'ros::load-org-for-ros fname args), 

package.xmlの中で<run_depend>にgazebo_rosを書いていて,これはgazebo_msgsに依存しているのですが,
何か書き足りないでしょうか,待っていれば大丈夫でしょうか.

install時はcollada_to_urdfでエラーになる
rostestで正常時もエラー時も,tests,errors,failuaresが全て0になる

も確認してみます,ありがとうございます.

@k-okada
Copy link
Member

k-okada commented Mar 31, 2014

package.xmlの中でにgazebo_rosを書いていて,これはgazebo_msgsに依存しているのですが,
何か書き足りないでしょうか,待っていれば大丈夫でしょうか.

これは違う例に見えます.たぶんですが,generate_messages(DEPENDS ...)に入れるか,gaazebo_msgs_generate_messages_eusへの依存関係を書いてあげる必要があると思います.

また,eusgazebo が euscollladaに依存して,euscolladaがroseusに依存しているとなると置き場はもう少し考えたほうが良さそうですね.

@garaemon
Copy link
Member

garaemon commented Apr 1, 2014

jsk_pr2eusかjsk_controlに置くのでしょうか?

@garaemon
Copy link
Member

garaemon commented Apr 1, 2014

groovy, hydroでそれぞれ,
ros-groovy-gazebo-ros-pkgs-current, ros-hydro-gazebo-ros-pkgs-current

これは重要なポイントが隠れている気がします。標準ではdrcsimを入れるという流れで良いのでしょうか?

drcsim-groovyとdrcsim-hydroはお互いに衝突するので、同時に入れられませんが、gazebo currentは両方入りますね。

@mmurooka
Copy link
Member Author

mmurooka commented Apr 1, 2014

また,eusgazebo が euscollladaに依存して,euscolladaがroseusに依存しているとなると置き場はもう少し考えたほうが良さそうですね.

はい,jsk_controlにしようかと思います.
jsk_controlが新しくjsk_model_toolsに依存することになりそうです.

これは重要なポイントが隠れている気がします。標準ではdrcsimを入れるという流れで良いのでしょうか?

gazebo系統とgazebo-current系統がありますが,
gazebo-current系統でいいのではないかと思います.
drcsimもgazebo-current系統ですね.

drcsim-groovyとdrcsim-hydroはお互いに衝突するので、同時に入れられませんが、gazebo currentは両方入りますね。

そのようですね.
jsk-ros-pkgの中では,gazebo-currentまで入れることにして,drcsimまでを必須にする必要はなさそうに思います.

@garaemon
Copy link
Member

garaemon commented Apr 1, 2014

では、gazebo-current系列を使うことにしましょう。

jsk_model_toolsにいれちゃってもよいかもと思いましたがどうでしょうか.

jsk_roseusはjsk_model_toolsには依存させたくないですね。

@mmurooka
Copy link
Member Author

mmurooka commented Apr 2, 2014

では、gazebo-current系列を使うことにしましょう。

はい,今思い出しましたが,
currentを使うにはリポジトリを追加しないといけなかったです.
http://gazebosim.org/wiki/DRC/Install
問題ないでしょうか.

@mmurooka
Copy link
Member Author

mmurooka commented Apr 2, 2014

jsk_model_tools に移そうかと思いますが,
初歩的な質問ですが,gitのログを残しながらリポジトリを移す方法ってありますでしょうか.
大変そうならそのまま移すのでもいいかもしれませんが.

@k-okada
Copy link
Member

k-okada commented Apr 2, 2014

初歩的な質問ですが,gitのログを残しながらリポジトリを移す方法ってありますでしょうか.

https://subtech.g.hatena.ne.jp/secondlife/20101108/1289221814 とかでしょうか.

jsk_model_toolsにいれちゃってもよいかもと思いましたがどうでしょうか.

だいじょうぶかな.jsk_model_toolsもかなりdebリリースしやすい(したい)パッケージかと思って
狙っているんですが,あまり上流のリポジトリにいれると波及効果が広くなりすぎるので色々な
プレッシャがかかって来ますね.例えばjsk_model_toolsはjsk-ros-pkg側とhrpsys_ros_bridge側の
両方で利用されているので,両方を見ておく必要が出てきそうです.

また,リポジトリの追加が必要なものをdeb化したときはdependに工夫がいりそうですね.
ところで,eus2urdf_for_gazebo.py も必要としつつ,jsk_model_toolsも使うのはどういう背景でしょうか.
モデル変換については,
jsk-ros-pkg/jsk_common#219
でも議論されていますが,jsk_model_toolsではできるだけ変換パスを制限して余計な手間がかからない
ようにしようとしているものの,パッケージの中に独自の変換プログラムを持つのはそういう外部の変換ツールに
依存せず全部うちわで閉じようという方向にも見えます.jsk_model_toolsが必要な理由は?あるいは,eus2urdf_for_gazebo.pyが必要な理由が知りたいです.例えば是初内側に閉じれれば,
当初の予定通りjsk_roseusにいれて,travisではgazebo-currentをインストールしてテストしつつ,
debの時はそこは各自でやって下さい,というようなスタイルもあり得るかな,とも思います.

@mmurooka
Copy link
Member Author

mmurooka commented Apr 2, 2014

jsk_model_toolsが必要な理由は?あるいは,eus2urdf_for_gazebo.pyが必要な理由が知りたいです.

インタラクティブにeusからgazeboにモデルを追加できるように
irtmodelを実行中にその場でurdfに変換してgazeboに追加しています.
eus から urdf への変換には,
irteusの(collada::eus2collada) と,
collada_toolsのcollada_to_urdf を使っています.

eus2urdf_for_gazebo.py はほとんどcollada_to_urdfを呼んでいるだけなのですが,

  • gazeboの決まりとしてモデルファイル一つづつディレクトリを作ってその中にmodel.configを置かないといけない
  • デフォルトだとinertiaが小さすぎてシミュレーションがおかしくなるので,inertiaを上書きする

などをしています.

できることならあまり各所からのプレッシャのかからないところがいいですね..

@mmurooka
Copy link
Member Author

rtmros_gazeboへ移します.

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.

3 participants