choreonoid_rosのROS2移植の置き場所について

こんにちは,ハンスです.

先日,ros勉強会で発表させていただきましたが,現在choreonoid_rosのROS2移植を進めているところです(スライド参照).

現状,自前のフォークにて開発を進めているのですが,この状態はあまり良いものでは無いと考えています.
と言いますのも,私以外の開発者が開発に参加したいと思った時に,私の許可なしにマージなどの操作などができなかったり,フォークですのでGitHubのIssueなどの機能が使えないのは問題だからです.
理想的には,choreonoidのorganization内に何らかの形で元になるリポジトリを置いて,そこを中心として開発を進めるのが良いでしょう.

そこで,choreonoid_rosのROS2移植の置き場について相談させていただきたいです.

こちらでOnishiさんが述べていらっしゃるように,choreonoid_rosの中でros2ブランチを作ったり,choreonoid_ros2という別リポジトリを作るなど,様々考えられますがROSコミュニティとしてはどちらも前例がありますので基本的には開発者の中岡さんやChoreonoidコミュニティの方々が利用・開発しやすい形態をとっていただければ良いかと考えております.

1 Like

参考までに,私の意見を述べておきますが,
個人的には,こちらのスレッドで述べられていない2つの観点から同一リポジトリの中でブランチを切るのが良いと考えています.

  1. ROS/ROS2版の実装統合の可能性

    今までは,choreonoid_rosはROS1実装のみでしたが今回新たにROS2移植が発生することで,似ているが少し違う2つのコードが共存することになります.この時,別々のコードベースで管理をしているとメンテナンスコストが単純に2倍になってしまうので,何らかの方法で同一コードでROS/ROS2が扱えるようにするとこのメンテナンスコスト増大が抑えられるでしょう.この実装統合の可能性を考えると,別リポジトリではなく同一リポジトリでの管理が良いと思います.

    具体的な実装統合の方法については,以下のような方法があると思います

    • ROS/ROS2共通のインタフェースを作ることでROSを抽象化して扱えるようにしてコードを共通化
    • マクロで頑張って同一コードベースに落とし込む
  2. ROS(2)パッケージとしてChoreonoidをリリースする場合のメンテナンスコスト

    ROSパッケージとしてリリースすることがあるとすれば,ROS1/ROS2の複数のディストリビューションに対してリリースすることになると思います.
    その時,全てが1つのリポジトリにまとまっていると何かと便利かと思います.

1 Like

ハンスさん,こんにちは.

私には,権限も知識もないのですが,どなたからも反応がないので,賑やかしに返信します.ROS2版の開発を大変期待しています.ROS2でGazeboを使っていますが,遅くてうんざりしています.

コード作成のお手伝いはできないと思いますが,テスタをやらせていただきます.

1 Like

choreonoid_rosのROS2移植についてありがとうございます。
置き場についてもご提案ありがとうございます。
リポジトリがまとまっているのは確かにメリットがありますね。一方で、リポジトリを分けたほうがよいという意見もあるようですので、悩ましいところです。
この件では一度ハンスさんも含めて関係者と相談できればと思います。
結果はここでまたご報告できればと思います。

1 Like

HansRobo さん、 Yuki_Onishi さんと相談しまして、choreonoid_ros2については別リポジトリで管理することになりました。ROS1、ROS2ではroscppのAPIが異なるので、素直に書くとコードは違うものとなります。それについてハンスさんのコメントにもあるように抽象化やマクロによって共有できるコードを増やすことも考えられますが、それぞれの素のAPIを使用した方がよりシンプルで効率のよいコードにできると思われますので、そちらを重視することにしました。

ROS2用のリポジトリのアドレスは以下になります。

HansRobo さん、こちらのリポジトリにchoreonoid_ros2の現時点のコードをマージしていただけますでしょうか。よろしくお願いします。

1 Like

HansRoboさんに,ros2-devブランチとしてアップロードしていただきました.
今後しばらくはFoxyを対象にこちらで開発を行います.よろしくお願いします.

1 Like