環境の設定
目標: このチュートリアルでは、ROS 2環境の準備方法を説明します。
チュートリアルレベル: 初心者
所要時間: 5分
背景
ROS 2は、シェル環境を使用してワークスペースを組み合わせるという概念に依存しています。「ワークスペース」は、ROS 2で開発を行うシステム上の場所を指すROS用語です。コアROS 2ワークスペースはアンダーレイと呼ばれます。その後のローカルワークスペースはオーバーレイと呼ばれます。ROS 2で開発する際は、通常、複数のワークスペースを同時にアクティブにします。
ワークスペースを組み合わせることで、異なるバージョンのROS 2や異なるパッケージセットに対する開発が容易になります。また、同じコンピュータに複数のROS 2ディストリビューション(または「ディストロ」、例:DashingとEloquent)をインストールし、それらを切り替えることも可能にします。
これは、新しいシェルを開くたびにセットアップファイルをソースするか、ソースコマンドを一度シェルスタートアップスクリプトに追加することで実現されます。セットアップファイルをソースしないと、ROS 2コマンドにアクセスしたり、ROS 2パッケージを見つけたり使用したりすることができません。言い換えると、ROS 2を使用することができません。
前提条件
これらのチュートリアルを開始する前に、ROS 2インストールページの指示に従ってROS 2をインストールしてください。
このチュートリアルで使用するコマンドは、お使いのオペレーティングシステム(Linuxの場合はdebパッケージ)のバイナリパッケージインストールガイドに従ったことを想定しています。ソースからビルドした場合でも手順を追うことができますが、セットアップファイルへのパスが異なる可能性があります。また、ソースからインストールした場合は、sudo apt install ros-<distro>-<package>コマンド(初心者レベルのチュートリアルで頻繁に使用)を使用することができません。
LinuxまたはmacOSを使用しているが、シェルにまだ慣れていない場合は、このチュートリアルが役立ちます。
タスク
1 セットアップファイルのソース
ROS 2コマンドにアクセスするには、開く新しいシェルごとにこのコマンドを実行する必要があります:
Linux/macOS:
$ source /opt/ros/humble/setup.bashWindows:
> call C:\dev\ros2_humble\local_setup.batbashを使用していない場合は、.bashをお使いのシェルに置き換えてください。可能な値は:setup.bash、setup.sh、setup.zshです。
注意
正確なコマンドは、ROS 2をインストールした場所によって異なります。問題が発生した場合は、ファイルパスがインストール先を指していることを確認してください。
2 シェルスタートアップスクリプトへのソース追加
新しいシェルを開くたびにセットアップファイルをソースしたくない場合(タスク1をスキップ)、コマンドをシェルスタートアップスクリプトに追加できます:
Linux/macOS:
$ echo "source /opt/ros/humble/setup.bash" >> ~/.bashrcWindows: シェルスタートアップスクリプトを適切に設定してください。
これを元に戻すには、システムのシェルスタートアップスクリプトを見つけて、追加されたソースコマンドを削除してください。
3 環境変数の確認
ROS 2セットアップファイルをソースすると、ROS 2の操作に必要な複数の環境変数が設定されます。ROS 2パッケージの検索や使用に問題がある場合は、次のコマンドを使用して環境が適切に設定されていることを確認してください:
Linux/macOS:
$ printenv | grep -i ROSWindows:
> set | findstr ROSROS_DISTROやROS_VERSIONなどの変数が設定されていることを確認してください。
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=humble環境変数が正しく設定されていない場合は、従ったインストールガイドのROS 2パッケージインストールセクションに戻ってください。より具体的なヘルプが必要な場合(環境セットアップファイルは異なる場所から来る可能性があるため)、コミュニティから回答を得ることができます。
3.1 ROS_DOMAIN_ID変数
ROSドメインIDの詳細については、ドメインIDの記事を参照してください。
ROS 2ノードのグループ用に一意の整数を決定したら、次のコマンドで環境変数を設定できます:
Linux/macOS:
$ export ROS_DOMAIN_ID=<your_domain_id>Windows:
> set ROS_DOMAIN_ID=<your_domain_id>この設定をシェルセッション間で維持するには、コマンドをシェルスタートアップスクリプトに追加できます:
$ echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc3.2 ROS_LOCALHOST_ONLY変数
デフォルトでは、ROS 2通信はlocalhostに限定されません。ROS_LOCALHOST_ONLY環境変数を使用すると、ROS 2通信をlocalhostのみに制限できます。これは、ROS 2システム、およびそのトピック、サービス、アクションがローカルネットワーク上の他のコンピュータから見えなくなることを意味します。ROS_LOCALHOST_ONLYの使用は、複数のロボットが同じトピックにパブリッシュして奇妙な動作を引き起こす可能性がある教室などの特定の設定で役立ちます。次のコマンドで環境変数を設定できます:
Linux/macOS:
export ROS_LOCALHOST_ONLY=1Windows:
set ROS_LOCALHOST_ONLY=1この設定をシェルセッション間で維持するには、コマンドをシェルスタートアップスクリプトに追加できます:
echo "export ROS_LOCALHOST_ONLY=1" >> ~/.bashrcまとめ
ROS 2開発環境は、使用前に正しく設定する必要があります。これは2つの方法で行うことができます:開く新しいシェルごとにセットアップファイルをソースするか、ソースコマンドをスタートアップスクリプトに追加するかです。
ROS 2でパッケージの場所や使用に問題が発生した場合、最初に行うべきことは環境変数を確認し、意図したバージョンとディストロに設定されていることを確認することです。
次のステップ
ROS 2インストールが動作し、そのセットアップファイルのソース方法を知ったので、turtlesimツールでROS 2の詳細を学び始めることができます。