空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

ROS x Docker x ネットワーク のお勉強

 やりたいこと

dockerコンテナとホストPCでros messageの通信を行いたい

ROS

ROBOT PCでroscoreを起動

HOST PC

  1. export ROS_IP = (HOST PCのIP)

  2. export ROS_MASTER_URI=http://(ROBOTのIP):11311

    • 正確にはroscoreが立ち上がっているPCのIP

ROBOT PC

  1. export ROS_IP = (ROBOT PCのIP)

  2. exprot ROS_MASTER_URI=http://(ROBOTのIP):11311

確認方法

ROBOT_PC

  • $ rostopic pub -r 10 /topic_name std_msgs/String hello

HOST_PC

  • $ rostopic echo /topic_name

参考:

ja/ROS/Tutorials/MultipleMachines - ROS Wiki

ROS 使い方メモ -- ROS ネットワーキング

ログ表示

複数 PC に分散したノードの ROS を使った通信 - Daily Tech Blog

複数のPCで処理する方法 | ロボット理工学科 演習

ネットワーク設定 - PukiWiki

ROS 複数のPCを使ってノードを走らせる場合。: マイコン漬け

ROS x Docker

上記と基本的には同じ。

下記のように

docker inspect -f "{{.NetworkSettings.IPAddress}}" CONTAINER

でIPを調べてROS_IPにセットする。

docker-compose で立ち上げたコンテナの IP アドレスを調べる - Qiita

コンテナのIP固定の方法

docker固定IP - Qiita

Public accessible IP in container (like bridge network in VirtualBox) - DockerEngine - Docker Forums

参考:

Docker + ROS(kinetic)でチュートリアル - Qiita

dockerでROSを試したい - Qiita

Exposing ROS Containers to Host Machine - ROS Answers: Open Source Q&A Forum

Small ROS Network Example · GitHub

Challenges with running ROS on Kubernetes | Service Engineering (ICCLab & SPLab)

Docker v1.9のマルチホストネットワーク機能を使ったROS通信が可能か検証してみた - Qiita

Docker単体

参考:

Docker の基本学習 ~ コンテナ間のリンク - Qiita

マルチホストでのDocker Container間通信 第1回: Dockerネットワークの基礎 - UZABASE Tech Blog

Dockerのマルチホストネットワークで複数ホスト間を繋ぐ仮想ネットワークを作る(Dockerの最新機能を使ってみよう:第1回) | さくらのナレッジ

[社内向け]Docker勉強会(コンテナ同士の通信) - Qiita

4.5 Dockerネットワークについて