2023年10月29日日曜日

ros2のパッケージ情報はROS Indexから辿るのが良い


背景

ros2のteleop_twist_keyboardに変更を加えるためソースコードをダウンロードして試行錯誤していたところ、google検索に出てくるros1の顔ぶれがcontributorに多いリポジトリではなく、ROS Indexで辿って判明した別のリポジトリがrollingのパッケージとして配布されていると分かりました。

ROS Indexのページはこちらです。
https://index.ros.org/

備忘録として検索と参照方法を記事にします。

使ったもの

使ったPC: ros-rollingをインストールしたubuntu22.04
辿る対象: teleop-twist-keyboard

ros2 pkg xmlコマンドでパッケージ情報を確認可能

下記コマンドでパッケージのxmlを表示できます。
ros2 pkg xml パッケージ名

記事を書いている時点でのrollingのteleop-twist-keyboardはこのように表示されました。
ros2 pkg xml teleop_twist_keyboard
<package format="2">
<name>teleop_twist_keyboard</name>
<version>2.3.2</version>
<description>
A robot-agnostic teleoperation node to convert keyboard commands to Twist
messages.
</description>

<maintainer email="clalancette@openrobotics.org">Chris Lalancette</maintainer>

<license>BSD License 2.0</license>

<url type="website">http://wiki.ros.org/teleop_twist_keyboard</url>

<author email="namniart@gmail.com">Austin Hendrix</author>
<author>Graylin Trevor Jay</author>

<exec_depend>geometry_msgs</exec_depend>
<exec_depend>rclpy</exec_depend>

<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>

<export>
<build_type>ament_python</build_type>
</export>
</package>

Graylin Trevor Jayさんが管理するバージョン2.3.2のパッケージと分かります。
(xml上のurlがros1のteleop-twist-keyboardのwikiになっているので削除の要望(pull request)を送りました。)

ROS Indexでパッケージを検索してリポジトリを確認

ROS Indexとはros1とros2のパッケージ情報を検索できるページです。

https://index.ros.org/

google検索で出てくるリポジトリは、ros1のだったり、ros2向けなものの管理されてなかったりするので、該当するパッケージのリポジトリはROS Indexから辿るのが確実です。

「teleop_twist_keyboard」と検索してrollingのパッケージを探します。
スペース区切り「teleop twist keyboard」やケバブケース「teleop-twist-keyboard」の検索では似た名前の別のパッケージも出てくるので、スネークケース「teleop_twist_keyboard」で検索するのが今回は都合が良かったです。

Serach: teleop_twist_keyboard

rolling版のteleop_twist_keyboardがあるので、それのNameのリンクを押して詳細を確認します。
(なお、不具合なのか、Repoのリンクでもリポジトリに飛ばずROS Indexの詳細ページに移ります。)


詳細ページの Repository Summary の Checkout URI がリポジトリのリンクです。


リポジトリのurlが分かりました。

https://github.com/ros2/teleop_twist_keyboard

リポジトリ内のpackage.xmlはros2 pkg xmlで表示した内容と同じなので、間違い無さそうです。

google検索で先頭に出てくるリポジトリは配布版のリポジトリではないことがある

「ros2 teleop twist keyboard github」で検索すると下記のリポジトリが先頭に表示されます。

https://github.com/rohbotics/ros2_teleop_keyboard

ros1のrosserialを管理していたMike Purvisさんがcontributorに入っているのでこれが本家かと思いきや、2016年(8年前)が最後の更新で、バージョンが0.0.0とコマンドで確認した番号と合わない、rollingのteleop-twist-keyboardとは異なるリポジトリです。

teleop_twist_keyboardのrollingで使われるリポジトリはフォーク元がros1のリポジトリですが、実装内容はgoogle 検索で先頭に表示されたリポジトリが主なのでどうしてこうなったのか疑問です。

このため、google検索で出てくるものよりROS Indexで検索して辿ったリポジトリを見るのが良いです。

おわり

ros2 pkg xmlコマンドでパッケージのバージョンを確認し、それと合致するバージョンのリポジトリをROS Indexを通して把握できました。
google検索で先頭に出てきたリポジトリを確認せずに使うと、コードが古くて実行環境を整えるのに時間がかかったり、使っているパッケージとは異なるものだったりするので、ROS Indexを通して探すのが良いです。

参考

ROS Indexです。ここでパッケージを検索できます。
https://index.ros.org/

ros2 rollingで使われているteleop-twist-keyboardのコードを管理するリポジトリです。
https://github.com/ros2/teleop_twist_keyboard

google検索で「ros2 teleop twist keyboard github」で検索すると、記事を書いている時点で先頭に出てくるリポジトリです。(しかし、rollingで使われているものではない)
https://github.com/rohbotics/ros2_teleop_keyboard

0 件のコメント :