rosrun usb_cam usb_cam_de 출현 [ERROR] [15386769.608520191]: Webcam: expected picture but didn't get

1889 단어 ubuntu/ros
참조 ROS에서 usb 활용cam에서 그림,opencv 그림, 카메라의 표시를 읽을 때 문제가 발생했습니다. 단독으로 실행됩니다.
rosrun usb_cam usb_cam_node

[ERROR][15386769.608520191]: Webcam: expected picture but didn't get it...
다음은 해결 과정이다.usb_cam 패키지에 테스트 파일 usbcam-test.launch, 직접 실행
roslaunch usb_cam usb_cam-test.launch

전혀 문제가 없습니다. 이 파일을 열어 보면/usb 를 만들었음을 알 수 있습니다.cam/usb_cam_node 및/imageview/image_view 두 종류의 노드, 각각 usbcam과 이미지view, 전자는 "카메라 접속"이미지에 사용되며,/usb 에 publishcam/image_raw 화제에서 후자subscribe는 그림을 화면에 출력합니다.
하면, 만약, 만약...
ruscore 
rosrun usb_cam usb_cam_node
rosrun image_view image_view image:=/usb_cam/image_raw

의 조합에 오류가 발생합니다([ERROR][15386769.608520191]: Webcam: expected picture but didn't get it...).분석에 의하면 이것은 usbcam_node의 소스 파일은 다음과 같이 작성됩니다.
// possible values: yuyv, uyvy, mjpeg, yuvmono10, rgb24
node_.param("pixel_format", pixel_format_name_, std::string("mjpeg"));

yuyv, mjpeg 이런 것들을 잘 몰라요. 아마도 이미지 메이킹 방식, 이미지 형식 같은 것들일 거예요. usbcam-test.launch 파일에는 다음과 같은 구절이 있습니다.


이 구절이 관건이라고 추측하여 usbcam_de 원본 파일의 mjpeg 설정은 내가 사용하는 외부 USB 카메라와 일치하기 때문에 rosrun 명령으로 노드의 이름을 표시할 수 있습니다
rosrun package-name executable-name __name:=node-name

이 방법은 노드의 기본 이름을 node-name 매개 변수로 덮어씁니다.이 예에서 바로
rosrun usb_cam usb_cam_node __pixel_format:=yuyv

... 이 아니라
rosrun usb_cam usb_cam_node

주의,pixelformat 앞에 두 개의 밑줄을 넣었어요.cam-test.launch 파일에는 다음과 같은 구절이 있습니다.
node_.param("video_device", video_device_name_, std::string("/dev/video0"));

따라서 만약에 카메라가 비디오0이 아니라면rosrun을 사용할 때도 상술한 방식으로 파라미터를 설정해야 한다. 이와 유사한 것은 밝기, 대비도, 도상 사이즈 등 파라미터도 있다. 상세한 것은 usb 참조.cam-test.launch 파일입니다.

좋은 웹페이지 즐겨찾기