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環境と依存関係のあるパッケージを使用できた
この記事が気に入ったらサポートをしてみませんか?