나를 꽤나 괴롭힌 화면인데 우선 처음 맞이하는 참고사이트에 없는 오류였다.
그래도 처음에는 나쁘지 않게 생각한 게 단순히 일단 카메라가 나오기는 하고 뭔가 소프트웨어적인 문제라 직감했기 때문이다.
이제 구글링을 하며 문제해결에 나섰는데
우선 에러코드부터 확인했는데
의외로 싱겁게 찾은것이 failed to load module canberra-gtk-module였다.
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
을 쳤다. 그리고 역시 안된다...
쉽지 않은 놈이다..
다음으로는 pipeline have not been created을 찾아봤는데 이건 자료가 거의 없었다.
약간의 힌트는 얻은 게 나는 선배가 하던걸 받아서 하는 중인데 거기에는 파이 카메라가 달려있었고
이 pipeline have not been created에서는 파이카메라가 자꾸 등장한다는 점이었다.
이제 마지막으로 나와 같은 증상이 있는지 jetson nano opencv green screen이라고 쳐봤는데 놀랍게도
은근히 같은 증상의 사람들이 있었다...
일단 쓸만한 사이트 두 개를 얻었고
https://stackoverflow.com/questions/64272731/open-cv-shows-green-screen-on-jetson-nano
https://forums.developer.nvidia.com/t/how-to-slove-opencv-green-screen/82803
거기서 유의미한 수확을 얻었는데 첫 번째 사이트의
gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! nvoverlaysink
를 하자 카메라가 정상 작동했다는 점이다.
이건 많은 것을 추리할 수 있게 해 주었는데 확실하게 카메라는 하드웨어적으로 문제가 없다는 점과 코드에서 무언가
수정이 필요하다는 점 GST와 GSTREMER라는 문구가 계속 나온다는 점이다. 자체적으로의 결론은 이 사이트의 저자는
나와 다른 카메라를 썼기 때문에 이 문제를 피할 수 있었고 나는 파이 카메라를 쓰기 때문에 생긴 문제이며 해결에는
GSTREMER가 필요하다는 점이다. 이후 위의 두 사이트에서 시키는 것을 다 해봤지만 개선은 안됐다. 심지어 진행하다가
종종 (core dumped)가 떠 재부팅을 해야 했었다. 그렇게 오랜 시간 골머리를 앓다가 결국 강사님께 전 기수에서도 이런
문제가 발생했었냐 묻자 바로 유명한 문제라는 답이 나왔다... 전의 기수는 이 문제 때문에 몇 줄을 보냈으며
한 조는 이 문제로 젯슨 나노가 아닌 라즈베리에서 올리게 되었다는 말도 나왔다.. 거기다 그다음에 갑자기 딱 든 생각이
전에도 이런 적이 있었는데 정말 부끄러운 실수지만 훗날을 위해 기록하자면 make를 빠뜨리고 계속 코드를 수정하고 있었다.. 그 많은 시간을...
현실적으로 이 상황에서 더 진행하는 건 효율이 나지 않을 것 같고 시간도 많이 지나서 우선 다시 포맷하고(나 자신의 멘털도 포맷하고) 내일 하기로 했다.
============================================================================
다음날 리프레시한 마음으로 다시 도전했다. 집으로 가면서 또 집에서 든 생각은 정상적으로는 이 문제를 혼자서 해결할 수 없다는 점이다.
그래서 전에 선배가 학원에 잠시 왔을 때 받은 깃 헙을 뒤져보기로 했다.
의외로 코드는 금방 찾을 수 있었는데 나와 경로가 비슷했고 파일 이름이 rasp_cam이었기 때문이다.
(여기에 그 코드를 적지는 않을 것이다.. 문제 될 것 같기 때문이다...)
그 코드를 분석해본 결과 애초에 내가 계속 해결하고 싶었던 VideoCapture cap() 부분만 잘 따오면 실행이 될 것도 같아 그 코드와 연결된 부분을 차근차근 옮겼고 결국 해내었다.
의외로 생각보다 쉽게 해결되었지만 치트키를 쓴 느낌이다.. 대충 빨리 잘 의 과정대로 지금은 대충 넘어가지만 나중에는 확실히 이 문제를 분석해야 할 것이다.
지금 간단히 문제를 잠깐 분석해보면 gstreamer의 pipeline문제와 그에 따른 카메라 화면의 크기 & 속성 문제이지 않았나 싶다.
이제 드디어 다음 단계로 넘어갈 수 있다.
+)만약 위 과정으로 안 될시
$ sudo apt-get install v4l-utils
$ v4l2-ctl --list-formats-ext
$ sudo shutdown -r now
$ gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! nvoverlaysink
로 확인해본다 지금으로는 될 때도 있고 안될때도 있다.
'embedded > ROS' 카테고리의 다른 글
8. depth camera(실패) (0) | 2021.09.08 |
---|---|
7. GAZEBO (0) | 2021.09.03 |
5. ROS & opencv (cv_bridge) 실시간 스트리밍...실패 (0) | 2021.09.01 |
4. pub & sub 메시지 통신 (0) | 2021.08.31 |
3. ROS 설치완료 (0) | 2021.08.31 |