経緯
ROS2を触って以来,チュートリアルに従ってなんとなくsourceコマンドを打っていたが,これは何をしているのか?と疑問に思ったのでこの記事を書いてみました.
前提
OS:Ubuntu 22.04 LTS(Linux)
ROS2 : Humble
本件ではあまり環境は関係ないかもしれません.
本題 新しい shell を開くごとに source する理由
ROS2で,shellを開くたびに以下のコマンドを毎回実行しなくてはならない理由は,環境変数をそのshellに読み込ませる必要があるからです.
source install/setup.bash
そもそも,sourceとはなにか.
sourceとは,現在の shell に設定を読み込むコマンドです.
例えば,一つ目の shell で何かを build して実行していたとして,新しい shell を開いて source せずに以下を実行すると:
ros2 topic echo <トピック名>
次のようなエラーが出ることがあります:
ros2: command not found
これは,環境変数が設定されていないために起こります.ROS2に関する環境変数は/opt/ros/humble/setup.bash に書かれているので,
source /opt/ros/humble/setup.bash
を実行すれば上記のエラーは出なくなります.build した後に行う
source install/setup.bash
も同様です.ここには,自分の作成した package に関する環境変数を設定するスクリプトが含まれており,このコマンドを実行することで自分で build した package を ROS2 上で認識できるようになります.
最後に
この記事がお役に立てれば幸いです.