[ROS Noetic] catkin build が使えない…?の解決策
はじめに
ROSでワークスペースをビルドをするとき、ROS Wikiでは
「catkin_make」というコマンドを使っています。
ところが調べてみるとcatkin_makeを改善した
「catkin build」というコマンドがあるようです。
catkin build については下の記事がわかりやすくまとめてありました。 miyutomori.com
ではいざ使おうとインストールしようとすると、
$ sudo apt install python-catkin-tools (略) インストールすることができないパッケージがありました、おそらく、あり得ない状況を要求したか、(不安定版ディストリビューションをしているのであれば)必要なパッケージがまだ作成されていなかったりIncomingから移動されていないことが考えられます。 (略) 以下のパッケージには満たせない依存関係があります: python-catkin-tools : 依存:python-catkin-pkg (>=0.2.9) しかし、インストールすることができません。 依存:python-osrf-pycommon しかし、インストールすることができません。 E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
とエラーが出てインストールできませんでした。
依存関係にあるパッケージが存在しないせいでインストールできないということですかね。
というわけで解決策を探しました。
先に結論だけ
sudo apt install python3-osrf-pycommon python3-catkin-tools
これで catkin build が使えるようになりました。
解決に至った経緯
python3-catkin-tools を発見
「Python2.7が2020/1/1にサポート終了したため
ROS Noetic は Python3のみ対象になる」
と ROS Wiki に書いてあります。
wiki.ros.org
Python3版のcatkin-toolsが出ているのでないかと思い、
apt search でパッケージの検索してみました。
$ apt search catkin-tools python-catkin-tools/... python3-catkin-tools/...
ありましたね。
python3-catkin-toolsのインストール
$ sudo apt install python3-catkin-tools
でエラーも出ずにインストールができました。
しかし、使えるかどうか確かめるためにヘルプを見ようとすると…
$ catkin -h Traceback (most recent call last): (略) pkg_resources.DistributionNotFound: The 'osrf-pycommon>0.1.1' distribution was not found and is required by catkin-tools
catkin-toolsに必要な'osrf-pycommon>0.1.1'がないと言われてますね。
python3-osrf-pycommonのインストール
先ほど出た
pkg_resources.DistributionNotFound: The 'osrf-pycommon>0.1.1' distribution was not found and is required by catkin-tools
というエラーをそのままコピーして検索をかけると、
github.com
このページに辿り着きました。
catkin-toolsのIssueですね。
9/7のmintarさんのコメントを見ると、
Yes, all that's still missing is the apt dependency. If you manually install python3-osrf-pycommon, everyhing works:
sudo apt-get install python3-osrf-pycommon python3-catkin-tools
「aptの依存関係が足りないから手動で python3-osrf-pycommon をインストールすると解決するよ。」
とのことなので、
$ sudo apt install python3-osrf-pycommon
を実行すると、catkin build が使えるようになりました。
解決したけど…
catkin-tools がインストールできました。
catkin build も "Build Succeeded!" と言ってるので無事ビルドできたのでしょう。
ただ、catkin-toolsの公式ドキュメントのインストールページでは、 catkin-tools.readthedocs.io python3-catkin-toolsについて言及してなさそうなんですよね。
今python3-catkin-toolsがどういう扱いか、ROS Noetic で正式にサポートしているか
もう少しGitHubのIssue読んでみたりして確認してみようと思います。
今日はここまで。 お付き合いありがとうございました!