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
Contents
ROSはネットワークに接続された全てのコンピュータ間で双方向接続を必要とし,ビルトインされたセキュリティシステムを持っていません.そのため,VPNの使用を推奨します.
さらに詳細な情報は,ROS/NetworkSetupやROS/EnvironmentVariablesを参照してください.
このチュートリアルにおいて,TurtleBot用のノートPCのIPを知っている必要があります.ワークステーションのIPも必要になるでしょう.ホスト名が両方のコンピュータで適切に解決されていれば,これを設定する必要はありません.
簡潔に言うと,ROS_MASTER_URIとROS_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
> 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の設定を確認してください.
次に.
Bring-up TurtleBotに進む.もしくはTurtleBotのメインページに戻る.