Divide and Conquer

ydlidar X4 동작 확인 본문

2025/ROS

ydlidar X4 동작 확인

10살 2022. 6. 29. 16:03
728x90

X4는 360도 단일채널 2D Lidar이며 UART 가능
기자재 구매가 가능했다면 이걸 샀을 텐데 https://www.devicemart.co.kr/goods/view?no=13901542
3D LiDAR의 경우 측정된 점의 3차원 좌표를 모두 알 수 있어 6-DOF 위치 변환을 별다른 필터 없이 추정할 수 있다. 


윈도우에서 실행

  • 윈도우는 제공 프로그램을 다운받고 usb로 연결하면 된다
  • 리눅스에서 실행하기 위해 SDK와 Driver가 필요하다
#SDK: 응용 프로그램을 만들 수 있게 해주는 개발 도구
git clone https://github.com/YDLIDAR/YDLidar-SDK.git

cd YDLidar-SDK/build
cmake ..
make
sudo make install
# Driver: 장치를 구동해 주는 프로그램
git clone https://github.com/YDLIDAR/ydlidar_ros_driver.git catkin_ws/src/ydlidar_ros_driver

# 빌드
cd ~/catkin_ws
catkin_make

# 환경세팅
source ./devel/setup.sh
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 확인
echo $ROS_PACKAGE_PATH
#/home/jetbot/catkin_ws/src:/opt/ros/melodic/share
# 포트 연결 확인(/dev/ttyUSB0)
dmesg | grep tty
#[1130.678614] usb 1-2.3.3: cp210x converter now attached to ttyUSB0

# 라이다 확인
lsusb
#Bus 001 Device 020: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light

# 포트 연결 
#sudo chmod 0777 src/ydlidar_ros_driver/startup/*
#sudo sh src/ydlidar_ros_driver/startup/initenv.sh
# 위의 코드 2줄 실행 안 하고 YDLIDAR serial port를 ttyUSB0로 바꿈

# 어차피 파일 전부 수정해야 함
# 내 깃 주소 추가

 

#bashrc
#alias ydlidar='cd ~/ydlidar_ws && roslaunch ydlidar_ros_driver lidar_view.launch bag_filename:='
alias permissionYdlidar='roscd ydlidar_ros_driver/startup && sudo chmod 777 ./* && sudo sh initenv.sh'

코드 수정 필요

# 그냥 실행 확인
ydlidar_test

# 데이터만 확인
roslaunch ydlidar_ros_driver lidar.launch
#rosrun ydlidar ydlidar_client 
rostopic echo /scan 

# 라이다만 실행
roslaunch ydlidar_ros_driver X4.launch 

# 라이다 데이터 rviz로 보기
roslaunch ydlidar_ros_driver lidar_view.launch

실행 화면

rosrun tf view frames

node 실행 순서
scan, tcp ip, port, serial bps 등 설정 코드를 실행
lidarDriver 를 생성
드라이버를 시리얼 포트와 연결
드라이버 정보를 얻는다
stop_motor, start_motor 서비스를 등록
드라이버 스캔 시작 함수를 호출 drv->startScan();
스캔 데이터(/LaserFan Message)를 publish 한다
메시지로 변환되어 토픽 메시지로 발행

메시지 형식: 헤더, 최소/최대 각도, 스캔 시간 간격, 스캔 시간, 측정값 최소/최대, 거리값, 강도
ROS 표준 토픽이므로, RViz 등 ROS 패키지에서 호환

# ydlidar_ros_driver/msg/LaserFan.msg
std_msgs/Header header
float32 angle_min
float32 angle_max
float32 time_increment
float32 scan_time
float32 range_min
float32 range_max
float32[] angles
float32[] ranges
float32[] intensities

 

개념 https://sbuniverse.tistory.com/60

 

Daddy Makers

대디 메이커 강태욱입니다.아두이노,ROS,미디어아트,비전,드론,로봇,건축,건설 관련 메이크 방법을 공유합니다.

daddynkidsmakers.blogspot.com

 

Linux usb devices (udev) 에 대한 이름 부여(ttyUSB* 에서 *가 매번 바뀌는 것을 방지)

 Linux 에서 arduino 등 usb 기반의 장치를 연결 하여 서로 serial 통신을 하려는 경우, 대부분의 장...

blog.naver.com

 

반응형

'2025 > ROS' 카테고리의 다른 글

Window에 ROS 설치  (0) 2022.08.08
ydlidar X4로 Hector SLAM  (2) 2022.06.30
Ubuntu 18.04 ROS Melodic 설치  (0) 2022.06.03
Ubuntu 18.04 Melodic에 OpenCV 4.2.0 설치  (0) 2022.06.01
자율주행 플랫폼 하드웨어 구성  (0) 2022.05.26
Comments