Unitree Go2 安装 Mid-360S
·
本文记录 Unitree Go2 Edu + Mid-360S + Ubuntu 20.04 + ROS 2 Foxy 从硬件连接、网络配置、驱动安装到点云查看的完整流程。
1.硬件连接
将雷达和 Go2 连接,确认雷达通电成功。


安装好后的样子:

2.网络配置
MID-360S 和 Go2 原有网络现在都走同一个物理接口 eth10,最干净的做法就是让 同一个 netplan-eth10 连接同时拥有两个 IPv4 地址。(注意,每个机器物理接口都不一样,需要自己确定)
先备份:
sudo cp /etc/netplan/01-eth10-static.yaml \
/etc/netplan/01-eth10-static.yaml.bak
编辑:
sudo nano /etc/netplan/01-eth10-static.yaml
改成:
network:
version: 2
renderer: NetworkManager
ethernets:
eth10:
dhcp4: no
addresses:
- 192.168.123.18/24
- 192.168.1.50/24
gateway4: 192.168.123.1
应用新配置:
sudo netplan apply
3.驱动安装
3.1安装 Livox-SDK2
cd ~
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd Livox-SDK2
mkdir -p build && cd build
cmake ..
make -j$(nproc)
sudo make install
3.2安装 livox_ros_driver2
mkdir -p ~/livox_ws/src
cd ~/livox_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver2.git
cd ~/livox_ws/src/livox_ros_driver2
4.修改Mid-360S 配置
进入驱动配置目录:
cd ~/livox_ws/src/livox_ros_driver2/config
修改以下文件:
MID360s_config.json
注意要修改以下几个选项:
"host_ip":"192.168.123.50"
"ip":"192.168.123.1xx"(xx 为 Mid-360S 序列号最后两位)
修改后的整个配置文件如下:
{
"MID360s": {
"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": [
{
"host_ip": "192.168.1.50",
"cmd_data_port": 56101,
"push_msg_port": 56201,
"point_data_port": 56301,
"imu_data_port": 56401,
"log_data_port": 56501
}
]
},
"lidar_configs": [
{
"ip": "192.168.1.1xx",
"pcl_data_type": 1,
"pattern_mode": 0,
"extrinsic_parameter": {
"roll": 0.0,
"pitch": 0.0,
"yaw": 0.0,
"x": 0,
"y": 0,
"z": 0
}
}
]
}
5.修改外参
因为雷达安装到雷达支架是倾斜的,所以需要修改雷达的外参。
5.1确定安装外参
x=0.1870 m,y=0,z=0.0803 m,roll=0,pitch=+13∘,yaw=0
5.2创建msg_MID360s_tf_launch.py
为了自动有 base_link -> livox_frame 这条 TF,把它写进一个 ROS2 launch 文件里
msg_MID360s_tf_launch.py
from launch import LaunchDescription
from launch_ros.actions import Node
from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
config_path = os.path.join(
get_package_share_directory('livox_ros_driver2'),
'config',
'MID360s_config.json'
)
livox_driver = Node(
package='livox_ros_driver2',
executable='livox_ros_driver2_node',
name='livox_lidar_publisher',
output='screen',
parameters=[
{
'xfer_format': 1,
'multi_topic': 0,
'data_src': 0,
'publish_freq': 10.0,
'output_data_type': 0,
'frame_id': 'livox_frame',
'lvx_file_path': '/home/livox/livox_test.lvx',
'user_config_path': config_path,
'cmdline_input_bd_code': 'livox0000000001'
}
]
)
Go2 official MID-360/MID-360S mounting bracket
base_link -> livox_frame
x = 0.1870 m
y = 0.0 m
z = 0.0803 m
pitch = +13 deg
static_tf = Node(
package='tf2_ros',
executable='static_transform_publisher',
name='base_to_livox_tf',
arguments=[
'0.1870', '0.0', '0.0803',
'0.0', '0.113203', '0.0', '0.993572',
'base_link',
'livox_frame'
],
output='screen'
)
return LaunchDescription([
livox_driver,
static_tf
])</code></pre>
重新编译后运行:
source /opt/ros/foxy/setup.bash
source ~/livox_ws/install/setup.bash
ros2 launch livox_ros_driver2 msg_MID360s_tf_launch.py
5.3创建rviz_MID360s_tf_launch.py
先创建专用 RViz 配置:
cd ~/livox_ws/src/livox_ros_driver2/config
cp display_point_cloud_ROS2.rviz display_point_cloud_ROS2_base_link.rviz
修改 Fixed Frame:
sed -i 's/Fixed Frame: livox_frame/Fixed Frame: base_link/'
display_point_cloud_ROS2_base_link.rviz
rviz_MID360s_tf_launch.py
import os
from launch import LaunchDescription
from launch_ros.actions import Node
################### user configure parameters for ros2 start ###################
Livox point cloud output
xfer_format = 0 # 0-PointCloud2(PointXYZRTL), 1-CustomMsg
multi_topic = 0 # 0-All LiDARs share the same topic
data_src = 0 # 0-LiDAR
publish_freq = 10.0 # Point cloud publish frequency
output_type = 0
LiDAR frame
frame_id = 'livox_frame'
lvx_file_path = '/home/livox/livox_test.lvx'
cmdline_bd_code = 'livox0000000001'
Package paths
cur_path = os.path.split(os.path.realpath(file))[0] + '/'
cur_config_path = cur_path + '../config'
MID-360S configuration
user_config_path = os.path.join(
cur_config_path,
'MID360s_config.json'
)
RViz configuration with Fixed Frame = base_link
rviz_config_path = os.path.join(
cur_config_path,
'display_point_cloud_ROS2_base_link.rviz'
)
################### user configure parameters for ros2 end #####################
livox_ros2_params = [
{"xfer_format": xfer_format},
{"multi_topic": multi_topic},
{"data_src": data_src},
{"publish_freq": publish_freq},
{"output_data_type": output_type},
{"frame_id": frame_id},
{"lvx_file_path": lvx_file_path},
{"user_config_path": user_config_path},
{"cmdline_input_bd_code": cmdline_bd_code}
]
def generate_launch_description():
MID-360S driver
livox_driver = Node(
package='livox_ros_driver2',
executable='livox_ros_driver2_node',
name='livox_lidar_publisher',
output='screen',
parameters=livox_ros2_params
)
Static TF:
base_link -> livox_frame
Translation:
x = 0.1870 m
y = 0.0000 m
z = 0.0803 m
Rotation:
roll = 0 deg
pitch = +13 deg
yaw = 0 deg
Quaternion:
qx = 0
qy = 0.113203
qz = 0
qw = 0.993572
static_tf = Node(
package='tf2_ros',
executable='static_transform_publisher',
name='base_link_to_livox_frame',
output='screen',
arguments=[
'0.1870',
'0.0',
'0.0803',
'0.0',
'0.113203',
'0.0',
'0.993572',
'base_link',
'livox_frame'
]
)
RViz2
livox_rviz = Node(
package='rviz2',
executable='rviz2',
name='rviz2',
output='screen',
arguments=[
'--display-config',
rviz_config_path
]
)
return LaunchDescription([
livox_driver,
static_tf,
livox_rviz
])</code></pre>
重新编译后运行:
source /opt/ros/foxy/setup.bash
source ~/livox_ws/install/setup.bash
ros2 launch livox_ros_driver2 rviz_MID360s_tf_launch.py
5.4区别
项目
rviz_MID360s_tf_launch.py
msg_MID360s_tf_launch.py
xfer_format
0
1
/livox/lidar 类型
PointCloud2
CustomMsg
静态 TF
base_link -> livox_frame(13°)
base_link -> livox_frame(13°)
主要用途
看点云、调试、一般 ROS2 点云处理
给需要 Livox 原始 CustomMsg 的算法使用
6.点云查看
cd ~/livox_ws
source /opt/ros/foxy/setup.bash
source install/setup.bash
6.1启动launch文件查看点云
ros2 launch livox_ros_driver2 rviz_MID360s_launch.py
6.2只启动数据发布节点
如果不需要打开 RViz,可以启动消息发布 launch:
ros2 launch livox_ros_driver2 msg_MID360s_launch.py
如果需要在rviz中查看点云,启动:
ros2 launch livox_ros_driver2 rviz_MID360s_launch.py
6.3查看 ROS 2 话题
ros2 topic list
特别关注:
/livox/lidar
/livox/imu
具体查看:
ros2 topic info /livox/lidar
ros2 topic info /livox/imu
ros2 topic hz /livox/lidar
ros2 topic hz /livox/imu
参考:
Mid-360S 使用教程 | Dreamer Island
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)