主要内容

このページの翻訳は最新ではありませ。

ROSネットワークネットワークへの

ROSネットワークネットワーク,1つの“ROS.マスター“とと数の”ROS.ノード“で构成され.rosマスターは,すべてのアクティブなrosエンティティを追迹ことにより,rosネットワーク内の通信をににますますますしますととととととととようになるに,rosマスターにはするするがあります.matlab®でrosマスターを起,マスターはmatlab户外(别别コンピューター上)

ROSをを作用する料,通讯は以の手顺に従います。

  1. ROS.ネットワークに接続“します.rosネットワークに接続するに,matlabでrosををする,既存のrosマスターにします。)も作物,マスターに登录ます。关键词罗斯尼特がが管理ををしします。

  2. “データを交换”します。接続接続,matlabは,パブリッシャー,サブスクライバーおよびサービスを介し他のrosノードとデータを交换交换交换ししし。

  3. ROS.ネットワークからから“します。关字Rosshutdown.を呼び出して,matlabをrosネットワークから切断ますますます。

この例では,次を行う方法を说明します。

  • MATLABでのROSマスターの作成

  • 外部rosマスターへの接続

前提条件:罗斯入门

MATLABでのROSマスターの作成

  • matlab内でrosマスターを作物作物するはははははににせず罗斯尼特を,この关键,MATLABがROSネットワークの他のとの通信にするグローバルノードがのれれれ

罗斯尼特
启动ROS核心......在0.92918秒内完成。在http://192.168.0.10:52894初始化ROS Master。使用nodeuri初始化全局节点/ matlab_global_node_68479 http:// bat800603glnxa64:44509 /

この时尚で,matlabの外荷のrosノードがrosネットワークネットワーク参できます.matlabホストコンピューターのホストまたはipアドレスアドレス使のて,matlab内のrosマスターに接続接続できできできでき

ROSマスターマスターおよびグローバルグローバルノードをシャットダウンするに,Rosshutdown.を呼び出します。

Rosshutdown.
使用nodeuri关闭全局节点/ matlab_global_node_68479 http:// bat800603glnxa64:44509 /关闭ROS Master http://192.168.0.10:52894。

外部rosマスターへの接続

罗斯尼特コマンドを使用して外部のROSマスター(ロボットまたはバーチャルマシンで実行中のものなど)に接続することもできます。マスターのアドレスの指定方法は2つあり,マスターを実行しているコンピューターのIPアドレスまたはホスト名を使用します。

罗斯尼特の各呼び出しの后,别の构文で罗斯尼特を呼び出す前にRosshutdown.をを呼び出さなければばなりませませににするため,これらの例ではこのようRosshutdown.の呼び出しを省略します。

外部rosマスターで,'master_host'はホスト名の例で,'192.168.1.1'はのアドレスは,ネットワーク内の外部マスターに従ったてマスターてからからアドレスにマスターから场场场场场はは失败失败ししします场场ははし失败しししししに従っアドレスアドレスししししないのコマンド场ししし场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场场l에에

罗斯尼特('192.168.1.1') rosinit ('master_host'的)

罗斯尼特へのいずれの呼び出しでも,マスターがポート11311(標準のROSマスターポート)でネットワーク接続を受け入れると仮定します。マスターが別のポートで実行されている場合は,それを2番目の引数として指定できます。ホスト名master_host.,ポート12000で実行しいるrosマスターに接続するは,次次コマンドを使使し。

罗斯尼特('master_host',12000)

マスターマスター完全な统一资源标识符(URI)がわかっているいる合 -

罗斯尼特('http://192.168.1.1:12000'的)

ノードホストの指定

结合によっては,コンピューターがが数のネットワーク接続れ,数码のipアドレスをもってことがますます。

左下のコンピューターはmatlabを実行してい,2つの异なるネットワークに接続れいます。一方のサブネットのipアドレスは73.195.120.50,で,もう一方ででipアドレスは192.168.1.100です。このこのコンピューター,IPアドレス192.168.1.1のturtlebot®コンピューター上のrosマスターににに接続ししますますますます。マスターへの登录のとして,matlabグローバルノードで,matlabグローバルノードで,他のrosノードから到到ななアドレスホスト名を指定なければなりません.turtlebot上涨のすべてノードが,このアドレスを使用ししmatlabののグローバルノードにをを送するすることになります

マスターのipアドレスを指定して罗斯尼特が呼び出されると,マスターとの接触に使用するネットワークインターフェイスが検出され,それがグローバルノードのIPアドレスとして使用されます。この自動検出が失敗する場合は,罗斯尼特の呼び出しでnodehost.の名前と値のペアを使用することにより,IPアドレスまたはホスト名を明示的に指定できます。nodehost.の名前と値のペアは,既に示した他の任意の构文で使用できます。

これらのコマンドでは,コンピューターコンピューターipアドレスをrosネットワークに192.168.1.100としてアドバタイズします。

罗斯尼特('192.168.1.1''nodehost''192.168.1.100') rosinit ('http://192.168.1.1:11311''nodehost''192.168.1.100') rosinit ('master_host''nodehost''192.168.1.100'的)

ROSネットワークにノードが登录されたら,コマンドrosnode.信息rosnode列表を呼び出します。

ROS环境数

高度な使用例では,ROSマスターのアドレスおよびアドバタイズされたノードアドレスを,標準のROS環境変数を使用して指定する場合があります。大半の使用例では,これまでの節で説明した構文で十分です。

罗斯尼特に引数が指定されていない场合,关数は标准のROS环境変数の値もチェックします。これらの変数は,ros_master_uri.ROS_HOSTNAMEおよびROS_IP.です。現在の値は,GetEnv.コマンドを使用して确认できます。

getEnv('ros_master_uri')GetEnv('ros_hostname')GetEnv('ros_ip'的)

これらの変数は,setenv.コマンドを使用して設定できます。環境変数を設定した後,罗斯尼特を引数なしで呼び出します。ROS.マスターのアドレスはros_master_uri,によって指定され,グローバルノードのアドバタイズされたはROS_IP.またはROS_HOSTNAMEによって得られます。罗斯尼特に追加の引数を指定した场合,その引数が环境変数内の値をオーバーライドします。

setenv('ros_master_uri''http://192.168.1.1:11311')setEnv('ros_ip''192.168.1.100')罗斯尼特

ROS_HOSTNAMEROS_IP.のの方を设定する必要はありません両両を设定したたた合物,ROS_HOSTNAMEが优先されます。

接続の検证

ROS接続を正常に機能させるには,すべてのノードがマスターと通信でき,相互にも通信できることを確認しなければなりません。個々のノードは,サブスクライバー,パブリッシャーおよびサービスを登録するために,マスターと通信しなければなりません。また,データを送受信するために,ノード間でも通信できなければなりません。ROS.ネットワークが正しく設定されていない場合は、データを送信できても受信できない (またはその逆) 可能性があります。

次の図は,1つのrosマスターとマスターに自身ををているた异をををいたたノードマスター示していい。アドバタイズされたアドレスを见つけます。各ノードがもう一方のノードのアドレスを认识したら,マスターを介さずにデータ交换を确立できます。

次のステップ