Choreonoid と ROSのブリッジには,現在いくつかの方法があり,大まかには下記のようになっていると理解しています.
1. choreonoid_rosplugins
@nakaoka さん謹製のプラグイン.
Choreonoid の Plugin クラスを利用するもの.
BodyPublisherのみ実装されている.
2. choreonoid_ros_pkg
@kanehiro さんの開発されているもの.
Choreonoid の Plugin クラスや ControllPlugin クラスを利用して作成されている.
すでに多くの機能が実装されており,ドキュメントも用意されている.
- WorldROS:シミュレータ自体の操作をGazeboライクにするためのもの
- BodyROS:各種センサ情報をChoreonoidから取得し,ROSのメッセージ型でPublishするもの
- hogeController:Jointを位置制御や力制御するためのもの
一方で,現在はcatkin
ビルドシステムに対応したchoreonoidをcatkin でビルドするためのパッケージ,choreonoid_ros
が内部に設置されており,choreonoidの最新のmaster
ブランチをビルド時に自動でcloneしてきてビルドするようになっている.
choreonoidがcatkinビルドシステムに対応している現在では,切り離してwstool等で管理したほうが良い…?
また,jvrc_models
等のモデル,プロジェクトファイルを格納しているパッケージも含んでいる.
3. choreonoid_ros_samples
SimpleController クラスを利用し,joy
トピックをSubscribeしてChoreonoid内のロボットを動作させるためのパッケージ
4. choreonoid_joy
cnoid::JoyStick クラスを利用してPCに接続されたジョイスティックの状態を読み取り,Choreonoid内のロボットを動作させると同時に,joy
トピックにジョイスティックの状態をPublishするためのパッケージ.
上記各パッケージの内,ROSとの通信ブリッジプログラムを新たに作成し,contributeする先のリポジトリをどれにすれば良いのかわからず,困っています.
choreonoid_rosplubins
もしくはchoreonoid_ros_pkg
のどちらかにcontributeすれば良いとは思っています.
理想はおそらく,choreonoid_ros_pkg
内のchoreonoid_plugins
をchoreonoid_ros_pkg
から切り離し(正確にはchoreonoid_ros
と切り離し)てcontributeできるリポジトリがあるのが一番良いと考えています.
しかし,切り離し作業等が必要になってしまうため,今後作成するChoreonoid ROSブリッジのcontribute先について,どのように行うのが良いかご意見を伺いたく,本トピックを立てました.
うまく話がまとめきれておらず,申し訳ないのですが,何卒よろしくお願いします.