우분투 24.04가 깔린 라즈베리파이에 YDLIDAR ROS2 드라이버를 설치하려다가 애를 먹었다. 내가 가진 YD라이다 센서는 X2와 G2가 있는데, 일단 X2를 설치해봤다. 이럴 거면 YD 라이다 2개 사기보다는 슬램텍 RPLidar를 하나 사놓을 걸 하는 후회를 잠시 했다.(우분투 24.04, 라즈베리파이 5, ROS2에 설치하는 인도 사람(?)의 유튜브 동영상이 있다. RPLidar용으로.)
인터넷에 있는 YDLidar ROS2용 소스는 우분투 24.04 ROS2 jazzy에서는 컴파일이 잘 안 된다. 인텔이든 라즈베리파이든 모두 그렇다. 다행인 것은 ARM64든 AMD64든 CPU에 상관없이 우분투 22.04에서 되면 다른 CPU의 22.04에서도 되고, 한쪽의 우분투 24.04에서 되면 다른 쪽 24.04에서도 된다는 점이다. PC 여러 대 왔다갔다 하면서 테스트해보았는데 PC에서 되자, 같은 우분투 버전의 라즈베리파이에서도 동일하게 되었다.
중요한 부분부터 말하자면,
A) 소스 다운로드 받을 때 '-b humble'을 명시하는 것이다. 우분투 24.04에서도 이렇게 해야 하고, 우분투 22.04에서도 이렇게 해야 하고, 인텔이든 라즈베리파이든 humble 소스를 받아야 한다.
git clone -b humble https://github.com/YDLIDAR/ydlidar_ros2_driver.git
B) 그리고 /dev/ttyUSB0 의 권한을 777로 만든다.
sudo chmod 777 /dev/ttyUSB0
C) params 폴더 안에 들어가서, ydlidar.yaml 을 백업해놓고, 해당 기종의 yaml 파일(내 경우엔 X2.yaml)을 ydlidar.yaml 로 복사해둔다.
D) colcon build를 하고 나서 source install/setup.bash를 실행한다.
E) 아래를 실행한다.
ros2 launch ydlidar_ros2_driver ydlidar_launch_view.py
* YDLIDAR X2 Lidar 유저 메뉴얼이 오래 되어서 좀 부실하다. ros라는 단어를 ros2로 바꾸어서 적용해야 한다. 어쨌든 참고는 되는 메뉴얼이다.
* YDLidar-SDK를 먼저 빌드해야 하는데, YDLidar-SDK 폴드 안에 build/ 폴더가 없으니 빈 폴더를 만들어서 그 안에 들어가서 cmake .. 따위를 해준다.
* 라이다 용으로 /dev/ttyUSB0을 사용하게 되는데, 사용 권한을 확인해보고, sudo chmod 777 /dev/ttyUSB0 으로 해놓으면 된다. (이 권한 설정이 되어 있지 않으면 에러가 난다.)
* colcon build를 할 때, 에러 메시지와 경고 메시지가 같이 출력되는 경우가 있는데, 빨간색으로 error가 뜬다. 에러만 뜨지 않으면, 경고(warning)이 뜨더라도 대부분 정상 컴파일이 되기 때문에 1 packaged finished 인지 0 packaged fisnished인지가 아주 중요하다. stderr 어쩌구 하는 메시지가 좀 혼동을 준다. 경고 메시지는 좀 억제하고 오류 메시지만 출력하면 혼돈을 안 줄 텐데 싶다.
- 라즈베리파이4, 우분투 24.04, ROS2 jazzy에 설치가 처음에 잘 되지 않아서 걱정했는데, 다행이다. picamera2를 상당히 힘들게 설치하면서 평탄화 작업을 해둔 뒤라, 여기서 라이다가 안 되면 어쩌나, 슬램텍 RP라이다를 하나 구입해야 하나 싶었는데, 다행이다.