【ROS】hokuyo3dパッケージで3次元LiDARに接続できなかった話

問題

北陽電機の3DLiDAR「YVT-35LX」をROSノードで動かそうとしたら、「connection failed」になって接続できない。

やったこと

環境:(多分ROSが動くLinux環境なら共通)
Ubuntu 16.04
ROS kinetic

まず最初にYVT-35LXに電源12VとLANケーブルを接続。ノートパソコンとLANケーブルでつなぐ。

UbuntuのWiFiマーク->接続を編集する…->Ethernet->IPv4
の項目を設定して、固定IPアドレスにした。←これがまずかった

[追加]→[IPv4]から固定IPアドレスを設定
IPアドレスを192.168.0.10に設定

一度WiFiマークをクリックして切断→接続で設定を反映させる。


hokuyo3dパッケージをインストール
ノードを起動させると…

sudo apt-get install ros-kinetic-hokuyo3d

rosrun hokuyo3d hokuyo3d
[ INFO] [1544185161.008533462]: Connecting to 192.168.0.10
[ERROR] [1544185161.010972849]: Connection failed
[ INFO] [1544185161.111372013]: Connection closed
[ INFO] [1544185161.111556411]: Communication stoped

接続できない…。

正しい方法

いろいろ試行錯誤して最終的には接続できるようになった。原因を検証してみた結果次のポイントがあった。

まず、Ubuntu側の設定でLANケーブル接続時の固定IPアドレスの設定は、192.168.0.10以外192.168.0.xxにしなければならない。
ここが192.168.1.20とかだと接続できない。

(2020/08/12 追記)
当時は理解が不十分でしたが、「192.168.0.xxにしなければならない」は間違いで、固定IPとセンサIPが同一サブネットに属すということなので、ネットマスクの値によります。上記はネットマスクが24のときです。

正しい固定IPは192.168.0.xx(ただし、xx≠10)

また、hokuyo3dノードのパラメータ[~/ip]と
[~/port]はセンサ自体の設定を専用ソフトでいじったりしない限りはデフォルトで良い

# IPアドレスを192.168.0.20に変更
rosrun hokuyo3d hokuyo3d _ip:=192.168.0.20

これは接続できない。


なお、ノードのパラメータは一度設定すると、明示的に変更されるかroscoreが一度終了するまで残る。ノードを止めただけではパラメータはリセットされないので心配な人はroscoreやroslaunchを一度すべて止めよう。

解決するまでに一日使った…
成功するとちゃんとデータ出てる

ppdr@Ubuntu:~$ rosrun hokuyo3d hokuyo3d
[ INFO] [1544185571.860202705]: Connecting to 192.168.0.10
[ INFO] [1544185571.863357229]: Connection established
[ INFO] [1544185571.863433355]: Communication started

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA