Jetson Nano에 카메라를 연결해야 하는데, Raspberry Pi용 카메라도 Jetson Nano와 호환된다. 다만 Raspberry Pi V2 camera만 사용이 가능하다. (V1은 지원하지 않는다.) 아래의 사진은 Raspberry Pi V2 camera이며 카메라에 버전이 표기되어 있다.
Jetson Nano는 USB camera와 CSI(Camera Serial Interface) camera 중 선택해서 사용 가능하며 여기서는 CSI camra를 이용했다. 아래 사진에서 Jetson Nano의 (9)번 단자에 카메라를 연결하면 된다.
Jetson Nano의 카메라 연결 단자 윗부분을 살짝 들어서 카메라를 연결하고 연결하면 다시 닫아주어야 한다. 카메라 커넥터가 충격에 약해 고장나기 쉬우므로 조심해서 넣어야 한다. 카메라의 파란색 띠 부분과 파란색 글자가 나타나는 부분이 Jetson Nano의 바깥쪽을 향하도록 끼워주어야 한다. (아래 사진 참고)
카메라를 Jetson Nano에 연결했다면 아래 명령어를 입력해 Jetson Nano가 정상적으로 카메라를 인식하는지 확인할 수 있다.
~$ ls /dev/video0
카메라를 연결한 후 카메라 설정을 위해 연결된 장치를 검색하니 Jetson Nano에서 camera device를 인식하지 못했는데, CSI camera는 gstream으로 pipeline을 생성하거나 nvgstcapture 프로그램을 사용해야 nvarguscamerasrc 프로그램을 이용해 카메라 인식이 가능하다고 한다.
카메라 화면을 띄우더라도 명령어를 작성하는 터미널 창이 띄워질 부분은 있어야 되기에 촬영 옵션을 설정해주어서 파이프라인을 생성해야 사용이 용이하다. 나는 gstreamer를 이용해 카메라를 사용하였고, 아래의 명령어를 입력하면 카메라가 작동하는 것을 확인할 수 있다.
~$ gst-launch-1.0 nvarguscamerasrc sensor_mode=0 ! 'video/x-raw(memory:NVMM), width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw, width=960, height=616' ! nvvidconv ! nvegltransform ! nveglglessink -e
위의 명령어에서 'width', 'height'로 촬영 해상도를 설정하고, 해상도 별 'fammerate'를 지정해주어야 한다. 여기선 3280x2464 해상도에 fammerate 21 fps로 설정해주었다.