YDLIDAR T-mini Plus LiDAR
YDLIDAR T-mini Plus를 ROS 2에 연결하고 /scan 토픽으로 발행되는 거리 데이터를 RViz에서 확인합니다.
이 실습은 YDLIDAR ROS 2 Driver와 YDLidar SDK를 사용합니다.
준비물
- Ubuntu 24.04와 ROS 2 Jazzy가 설치된 PC
- YDLIDAR T-mini Plus
- USB 케이블
YDLidar SDK 설치
YDLIDAR ROS 2 드라이버를 빌드하려면 먼저 YDLidar SDK를 설치해야 합니다.
경로에 주의합니다.
cd 명령을 입력한 뒤, 프롬프트에서 경로가 변경된 것을 확인하고 올바른 위치에 있는지 확인합니다.
예를 들어 아래와 같은 상태에서는 홈 디렉토리 아래의 YDLidar-SDK 디렉토리에 진입한 상태임을 알 수 있습니다.
~/YDLidar-SDK$
$ sudo apt update
$ sudo apt install -y cmake pkg-config
$ cd ~
~$ git clone https://github.com/YDLIDAR/YDLidar-SDK.git
~$ cd YDLidar-SDK
~/YDLidar-SDK$ mkdir build
~/YDLidar-SDK$ cd build
~/YDLidar-SDK/build$ cmake ..
~/YDLidar-SDK/build$ make
~/YDLidar-SDK/build$ sudo make install
ROS 2 드라이버 설치
워크스페이스의 src 폴더에 Jazzy를 지원하는 브랜치를 복제합니다.
$ cd ~/ros2_ws/src
~/ros2_ws/src$ git clone -b humble https://github.com/YDLIDAR/ydlidar_ros2_driver.git
$ cd ~/ros2_ws
~/ros2_ws$ colcon build --symlink-install
~/ros2_ws$ source install/setup.bash
시리얼 포트 권한 설정
T-mini Plus는 USB 시리얼 장치로 연결됩니다. 센서를 연결한 뒤 장치 이름을 확인합니다.
$ ls /dev/ttyUSB*
일반 사용자가 시리얼 포트를 사용할 수 있도록 현재 사용자를 dialout 그룹에 추가합니다.
$ sudo usermod -aG dialout $USER
그룹 권한은 로그아웃 후 다시 로그인해야 적용됩니다. PC를 재부팅해도 됩니다. 다시 로그인한 뒤 groups 명령어 결과에 dialout이 있는지 확인하세요.
T-mini Plus 설정 선택
드라이버의 기본 런치파일은 params/ydlidar.yaml을 사용합니다. T-mini Plus 실습에서는 launch/ydlidar_launch.py를 열고 default_value의 파일 이름을 Tmini-Plus-SH.yaml로 변경합니다.
params_declare = DeclareLaunchArgument('params_file',
default_value=os.path.join(
share_dir, 'params', 'ydlidar.yaml'),
description='FPath to the ROS2 parameters file to use.')
params_declare = DeclareLaunchArgument('params_file',
default_value=os.path.join(
share_dir, 'params', 'Tmini-Plus-SH.yaml'),
description='FPath to the ROS2 parameters file to use.')
수정한 런치파일이 설치 공간에 반영되도록 다시 빌드합니다.
$ cd ~/ros2_ws
~/ros2_ws$ colcon build --symlink-install --packages-select ydlidar_ros2_driver
~/ros2_ws$ source install/setup.bash
LiDAR 실행
파라미터 파일을 런치파일 기본값으로 고정했다면 다음 명령어로 실행합니다.
$ ros2 launch ydlidar_ros2_driver ydlidar_launch.py
새 터미널에서 /scan 토픽이 발행되는지 확인합니다.
$ ros2 topic list
/parameter_events
/point_cloud
/rosout
/scan
/tf_static
/ydlidar_ros2_driver_node/transition_event
$ ros2 topic echo /scan --once
header:
stamp:
sec: 1783925266
nanosec: 60100000
frame_id: laser_frame
angle_min: -3.1415927410125732
angle_max: 3.1415927410125732
angle_increment: 0.014646119438111782
time_increment: 0.00024518228019587696
scan_time: 0.09954400360584259
range_min: 0.029999999329447746
range_max: 12.0
ranges:
- 0.0
- 2.7279999256134033
- 2.871999979019165
- 2.7320001125335693
# (생략)
RViz에서 시각화
새 터미널에서 RViz를 실행합니다.
$ rviz2
Fixed Frame을laser_frame으로 설정합니다.- 왼쪽 아래의 Add 버튼을 누릅니다.
- By display type에서 LaserScan을 추가합니다.
Topic을/scan으로 설정합니다.- LaserScan의
Reliability Policy를 Best Effort로 설정합니다.
