-
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
'๐STUDY > Etc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RDPWrap ์๊ฒฉ ๋ฐ์คํฌํฑ ์ธ์ ๋ค์ค ์ ์ (0) 2022.03.02 Federated Learning ๋ด ๋ง๋๋ก ์ ๋ฆฌ (1) 2021.11.22 ๊ทธ๋ ์ด ์ฝ๋ Gray code? (0) 2020.02.28 ์ดํญ ๊ณ์ ๋ด ๋ง๋๋ก ์ ๋ฆฌ(with ์ฌ๊ท) (0) 2020.02.27 python ์ ๊ท ํํ์ ๋ด๋ง๋๋ก ์ ๋ฆฌ (0) 2020.02.25 ๋๊ธ