• VMWare Ubuntu 16.07์—์„œ ROS UVC_camera ์‹คํ–‰ํ•˜๊ธฐ

    2021. 10. 31.

    by. ํ•ด๋Š”์„ 

    drone and robotices์—์„œ ros ์ˆ˜์—… ์ค‘, ๊ฐ€์ƒ ๋จธ์‹ (vmware)๋ฅผ ์ด์šฉํ•ด์„œ uvc_camera util์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ ์ด์Šˆ๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ , ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

     

     

    1. UVC installation

    ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด UVC๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

    $ sudo apt-get install ros-kinetic-uvc-camera
    $ sudo apt-get install ros-kinetic-image-*
    $ sudo apt-get install ros-kinetic-image-view

     

    ๋‹ค์Œ ์ฝ”๋“œ๋กœ uvc_camera_node๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๊ฐ ์ฝ”๋“œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰๋œ๋‹ค.

    $ roscore
    $ rosrun uvc_camera uvc_camera_node

     

    ์ด๋•Œ, vmware์˜ ๊ฒฝ์šฐ host์—์„œ ์นด๋ฉ”๋ผ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์–ด์•ผ๋งŒ ์นด๋ฉ”๋ผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด device/video0 (webcam)์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค.

    ์‹ค์ œ๋กœ ubuntu ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ธ "Cheese Webcam Booth"๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ์นด๋ฉ”๋ผ๋ฅผ ์žก์ง€ ๋ชปํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

     

    ์ด๋Š” ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ์กฐ์น˜๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋จผ์ €, memu - Player - Manage - Virtual Machine Settings ๋กœ ๋“ค์–ด๊ฐ€์„œ, "USB Controller"์—์„œ USB compatibility๋ฅผ 3.0์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

     

    ๊ทธ ๋‹ค์Œ, memu - Player - Removable Devices - Camera (๋…ธํŠธ๋ถ ๊ธฐ์ข…์— ๋”ฐ๋ผ ๋‹ค๋ฆ„) - Connect ๋ฅผ ์ฒดํฌํ•œ๋‹ค.

     

    "Cheese Webcam Booth"๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ubuntu๊ฐ€ webcam ์นด๋ฉ”๋ผ๋ฅผ ์žก์•˜์Œ์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

    ์นด๋ฉ”๋ผ์— ์Šคํ‹ฐ์ปค๋ฅผ ๋ถ™์—ฌ๋‘ฌ์„œ ๋ฟŒ์˜‡๊ฒŒ ๋ณด์ธ๋‹ค.

     

     

    ๊ทธ ๋’ค, ๋‹ค์‹œ uvc_camera_node๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๊นŒ์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ์ง€ ์•Š๋Š”๋‹ค. 

    image view๋Š” ์•„๋ž˜ ์ฝ”๋“œ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค (๋ณ„๋„์˜ ํ„ฐ๋ฏธ๋„์—์„œ ์ˆ˜ํ–‰)

    $ rosrun image_view image_view image:=image_raw

     

    2. Check topic (data)

    uvc_camera_node๊ฐ€ ์ œ๋Œ€๋กœ ์นด๋ฉ”๋ผ๋ฅผ ์ฝ๊ณ , ์ œ๋Œ€๋กœ ๋œ ๊ฐ’์„ ๋‹ด์€ topic์„ ๋˜์ง€๋Š”๊ฐ€๋Š” rqt๋‚˜ Rviz๋ฅผ ์ด์šฉํ•ด์„œ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

     

    1) rqt

    ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ rqt๋ฅผ ์‹คํ–‰ํ•˜๊ณ , memu - plug in - topics - topic monitor์— ๋“ค์–ด๊ฐ€๋ฉด master๊ฐ€ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  topic๋“ค์„ moniteringํ•  ์ˆ˜ ์žˆ๋‹ค.

    $ rqt

     

    ๋”ฐ๋กœ ์„ค์ •์„ ํ•˜์ง€ ์•Š์€  ubuntu๋ผ๋ฉด, rqt์˜ ๋ฉ”๋‰ด๊ฐ€ desktop ์ƒํƒœ์ค„์— ๋œฐ ์ˆ˜๋„ ์žˆ๋‹ค. ๋งŒ์•ฝ, rqt ์ฐฝ์ด ๋–ด๋Š”๋ฐ ํ•˜์–€ ํ™”๋ฉด๋งŒ ๋ณด์ธ๋‹ค๋ฉด, ๊ทธ ๋ถ€๋ถ„์„ ํ™•์ธํ•ด ๋ณด์•„์•ผ ํ•œ๋‹ค.

    uvc_camera_node ์‹คํ–‰ ์ „์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹จ์ดํ•œ topic์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    uvc_camera_node์„ ์‹คํ–‰ํ•˜๋ฉด, image_raw์™€ ๊ด€๋ จ๋œ ์ˆ˜ ๋งŽ์€ topic๋“ค์ด ์žกํžŒ๋‹ค. ๊ทธ ์ค‘, /image_raw๋ฅผ ์ฒดํฌํ•˜๊ณ  (์ฒดํฌํ•ด์•ผ์ง€ moniteringํ•  ์ˆ˜ ์žˆ๋‹ค) ์œ„์˜ ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, data์— ์‹ค์ œ ์นด๋ฉ”๋ผ์—์„œ ์ฝ์–ด๋“ค์ธ pixel๊ฐ’๋“ค์ด ๋ณด์ž„์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

    ์‹ค์ œ๋กœ image ํ˜•์‹์œผ๋กœ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด, Rqt image viewer๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

    $ rqt_image_view image:=/image_raw

    ์ฒ˜์Œ์— ์ด๋ฏธ์ง€๊ฐ€ ๋œจ์ง€ ์•Š๋Š”๋‹ค๋ฉด, image View๋ผ๊ณ  ์จ์ง„ ๊ธ€์”จ ๋ฐ”๋กœ ์•„๋ž˜์— ์žˆ๋Š” selector์—์„œ /image_raw๋ฅผ ์„ ํƒํ•˜๊ณ , ์˜†์˜ ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

     

     

    2) Rviz

    ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ Rviz๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. Rviz๋Š” ros์˜ 3D visualization tool๋กœ, topic์„ ์ฝ์–ด์„œ ํƒ€์ž…์— ๋งž๊ฒŒ ์‹œ๊ฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

    $ rviz

    ์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค. ์—ฌ๊ธฐ์„œ add - By display type - image๋ฅผ ์„ ํƒํ•˜๋ฉด Displays์— image ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š”๋ฐ, ๊ทธ๊ฑธ ํŽผ์น˜๊ณ , image topic์—๋‹ค๊ฐ€ /image_raw๋ฅผ ํƒ€์ดํ•‘ํ•˜๋ฉด ๋œ๋‹ค.

     

     

    ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ image๊ฐ€ ๋‚˜์˜ด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”๋ฐ๋„ ์•ˆ๋œ๋‹ค? ๊ทธ๋Ÿฌ๋ฉด ์•„์˜ˆ ์šฐ๋ถ„ํˆฌ๋ฅผ ์ข…๋ฃŒํ–ˆ๋‹ค๊ฐ€ (suspend๋ง๊ณ ) ์ผœ๋Š”๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค. camera_node๊ฐ€ ์ฃฝ์€ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์‚ด์•„์žˆ์–ด์„œ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


    Reference

    https://blog.katastros.com/a?ID=01600-87686604-f58c-4605-ac0f-03b387abf2b0 

     

    ๋Œ“๊ธ€