ROSのマスターとスレーブの設定

問題の説明: 2 台の産業用コンピュータがトピックを共有する必要がある場合、一般的な操作は情報を送信するための UDP または TCP を設計することです。このプロセスでは多くの時間がかかります。それだけでなく、ネットワーク遅延も考慮する必要があります。

解決策: マスター/スレーブ コンピュータ設定を通じて、セカンダリ産業用コンピュータを使用して、メイン産業用コンピュータ内のすべてのメッセージとデータをサブスクライブすることができ、中間伝送リンクとして通信プロトコルを使用する必要はありません。ハードウェア構成は図 1 に示されています。

図 1 ハードウェア接続


ステップ 1: 2 台の産業用コンピューターの ID を表示する

この文書では、メインの産業用コンピュータは 192.168.8.5、補助的な産業用コンピュータは 192.168.8.4 です。

ステップ 2: マスターとスレーブを設定し、gedit ~/.bashrc ファイルを変更します

.bashrc ファイル内の 2 行を変更します (図 2 を参照)。

export ROS_MASTER_URI=http://192.168.8.5:11311
export ROS_HOSTNAME=user//主机名

図 2 2 行のコードを追加する

ステップ 3:source ~/.bashrc このステップを完了すると、問題はありません。セカンダリ産業用コンピュータは、メイン産業用コンピュータのトピックとセンサー データをサブスクライブできます。

追伸:

1. 上記 2 行のコードにはスペースを入れてはいけません。作者は落とし穴を踏んでしまいました。中国語でも英語でもスペースを入れてはいけません。スペースがあるとエラーが報告されます。

2. スレーブが ros プログラムを実行したい場合、ホストは最初に launch または roscore を開始する必要があります。

3. マスターおよびスレーブ マシンを変更した後、~/.bashrc をソースすることを忘れないでください。完了後、マスターおよびスレーブ プログラム (起動ファイル) が依然としてエラーを報告する場合は、マスターまたはスレーブを再起動する必要があります。


おすすめ

転載: blog.csdn.net/yiweiduguo/article/details/123432826