본문 바로가기

IT/ROS

[ROS] 9. Depth Camera

반응형

☞ 메인보드 : Jetson Nano Developer Kit

운영 체제 : Ubuntu 18.04 - JetPack 4.4.1

☞ ROS 버전 : Melodic

 

 

 

 


목차

1. 설치 방법 1

2. 설치 방법 2

3. 실행 결과

 

 

 


 

 

 

 

 

 

 

 

 

작년에 사고 못쓴 특수한 카메라다.  2-3만 원 정도 하는 카메라를 쓰다가 20-30만 원 하는 것을 쓰니 신세계를 경험했다..

 

 

 

 

이 카메라는 유명한 intel 사의 'REALSENSE DEPTH CAMERA D435i' 라는 모델명을 갖고 있다.

일반 카메라와 달리 거리 감각을 주는 기능이 있어서 DEPTH(깊이) 카메라라 부른다.

 

 

intel 깃허브에서 ROS와 연동할 수 있도록 도와주었다.

 

IntelRealSense/realsense-ros

Intel(R) RealSense(TM) ROS Wrapper for D400 series, SR300 Camera and T265 Tracking Module - IntelRealSense/realsense-ros

github.com

 

해당 페이지에 들어가면 플랫폼별 설치 방법이 있으니 그대로 따라하면 된다.

 

 

 

 

 

① 설치 방법 1

 

 

 

 

나는 Ubuntu 18.04 버전과  ROS Melodic 버전을 사용하고 있기 때문에 아래의 명령어로 설치했다. [마지막 라인에 *를 사용하면  ros-melodic-realsense2와 관련된 패키지를 모두 설치할 수 있다.]

 

 

sudo apt-get install ros-melodic-realsense2*

 

 

 

 

경고 문구가 심상치 않다. 완료되기전에 멈췄다고 한다. 경고 내용이 에러 수준이니 이런 것들은 지금 해결해 놓아야 할 것 같다. 해당 패키지를 --reinstall 한다.

 

 

sudo apt install --reinstall ros-melodic-realsense2-description

 

 

 

 

 

 

 

1) 리얼센스 버전 2는 항상 리얼센스 공식 홈피의 저장소에 있다 .

 

 

 

2) v4l2 드라이버 없어도 쓸 수 있다. RS to USB 프로토콜을 이용하여 통신한다.

 

 

 

3) 내가 설치하라는 걸 설치해라.

 

 

 

 

 

 

 

 

설치 방법 2

 

 

 

 

SDK(Software Development Kit) 설치를 위해 Debian Package에 들어가면 서버 공개 키와 Ubuntu 버전별 리포지토리를 알 수 있다. 

 

 

 

 

 

서버 공개 키

 

출처 : https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages

 

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

 

 

키 다운로드 완료 문구

 

 

☞ 22.07.07. 인증키가 변경되어 수정하였습니다.

 

 

 

※ 저장소(Repository) 등록

 

출처 : https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages

 

 

☞ 22.07.07. 리포지터리 주소가 변경되어 수정하였습니다. (아마존 -> 인텔)

 

 

 

 

☞ Ubuntu 16  LTS

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo xenial main" -u

 

 

☞ Ubuntu 18  LTS

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u

 

 

☞ Ubuntu 20  LTS

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo focal main" -u

 

 

 

 

 

※ 라이브러리 설치

 

 

 

해당 페이지에서는 librealsense2-dkms 패키지 설치를 권장했으나, 리포지토리 등록을 완료했음에도 패키지를 찾을 수 없다는 문구가 출력되어 설치할 수 없었다. 그러나 그 아래의 내용에는 두 패키지를 받았을 때 udev rules, 커널 모듈과 런타임 라이브러리 등 사용 가능하다고 했기 때문에 dkms 대신 udev-rules 패키지를 대신 설치했다.

 

sudo apt install librealsense2-udev-rules librealsense2-utils

 

 

 

 

옵션이라고 하지만 굳이 설치 안 할 이유가 없으니 설치한다. [컴파일할 때 realsense2 링크는 잊지 말자.]

 

sudo apt-get install librealsense2-dev librealsense2-dbg

 

 

 

 

 


③ 실행 결과

 

※  ROS

 

 

 

터미널 창 3개를 열어 위와 같이 입력해주고 실행한다. 두 번째 터미널에서 filters:=pointcloud를 입력하지 않으면 pointcloud의 토픽에 아무것도 생기지 않으니 꼭 입력해야한다.

 

 

 

 

rviz를 실행하면 처음부터 기분 나쁘게 Global Status에 빨간색 에러가 나온다. Global Options의 Fixed Frame을 수정하면 에러가 사라진다. Fixed Frame 옆에 있는 map쪽에 마우스 커서를 놓으면 아래로 내릴 수 있는 슬라이드가 나온다.

 

 

 

 

 

 

Fixed Frame의 목록을 보고 하나를 결정해주고 아래의 Add 버튼을 눌러 PointCloud를 추가해준다. 그리고 Topic을 정해주면 카메라 화면이 출력된다.

 

 

 

 

다양한 기능이 있다. point cluod 이외에도 camera, depth cloud가 있다. 해당 기능에 맞는 토픽은 By topic 창에서 확인할 수 있다. 해당 노드들을 실행하고 있을 때 새터미널을 열어 rqt_graph를 입력하면 통신 구조를 알 수 있다.

 

 

 

 

 

 

 

 

 

※  realsense-viewer 

 

 

 

 

중복되는 규칙을 제거한다.

sudo rm -f /etc/udev/rules.d/99-realsense-libusb.rules

 

/lib/udev/rules.d/ 디렉터리의 규칙은 삭제하면 의존성에 문제가 생기므로 다른 것을 제거했다.

 

 

 

 

카메라를 연결하면 해당 카메라에 맞는 펌웨어 업데이트를 해준다.

 

 

 

거리의 차이를 직관적으로 볼 수 있는 stereo 모듈과 해당 픽셀에 rgb를 입혀 출력해주는 rgb 카메라 옵션이 있다. 카메라 스펙이 확실히 어떤지는 기억이 안 나는데 혼자 각도기와 자로 실험해본 결과 카메라로부터 약 17cm 정도는 떨어진 곳부터 노이즈 없이 출력되고 카메라 각도는 약 50도 정도 되는 것 같다.

 

 

 

2D/3D가 나뉘어져 있어서 일반 카메라로도 사용할 수 있다.

 

 

 

 

 

 

반응형