Note: This tutorial assumes that you have completed the previous tutorials: ワークステーションへのインストール.
(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

ネットワークの構成設定

Description: turtlebotとワークステーションを相互に通信させる.

Keywords: turtlebot installation

Tutorial Level: INTERMEDIATE

ROSはネットワークに接続された全てのコンピュータ間で双方向接続を必要とし,ビルトインされたセキュリティシステムを持っていません.そのため,VPNの使用を推奨します.

さらに詳細な情報は,ROS/NetworkSetupROS/EnvironmentVariablesを参照してください.

このチュートリアルにおいて,TurtleBot用のノートPCのIPを知っている必要があります.ワークステーションのIPも必要になるでしょう.ホスト名が両方のコンピュータで適切に解決されていれば,これを設定する必要はありません.

簡潔に言うと,ROS_MASTER_URIROS_HOSTNAMEが,互いを見つけられるROSの通信チャンネルを確立するために,これらのIPとともに正しく設定する必要があります.

IPの決定

ifconfig

TurtleBotのPCとワークステーションのPC,両方のIPアドレスを特定しておきましょう (more help) .

Linuxにおいて, コンピュータのIPとネットワークのインターフェイスを設定するために以下のコマンドを入力:

  • ifconfig

このように表示されます:

  • lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:6658055 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6658055 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:587372914 (587.3 MB)  TX bytes:587372914 (587.3 MB)
    
    wlan1     Link encap:Ethernet  HWaddr 48:5d:60:75:58:90  
              inet addr:10.0.129.17  Bcast:10.0.129.255  Mask:255.255.254.0
              inet6 addr: fe80::4a5d:60ff:fe75:5890/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:101983 errors:0 dropped:0 overruns:0 frame:0
              TX packets:37244 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:49326141 (49.3 MB)  TX bytes:7588044 (7.5 MB)

  • ワイヤレスカードのネットワークインターフェイスはwlan1です

  • コンピュータのIPは10.0.129.17です

接続の確認

マシン間でpingが通ることを確認してください (more help) .

Ping from the laptop to the workstation and back by IP, or fully resolved hostname. From TurtleBot laptop ping workstation/desktop using IP_OF_WORKSTATION

  • ping IP_OF_WORKSTATION

    Note: Replace IP_OF_TURTLEBOT with actual IP address of TurtleBot that was determined in previous step.

From workstation ping TurtleBot using IP_OF_TURTLEBOT

  • ping IP_OF_TURTLEBOT

TurtleBotの設定

USBドライブ・リリース,debパッケージ,もしくはソースのいずれかにより,手順は異なります.

Live Usb Installation

debパッケージによるインストール

Source Installation

Live USB Installation

> echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> .bashrc
> sudo sh -c 'echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> /etc/ros/setup.sh'

.

配布元やUSBのisoに従い、何も特別なことをする必要はありません。turtlebotサービスは、ネットワークのオンオフを自動的に検出して、適切に変数を構成します。

debパッケージによるインストール

ワークスペース内の設定スクリプトに環境変数をエクスポートします.

> echo export ROS_MASTER_URI=http://IP_OF_TURTLEBOT:11311 >> .bashrc 
> echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> .bashrc

個有のrosbuild環境をインストールしたdebパッケージに上書きしている場合,代わりにsetup.shに環境変数を反映させます.

最後に,既にturtlebotを起動している場合,一旦,停止した後,再起動させます.

Source Installation

ワークスペース内の設定スクリプトに環境変数をエクスポートします.## You should export the variables inside your workspace setup script.

> echo export ROS_MASTER_URI=http://IP_OF_TURTLEBOT:11311 >> ~/rosbuild-catkin/setup.sh
> echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> ~/rosbuild-catkin/setup.sh

最後に,既にturtlebotを起動している場合,一旦,停止した後,再起動させます.

ワークステーションの設定

ワークスペース内の設定スクリプトに環境変数をエクスポートします.ここでROS_MASTER_URIの意味が変わることに注意してください.マスターとはturtlebotを意味します.

> echo export ROS_MASTER_URI=http://IP_OF_TURTLEBOT:11311 >> .bashrc 
> echo export ROS_HOSTNAME=IP_OF_WORKSTATION >> .bashrc

インストールされたdebパッケージに独自のrosbuild環境を上書きしている場合,代わりに環境変数をそのsetup.shに反映しましょう.

確認

以降の節は,必須ではありません.しかし,TurtleBotとワークステーションの間のROSのネットワーク設定に問題が生じる場合,その特定を容易にします.

これらの環境変数を手動で設定した場合,TurtleBotの再起動を忘れずに行ってください.

TurtleBotからROS masterを確認する

TurtleBotのノートPCで,そこからROS masterと通信できるか確認する(以下のコマンドを実行):

> rostopic list

以下のようなエラーが出る場合:

ERROR: Unable to communicate with master!

このような場合,turtlebotはまだ起動されていません - TurtleBot Bringupのチュートリアルを参照してください.

また,ROS_MASTER_URIが正しく設定されているかも確認してください.

> echo $ROS_MASTER_URI

TurtleBotのROSノード間での確認

TurtleBotのノートPCの新しい端末で以下を実行:

> rostopic echo /diagnostics

以下のような警告の反応が無い場合

WARNING: topic [/diagnostics] does not appear to be published yet

TurtleBotのノートPCでROS_HOSTNAMEが正しく設定されているか確認する.

> echo $ROS_HOSTNAME

ワークステーションからTurtleBotへの確認

新しい端末をワークステーションで開き,以下を実行:

> rostopic list

トピックの一覧が出ない場合,ROS_MASTER_URIの値を確認してください.

ワークステーション上で実行:

> rostopic echo /diagnostics

トピックがまだ発行されていませんといったような警告が出ない場合,ROS_HOSTNAMEがTurtleBotで正しく設定されているか確認してください.

EurtleBotからワークステーションへの確認

最後に,TurtleBotのノートPCからワークステーションで実行中のROSノードが取得可能か確認する.

ワークステーション上で実行:

> rostopic pub -r10 /hello std_msgs/String "hello"

On TurtleBot run TurtleBot上で実行

> rostopic echo /hello

一秒あたり10回ほど"hello"というメッセージが表示されます.そうでない場合,ワークステーションのROS_HOSTNAMEの設定を確認してください.

次に.

Wiki: ja/turtlebot/Tutorials/groovy/Network Configuration (last edited 2014-12-08 07:46:56 by Moirai)