Be Engineer.

エンジニア成り立て管理人の日々の記録とメモブログです。

raspberry pi とノートpcをROSを用いて通信させる

raspberry piとノートpc上の仮想マシンとして起動しているubuntuをROSを用いて通信させる。

 

[参考]

ja/ROS/Tutorials/MultipleMachines - ROS Wiki

ja/ROS/NetworkSetup - ROS Wiki

 

[log]

hostとなるubuntuでroscore(master)を起動後

clientとなるraspberry piからhokuyo_nodeを起動させる。

このとき

Couldn't find an AF_INET address for [ubuntu]

というエラーが発生した。

これをhostとclientとの通信がうまくいってないためだと

予測し、pingで通信を確認した。

結果、hostからclientのpingは通ったが

clientからhostへのpingは通らなかった。

他のマシンではこのようなエラーは出なかったため

仮想マシンの設定が原因だと考えた。

仮想マシンのネットワーク設定をNATからブリッジに

変更したところ、これを解決することができた。

 

しかし、依然、最初に出たエラーは変わらず

Couldn't find an AF_INET address for [ubuntu]

と出てくる。

 

このエラーについて検索したところ

ROS_IPの設定をすれば解決すると出てきた。

answers.ros.org

 

[host]

$ export ROS_IP=`hostname -I`

$ export ROS_MASTER_IP=http://`hostname -I`:11311

$ export ROS_MASTER_URI=http://`hostname -I`:11311

$ roscore

 

[client]

$ export ROS_IP=`hostname -I`

$ export ROS_MASTER_IP=http://(hostのhostname -Iに表示された数字、文字を入れる):11311

$ export ROS_MASTER_URI=http://(hostのhostname -Iに表示された数字、文字を入れる):11311

& rosrun hokuyo_node hokuyo_node

 

これで解決。

hostnameをわかりやすい名前に設定したほうがいいかも。

 

[追記]

後日この記事の手順で詰まった。

IPとURIを間違えた。

 

(参考)

ROS/Troubleshooting - ROS Wiki

http://www.umiacs.umd.edu/~cteo/umd-erratic-ros-data/README-rvis-remote