ROS と Docker / Amazon Web Service¶
デモ #1 - フロントエンド: ホスト Gazebo / バックエンド: Docker¶
ワークスペースのセットアップ¶
フロントエンド( ホストで実行 / GUI のみこちら )¶
1つ目のターミナルで次を実行してください.
mkdir -p ./training/front_ws/src
cd ./training/front_ws/src
gazebo -v
git clone -b gazebo7 https://github.com/fetchrobotics/fetch_gazebo.git
git clone https://github.com/fetchrobotics/robot_controllers.git
git clone https://github.com/fetchrobotics/fetch_ros.git
cd ..
catkin build fetch_gazebo fetch_description
バックエンド( Docker コンテナ内で実行 )¶
このステップでは必要な実行可能ファイルを含む Docker イメージを作成します.
rosindustrial/core:indigo イメージ内で /bin/bash を実行してから apt-get でパッケージを取得
rosindustrial/core:indigo イメージ内で /bin/bash を実行してから ソースからパッケージをビルドして,その結果をコミット
fetch ロボットの Dockerfile で Docker コンテナを作成し,それを実行 https://gist.github.com/AustinDeric/242c1edf1c934406f59dfd078a0ce7fa
cd ../fetch-Dockerfile/ docker build --network=host -t rosindustrial/fetch:indigo .
デモンストレーションの実行¶
フロントエンドの実行¶
1つ目のターミナルからフロントエンドを実行します.
source devel/setup.bash
roslaunch fetch_gazebo playground.launch
バックエンドの実行¶
これを実行するには複数の方法があります.
- fetch コンテナ内で /bin/bash を実行し,デモノードを手動で実行する方法
- デモノードをコンテナ内で直接実行する方法( これから本演習で行います )
2つ目のターミナルで次のとおりバックエンドを実行してください.
docker run --network=host rosindustrial/fetch:indigo roslaunch fetch_gazebo_demo demo.launch
デモ #2 - フロントエンド: Web サーバ / バックエンド: Docker¶
環境を開始します.
docker run --network=host rosindustrial/fetch:indigo roslaunch fetch_gazebo playground.launch headless:=true gui:=false
Gazebo の Web サーバを実行します.
docker run -v "/home/aderic/roscloud/training/front_ws/src/fetch_gazebo/fetch_gazebo/models/test_zone/meshes/:/root/gzweb/http/client/assets/test_zone/meshes/" -v "/home/aderic/roscloud/training/front_ws/src/fetch_ros/fetch_description/meshes:/root/gzweb/http/client/assets/fetch_description/meshes" -it --network=host giodegas/gzweb /bin/bash
サーバを実行します.
/root/gzweb/start_gzweb.sh && gzserver
3つ目のターミナルでデモを実行します.
docker run --network=host fetch roslaunch fetch_gazebo_demo demo.launch
デモ #3 ロボット Web ツール¶
このデモでは産業用ロボットURDFをブラウザで表示することができます.
1つ目のターミナルで,ロボットをパラメータサーバに読み込ませます.
mkdir -p abb_ws/src
git clone -b kinetic-devel https://github.com/ros-industrial/abb.git
docker run -v "/home/aderic/roscloud/training/abb_ws:/abb_ws" --network=host -it rosindustrial/core:kinetic /bin/bash
cd abb_ws
catkin build
source devel/setup.bash
roslaunch abb_irb5400_support load_irb5400.launch
2つ目のターミナルで,ロボット Web ツールを開始します.
docker run --network=host rosindustrial/viz:kinetic roslaunch viz.launch
3つ目のターミナルで Web サーバを起動します. まず www フォルダを開始する必要があります.
cp -r abb_ws/src/abb/abb_irb5400_support/ www/
docker run -v "/home/aderic/roscloud/training/www:/data/www" -v "/home/aderic/roscloud/training/nginx_conf/:/etc/nginx/local/" -it --network=host rosindustrial/nginx:latest /bin/bash
nginx -c /etc/nginx/local/nginx.conf