WSL環境でLivox mid-360を動かすためのメモ
Livox mid360はお手軽な3d lidarとして一部界隈で話題を集めいる.
僕自身一年ほど前に買ったはいいものの放置していた(いわゆる積みセンサ)が,このたび動かしてみることとした.
ロボットに載せれるlinux入りのマシンが現状ラスパイしかない&我が愛しの統合開発環境Clionはx86系でしか動かないこともあり,僕は開発はメインPC上のWSLで行っている.
ただLivox mid360はセンサの値をUDPブロードキャストでまき散らす関係上素直には行かなかったので,ここにメモする
下準備
まずはwslをブリッジモードで使用可能にする.これで直接wslが外部のネットワークに入れるようになる.
- Hyper-Vの有効化
Hyper-Vを有効化する.
windows pro edition以上でしか出来ないので注意.
ここでいったん再起動が入る. - Hyper-V で外部との通信用の仮想スイッチを作成する
Hyper-Vマネージャーを開き,仮想スイッチマネージャーを選択
こんな感じで新しい外部仮想スイッチを作成する.
詳しくは以下のリンク参照
https://zenn.dev/euxn23/articles/7b83df39720ccb
https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/get-started/create-a-virtual-switch-for-hyper-v-virtual-machines?tabs=hyper-v-manager - .wslconfigの編集
.wslconfigに以下を追記する
networkingMode=bridged
vmSwitch=External
スイッチモードにするための設定,vmSwitchは仮想スイッチの名前と同じにすること
5. wsl再起動
wsl --shutdown
- IPの設定
Livox mid360はデフォルトで192.168.1.1XX(XXに該当デバイスのシリアルナンバー下二桁が入る)をIPアドレスにとり,デフォルトゲートウェイは192.168.1.1を取る.
そのためパソコンに直接ぶっさす場合はnicの設定を,スイッチかまして使う場合はルーター等の設定を適切に行う.
今回はルーターのIP(この場合はデフォルトゲートウェイのIPも)を192.168.1.1にすることで解決
pingを該当デバイスのipに打って疎通確認すればよいだろう.
また今回はdhcpでipを取るようにしている.
そのため割り振られるIPがLivox側から見れる192.168.1.1~192.168.1.254の範囲にあるように設定されていることを確認する.(特にルーターのサブネットマスクを/23等/24より広めに設定している場合注意)
Livox-SDK2のインストール
ここからは再起動したwsl側で行う.
まずLivox-SDK2(https://github.com/Livox-SDK/Livox-SDK2 )をインストールする.
githubのりどみを参考に行う.
以下のリンクも参考になった.
インストールが終了したらlivox_lidar_quick_startを実行してみる.
今回は自IPを192.168.1.5にしたので変更の必要は無いが,そこが異なる場合Livox-SDK2/samples/livox_lidar_quick_start/mid360_config.jsonを適宜編集すること.
cd Livox-SDK2/build/samples/livox_lidar_quick_start/
./livox_lidar_quick_start ../../../samples/livox_lidar_quick_start/mid360_config.json
なんかいい感じのログが出た後にダーッと良い感じに流れたらおk.
Livox-Viewerの実行
最後にちゃんと動いているか確かめるために,純正ビューアーのLivox-Viewerを実行してみる.
設定の変更とかもできるし,Realsence-viewerみたいなものかな?
ここ(https://www.livoxtech.com/jp/mid-360/downloads )からダウンロードする.
wgetではうまく行かなかったので,windows側でダウンロードした後に移動させるのがよさそう.
またopengl4.3が必要になるが,デフォルトのopenglは4.2でエラー吐かれるので新しめのopenglをインストールする.
sudo add-apt-repository ppa:oibaf/graphics-drivers -y
sudo apt update
sudo apt upgrade -y
openglバージョンの確認
ryuzot@RYUZOT:~$ glxgears -info
WARNING: dzn is not a conformant Vulkan implementation, testing use only.
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Microsoft Direct3D12 (NVIDIA GeForce RTX 2070 SUPER)) doesn't support base Zink requirements: feats.features.logicOp have_EXT_custom_border_color have_EXT_line_rasterization
GL_RENDERER = D3D12 (NVIDIA GeForce RTX 2070 SUPER)
GL_VERSION = 4.6 (Compatibility Profile) Mesa 24.2~git2405040600.1b8cf0~oibaf~j (git-1b8cf06 2024-05-04 jammy-oi
GL_VENDOR = Microsoft Corporation
GL_EXTENSIONS = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color
(以下略)
opengl4.6だね,ヨシ.
では最後にLivox-Viewerを実行する.
cd LivoxViewer2\ for\ Ubuntu\ v2.3.0/
sh LivoxViewer2.sh
adapterのところで192.168.1.5を選択すると,点群データが見えるようになる.
あとがき
本当はROS2で使うとこまでしたかったが,なんかindex取れないよー見たいなエラー出てるのでまだできてない.
まあwsl側でLivox-Viewer見れたしあとはあるとしてもcommonな問題しかなさそうなのでここで〆
ていうか研究室のタスクが全然出来てなくてlidarで遊んでる場合じゃない,それとinrofどうしよマジで
Discussion