본문 바로가기
정나우/ROS

ros-realsense 오류

by 정_나우 2023. 6. 22.

1. 문제

ros에서 depth camera를 쓰기 위해 이것저것 깐 다음

roslaunch realsense2_camera rs_camera.launch

위와 같은 명령어로 실행하다 보면

 

[ WARN] [1686553784.122822216]: 
 12/06 16:09:44,123 WARNING [140297214355200] (messenger-libusb.cpp:42) control_transfer returned error, index: 768, error: Success, number: 0

이나 

[ WARN] [1686553787.724824406]: Hardware Notification:Depth stream start failure,1.68655e+12,Error,Hardware Error

같은 오류가 뜨면서 실행되지 않는 경우가 발생한다.

2. 해결

결론부터 말하면 버전이 맞지 않아서 작동하지 않는 것이다.

 

ROS에서 Depth-camera 정보를 받아오려면 

Realsense SDK2.0

Ros Wrapper for Realsense

Firmware

이렇게 총 3개를 깔아야 하는데 이 3개의 버전을 잘 맞추어야 한다.

 

문제는 인텔이 SDK 2.51.1 이후로는 ROS2에만 맞춰서 업데이트 중이라

최신 버전에 맞춰서 잘 설치한다면 (SDK 2.54.1 & Ros Wrapper 2.3.2 & Firmware 5_15_0) (23.6.22 기준)

실행은 되긴하나 roslaunch로 카메라를 작동만 시키고 뎁스 카메라 데이터 확인은 rviz로 창을 새로 하나 더 열어서 확인해야 한다.

 

Intel 말로는 ROS1을 사용하면 앞으로 더 많은 오류가 일어날 수도 있다고 한다

(참조: https://github.com/IntelRealSense/realsense-ros/issues/2777)

 

Realsense SDK 삭제 후 재설치 방법 : https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md

Ros Wrapper 설치 (method2로 하는 것 추천) : https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy#published-topics

펌웨어 설치: https://dev.intelrealsense.com/docs/firmware-releases &

https://dev.intelrealsense.com/docs/firmware-update-tool

(펌웨어 원하는 버전이 따로 있으면 여기서 따라하고 아니면 그냥 realsense-viewer에서 설치 가능)

 

실행 명령어:

roslaunch realsense2_camera rs_camera.launch filters:=pointcloud

오류는 뜨지 않으나 rviz를 따로 실행해야 함

오류가 없어지고 이렇게 Node Is Up! 까지 나왔다면 새 창에 rviz를 하나 더 키고

 

Fixed Frame을 map에서 Camera_link로 변경

 

화면 좌측 하단에 Add

위 사진을 따라 PointCloud2를 켜주면

 

일단 실행은 된다.

 

Intel에서 말하는 것 보니

RealSense Node Is Up!

까지 떴으면 문제는 없고 그냥 버전이 안 맞아서 실행이 잘 안 된거라고 하고

 

다른 창을 켜서

rostopic list

로 확인해봤을 때

/camera/color/camera_info
/camera/color/image_raw

이 있으면 괜찮은 거라고 한다.

 

그래도 난 roslaunch로만 실행해도 다 켜졌으면 하는데 그러려면

Ros Wrapper 2.3.2 에 맞춰서

SDK는 2.50.0

Firmware는 5_13_0로 하면 될 것 같다.

 

근데 SDK를 이전 버전으로 까는 법을 찾지 못해서 아직 하진 못했다.

깃허브 찾아보면  

https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy#published-topics

여기서 Method1으로 하면 알아서 버전에 맞춰 SDK랑 ros wrapper를 동시에 깔아준다고 하는데

나는 따라해도 잘 안 돼서 일단 패스..

 

댓글