搭建自己的小车 —— 运行livox mid_360

文章目录

  • [一、Livox Viewer 查看点云](#一、Livox Viewer 查看点云)
  • [二、 ROS 查看点云](#二、 ROS 查看点云)
    • [1. 安装 雷达驱动 Livox-SDK2](#1. 安装 雷达驱动 Livox-SDK2)
    • [2. 使用 ROS 功能包查看点云](#2. 使用 ROS 功能包查看点云)
    • [3. 精简 livox_ros_driver2 功能包(可选)](#3. 精简 livox_ros_driver2 功能包(可选))

自己整理的相关资料内容 下载链接,按需取用。

一、Livox Viewer 查看点云

Mid-360 是 4 线束非重复扫描固态激光雷达。Mid-360内部集成了IMU芯片(3轴加速度计和3轴陀螺仪),默认情况下,上电后即开始以200Hz频率推送IMU数据(可通过上位机开启或关闭)。数据内容包括3轴加速度以及3轴角速度,方向与点云坐标系相同,在点云坐标系下IMU芯片的位置为(x=11.0mm,y=23.29 mm, z=-44.12 mm)

Mid-360通过以太网进行数据通信(UDP),支持静态IP地址模式。所有Mid-360出厂默认IP地址为192.168.1.1XX(XX为Mid-360 SN码最后两位数字),子网掩码为255.255.255.0,默认网关为192.168.1.1。首次使用Mid-360时,无需通过路由器,即可直接与电脑连接。

  • IP地址(192.168.1.1XX):是设备在网络中的唯一标识符,用于区分网络中的其他设备。
  • 子网掩码(255.255.255.0):子网掩码用于确定网络部分和主机部分。255.255.255.0表示前24位是网络部分,后8位是主机部分。在这种配置下,网络中可以有256个地址(0-255),其中254个可用地址(去掉网络地址和广播地址)。
  • 网关(192.168.1.1):网关是连接不同网络的设备,通常是路由器。设备通过这个地址与外部网络进行通信。在 Mid-360 的使用中可以不用设置。
  • DNS(域名系统):是互联网中的一个重要服务,用于将域名(如www.example.com)转换为IP地址(如192.168.1.1),使设备能够通过友好的名称访问网站和其他网络资源。

此时,为保证自己的电脑与mid360在同一网段,配置自己ubuntu电脑有线网络 IPv4的IP地址为192.168.1.50,网关为255.255.255.0

接着,从 livox 官网 下载 Livox Viewer 2 - Ubuntu

bash 复制代码
unzip LivoxViewer2 for Ubuntu v2.3.0.zip
cd LivoxViewer2 for Ubuntu v2.3.0
.LivoxViewer2.sh

执行完上述脚本,会弹出官方上位机界面进行点云数据查看。从下图可以看到,雷达IP 为192.168.1.134,与其SN 后两位相对应。


livox_viewer.desktop 内容参考如下:

bash 复制代码
[Desktop Entry]
Version=1.0
Name=LivoxViewer2
Comment=LivoxViewer2
Exec=/home/gene/Documents/software/LivoxViewer2_for_Ubuntu_v2.3.0/LivoxViewer2.sh
Icon=/home/gene/Documents/software/LivoxViewer2_for_Ubuntu_v2.3.0/livox_viewer.jpg
StartupNotify=true
Terminal=false
Type=Application
Categories=Applications;

二、 ROS 查看点云

1. 安装 雷达驱动 Livox-SDK2

Livox-SDK2 下载官方驱动及安装。

bash 复制代码
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j$(nproc)
sudo make install

生成的共享库和静态库安装到"/usr/local/lib"目录下。头文件安装到"/usr/local/include"目录中。

如果想要删除 Livox SDK2:

bash 复制代码
sudo rm -rf /usr/local/lib/liblivox_lidar_sdk_*
sudo rm -rf /usr/local/include/livox_lidar_*

Mid-360 --- Livox wiki 0.1 文档

2. 使用 ROS 功能包查看点云

livox_ros_driver2 下载功能包。

bash 复制代码
mkdir -p livox_ws/src && cd livox_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver2.git ws_livox/src/livox_ros_driver2
 
# ROS1 + ubuntu20.04
source /opt/ros/noetic/setup.sh
./build.sh ROS1
roslaunch livox_ros_driver2 rviz_MID360.launch

在启动launch前,需要注意的是:根据实际情况配置 /livox_ros_driver2/config/MID360_config.json 文件。

  • 红框为自己的雷达机器IP ------ 默认IP地址为192.168.1.1XX(XX为Mid-360 SN码最后两位数字);
  • 蓝框为自己设置电脑的有线IPv4地址192.168.1.50

    然后就可以愉快的通过ros进行mid360快乐玩耍了~

3. 精简 livox_ros_driver2 功能包(可选)

livox_ros_driver2 是官方为了兼容ROS1和ROS2的通用版本,需要通过./build.sh ROS*来指定编译。而自己的系统是确定的ROS版本,可以根据需要精简 livox_ros_driver2 功能包。如下是 build.sh 文件内容,可以看到是 首先清除原本编译的编译文件,接着根据指定版本对launch、xml文件进行重复盖,然后使用对应ROS版本重新编译 。所以我们根据红蓝框对相应的文件进行重命名删减,即可得到指定的版本(其实,++首次执行/build.sh ROS* 后,该功能包即是对应版本功能包++)。

关于CMakeLists.txt 文件,我们也可以根据变量ROS_EDITION 进行精简。

自己整理了 livox 关于ubuntu的上位机、驱动及ROS功能包相关资源 按需选用,也方便自己后续新环境配置驱动,共整理四个文件夹,其作用分别如下:

版本 作用
LivoxViewer2_for_Ubuntu_v2.3.0 官方上位机
Livox-SDK2 雷达驱动
livox_general_ws 兼容ROS1、ROS2版本
livox_ros1_ws ROS1版本
livox_ros2_ws ROS2版本

重点是解决自己 ROS2 LIVOX_INTERFACES_INCLUDE_DIRECTORIES 编译报错的问题

操作方法如下:

bash 复制代码
#  ---------------- livox_general_ws ---------------------------
cd livox_general_ws/src/livox_ros_driver2
./build.sh ROS1  # 或 ./build.sh ROS2

#  ---------------- livox_ros1_ws ---------------------------
cd livox_ros1_ws
catkin_make

#  ---------------- livox_ros2_ws ---------------------------
cd livox_ros2_ws
colcon build

无语,,,自己设的免费积分资源,被平台设为 VIP资源下载了。。。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言