安曇野の森から > ROS(Robot Operating System)を使う > ログ表示

2台のマシンでROSを動作させる

ネットワーク接続画面

ネットワーク接続されたマシン上で動作しているノードは、ネットワーク接続された他マシン上で動作しているノードとの間で通信することが出来ます。

ただし、マスターだけはネットワーク上の1台のみで動作している必要があります。

このマシン間通信を実現するために各マシンの環境変数ROS_MASTER_URIにマスターが動作するマシンを登録しておく必要があります。


マシンとプログラムの準備

マシンの準備

2台のマシンと各マシンにメッセージ送受信のプログラムを用意します。

今回は前のページメッセージで使ったサンプルプログラムpub_testとsub_testをノートPCとRapberry Piに入れてノード間接続を試してみます。

ホスト名を使って接続するには各マシンの/etc/hostsに互いのIPアドレスとホスト名のペアを以下のように記載しておきます。
ここではノートPCに「CF-J9」、Raspberry Piに「raspberrypi」というホスト名を付けています。IPアドレスは各自の環境に合わせて変えてください。


/etc/hostsを使わない場合は以降の説明の中でホスト名が出てくる箇所をIPアドレスで書き換えて使ってください。


プログラムの準備

  1. ノートPCではメッセージのサンプルプログラムsub_testを使いますのでノートPC上でビルドして実行ファイルを作っておきます。
  2. Raspberry Piではサンプルプログラムpub_testを使いますのでRaspberry Pi上でビルドして実行ファイルを作っておきます。

マシン間接続の確認

以下のコマンドをノートPCのターミナルで実行してノートPCからRaspberry Piへpingが通るか確認します。


pingが通らない場合はRaspberry Piに電源が入っているか、無線LAN設定が間違っていないかを確認してください。


マシン間通信

ノートPC(ホスト名:CF-J9)とRaspberry Pi(ホスト名:raspberrypi)という2つのマシン間で通信する場合の手順は以下のとおりです。


  1. ノートPCでターミナルを開き、以下のコマンドでバックグランドでマスターを起動します。


  2. 以下のコマンドでノートPCの環境変数ROS_MASTER_URIにホスト名CF-J9を設定します。


  3. 以下のコマンドでノートPCのサブスクライバ―を起動します。


  4. ノートPCで新しいターミナルを開き、以下のコマンドでRaspberry Piにsshターミナルを使ってログインします。


  5. Raspberry Piに接続したsshターミナルで以下のコマンを使ってRaspberry Piの環境変数ROS_MASTER_URIにホスト名CF-J9を設定します。


  6. Raspberry Piに接続したsshターミナルで以下のコマンドを使ってRaspberry Piでパブリッシャーを起動します。


  7. 以上の操作でRaspberry PiからのメッセージがノートPCのサブスクライバ―を起動したターミナルに表示されます。




inserted by FC2 system