🌀

ROS2 YDLidar 테스트

Tags
ROS2
WSL2
ID matched
Created
Dec 16, 2022 11:43 AM
Last Updated
Last updated July 15, 2023
 
 
 

구동 환경


WSL2에서 USB 연결을 하기 위해서, 별도의 설정이 필요하다.
📓
WSL2 설치 및 기본 설정 (Windows11)
  • Windows 11
  • WSL2 Ubuntu 20.04
  • ROS2 Foxy
  • YDLidar X4
 

설치


  1. 원하는 이름으로 wordspace 생성 이후 src 폴더를 만들고, 그 src 폴더에 https://github.com/YDLIDAR/ydlidar_ros2_driver를 받는다.
      • {workspace}/src/ydlidar_ros2_driver 식으로 경로가 구성된다.
  1. launch 스크립트 사용을 위해서 필요한 파라미터를 설정해준다.
    1. ${workspace}/src/ydlidar_ros2_driver/params/ydlidar.yaml를 수정한다.
    2. 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
  1. workspace 경로에서 colcon build --symlink-install로 설치한다.
  1. .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
  • launch 스크립트 활용하기
    • launch 스크립트 사용을 위해서, 아래 링크와 같이 파라미터 파일을 변경해야 한다.
      • 위의 예를 참고하여 launch 스크립트 사용을 위해서 필요한 파라미터를 설정해준다.
      • 파라미터를 변경하면 colcon build --symlink-install를 다시 실행해야 한다.
    • 다음의 명령어로 실행하면 된다.
      • ros2 launch ydlidar_ros2_driver ydlidar_launch.py
 
  • 다음과 같이 ydlidar가 구동된다.
    • notion image
 

2. TOPIC 확인해보기

2가지 방법으로 topic 내용을 확인할 수 있다.
  1. 다음의 명령어를 실행하면, 다음과 같은 결과가 표시된다.
    1. ros2 topic echo /scan - 0.0 - 1008.0 - 1008.0 - 1008.0 - 1008.0 - 1008.0 - 1008.0 - 1008.0 - 1008.0
  1. ydlidar_ros2_driver의 ydlidar_ros2_driver_client을 실행하면, 다음과 같은 결과가 표시된다.
    1. 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을 추가한다.
      • notion image
    • Laser Scan의 설정값을 변경해준다.
      • Fixed Frame이 laser_frame인지 확인한다.
      • Topic > Reliability Policy를 Best Effort 로 변경한다.
      • Size를 1~3 사이로 잘보이도록 변경한다.
      • notion image
  • ydlidar_launch.py 실행해보기
    • 다음의 명령어를 실행하면, 이미 설정된 rviz2로 센서값을 시각화해서 볼 수 있다.
      • ros2 launch ydlidar_ros2_driver ydlidar_launch_view.py
 
  • 다음과 같은 결과를 확인할 수 있다.
    • notion image
 

결과


notion image
Video preview
 
 

참고