Divide and Conquer
ydlidar X4 동작 확인 본문
728x90
X4는 360도 단일채널 2D Lidar이며 UART 가능
기자재 구매가 가능했다면 이걸 샀을 텐데 https://www.devicemart.co.kr/goods/view?no=13901542
3D LiDAR의 경우 측정된 점의 3차원 좌표를 모두 알 수 있어 6-DOF 위치 변환을 별다른 필터 없이 추정할 수 있다.
- https://www.ydlidar.com/Public/upload/files/2022-06-28/YDLIDAR%20X4%20Data%20sheet%20V1.1(211230).pdf
- https://www.ydlidar.com/Public/upload/files/2022-07-07/YDLIDAR%20X4%20Lidar%20User%20Manual%20V1.3(211230).pdf
- 윈도우는 제공 프로그램을 다운받고 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