This is st_arms_eyes repository. I will put eyes on st_arm_prime which is myproject robot_arm with this project.(STECH 4-1 computer_vision project)
Readme์ ์ค๋ช ์ ์ํ gif ํ์ผ์ ํฌ๊ธฐ๋ก ์ธํด ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฌด๊ฒ๊ฐ ๋ค์ ๋ฌด๊ฑฐ์์ก์ต๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ ๋ค๋ฉด readme_img ํด๋์ ํ์ผ๋ค์ ์ญ์ ํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
์ด ๋ก๋ด์ ST_Arm_Prime์ผ๋ก ๊ธฐ์กด์ ๊ฐ๋ฐ์ค์ด๋ ST_Arm v1,2,3 ์์ ๋ฒ ์ด์ค๋ฅผ ๋ฉ์นด๋ํ ๋ก ๋ฐ๊พธ์ด 9Dof ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ๋ชจ๋ฐ์ผ ๋ก๋ด์
๋๋ค. ์บก์คํค ๋์์ธ(3์ฐจ์ ๊ฒฝ๋ก๊ณํ-์ฃผ๋ณ ํ๊ฒฝ ์ ๋ณด๋ฅผ ๋ชจ๋ฅด๋ ์ํ๋ก ๋ธ๋ผ์ธ๋๋ก RRT*๋ก ๊ฒฝ๋ก์์ฑ์ค)์ ์ํด์ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ ํ์ฌ๊น์ง ๊ตฌ์ถ๋ ๋ก๋ด์ ๊ตฌ๋ฅด๋ฐ, ์ด์ง์ฐ ์ ๋ฐฐ๋์ผ๋ก๋ถํฐ ๊ฐ๋ฐ๋ Task Space PD ์ ์ด๋ก ์ ์ด๋๋ ๋งค๋ํฐ๋ ์ดํฐ์
๋๋ค. ๋ํ ์ด์ ์ฌ์ฉ๋๋ GUI๋ VR์ฅ๋น๋ฅผ ํตํด์ Unity์ ๋์งํธ ํธ์ ๋ก๋ด์ ๋ณด๋ฉฐ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๊ธฐ์กด์ GUI์์๋ CSI ์นด๋ฉ๋ผ์ ๋ฆฌ์ผ์ผ์ค ์นด๋ฉ๋ผ๋ก๋ถํฐ ์ค๋ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ์ฝ์ด์์ผ๋(๊ฐ๊ณต์ ๊ฑฐ์น์ง ์์ ์ฉ ๋ฐ์ดํฐ๋ฅผ C++ ๊ธฐ๋ฐ์ ํจํค์ง๋ฅผ ํตํด์ ROS๋ก ์ฝ์ด์ด) ํด๋น ๋ถ๋ถ์ ์์ ์์ ๋ฐฐ์ด Python์ ์ฌ์ฉํ ์ปดํจํฐ ๋น์ ์ ํตํด์ ๊ฐ๊ณต๋ ์ด๋ฏธ์ง๋ก ์ ์ด์ ์ํฅ์ ์ค ์ ์๋๋ก ํ๊ณ ์ ํ์ต๋๋ค.
ย
ํ ํ๋ก์ ํธ ์ ์(๋น์์ ์ ํ๋ ๋ชฉํ) ๋ด์ฉ
ํ์ฌ ์บก์คํค๋์์ธ์ผ๋ก VR๋ก ์ ์ดํ๋ ๋ชจ๋ฐ์ผ ๋งค๋ํฐ๋ ์ดํฐ๋ฅผ ์ค๊ณ ๋ฐ ์ ์ด๋ฅผ ์งํํ๊ณ ์์ต๋๋ค. ํ์ฌ ์ ์ํ ๋ก๋ด์ ์ด๋ฆ์ st_arm_prime(st_arm_vMM) ์ด๋ฉฐ, ์ปดํจํฐ๋น์ ๊ณผ๋ชฉ ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ด ๋ก๋ด์ ๋์ ๋ฌ์์ฃผ๊ณ ์ ํฉ๋๋ค.(๋ก๋ด์ ๋ฌ๋ฆฐ ์นด๋ฉ๋ผ๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ํธ๋ฆฌํ๊ฒ ์๊ฒฉ์ง์ ๋ก๋ด์ ์๋์ํฌ ์ ์๋๋ก ํ๊ณ ์ ํฉ๋๋ค.)
VR๊ธฐ๋ฐ์ ๋ชจ๋ฐ์ผ ๋ก๋ด๋ ๊ฐ์ ๊ณต๊ฐ์ ์๋ ๋์งํธ ํธ์ ๋ก๋ด์ ์ฌ์ฉ์๊ฐ ์ฐฉ์ฉํ๊ณ ์๋ HMD๋ฅผ ํตํด์ ์ต๋ 360๋ ์ ๋ฐฉํฅ์ผ๋ก ์ฃผ๋ณ์ ๋ณผ ์ ์๊ฒ ํด์ค๋๋ค. ํ์ฌ๋ ๋จ์ํ ์นด๋ฉ๋ผ๋ค๋ก๋ถํฐ ์จ ๋ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๊ธฐ๋ง ํ๊ณ ์์ง๋ง, ์นด๋ฉ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ฏ๋ก์จ ๋์ฑ๋ VR๊ธฐ๊ธฐ ์ฐฉ์ฉ์๊ฐ ๋ ์ค๊ฐ๋๊ฒ, ๋ ํธ๋ฆฌํ๊ฒ ์๋์ด ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ ํฉ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ฐ๋ฅํ๋ค๋ฉด ํ๊ณ ์ถ์ ๊ฒ๋ค! (ํ ํ๋ก์ ํธ ๊ธฐ๊ฐ ๋ด์ ๋ค ํ์ง ๋ชปํ๋๋ผ๋ ์ดํ ๊พธ์คํ ์ ๋ฐ์ดํธ ํ ์์ )
- ๋ชธํต์ ๋ฌ๋ฆด CSI ์นด๋ฉ๋ผ ๋ฑ์ ํน์ง์ ์ ํตํด ํฉ์นจ์ผ๋ก์จ ๋์ฑ๋ ๋์ ์์ผ๋ฅผ ์ป์ ์ ์๋๋ก
- ์นด๋ฉ๋ผ๋ฅผ ํตํด์ ์ป์ ์ ๋ณด๋ฅผ ํตํด ๋ชธํต์ ์์น ๋ฐ ๋งค๋ํฐ๋ ์ดํฐ์ ์๋์ดํํฐ์ ์์ธ๋ฅผ ์ถ์
- ์ค๋ธ์ ํธ ์ธ์ ๋ฐ ์๋์ดํํฐ ์์ธ ๊ฒฐ์ (์ก๊ณ ์ ํ๋ ๋ฌผ์ฒด๋ฅผ ์ธ์ํ๊ณ , ์๋์ดํํฐ์ ์์ธ๋ฅผ ๋ง๋ค์ด์ฃผ๊ธฐ)
์ด ํ๋ก์ ํธ๋ฅผ ์งํํ ๋, ์ด๋ฏธ์ง ์ฒ๋ฆฌ์๋ Jetson Orin NX 16GB๋ผ๋ ์๋ฒ ๋๋ ๋ณด๋๋ฅผ ์ฌ์ฉํ ์์ ์
๋๋ค.
(์ด ๋ณด๋๋ ์ด๊ธฐ์ CUDA๊ฐ OFF๋ก ์ค์ ๋์ด์์, arm ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฆฌ์ผ์ผ์ค ์นด๋ฉ๋ผ ์ค์ ๊ณผ์ ์ด ๋ค๋ฆ ๋ฑ์ ์ด์ ๋ก ์ด๊ธฐ ์ค์ ์ด ํ์-->์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ค์ ๋ฒ pptํ์ผ๋ ์
๋ก๋ ์์ )
ย ย
ย ย ย ย
์ด ๋ฆฌํฌ์งํ ๋ฆฌ์๋ 2๊ฐ์ CSI ์นด๋ฉ๋ผ์ 1๊ฐ์ realsense D435i ์นด๋ฉ๋ผ(RGB, Depth ์ด๋ฏธ์ง์ imu, gyro์ ๋ฐ์ดํฐ(ํ์ง๋ง ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ด๋ฏธ์ง์ ๊ฐ์๋ ์ผ์๋ฅผ ๋์ ์ฐ๊ฒฐ์ ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค)๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๊ฒ ๋ค์์ ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค.
- 1) ์ค์๊ฐ ์ด๋ฏธ์ง ์คํฐ์นญ ๐ถ
- 2) ์ค์๊ฐ ์นด๋ฉ๋ผ ์์น ์ธ์ง ๋ฐ ์์ธ ์ ์ง๋ฅผ ์ํ ์ฐธ์กฐ(Ref) ์์น์์ ์ค์ฐจ ํ๋จ ๐ฑ
- 3) ๊ฐ์ฒด ์ธ์(์๋ ์ดํํฐ๋ฅผ ํตํด ์ก๊ณ ์ ํ๋ ๋ฌผ์ฒด๋ฅผ ์ธ์) ๐ป
ย ย
๋ฆฌํฌ์งํ ๋ฆฌ ๋ด์ฉ์ ์ค๋ช
๋๋ฆฌ๊ธฐ ์ ์!!
์ฌํด 3์๊ณผ 5์์ Jetson Orin NX์ Jetson Orin Nano๊ฐ ์ถ์๋์์ต๋๋ค. ํ์ง๋ง ๋์ค์ ๋ก๋ด์ด ์์ง์ด๋ฉด์ ์ค์๊ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ ค๋ฉด ์ด๋ฐ ๋ณด๋๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ๊ต์๋๊ป ๋ง์๋๋ ค์ ๊ตฌ๋งคํ ์ต์ ๋ณด๋์ฌ์ ์์ง ์
ํ
๊ด๋ จ ๊ธ์ด ๋ง์ง ์์ ์ ๋ฅผ ๋จน์์ต๋๋ค..
ํน์ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด์๋ ๋ถ๋ค ์ค์ ํด๋น ๋ณด๋๋ฅผ ์ฌ์ฉํ์๋ ๋ถ์ด ์๋ค๋ฉด ppt ํ์ผ์ ๋ณด์๋ฉด์ ๋ฐ๋ผํ์๋ฉด ์ธํ
์ด ๋์์ด ๋์ค ๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ด์ฉ์ ์ ฏ์จ ๋ณด๋(jetpact 5.1, ubuntu20.04 ๊ธฐ์ค)์์ ์ฌ์ฉํ์๋ ค๋ฉด ppt์ ์๋ ๋ด์ฉ์ ๋ฐ๋ผ pytorch ๊น์ง ์ค์น๊ฐ ๋์ด์ผ ํฉ๋๋ค. (๋จ, ppt์ ๋ด์ฉ์ผ๋ก ์
ํ
์ด ๋๊ธฐ๋ ํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค..)
ย
์ฌ๊ธฐ์์ ์ฌ์ฉ๋๋ ์ฝ๋๋ 1.rec_video.py, 2.camera_calibration.py, 3.realtime_camera_stitching.py, dual_camera_no_distortion.py ์ ๋๋ค.
์ ๊ฐ ์ฌ์ฉํ CSI ์นด๋ฉ๋ผ(IMX219 160๋)๋ ์ ฏ์จ์ ์ต๋ 2๊ฐ ์ฐ๊ฒฐ ํ ์ ์์ต๋๋ค. 2๊ฐ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ด๋ฏธ์ง ์คํฐ์นญ์ ์งํํ์ฌ ์๊ฒฉ์ง์ ๋ก๋ด์ ์ฃผ๋ณ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ค๋ฉด ์ฌ์ฉ์๋ ๋ก๋ด์ ์๋ํจ์ ์์ด ์กฐ๊ธ ๋ ํธํ๊ฒ ์๋์ด ๊ฐ๋ฅํ ๊ฒ์
๋๋ค.
์ด ์นด๋ฉ๋ผ๋ ์๊ณก์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฐ์ ์ ์ผ๋ก ์นด๋ฉ๋ผ ์บ๋ฆฌ๋ธ๋ ์ด์
์ด ์งํ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ์ฐ์ ์ ์ผ๋ก 1.rec_video.py๋ฅผ ์ํํ์ฌ CSI ์นด๋ฉ๋ผ๋ก ๋ถํฐ ์ฝ์ด์จ ์นด๋ฉ๋ผ ๋ฐ์ดํฐ๋ฅผ data ํด๋์ ์ ์ฅ ํฉ๋๋ค.
ย
์ด ์ฝ๋๋ gstreamer๋ฅผ ํตํด์ ์ ฏ์จ์ ์ฐ๊ฒฐ๋ CSI ์นด๋ฉ๋ผ๋ก ํ๋ํ ์ด๋ฏธ์ง๋ฅผ ์ฝ์ด์ต๋๋ค. ์ฝ์ด์จ ์ด๋ฏธ์ง๋ imwrite๋ฅผ ํตํด์ output_l.mp4, output_r.mp4๋ก ์ ์ฅ ํฉ๋๋ค.
์ด๋ JetsonHacksNano๊ฐ ์ ์ํ CSI ์นด๋ฉ๋ผ ์ฐ๊ฒฐ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์์ต๋๋ค.
ย
ย
์ด ์ฝ๋๋ 1. ์ ํตํด์ ์ ์ฅํ ์์๋ค์ ์ฝ์ด์ค๊ณ ์ฝ์ด์จ ์์์ ์ฌ์ฉํ์ฌ ์ฒด์ปค๋ณด๋(์ฒด์ค๋ณด๋)์์ ํน์ง์ ์ ์ถ์ถํจ์ผ๋ก์จ ์นด๋ฉ๋ผ์ ์๊ณก ์ ๋ณด๋ฅผ ์ป์ด์ต๋๋ค. ย
ย
์ด ์ฝ๋๋ 2. ๋ฅผ ํตํด์ ์ป์ ์นด๋ฉ๋ผ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๊ณก์ ์ ๊ฑฐํ ๋ค, 2๊ฐ์ CSI ์นด๋ฉ๋ผ๋ก ๋ถํฐ ์ป์ด์จ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋ก๋ก ์ฐ๊ฒฐํ์ฌ ๋ณด์ฌ์ค๋๋ค. ์นด๋ฉ๋ผ์ ์๊ณก์ ์์ด๊ธฐ ๋๋ฌธ์ด ์ด๋ฏธ์ง์ ์ธ๊ณฝ์ ์ด ๋ณํ๋์ด์์ผ๋ฉฐ ๋น๊ณต๊ฐ์ ๊ฒ์ ์์ญ์ผ๋ก ๋ํ๋๊ฒ ๋ฉ๋๋ค. (1~3 ๊ณผ์ ์์ ํฌ๊ฒ ํ์๋ ์์ง๋ง ์นด๋ฉ๋ผ ๋ ์ฆ์ ๋ถ์๋ฌผ์ด ๋ถ๋ ๋ฑ์ ์ผ๋ก ์ธํด 3.์์ ์ค์๊ฐ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง ์คํฐ์นญ์ด ์ ์ํ์ด ๋์ง ์์ ๋ ๋๋ฒ๊น
์ ์ํด์ ์์ฑํ ์ฝ๋์
๋๋ค)
ย
ย
์ด ์ฝ๋๋ ์นด๋ฉ๋ผ์ ์๊ณก์ ๋ณด์ํ์ฌ ์ป์ ๋ ๊ฐ์ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง๋ก๋ถํฐ RANSAC์ ํตํด H(์ผ์ชฝ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง์ ๋ํ ์ค๋ฅธ์ชฝ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง์ ์ด๋ฏธ์ง ๋ณํํ๋ ฌ)์ ์ป์ด ์ค์๊ฐ์ผ๋ก ์คํธ๋ฆฌ๋ฐ ๋๋ ์ด๋ฏธ์ง๋ฅผ ์ฐ๊ฒฐํด์ค๋๋ค. ์ค์๊ฐ์ผ๋ก H๋ฅผ ๋ฐ๋ณตํ์ฌ ๊ตฌํ ๊ฒฝ์ฐ ์ฐ์ฐ ์ฆ๊ฐ๋ก ์ธํด ๋๋ ์ด๊ฐ ์ฌํ๊ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ง H๋ฅผ ์ป๊ณ ์ดํ์๋ ์ด๋ ๊ตฌํ H๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์คํฐ์นญ ํฉ๋๋ค. ํ์ง๋ง H๊ฐ ์ ๊ตฌํด์ง์ง ๋ชปํ์ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ์ํฐ๋ฅผ ๋๋ฌ์ H๋ฅผ ๋ค์ ๊ตฌํ ์ ์์ต๋๋ค.
์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด์ ๋ถ๋ค ์ค์ ๋์ผํ ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉํ์ค ๋ถ๋ค์ cad ํด๋์ ์๋ camera_holder ํ์ผ์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
ย ย
์ฌ๊ธฐ์์ ์ฌ์ฉ๋๋ ์ฝ๋๋ endeffector_camera.py, endeffector_camera_imu.py, 4.endeffector_looking_book.py, 5.find_endeffecor_pose_error.py ์ ๋๋ค.
RGBD ์นด๋ฉ๋ผ๋ ๋ ๊ฐ์ ์นด๋ฉ๋ผ๋ฅผ ์กฐํฉํ์ฌ ์ป์ Depth ์ ๋ณด๋ฅผ ๋ฐํํ๋ ์นด๋ฉ๋ผ์ ๋๋ค. ์ ๊ฐ ์ฌ์ฉํ ์นด๋ฉ๋ผ๋ Intel realsense D435i ์นด๋ฉ๋ผ๋ก RGB ์ด๋ฏธ์ง๋ ๊ธฐ์กด ์นด๋ฉ๋ผ๋ค๊ณผ ๋์ผํ๋ Depth ์ด๋ฏธ์ง๋ 3์ฐจ์ ๋ฐ์ดํฐ์์ RGB ์ด๋ฏธ์ง์์ ์ฑ๋์ ํด๋นํ๋ ์ถ์ ๋ฐ์ดํฐ๋ 1๊ฐ์ ์ฑ๋๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ (์ ๊ฐ ํ ์คํธํ๋ฉฐ ํ์ธํ๋ฐ๋ก๋) uint16ํ์ ๊น์ด ์ ๋ณด๋ฅผ ๋ฐํํด์ค๋๋ค.
๋์ค ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ป๋ ๊น์ด ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก treshold๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ ๊ฐ์ง๋๋ค.(RGB ์นด๋ฉ๋ผ ํ๋๋ง ์ฌ์ฉํ ๋์ ๋นํด์ ๋น ๋ฑ์ ์ํ ์ํฅ์ด ์ค์ด๋ฆ) ๊ทธ ์ธ์๋ 3D ์ ๋ณด๋ก ๋ง๋ค์ด ๊ณต๊ฐ์ ์ธ์ํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. (ํ์ง๋ง ์๊ฐ์ ์ด๋ฒ ํ ํ๋ก์ ํธ์์ ํด๋น ๋ด์ฉ์ ๋๋ฌด ์ด๋ ค์ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์๋ ๊ทธ๋ฌํ ๋ด์ฉ์ด ์์ต๋๋ค.)
ย
์ด ์ฝ๋๋ ์๋์ดํํฐ์์ ์ฌ์ฉํ๋ realsense D435i ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ฝ๋์
๋๋ค. Intel realsense์์ ์ ๊ณตํ๋ realsense SDK๋ฅผ ํตํด์ ์ธ์ํ ์นด๋ฉ๋ผ๋ฅผ pyrealsense2 ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์นด๋ฉ๋ผ์ ์ด๋ฏธ์ง๋ฅผ ์ฝ์ด์ค๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ์ผ์ชฝ์ด๋ ์นด๋ฉ๋ผ๊ฐ ์ฝ์ด์จ RGB ์ด๋ฏธ์ง, ์ค๋ฅธ์ชฝ์๋ ์นด๋ฉ๋ผ๊ฐ ์ฝ์ด์จ Depth ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ realsense์์ ์ ๊ณตํด์ค ์์์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์์ต๋๋ค.
ย
ย
์ด ์ฝ๋๋ ์๋์ดํํฐ์์ ์ฌ์ฉํ๋ realsense D435i ์นด๋ฉ๋ผ์์ imu ์ ๋ณด๋ฅผ ์ป์ด์ค๋ ์ฝ๋์
๋๋ค. RGBD ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ฌ์ฉํ๋ ๋ฒ์ ์์ง ์ฐพ์ง ๋ชปํ์๊ณ , ์ดํ์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณต(์์น, ์๋๋ก ๋์ ๋ฐ ์ค์ฐจ ๋์ ํํฐ๋ง)ํ๊ธฐ์๋ ์๊ฐ์ด ๋ถ์กฑํ ๊ฒ์ด๋ผ ํ๋จํ์ฌ ๋ง๋ค๊ธฐ๋ง ํ๊ณ ์ฌ์ฉํ์ง ์์์ต๋๋ค.
ย
ย
mini_AR_magicalzone์ ์งํํ ๊ฒ์ ๋ฐํ์ผ๋ก ์นด๋ฉ๋ผ ๋ฐ AR ์ด๋ฏธ์ง์ ์์ธ๋ฅผ ์๊ณ ์ ๋ง๋ค์ด์ก์ต๋๋ค. ์ก๊ณ ์ ํ๋ ๋ฌผ์ฒด๊ฐ ์๋ ํ๊ฒฝ์์ ์ฐพ์ ์ ๋ค์ ํตํด์ ์๋ ์ดํํฐ๊ฐ ๊ทธ ์์น๋ฅผ ๋ฐ๋ผ๊ฐ๊ณ ์ ํ ๋ ๋ณด๊ณ ์๋ ๋ฐฉํฅ์ด ๋ฌ๋ผ์ง๋๋ผ๋ ๋ฐ์ค์ ์์น๋ฅผ ์ ์ ์๊ฒ ํ๊ณ ์ ํ์์ต๋๋ค. ํ์ง๋ง ์นด๋ฉ๋ผ๊ฐ ์ด๋ํ์ฌ ๋ฌผ์ฒด์ ๋ฐ์ฌ๋ ๋น์ ๋ฐ๊ฑฐ๋ ๊ทธ๋ฆผ์๊ฐ ์๊ธฐ๊ฑฐ๋, ํน์ง์ ์ ์๊ฒ ๋๋ฉด AR ์ด๋ฏธ์ง๊ฐ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํด์ก์ต๋๋ค.
ย
ย
์ด ์ฝ๋๋ 4.์์ ์งํํ ์ฑ
์์์์ ๊ฐ์์ ๋ฌผ์ฒด์ ๋ค์ํ ์์น์์ ๋ณด๊ธฐ๊ฐ ๋ถ๊ฐ๋ฅ์ ์ธ์งํ๊ณ , ์๋์ ์ผ๋ก ์ค์ฐจ๊ฐ ์ ๋ฐ์ํ์ง ์๋ ์ฒด์ปค๋ณด๋(์ฒด์ค๋ณด๋)์์ ์งํํ ์ฝ๋์
๋๋ค.
์๋ ์ดํํฐ์ ์นด๋ฉ๋ผ๊ฐ ์ฒด์ปค๋ณด๋์ ์ค์์ ํํํ๊ฒ ์์นํ๊ธฐ ์ํ ๊ฒฝ์ฐ **์ค์ฐจ์ธ e(ref_X{:์ฐธ์กฐ ํฌ์ฆ} - act_X{์ค์ ํฌ์ฆ})**์ ์์ K๋ฅผ ๊ณฑํ์ฌ ํ์ ๋ฐ์ํ ์ ์์ต๋๋ค. F=KX
์๋ ์ดํํฐ๊ฐ ์์ง์ผ ๋๋ฅผ ๋๊ฐ์ง ๋จ๊ณ(1. XY ํ๋ฉด๋ด์์์ ์์ง์-x,y,roll / 2. Z๋ฐฉํฅ์ ๊ณ ๋ คํ ์์ง์-z,pitch,yaw)๋ก ๋๋์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์ํ ์ค์ฐจ e๋ฅผ ๋ก๋ด์ ๋ฃ์ด์ฃผ๊ธฐ ์ํ ์ฝ๋์ด๋ฉฐ, ์ฌ์ฉ์๋ ์ด๋ฏธ์ง์ ์ผ์ชฝ ์์ ๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ํตํด์ ์ถ์ข
ํ๊ณ ์ ํ๋ ์์ธ์ ์ผ๋งํผ์ ์ค์ฐจ๊ฐ ๋ฐ์ํ๊ณ ์๋์ง xyz, rpy(roll,pitch,yaw)์ ๋ํ ์ค์ฐจ๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ, ์ด๋ฏธ์ง์ ์ผ์ชฝ ์๋์ ๋ํ๋๋ ๋ฐ์ดํฐ๋ฅผ ํตํด์ ์๋ ์ดํํฐ๊ฐ 1,2๋จ๊ณ ์ค ์ด๋ค ๋จ๊ณ๋ฅผ ์ํํด์ผํ๋์ง๋ฅผ ์ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ค์ฐจ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ์์ด, ์นด๋ฉ๋ผ์ ์ขํ์ ์ด๋ฏธ์ง์ ์ขํ๋ฅผ ๋ฐ๊ฟ ํ์๊ฐ ์์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์ํด์ ์๋์ ์ด๋ฏธ์ง์ ๊ฐ์ด ์ถ๋ฐฉํฅ์ ๊ฐ์ ๋ณํ ํ์ฌ ์ค์ฐจ์ ๊ฐ์ผ๋ก ์ ์์ ์ผ๋ก ์์ฑํ ์ ์๋๋ก ํ๋ ํจ์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. ์ด๋ ์ถ๋ ฅ๋ ๊ฐ์ rad์์ deg ๋จ์๋ก ๋ณํํ ํจ์๋ฅผ ๊ฑฐ์น ๊ฐ์
๋๋ค.
ย ย
์ฌ๊ธฐ์์ ์ฌ์ฉ๋๋ ์ฝ๋๋ 6.camera_treshold_contour.py, 8.realsense_img_save.py, yolov5 ํด๋ ์์ ์๋ 9.object_detect_using_depthNyolov5.py ์ ๋๋ค. ๋ก๋ดํ์ ํน์ ํ ๋์์ ์ํํ ์ ์๊ฒ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๋ ํ ๋ฌผ์ฒด๋ฅผ ์ก๋ ๋ฑ์ ๋์์ ํ๋ ค๋ฉด ํด๋น ๋ฌผ์ฒด๋ฅผ ์ธ์ํ๋ ๊ณผ์ ์ด ๋ก๋ดํ์์๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์ํ ๊ฐ์ฒด ์ธ์์ ์งํํ์์ต๋๋ค.
ย
์ด ์ฝ๋๋ ๋์ค ์นด๋ฉ๋ผ๋ฅผ ํตํด์ 20cm~30cm (D435i ์นด๋ฉ๋ผ๋ 20cm ์ด๋ด์ ์ด๋ฏธ์ง๋ ์ ์ธ์ ๋ชปํจ, ์ฝ๋๋ฅผ ํตํด ์ต๋๊ฑฐ๋ฆฌ๋ฅผ 30cm๋ก ์ ํ) ๋จ์ด์ง ๋ฒ์๋ก tresholdํ Depth ์ด๋ฏธ์ง๋ฅผ ์ด์งํ ํ์ฌ ์ด๋ฅผ ๊ฐ์ค์น ํ๋ ฌ๋ก ์ฌ์ฉํ๊ณ RGB ์ด๋ฏธ์ง์ ๊ฐ์ค์น๋ฅผ ๊ณฑํจ์ผ๋ก์จ ํด๋น ๊น์ด์ ๋ํ RGB ์ด๋ฏธ์ง๋ง ๋ฝ์ ๋ณด์ฌ์ค๋๋ค. RGB ์ด๋ฏธ์ง๋ง ์ ๋ณด์ด๊ฒ ํ๊ธฐ ์ํด์ ์ปจํฌ์ด๋ฅผ ๋ฐ์ ํ๋์ ์ผ๋ก ํ์ํ์์ผ๋ฉฐ ๋์ค ์ด๋ฏธ์ง๋ก ์ด์งํํ ๋ฐ์ดํฐ์ ๊ฒฝ๊ณ๊ฐ ๋ค์ ๊ฑฐ์น ๋ถ๋ถ์ด ์์ด erode์ dilate๋ก ๋
ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๊ณ blur๋ฅผ ํตํด์ ์ธ๊ณฝ์ ์กฐ๊ธ ๋ถ๋๋ฝ๊ฒ ๋ณ๊ฒฝ ํ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์๋ ์์ญ์ ์ค์์ ์ connectedComponentsWithStats() ๋ผ๋ ํจ์๊ฐ ์์ญ๋ด์ ์ค์์ง์ ์ ๋ฐํํ๋ ํจ์๋ผ ํ์ฌ ์ด๋ฅผ ์ด์ฉํ์ฌ ์์ญ์ ์ค์์ ๋นจ๊ฐ์ ์์ด ๋ฐ๋ผ๊ฐ ์ ์๋๋ก ํ์์ต๋๋ค.
ํ์ง๋ง RGB ์นด๋ฉ๋ผ ์ด๋ฏธ์ง์ Depth ์นด๋ฉ๋ผ ์ด๋ฏธ์ง์ ์ค์ฌ์ ์ด ๋์ผํ์ง ์์ ๋ฌผ์ฒด๊ฐ ๋ค์ ๊น๋ํ๊ฒ ์ธ์๋์ง ๋ชปํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด ์ฝ๋๋ฅผ ํตํด์ ํ์ต์ด ๋์ด์์ง ์์, "์์ unknown์ธ ๋ฌผ์ฒด๋ ์ ์ธ์ํด์ ๋ฌผ์ฒด๋ฅผ ์ธ์งํ ์ ์๊ฒ ํ์" ์์ง๋ง ๋์ค๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฑ ์์ ํจ๊ป ์ธ์ํด๋ฒ๋ฆฌ๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๊ธฐ ๋๋ฌธ์ ์ด ์ฝ๋๋ ์ดํ ๊ฐ์ฒด ์ธ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ yolov5๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋์ด๊ฐ๊ฒ ๋์์ต๋๋ค. ย
ย
์ด ์ฝ๋๋ yolov5 ์ฌ์ฉํ๊ธฐ ์ํด ํ์ตํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ์ฝ๋์ ๋๋ค. ๋ค๋ฅธ ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํ์ฌ ์ดฌ์ํ๊ธฐ๋ณด๋ค ์ฌ์ฉํ ์๋ ์ดํํฐ์ ์ฅ์ฐฉ๋๋ ์นด๋ฉ๋ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ฝ์ ๋ผ๋ฒจ๋ง์ ํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋จํ์ฌ ์ด ์ฝ๋๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ์์ต๋๋ค. ์ฌ์ฉ์๋ ์ํ๋ ์์น๋ก ์นด๋ฉ๋ผ๋ฅผ ์์น์ํค๊ณ ์ํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋๋ฅด๋ฉด 1,2,3, ..., n ์ฅ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐ๋ณตํด์ ์ ์ฅ ํ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก esc๋ฅผ ๋๋ฅด๊ฒ ๋๋ฉด ์ฌ์ง ์ ์ฅ์ ์ข ๋ฃ๋๋ฉฐ, ๋ค์ ์ฌ์ฉํ ๊ฒฝ์ฐ count๊ฐ 0๋ถํฐ ์์ํ๋ฏ๋ก ๊ธฐ์กด์ ์ดฌ์ํ ์ด๋ฏธ์ง๊ฐ ์ง์์ง ์ ์์ผ๋ ์ฃผ์๋ฐ๋๋๋ค. ย
ย
์ด ์ฝ๋๋ yolov5 ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต๋ ์ด๋ฏธ์ง๋ฅผ ์ธ์ํฉ๋๋ค. ์ด๋ ์๋ฑํ ๋ฌผ์ฒด๋ฅผ ์ธ์ํ๋ ๊ฒ์ ์ค์ด๊ธฐ ์ํด RGBD ์นด๋ฉ๋ผ์ ์ฅ์ ์ ์ด๋ ค, ์ค์ ํ Depth ์ธ์ง ๊ฑฐ๋ฆฌ ๋ด์์๋ง ๋ฌผ์ฒด๋ฅผ ์ธ์ํ ์ ์๋๋ก 6.์์ ์ฌ์ฉํ RGB ์ด๋ฏธ์ง์ ํํฐ๋ง์ ์ฌ์ฉํ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋ ์ดํํฐ์ ์นด๋ฉ๋ผ๊ฐ ์ํ๋ ๋ฌผ์ฒด๋ง ์ธ์ํ๊ฒ ํ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ์์ ํ๊ฒ ์๋ํฉ๋๋ค. ๋ผ๋ฒจ๋ง์ labelimg ๋ผ๋ ํด์ ์ฌ์ฉํ์์ต๋๋ค.
ย ย
-ํ์๋ผ์ธ-
์ค์ ๋ก๋ด๋ง ๋ณด๊ธฐ: 06:35
00:15~06:35 ๋ ์ฝ๋ ์๋์ผ๋ก ๋์ค๋ ํ๋ฉด ๋
นํ์์์
๋๋ค.
์ต๊ทผ ๋ก๋ด๋ถ์ผ๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์์ํ๋ฉด์ ๊ธฐ์กด๋ถํฐ ๊ด์ฌ ๊ฐ๊ณ ์๋ ์ปดํจํฐ ๋น์ ์ ๋ก๋ด์ ์ ์ฉํด๋ณด๊ณ ์ถ์์. ํ์ฌ ์บก์คํค ๋์์ธ์ผ๋ก ์งํํ๊ณ ์๋ ๋ก๋ด์ด ์นด๋ฉ๋ผ๋ก ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ๋ง ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์ด ์นด๋ฉ๋ผ๋ฅผ ์ ํ์ฉํ์ฌ ๋ก๋ด์ด ์นด๋ฉ๋ผ๋ฅผ ํตํด์ ์ฃผ๋ณ์ ์ธ์ํ ์ ์๊ฒ ํ๊ณ ์ถ์์. ์ด์ ์ ์ปคํผ ๋ก๋ด ์กฐ์ ์์๋ ๋จ์ํ ์ผ์ชฝ ๋ชจํฐ๋ฅผ ๋๋ฆฐ๋ค/์ค๋ฅธ์ชฝ ๋ชจํฐ๋ฅผ ๋๋ฆฐ๋ค ์ ๋ฐฉ์์ด์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก๋ด์ ์ง์ ์์ง์ผ ์ ์์์ง๋ง, ๋ก๋ดํ์ ๊ฒฝ์ฐ ์ ์ดํ๊ธฐ ์ํด ๊ตฌ์ฑํด์ผํ ๊ฒ์ด ๋ง์ ์ด ํ๋ก์ ํธ์์๋ ์ค๋ ฅ๋ณด์์ ์ฌ์ฉํ์ฌ ๋ก๋ด์ด ๋ง์ง๋ง ์์ธ๋ฅผ ์ ์งํ๊ฒ ํ๊ณ ๊ทธ ๋์ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ผ๋ก๋ง ๋ณด๊ฒ ํ ๊ฒ์ด ์์ฌ์. ์ต์ฑ๋ก ๊ต์๋๊ป ๋ฐฐ์ฐ๋ฉฐ mesh rcnn์ ์ฌ์ฉํด๋ณด๊ณ ์ถ๋ค, pose3D ๋ฑ์ ํ๊ณ ์ถ์ดํ์ง๋ง, ์๋ฒ ๋๋ ๋ณด๋ ์ธํ ์ ์๊พธ ์ค๋ฅ๊ฐ ์๊ฒจ ์งํํ์ง ๋ชปํจ.. ํ์ง๋ง ํ ํ๋ก์ ํธ ๊ธฐ๊ฐ ์ดํ์ ์ด๋ฌํ ๊ฒ์ด ๊ฐ๋ฅํ๋๋ก ํ ์์ .
๋ผ์ด์ ์ค: Apache License Version 2.0, Apache License Version 3.0 - yolov5
https://github.com/jetsonhacks/CSI-Camera
https://github.com/IntelRealSense/librealsense
https://github.com/ultralytics/yolov5
https://github.com/mint-lab/cv_tutorial โญ