ROSラーニングパス(ROS分散通信)の大きな吐き気

ROS分散通信

一般的なROSカーはRaspberry Piをホストマシン、PCをスレーブマシンとする分散フレームワークの構築プロセスについては次に説明しますが、第3段階のプロセスで実現できます。このプロセスを実現する前に、準備作業: Raspberry Pi をワイヤレス ネットワークに接続し、次のように固定 IP を設定する必要があります。
ステップ 1 **
1. ハードウェアの準備: ディスプレイまたは HDMI キャプチャ カードを使用して Raspberry Pi に接続します。 Pi、
ubuntu18.4** をインストールして起動します。

2. Raspberry Pi のワイヤレス ネットワークに接続します(ここに大きな落とし穴があります。ディスプレイ画面のせいで、HDMI キャプチャ カードがありません。このため、コンピュータで XDRP と VNC を使用してログインすることにしました) Raspberry Pi をリモートで操作します。バグについて言えば、HDMI キャプチャ カードを振っているディスプレイ画面がある場合は、バグ解決策を保存して、直接 3 番目のステップのプロセスに進むことができます)

3. Raspberry Pi の静的 IP を構成します。具体的な操作は図に示すとおりです。
ここに画像の説明を挿入
ここに画像の説明を挿入

ステップ 2: xdrp のバグを解決する

ディスプレイまたは HDMI キャプチャ カードをお持ちの場合は、上記の手順は簡単に解決できますが、
vnc または XDRP を使用してリモート接続したい場合は、大きなバグが発生します。

VNC、xdrp、
xdrp リモート接続をインストールするには、この手順に従ってください。Windows リモート デスクトップは、xrdp サービスを介して Raspberry Pi に接続します。vnc を使用するには、 VNC を使用して Raspberry Pi の Ubuntu 18.4 をリモート制御する
必要があります(個人的に vnc は使いにくいと感じています。最初に ssh 経由で vnc を開く必要があります。とvncで接続できるのですが、設定ができていない可能性もありますので、設定方法があればアドバイスもいただけます。)

バグ:
Wi-Fi 接続準備完了をクリックすると表示され続ける

   **Authentication required. System policy prevents WiFi scans**

ユーザーパスワードの入力を求められるので、入力すれば接続できると思ったのですが、山本さん、日本のご先祖様、パスワードを入力するとWi-Fiのリストが消えてしまいます。その後、ループにはまってしまいます。絶え間ない調査により、 xdrp
のバグであることがブログで判明しました

解決策:
/etc/polkit-1/localauthority/50-local.d ディレクトリに拡張子が pkla の新しいファイルを作成し、その中に次の内容を書き込みます。

[Allow Wifi Scan]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes

なお、原文では /etc/polkit-1/localauthority/50-local-d に追加するように書かれていましたが、何度も試してみましたが、vim では上記のコードを追加できませんでした(興味があれば追加できます)試してみると、一連の問題に遭遇することになる その後、何が頭がおかしくなったのかわかりませんでしたが、 /etc/polkit-1/localauthority/ ディレクトリに 50-local-d が存在しないことがわかりましたが、 50-local.d. 最後に、50-local.d での pkla ファイルの作成が正常に解決されました。Wi-Fi の問題) と同時に、カラー認証も同様の解決策であると報告され、ディスプレイ画面や HDMI キャプチャ カードなどが不要になります
。 . ノートブックを使用して Raspberry Pi を制御できます。

ステップ 3:
ROS は分散コンピューティング環境です。実行中の ROS システムは、複数のコンピューターに分散された複数のノードで構成されます。システムの構成によっては、どのノードでも、いつでも他のノードと通信する必要がある場合があります。
したがって、ROS にはネットワーク構成に関する特定の要件があります。つまり、
すべてのポート上のすべてのマシン間で完全な双方向接続が必要です。
各コンピュータは、他のすべてのコンピュータが解決できる名前で自分自身をアナウンスする必要があります。
実装
1. 準備

まず、異なるコンピューターが同じネットワーク内にあることを確認します。固定 IP を個別に設定するのが最善です。仮想マシンの場合は、ネットワーク アダプターをブリッジ モードに変更する必要があります。 2. 構成ファイル
変更
異なるコンピュータの /etc/hosts ファイルを個別に作成し、ファイルに相手の IP アドレスとコンピュータ名を追加します。
ホスト側:

从机的IP    从机计算机名
从机端:
主机的IP    主机计算机名

設定後、pingコマンドを使用してネットワーク通信が正常かどうかをテストできます。
IP アドレス表示名:ifconfig
コンピュータ名表示: hostname
3. ホスト IP を設定して
、ホストの IP アドレスを設定します。

~/.bashrc 追加

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP

4. スレーブ マシンの IP を構成する
スレーブ マシンの IP アドレスを構成します。複数のスレーブ マシンが存在する可能性があり、それぞれ次のように設定されます。

~/.bashrc 追加

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP

テスト
1. ホストは roscore を開始します (必須)
2. ホストはサブスクリプション ノードを開始し、スレーブはパブリッシング ノードを開始し、通信が正常かテストします 3.
リバース テスト、ホストはパブリッシング ノードを開始し、スレーブはサブスクリプションノードに接続し、通信が正常かどうかをテストします。

おすすめ

転載: blog.csdn.net/qq_47128755/article/details/123268841
おすすめ