ROS2でプログラミングするために勉強したメモです.
ここではworkspaceの作成方法を書きます.
workspaceの作成
ROS2環境をターミナルに反映
メインのROS2をunderlayに指定して,ターミナルに反映する.
source /opt/ros/<distro>/setup.bash
dashing
を使用している場合は以下となる.
source /opt/ros/dashing/setup.bash
フォルダの作成
- 新しいworkspaceごとに新しいフォルダを作成することがオススメ.
-
<workspace_name>
は,workspaceの目的を示すのに役立つ.
mkdir <workspace_name>
mkdir <workspace_name>/src
cd <workspace_name>/src
依存関係を解決する
- workspaceをビルドする前に,packageの依存関係を解決する必要がある.
- 既にすべての依存関係が解決している場合もありますが,
git clone
するたびに依存関係を確認することがお勧め. - 依存関係が正しく解決されていないために,長い待機の後にビルドが失敗するのは望ましくない.
workspaceのルートフォルダに移動し,以下を実行する
sudo rosdep install -i --from-path src --rosdistro <distro> -y
ここでは,<distro>
の部分をdashing
にする.
- 依存関係がすべて解決していると,以下が出力される.
#All required rosdeps installed successfully
colconでworkspace/packageをビルドする.
packageの作成についてはココにもう少し詳しく記述.
colcon build
オプションの説明
-
--packages-up-to
:(時間節約目的で)必要なパッケージとそのすべての依存関係をビルドするが,ワークスペース全体はビルドしない. -
--symlink-install
:Pythonスクリプトを微調整するたびに再構築する必要がなくなる. -
--event-handlers
:console_direct
+ビルド中のコンソール出力を表示します.
build結果の説明
- ビルドすると,
build
,install
,log
のフォルダができる. - colconが正常にビルドを完了すると,出力は
install
フォルダにできる.
overlayの注意点
- インストールされている実行可能ファイルまたはライブラリを使用する前に,それらをパスおよびライブラリパスに追加する必要がある.
-
install
フォルダの中に,環境のセットアップに役立つbash/batファイルを生成する. - これらのファイルは,必要なすべての要素をパスとライブラリパスに追加するし,packageによってエクスポートされたあらゆるbashまたはshellコマンドを提供する.
underlayをsourceする
- overlayを取得する前に,workspaceを構築したターミナルとは別の新しいターミナルを開くことが非常に重要.
- ビルドしたのと同じターミナルでoverlayを
source
したり,同様にoverlayでsource
した環境でビルドしたりすると、複雑な問題が発生する可能性がある. - だから,新しいターミナルでメインのROS2環境を「underlay」として
source
し,「その上」にoverlayを構築できるようにする.
- ビルドしたのと同じターミナルでoverlayを
新しいターミナルで,以下を実行.
source /opt/ros/<distro>/setup.bash
ここで,<distro>
はdashing
とする.
overlayをsourceする
workspaceのルートに移動する.
cd <workspace_name>
以下を実行する.
. install/local_setup.bash
[Note]
- overlayの
local_setup
をのsourceすることは,overlayで使用可能なpackageのみを環境に追加する. -
setup
は,overlayとそれが作成されたunderlayをsourceし、両方のworkspaceを利用できるようにする. - メインのROS2インストールの
setup
と,その後にdev_ws
のoverlayのlocal_setup
をsourceすることは,dev_ws
のoverlayのsetup
をsourceすることは同じである.- なぜなら,それが作成されたunderlayの環境が含まれているからだ.