ROS 학습 40탄: USB 카메라
7420 단어 ROSusb-cameraimage-view
#프로그래밍 ROS<USB 카메라>
개시하다
두 번째 참고서에 따르면 ROS(Robot Operating System)를 더 파악하기 위한 것이다.
컨디션
컴퓨터.
디바이스
raspberry pi 4 Model B
메모리
3.7 GiB
Graphics
V3D 4.2
OS
Ubuntu
Ubuntu
발포
20.4.2 LTE 64비트
내부 핵
Linux 5.4.0-1035-raspi aarch64
MATE
1.24.0
ROS
Distribution
noetic
USB 카메라
제조사
Buffalo
시리즈
BSWHD06M
필요한 드라이버 설치
USB 카메라로 포획된 'usb cam' 노드와 포획된 이미지를 표시하는 '이미지 뷰' 노드로 필요한 드라이버입니다.
installsudo apt install ros-noetic-usb-cam
sudo apt install ros-noetic-image-view
노드 시작
우선 여러 노드 간에 데이터를 교환해야 하기 때문에 주 노드를 시작해야 한다.
mater 시작roscore
usb-camrosrun usb_cam usb_cam_node
이 노드에서 카메라 포트 할당 기본값은 /dev/video0
입니다.
usb-cam(포트 변경)rosrun usb_cam usb_cam_node _video_device:=/dev/video1
또한raspberrypi에 USB 카메라만 설치된 경우/dev/video0
이기 때문에 이 조작이 필요하지 않습니다.
/dev/video 탐색ls /dev/video*
0 대신 와일드카드(*)를 사용하면 여러 비디오 포트가 있을 때 확인할 수 있습니다.
sudo apt install ros-noetic-usb-cam
sudo apt install ros-noetic-image-view
roscore
rosrun usb_cam usb_cam_node
rosrun usb_cam usb_cam_node _video_device:=/dev/video1
ls /dev/video*
그리고 포획 이미지를 표시하는 노드를 시작합니다
image-view
rosrun image_view image_view image:=/usb_cam/image_raw
이미지-view에서 어떤 포획 이미지를 표시할지 지정해야 합니다. 여기에서 하는 일은 다음과 같습니다: usb-cam에서 포획한 원시 데이터 (이미지) 는 usb-cam-node에서 보내고 이미지-view는 이 배포된 데이터를 구독하고 표시합니다.노드 매개변수 설정
usb-cam, 이미지-view에 여러 개의 매개 변수가 존재하여 상세하게 지정할 수 있습니다. 이 매개 변수는 launch 파일을 사용하여 간단하게 지정할 수 있습니다. 다음은 이 launch 파일을 나타냅니다. 또한 각 매개 변수에 대한 설명은 launch 파일의 주석 형식으로 나타냅니다.
usb_cam.launch
<launch>
<!-- usb_acmノードを実行する -->
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen">
<!-- カメラの指定 defaultは/dev/video0 -->
<param name="video_device" value="/dev/video0"/>
<!-- 画像の大きさ(横幅)の指定 -->
<param name="image_width" value="640"/>
<!-- 画像の大きさ(縦幅)の指定 -->
<param name="image_height" value="480"/>
<!-- 画像フォーマット設定 "mjpeg" or "yuyv" or "uyvy" -->
<param name="pixel_format" value="mjpeg"/>
<!-- fpsの指定 frame per second -->
<param name="framerate" value="30"/>
<!-- コントラストの設定(色設1) -->
<param name="contrast" value="32"/>
<!-- 明るさの設定(色設2) -->
<param name="brightness" value="32"/>
<!-- 彩度の設定(色設3) -->
<param name="saturation" value="32"/>
<!-- 自動フォーカス機能の設定 ブール値 -->
<param name="autofocus" value="true"/>
<!-- フォーカス位置の設定 -->
<param name="focus" value="51"/>
</node>
<!-- image_viewノードを実行する -->
<node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
<!-- image_viewのimageトピックがimage_rawトピックをサブスクライブするように指定 -->
<remap from="image" to="/usb_cam/image_raw"/>
<!-- 画像の縦横比を自動で判定して表示 ブール値 -->
<param name="autosize" value="true"/>
</node>
</launch>
실행 결과
no launch
그림 창 뒤에서 조금 보이지만 터미널 (터미널) 은roscore,usb-입니다.cam_node, image_view_세 개의 노드를 이동하고 있습니다.
launch
터미널을 움직일 수 있고 미세한 변화를 할 수 있습니다. 여기서 대비도가 약간 큰 그림을 얻을 수 있습니다.
감상
한 마디로 하면 저는 ROS에서 카메라를 어떻게 사용하는지 배웠습니다. 이렇게 하면 ROS에서도 현실 세계의 이미지를 얻을 수 있습니다. OpenCV 등을 응용함으로써 이미지 처리도 가능하고 ROS의 가능성도 더욱 확대되었습니다.
참고 문헌
실용 로봇을 개발하기 위한 ROS 프로그래밍
서전건, 삼전현, 강전호지, 원상요,
나가사키 공준, 전향권, 담내양평, 대천일도,
재등공
삼북출판주식회사 발행
Reference
이 문제에 관하여(ROS 학습 40탄: USB 카메라), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yuya-Shimizu/items/10804c9ac44a3568d116텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)