구동 환경
WSL2에서 USB 연결을 하기 위해서, 별도의 설정이 필요하다.
📓
WSL2 설치 및 기본 설정 (Windows11)
설치
- 원하는 이름으로 wordspace 생성 이후 src 폴더를 만들고, 그 src 폴더에 https://github.com/YDLIDAR/ydlidar_ros2_driver를 받는다.
- {workspace}/src/ydlidar_ros2_driver 식으로 경로가 구성된다.
- launch 스크립트 사용을 위해서 필요한 파라미터를 설정해준다.
- ${workspace}/src/ydlidar_ros2_driver/params/ydlidar.yaml를 수정한다.
ydlidar_ros2_driver_node:
ros__parameters:
port: /dev/ttyUSB0
frame_id: laser_frame
ignore_array: ""
baudrate: 128000
lidar_type: 1
device_type: 0
sample_rate: 9
abnormal_check_count: 4
resolution_fixed: true
reversion: true
inverted: true
auto_reconnect: true
isSingleChannel: false
intensity: false
support_motor_dtr: true
angle_max: 180.0
angle_min: -180.0
range_max: 64.0
range_min: 0.01
frequency: 10.0
invalid_range_is_inf: false
- workspace 경로에서
colcon build --symlink-install
로 설치한다.
- .bashrc 파일에
. ~/{workspace}/install/setup.bash
를 등록해놓는다.
실행
1. YDLidar 구동해보기
아래와 같이 2가지 방법으로 실행해 볼 수 있다.
- run 스크립트 활용하기
- ydlidar_ros2_driver 패키지의 ydlidar_ros2_driver_node를 실행하면 되는데, 명령어 뒤에 필요한 파라미터를 추가해주면 된다.
- 기본 명령어만 실행하면 환경이 맞지 않아서 실행이 안되거나 중간에 종료된다.
- 전체 파라미터를 추가하면 다음의 명령어로 실행하면 된다.
ros2 run ydlidar_ros2_driver ydlidar_ros2_driver_node --ros-args --param port:=/dev/ttyUSB0 --ros-args --param frame_id:=laser_frame --ros-args --param baudrate:=128000 --ros-args --param lidar_type:=1 --ros-args --param device_type:=0 --ros-args --param sample_rate:=9 --ros-args --param abnormal_check_count:=4 --ros-args --param resolution_fixed:=true --ros-args --param reversion:=true --ros-args --param inverted:=true --ros-args --param auto_reconnect:=true --ros-args --param isSingleChannel:=false --ros-args --param intensity:=false --ros-args --param support_motor_dtr:=true --ros-args --param angle_max:=180.0 --ros-args --param angle_min:=-180.0 --ros-args --param range_max:=64.0 --ros-args --param range_min:=0.01 --ros-args --param frequency:=10.0 --ros-args --param invalid_range_is_inf:=false
주요한 파라미터만 추가하면 다음의 명령어로 실행하면 된다.port
/dev/ttyUSB0frame_id
laser_framebaudrate
128000support_motor_dtr
true
ros2 run ydlidar_ros2_driver ydlidar_ros2_driver_node --ros-args --param port:=/dev/ttyUSB0 --ros-args --param frame_id:=laser_frame --ros-args --param baudrate:=128000 --ros-args --param support_motor_dtr:=true
- launch 스크립트 활용하기
- launch 스크립트 사용을 위해서, 아래 링크와 같이 파라미터 파일을 변경해야 한다.
- 위의 예를 참고하여 launch 스크립트 사용을 위해서 필요한 파라미터를 설정해준다.
- 파라미터를 변경하면
colcon build --symlink-install
를 다시 실행해야 한다.
- 다음의 명령어로 실행하면 된다.
ros2 launch ydlidar_ros2_driver ydlidar_launch.py
2. TOPIC 확인해보기
2가지 방법으로 topic 내용을 확인할 수 있다.
- 다음의 명령어를 실행하면, 다음과 같은 결과가 표시된다.
ros2 topic echo /scan
- 0.0
- 1008.0
- 1008.0
- 1008.0
- 1008.0
- 1008.0
- 1008.0
- 1008.0
- 1008.0
- ydlidar_ros2_driver의 ydlidar_ros2_driver_client을 실행하면, 다음과 같은 결과가 표시된다.
ros2 run ydlidar_ros2_driver ydlidar_ros2_driver_client
[YDLIDAR INFO]: angle-distance : [111.645576, 0.548000]
[YDLIDAR INFO]: angle-distance : [112.215187, 0.550000]
[YDLIDAR INFO]: angle-distance : [112.784821, 0.546000]
[YDLIDAR INFO]: angle-distance : [113.354431, 0.545000]
[YDLIDAR INFO]: angle-distance : [113.924042, 0.543000]
[YDLIDAR INFO]: angle-distance : [114.493683, 0.541000]
[YDLIDAR INFO]: angle-distance : [115.063293, 0.536000]
[YDLIDAR INFO]: angle-distance : [115.632927, 0.534000]
[YDLIDAR INFO]: angle-distance : [116.202538, 0.530000]
[YDLIDAR INFO]: angle-distance : [116.772148, 0.000000]
[YDLIDAR INFO]: angle-distance : [117.341789, 0.559000]
[YDLIDAR INFO]: angle-distance : [117.911400, 0.589000]
[YDLIDAR INFO]: angle-distance : [118.481010, 0.526000]
3. RVIZ2 실행해보기
이것도 아래와 같이 2가지 방법으로 실행할 수 있다.
- rviz2 실행 후 직접 설정하기
rviz2
명령어를 입력하여, rviz2를 실행해본다.- Add 창을 열어서, By topic의 scan을 추가한다.
- Laser Scan의 설정값을 변경해준다.
- Fixed Frame이 laser_frame인지 확인한다.
- Topic > Reliability Policy를 Best Effort 로 변경한다.
- Size를 1~3 사이로 잘보이도록 변경한다.
- ydlidar_launch.py 실행해보기
- 다음의 명령어를 실행하면, 이미 설정된 rviz2로 센서값을 시각화해서 볼 수 있다.
ros2 launch ydlidar_ros2_driver ydlidar_launch_view.py
결과
참고