宇树机器人-雷达对接

前言

SDK地址

https://support.unitree.com/home/zh/G1_developer/sdk_overview

上位机连接

https://support.unitree.com/home/zh/G1_developer/quick_development

工单

https://serviceconsole.unitree.com/#/new-work-order?progress=1

Livox Viewer 2查看雷达信息

https://www.livoxtech.com/mid-360/downloads

image-20250722165007543

我这里解压到了

1
~/tools/LivoxViewer2

运行

1
2
cd ~/tools/LivoxViewer2
./LivoxViewer2.sh

这时就可以看到数据了

image-20250722165444087

编译安装Livox SDK2

1
sudo apt install cmake

编译

1
2
3
4
5
6
7
cd ~/project/unitree_robot
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make install

安装位置

  • The generated shared library and static library are installed to the directory of /usr/local/lib.

  • The header files are installed to the directory of /usr/local/include.

如果要删除

Remove Livox SDK2:

1
2
sudo rm -rf /usr/local/lib/liblivox_lidar_sdk_*
sudo rm -rf /usr/local/include/livox_lidar_*

通过 livox_ros_driver2 获取数据

编译安装livox_ros_driver2

克隆项目

1
2
cd ~/project/unitree_robot/unitree_ros2
git clone https://github.com/Livox-SDK/livox_ros_driver2.git ws_livox/src/livox_ros_driver2

针对 G1 机器人雷达,需要修改/livox_ros_driver2/config/MID360_config.json 文件内的 lidar_configs下的ip192.168.123.120host_net_info 下的 ip 为主机 ip。

1
gedit ~/project/unitree_robot/unitree_ros2/ws_livox/src/livox_ros_driver2/config/MID360_config.json

示例如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"lidar_summary_info" : {
"lidar_type": 8
},
"MID360": {
"lidar_net_info" : {
"cmd_data_port": 56100,
"push_msg_port": 56200,
"point_data_port": 56300,
"imu_data_port": 56400,
"log_data_port": 56500
},
"host_net_info" : {
"cmd_data_ip" : "192.168.123.104",
"cmd_data_port": 56101,
"push_msg_ip": "192.168.123.104",
"push_msg_port": 56201,
"point_data_ip": "192.168.123.104",
"point_data_port": 56301,
"imu_data_ip" : "192.168.123.104",
"imu_data_port": 56401,
"log_data_ip" : "",
"log_data_port": 56501
}
},
"lidar_configs" : [
{
"ip" : "192.168.123.120",
"pcl_data_type" : 1,
"pattern_mode" : 0,
"extrinsic_parameter" : {
"roll": 0.0,
"pitch": 0.0,
"yaw": 0.0,
"x": 0,
"y": 0,
"z": 0
}
}
]
}

构建

For ROS2 Foxy:

1
2
3
cd ~/project/unitree_robot/unitree_ros2/ws_livox/src/livox_ros_driver2
source /opt/ros/foxy/setup.sh
./build.sh ROS2

运行

1
2
3
cd ~/project/unitree_robot/unitree_ros2/ws_livox/src/livox_ros_driver2
source ../../install/setup.sh
ros2 launch livox_ros_driver2 msg_MID360_launch.py

解释:

1
ros2 launch livox_ros_driver2 [launch file]

[launch file]指的是安装后的launch_ROS2文件夹下的文件

1
~/project/unitree_robot/unitree_ros2/ws_livox/install/livox_ros_driver2/share/livox_ros_driver2/launch_ROS2

报错处理

运行报错

Could not load library LoadLibrary error: liblivox_lidar_sdk_shared.so

查找文件是否生成

1
sudo find / -name liblivox_lidar_sdk_shared.so

我这里找到

/usr/local/lib/liblivox_lidar_sdk_shared.so

添加环境变量

1
2
echo $LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

永久生效

1
sudo gedit ~/.bashrc

添加

1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

确保你有足够的权限来访问和加载liblivox_lidar_sdk_shared.so库文件。你可以尝试使用ls -l命令来查看库文件的权限:

1
ls -l /usr/local/lib/liblivox_lidar_sdk_shared.so

如果需要,你可以使用chmod命令来修改库文件的权限:

1
sudo chmod +r /usr/local/lib/liblivox_lidar_sdk_shared.so

使用ldd命令来检查liblivox_lidar_sdk_shared.so库文件是否缺失依赖:

1
ldd /usr/local/lib/liblivox_lidar_sdk_shared.so

查看

我们就可以订阅

  • /livox/imu
  • /livox/lidar

在新的控制台中查看

1
2
3
4
5
6
7
8
9
10
# 列出所有话题
ros2 topic list

# 查看话题的信息
ros2 topic info /livox/imu

# 订阅话题
ros2 topic echo /livox/imu

ros2 topic echo /livox/lidar

注意

这个显示的是话题发布者和订阅者的数量,不是消息数。