livox-mid70激光雷達使用實錄


livox-mid70激光雷達使用實錄

livox-mid70是由大疆發布的面陣激光雷達,是大疆為自動駕駛推出的一款激光雷達,同時也可用於建立三維地圖,文物修復,與大疆無人機相結合使用。你可以在x86和arm架構上都可以使用(arm需要交叉編譯)。
bilibili上Livox官方發布了大量的視頻demo可以去圍觀一下,同時Livox也有一個論壇可以去看一下。

官方文檔

https://livox-wiki-cn.readthedocs.io/zh_CN/latest/index.html
這是中文官方文檔,請根據以上文檔完成硬件上的連接以及Ip配置,一切以官方文檔為主。

  • 硬件連接

  • 更改IP:一般來說剛拿到手都是靜態IP,這時候你只需要將網線與你自己筆記本相連,然后通過用戶手冊查看你自己雷達的IP,那需要設置你自己電腦的IP為手動,並將其分在同一網段不同的地址下:

      如我的Mid70的IP地址為192.168.1.105,
      那么我電腦設置時
      IP:192.168.1.104,
      子網掩碼:255.255.255.0,
      網關:192.168.0.1
    

如果對IP配置有問題,或想改為動態IP詳情參見用戶手冊

Livox Viewer

Livox Viewer是一款圖形化操作的顯示軟件,有助於快速讓你知道你的硬件連接和Ip配置有沒有問題。

Livox-SDK

剛剛Livox Viewer只是一個快速嘗試,如果你要做開發就必須要安裝Livox-SDK(包括后面要在ros上使用也必須先要安裝這個)

  • github上中文README

  • 先從github上clone下來

git clone https://github.com/Livox-SDK/Livox-SDK.git
  • 再編譯
cd Livox-SDK
cd build && cmake ..
make
sudo make install
  • 簡單運行demo,注意這里的sample是在build文件夾下面的
cd sample/lidar && ./lidar_sample

livox-ros-driver

不得不說ros是真的好用,所以建議在ros下使用,會使得一切都很清晰明了。裝livox-ros-driver前必須要先裝Livox-SDK

  • 先從github上clone下來,這里一定要用下面這個命令把它clone到相應位置,否則會出問題。
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src
  • 簡單的catkin_make一下
cd ws_livox
catkin_make
  • 別忘了添加環境
source ./devel/setup.sh
  • 之后跑個rviz的demo,讓你的激光雷達點雲數據在rviz里顯示出來
roslaunch livox_ros_driver livox_lidar_rviz.launch

錄制你的點雲數據

點雲數據不像二維圖像一樣,簡簡單單錄制一個視頻就好,作為點雲數據記錄是比較特殊的。
livox一共有兩種錄制格式

lvx格式

lvx格式是livox的一種自定義格式,如果你想在Windows上快速錄制,可以使用Livox Viewer進行錄制,也可以通過Livox-SDK中的文件錄制

  • 首先進入以下路徑
cd ./Livox_SDK/build/sample/lidar_lvx_file
  • 然后運行下面這個文件,這里不用-c指定也可以,這里指定了lidar並設定持續10s
./lidar_lvx_sample -c "此處為已連接的Lidar的15位廣播碼" -t 10

通過上面的操作會得到一個.lvx格式的文件,這個文件可以在Livox Viewer中直接播放,也可以轉成rosbag(一個可以把ros中當前所有topic中message記錄下來的東西)。

roslaunch livox_ros_driver lvx_to_rosbag.launch lvx_file_path:="/home/livox/test.lvx"

rosbag格式

rosbag是ros中非常好用的一個東西,我在之前的ros文章中有提到過。當我們在運行livox-ros-driver中的rviz顯示時,即

roslaunch livox_ros_driver livox_lidar_rviz.launch #詳情看上面livox-ros-driver

我們可以把此時的所有消息用rosbag記錄下來

rosbag record -a -o myrosbag.bag #-a代表所有的消息,-c代表輸出名稱

此時就會生成一個.bag文件,具體名稱看終端的輸出。
你可以通過以下命令進行播放rosbag

rosbag play *.bag -l #-l代表loop循環播放

此時再打開在livox-ros-driver下的的rviz,就可以得到rosbag中的點雲圖了

cd ws_livox/src/livox_ros_driver/
rviz -d config/display_lidar_points.rviz #這種.rviz文件實際上是保存rviz相關顯示的數據

livox_detection

livox_detection指的是激光點雲檢測,livox官方給的代碼可以檢測各種車和行人。官方說2080ti下需要50ms。

在Livox官方的github倉庫中有兩個激光點雲檢測倉庫分別為livox_detectionlivox_dection_simu
這兩個倉庫看上去都差不多,但實際上非常坑的是:

  • livox_detection倉庫中的預訓練模型在可以識別人和車,但車的識別效果不是很好;
  • livox_dection_simu倉庫中的預訓練模型只能識別車,而幾乎無法識別到人(雖然代碼看上去都差不多)。

至於原因我也不知道,只是這坑了我一會兒,后來在issue發現了這個問題。

由於兩個倉庫操作都非常相似,這里選livox_detection_simu為例。

依賴

  • python3.6+
  • tensorflow1.13+ (tested on 1.13.0)
  • pybind11(后面的過程中安裝)
  • ros

准備

  • 首先clone倉庫
git clone https://github.com/Livox-SDK/livox_detection_simu
  • 然后配置pybind(pybind就是這樣,每次都需要clone在那個路徑下才行)。
cd livox_detection_simu/utils/lib_cpp
git clone https://github.com/pybind/pybind11.git
  • 編譯(在剛剛的lib_cpp路徑下)。
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
  • 把c++得到的依賴文件放到項目根目錄下
cp lib_cpp.so ../../../
  • 下載預訓練模型,會得到model文件夾,把它放在項目根目錄下,這樣你就不用改模型地址了,

  • 下載rosbag,這是官方提供的rosbag,你也可以自己錄一個。

運行

  • 打開一個終端運行roscore
roscore
  • 打開一個終端運行rviz
rviz -d ./config/show.rviz #在livox_detection_simu倉庫下
  • 打開一個終端播放rosbag
rosbag play *.bag -r 0.1 #找到你存放rosbag的路徑運行,發送消息間隔0.1s
  • 打開一個終端運行目標檢測程序
python livox_detection_simu.py #如果你的模型放在其他地方,你需要在config下將其模型路徑改為你所放預訓練模型的路徑

由於目標檢測速度相當慢,實時性非常差,隊列里可能還緩存了很多幀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM