Skip to content

Dockerを用いたROS (1/2)の開発及び実行環境

Notifications You must be signed in to change notification settings

amslabtech/amsl_ros_docker_ws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

amsl_ros_docker_ws

概要

本リポジトリは、ROS (1/2)をDockerコンテナ上で開発・実行するための環境を提供する。Setup ROS 2 with VSCode and Dockerを参考にして作成した、各ディストリビューション向けのDockerfiledocker-compose.ymlを用意してある。GUIにも対応し、rviz等OpenGLアプリケーションも実行できる。vscodeユーザであれば、そのままdevcontainerとして利用することもできる。ホストのディレクトリのマウントやDocker volumeの活用により、ホストの再起動後などにも速やかに環境を復旧できる。

動作確認済環境

  • Ubuntu 20.04 (x86_64, NVIDIA GPU)

依存

  • make
  • docker
  • nvidia-container-runtime (必要な場合)

事前準備

ディレクトリ構成を次のようにしておく。<ROS workspace>はROSのworkspaceとして扱うディレクトリのパス。例えば~/wsなど。srcの下のpackage_*は無くても良い。

<ROS workspace>
└─ src
  ├─ package_1
  ├─ package_2
  ...

セットアップ

cd <任意のディレクトリ>
git clone [email protected]:amslabtech/amsl_ros_docker_ws.git
cd amsl_ros_docker_ws
make install TARGET_WS=<ROS_workspace> ROS_DISTRO=noetic NVIDIA_DOCKER=false

セットアップ後、ディレクトリ構成は以下のようになる。

<ROS workspace>
├─ cache
│ └─ ROS_DISTRO
│   ├─ build
│   ├─ install
│   └─ log
└─ src
  ├─ .devcontainer
  │ ├─ devcontainer.json
  │ ├─ Dockerfile
  │ └─ docker-compose.yml
  ├─ package_1
  ├─ package_2
  ...

使い方

devcontainerの使い方

.devcontainerのあるディレクトリ(<ROS workspace>/src)でcode .すると、vscode起動時にReopen in containerのポップアップが表示される。それを実行すれば、Docker imageをビルドし、コンテナを実行、vscodeからコンテナに接続できる。

docker composeの使い方

<ROS workspace>/srcdocker compose -f .devcontainer/docker-compose.yml upすれば上記と同様のコンテナが立ち上がる。

パッケージのビルド

上記のように起動したコンテナ内では、パッケージのビルドにcolconを使う。colconはcatkinパッケージでもamentパッケージでもpure cmakeパッケージでも自動判別して適切にビルドしてくれる。そのため対象のパッケージがROS 1でもROS 2でも同じコマンドでビルドできる。コンテナ内ではcbというエイリアスが定義されているので、活用すると良い。 なお、colconコマンドは<ROS workspace>ディレクトリで実行する必要がある。

代表的なコマンドを以下に示す。

  • cb
    • ワークスペース全体をビルド
  • cb --packages-select package_1
    • package_1をビルド
  • colcon test --pacakges-select package_1
    • package_1のテストを実行

About

Dockerを用いたROS (1/2)の開発及び実行環境

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published