CIR-KIT/fifth_robot_pkg

USBポートの帯域食いつぶし問題

Closed this issue · 7 comments

いままでUTM-30LX-EWメーカを使っていたため, これの送ってくるデータは100BASE Ethernet Port 経由で受け取れていました

現状, それを返却しているので, UTM-30LXメーカを使っていますが, これはUSBシリアルポート経由でデータを送受信します.

どうやら, USBポートの帯域が埋まって通信ができないようです.
正常に起動し, cmd_vel トピックにリモコンからのコマンドが吐き出されているのですが, これをモータが受け取っていない模様です.

具体的には, レーザを停止するとリモコンから操作ができ, 起動しているとリモコン入力で動いてくれないという状況です.

ただし, scanトピックには通信中常時値が出力され続けているので, おそらく通信自体には成功している模様です.

@tanacchi と私のマシンで微妙に挙動が異なり, 彼のでは urg_node がInvalid error で落ちていますし, 接続が「不安定, たまに Invalid value が帰ってきます.

目下の対策としては,
・ 転がっているLRFでEthernet経由のやつがないか調べる
・ LRFを読むマシンと yp-spur と通信するマシンを adhockモードでネットワーク形成し,分散処理を試みる(達成まで時間がかかるかも)
・ バスコントローラが贅沢な感じのマシン持ってる人に動かしてもらう(最悪の方法)
などが考えられます

今後, 検証し報告します.

UST-20-LXで確認してみましたが, Invalid valueが見えてます
問題の切り分けに時間がかかりそうです.

forno commented

Ethernetでもinvalid value になるってことでいいのかしら

そうです
今ルーティングテーブルいじったりしてますけれど, 親(PC)と向こう(LRF)が同じローカルにいるはずなんですけれど, その他にはUnknown ErrorとかCould not open とか言ってきて割とこのLRF怪しい気がしてきてます

yasu16@yasu16-Vostro-3546:~/Documents/workspace/robots/cirkit5/fifth_robot_pkg/src/fifth_robot_launcher/launch$ roslaunch setup_robot.launch
... logging to /home/yasu16/.ros/log/a3697cc6-0251-11e7-bfc2-4cbb586fce60/roslaunch-yasu16-Vostro-3546-4689.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://yasu16-Vostro-3546:35559/

SUMMARY

PARAMETERS

  • /rosdistro: kinetic
  • /rosversion: 1.12.6
  • /urg/angle_max: 1.5
  • /urg/angle_min: -1.5
  • /urg/ip_address: 192.168.0.10
  • /urg/publish_multiecho: True

NODES
/
laser_transform (tf/static_transform_publisher)
urg (urg_node/urg_node)
ypspur_coordinator (ypspur_ros_bridge/ypspur-coordinator.sh)
ypspur_ros_bridge (ypspur_ros_bridge/wait_and_ypspur_ros_bridge.sh)

auto-starting new master
process[master]: started with pid [4700]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to a3697cc6-0251-11e7-bfc2-4cbb586fce60
process[rosout-1]: started with pid [4713]
started core service [/rosout]
process[ypspur_coordinator-2]: started with pid [4720]
++++++++++++++++++++++++++++++++++++++++++++++++++
YamabicoProject-Spur
Ver. 1.14.0
++++++++++++++++++++++++++++++++++++++++++++++++++
with SSM

SSM is not available.
Device Information
Port : /dev/serial/by-id/usb-T-frog_project_T-frog_Driver-if00
process[ypspur_ros_bridge-3]: started with pid [4730]
process[urg-4]: started with pid [4734]
process[laser_transform-5]: started with pid [4735]
Warn: Baudrate setting is not supported on this device.
Applying parameters.
YP-Spur coordinator started.
Command analyzer started.
Trajectory control loop started.
[ERROR] [1488793535.278508677]: Error connecting to Hokuyo: Could not open network Hokuyo:
192.168.0.10:10940
could not open ethernet port.
^C[laser_transform-5] killing on exit
[urg-4] killing on exit
[ypspur_ros_bridge-3] killing on exit
[ypspur_coordinator-2] killing on exit

Command analyzer stopped.
Trajectory control loop stopped.
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

[ERROR] [1488793519.746529457]: Unknown error connecting to Hokuyo

ちなみに, 相手方のipがデフォルトであることは確認済みです.(192.168.0.10)
なんかこのLRF壊れてるくさいですね

yasu16@yasu16-Vostro-3546:~/Documents/workspace/robots/cirkit5/fifth_robot_pkg/src/fifth_robot_launcher/launch$ ping -c 3 192.168.0.10
PING 192.168.0.10 (192.168.0.10) 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=64 time=0.147 ms
64 bytes from 192.168.0.10: icmp_seq=2 ttl=64 time=0.151 ms
64 bytes from 192.168.0.10: icmp_seq=3 ttl=64 time=0.158 ms

--- 192.168.0.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.147/0.152/0.158/0.004 ms

動きましたが, 三個くらい要因があり

・ 一個壊れているLRFを踏んづけていた(エラーシグナルを履いていた)
・ /dev/ttyACM0を serial_by_idなんとかにしたら動いた
・ おそらくUSBコントローラの帯域輻輳ではなく, 電流不足ではないかという @RyodoTanaka 氏のご意見をいただきました

RosIpでうごかなかった理由は未確定なので, しばらくあけておきます.
serial_by_idかな?

Rounting Table の設定不良であった可能性が高いので, ここは閉じておきます