こちらの例ではYVT-35LXを使用した例が紹介されています。 https://bnd-tc.github.io/ros_mobile_robot_rsj_tutorial/ros_navigation.html
こちらの記事でいくつか紹介されているので、参考にしてみてください。 https://ssk0109.hatenablog.com/entry/2018/12/30/063109
urg3d_libraryは自身で受信スレッドを持っていないので、データ取得APIを呼び続けないとデータが溜まっていってしまいます。"urg3d_next_receive_read"がfalseを返すという事象ではありませんが、データが溜まったことにより通信の障害が発生したケースがあります。 一度、"urg3d_next_receive_read"がfalseを返したときに受信バッファのクリアを試してみてください。 urg3d_libraryの受信バッファーはセンサ接続時の処理にあるurg3d_tcpclient_buffer_initで初期化されます。ただし、OS側のバッファとのデータの整合性が取れなくなるので、推奨いたしません。(OSのTCP受信バッファーのクリア方法はstackoverflow などの一般的なQ&Aサイトで確認してください。) また、urg3d_tcpclient.hの#define URG3D_MAX_RX_BUFFER_BIT (16)を増やし受信バッファの容量を増やすことで解決する可能性もあるので、こちらも一度試してみてください。
URG-04LX-UG01は計測開始ステップ番号が44であるため、正面がずれているのだと思います。ステップ番号44のデータから逆順に格納するよう試してみてください。 下記URLに掲載されている図がわかりやすいと思います。 https://at-wat.github.io/ROS-quick-start-up/ros-urg.html
vssp_capture_en
vssp_capture_en
top_en
top_en