구동 환경
WSL2에서 USB 연결을 하기 위해서, 별도의 설정이 필요하다.
- Windows 11
- WSL2 Ubuntu 20.04
- ROS2 Foxy
- YDLidar X4
설치
- 원하는 이름으로 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/ttyUSB0
frame_id
laser_frame
baudrate
128000
support_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
- ydlidar_ros2_driver 패키지의 ydlidar_ros2_driver_node를 실행하면 되는데, 명령어 뒤에 필요한 파라미터를 추가해주면 된다.
- launch 스크립트 활용하기
- launch 스크립트 사용을 위해서, 아래 링크와 같이 파라미터 파일을 변경해야 한다.
- 위의 예를 참고하여 launch 스크립트 사용을 위해서 필요한 파라미터를 설정해준다.
- 파라미터를 변경하면
colcon build --symlink-install
를 다시 실행해야 한다.
- 다음의 명령어로 실행하면 된다.
ros2 launch ydlidar_ros2_driver ydlidar_launch.py
- launch 스크립트 사용을 위해서, 아래 링크와 같이 파라미터 파일을 변경해야 한다.
- 다음과 같이 ydlidar가 구동된다.
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
- 다음의 명령어를 실행하면, 이미 설정된 rviz2로 센서값을 시각화해서 볼 수 있다.
- 다음과 같은 결과를 확인할 수 있다.
결과
참고