見出し画像

Ubuntu20.04環境にDocker+Ubuntu18.04+ROSmelodic環境構築_備忘録

Ubuntu 20.04上でDockerを使用してUbuntu 18.04の環境を構築し、ROSmelodicの開発環境を構築する手順を以下に示します。

1.Dockerのインストール: Ubuntu 20.04のPC上でDockerをインストールします。次のコマンドを使用します:

sudo apt update
sudo apt install docker.io

2.Dockerイメージの取得: Docker HubからUbuntu 18.04のイメージを取得します。次のコマンドを使用します:

sudo docker pull ubuntu:18.04

3.Dockerコンテナの作成と起動: 取得したUbuntu 18.04のイメージを使用してDockerコンテナを作成し、起動します。次のコマンドを使用します:

sudo docker run -it --name ros-melodic-container2 -v /path/to/host/directory:/path/to/container/directory -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix ubuntu:18.04

4.Dockerコンテナ内でROS Melodicをインストール: Dockerコンテナが起動したら、コンテナ内でROS Melodicをインストールします。ROS公式のインストール手順に従います。以下のコマンドを順番に実行します:

# コンテナ内でのパッケージリストのアップデート
apt update

# ROSのキーアップデートと設定
apt install curl gnupg2 lsb-release -y
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list

# ROS Melodicのインストール
apt update
apt install ros-melodic-desktop-full -y

# 環境変数の設定と初期化
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 依存パッケージのインストール
apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential -y

# rosdepの初期化
rosdep init
rosdep update

これでROS Melodicの開発環境がDockerコンテナ内に構築されました。

5.コンテナの終了と再開: ROS Melodicの開発作業を終了したい場合は、コンテナ内で exit コマンドを実行します。

exit

そして、再度コンテナを起動するには以下のコマンドを使用します:

sudo docker start -i ros-melodic-container2

下記のコマンドでもOK

sudo docker start ros-melodic-container2

下記のコマンドで新しいターミナルから上記で実行したコンテナに入れる

sudo docker exec -it ros-melodic-container2 bash

6.コンテナ内でROSの開発を行う: ホストとのファイル共有が設定されたコンテナ内で、ROSの開発を行うことができます。必要なパッケージをインストールしたり、ROSワークスペースを作成したりするために、通常のROS開発手順に従ってください。
例えば、ROSワークスペースの作成手順は以下の通りです:

# ワークスペースのディレクトリを作成
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/

# ワークスペースのビルド
catkin_make

# ワークスペースの環境変数の設定
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

これで、ROS Melodicの開発環境が構築され、ROSパッケージの作成や開発が可能となります。

7.コンテナ内でROSパッケージのインストールとビルド: ROS Melodicの開発環境が構築されたコンテナ内で、ROSパッケージをインストールし、ビルドする手順を説明します。
まず、ROSパッケージをインストールするために、以下のコマンドを使用します:

sudo apt install ros-melodic-package-name

上記のコマンドの ros-melodic-package-name をインストールしたいROSパッケージの実際の名前に置き換えてください。
次に、ROSパッケージをビルドするために、以下のコマンドを使用します:

cd ~/catkin_ws
catkin_make

これにより、ROSパッケージがビルドされ、ワークスペース内の devel ディレクトリに実行可能ファイルやライブラリが生成されます。

8.ROS開発の実行: ROSパッケージがインストールされ、ビルドされたら、ROS開発を行う準備が整いました。必要なノードの起動やトピックの配信と購読など、ROS開発に必要なコマンドを実行してください。
例えば、ROSノードの起動コマンドは以下のようになります:

rosrun package_name node_name

package_name は起動するROSパッケージの名前、node_name は起動するノードの名前です。

これで、Ubuntu 20.04上のDockerコンテナ内でUbuntu 18.04とROS Melodicの開発環境が構築され、ROSパッケージのインストールやビルド、開発作業が行えるようになります。

環境の動作確認

denso_robot_ros

上記の通りに、下記コマンドを使って作成したdockerコンテナ内にパッケージをインストール。

sudo apt-get install ros-melodic-denso-robot-ros

作成したdockerコンテナ環境には下記コマンドで入れる

sudo docker start ros-melodic-container2
sudo docker exec -it ros-melodic-container2 bash

その中で、下記コマンドを実行

roslaunch denso_robot_bringup denso_robot_bringup.launch

下図のようにROSmelodic環境と依存関係のあるパッケージを使用できた

この記事が気に入ったらサポートをしてみませんか?