Sorry broken English. All sentence used Translation Tool.
Could you elaborate? I don't think the issue is related to ROS, since they do function normally, just that they disconnected every now and then. Regarding isolating the problem, the CPU occupancy differs when multiple nodes are running and when they are not. I asked this question because in other inquiries, there were cases where communication failed when CPU occupancy was high. However, if the problem was cured by replacing the hub, then the cause can only be the hub. One more question: from my...
I imagine that Jumbo Frame is done by inspecting the source and destination of TCP packet, if those are the same, then append the new message to old one, until it reached MTU, am I right? Isn't Jumbo Frame issue applicable to all hub that support it, no matter multiple hubs or not? In both of the above cases, you are correct. Ubuntu also has a setting(GRO). Please check there. about https://docs.kernel.org/networking/segmentation-offloads.html setting(This article is written in Japanese. Please use...
https://en.wikipedia.org/wiki/Jumbo_frame It depends on the program, so it's hard to say. If multiple hubs are connected, a jumbo frame will occur if there is a jumbo frame supported hub on the route. Depending on the program, disconnections may occur. Please long-term test. A process has been added to add the PSH flag to the message of the UST F/W process. This prevents jumbo frames regardless of hub type. It is recommended that the sensor F/W be updated before use.
DownLoad link is updated. Wiki URL : https://sourceforge.net/p/urgnetwork/wiki/driver_win10_en/ Please DownLoad from hokuyo-aut.jp(HOKUYO official site ENGLISH ver) after Sign in or Member Registration .
Please try to download the USB Driver from this URL: https://www.hokuyo-aut.jp/member/dl.php?f=866_169
urg3d_libraryがOSのTCP受信バッファーから受信データをurg3d_libraryの受信バッファーにできるだけ多く受け取ります。 urg3d_libraryの受信バッファーはセンサ接続時の処理にあるurg3d_tcpclient_buffer_initで初期化されます。ただし、OS側のバッファとのデータの整合性が取れなくなるので、推奨いたしません。 (OSのTCP受信バッファーのクリア方法はstackoverflow などの一般的なQ&Aサイトで確認してください。) sampleではエラーで計測データが取得できなかった場合エラーコードを確認し、最上位の桁が0であれば(Transmission timeoutなどの各種タイムアウトや、初期化中の場合)そのままデータ取得を続行する処理になっています。 urg3d_tcpclient.hの#define URG3D_MAX_RX_BUFFER_BIT (16)を増やす解決方法もあります。
high_1_frame_4_vfield_2_hfield_data_file.c では urg3d_next_receive_ready(&urg)の結果を確認して、次の電文が来ていなければ一定時間待機する処理が入っています。 urg3d_high_get_measurement_data()はurg3d_low_get_ri()あるいはro()を実行し、各種データを変換している箇所なので、データの取り扱い以外は同一とみなして頂いて構いません