Files

69 lines
2.0 KiB
Python
Executable File

import os
from launch.substitutions import LaunchConfiguration
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch_ros.actions import Node
from launch.conditions import IfCondition
from ament_index_python.packages import get_package_share_directory
def generate_launch_description():
use_l2_rviz = LaunchConfiguration('use_rviz')
declare_rviz_arg = DeclareLaunchArgument(
'use_l2_rviz',
default_value='false',
description='Whether to launch RViz for Unitree L2 LiDAR visualization'
)
pkg_share = get_package_share_directory('unitree_lidar_ros2')
rviz_config_file = os.path.join(pkg_share,
'rviz',
'view.rviz')
# Run unitree lidar
node1 = Node(
package='unitree_lidar_ros2',
executable='unitree_lidar_ros2_node',
name='unitree_lidar_ros2_node',
output='screen',
parameters= [
{'initialize_type': 1},
{'work_mode': 8},
{'use_system_timestamp': True},
{'range_min': 0.0},
{'range_max': 100.0},
{'cloud_scan_num': 18},
{'serial_port': '/dev/ttyACM1'},
{'baudrate': 4000000},
{'lidar_port': 6101},
{'lidar_ip': '192.168.1.62'},
{'local_port': 6201},
{'local_ip': '192.168.1.2'},
{'cloud_frame': "unilidar_lidar"},
{'cloud_topic': "unilidar/cloud"},
{'imu_frame': "unilidar_imu"},
{'imu_topic': "unilidar/imu"},
]
)
# Run Rviz
rviz_node = Node(
package='rviz2',
executable='rviz2',
name='rviz2',
arguments=['-d', rviz_config_file],
condition=IfCondition(use_l2_rviz),
output='log'
)
return LaunchDescription(
[
declare_rviz_arg,
node1,
rviz_node,
]
)