Giter VIP home page Giter VIP logo

st_arms_eyes's Introduction

st_arms_eyes ๐Ÿ‘€

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_Prime์œผ๋กœ ๊ธฐ์กด์— ๊ฐœ๋ฐœ์ค‘์ด๋˜ ST_Arm v1,2,3 ์—์„œ ๋ฒ ์ด์Šค๋ฅผ ๋ฉ”์นด๋„˜ํœ ๋กœ ๋ฐ”๊พธ์–ด 9Dof ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡์ž…๋‹ˆ๋‹ค. ์บก์Šคํ†ค ๋””์ž์ธ(3์ฐจ์› ๊ฒฝ๋กœ๊ณ„ํš-์ฃผ๋ณ€ ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ๋ชจ๋ฅด๋Š” ์ƒํƒœ๋กœ ๋ธ”๋ผ์ธ๋“œ๋กœ RRT*๋กœ ๊ฒฝ๋กœ์ƒ์„ฑ์ค‘)์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ ํ˜„์žฌ๊นŒ์ง€ ๊ตฌ์ถ•๋œ ๋กœ๋ด‡์€ ๊ตฌ๋ฅด๋ฐ˜, ์ด์ง„์šฐ ์„ ๋ฐฐ๋‹˜์œผ๋กœ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋œ Task Space PD ์ œ์–ด๋กœ ์ œ์–ด๋˜๋Š” ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด์— ์‚ฌ์šฉ๋˜๋Š” GUI๋Š” VR์žฅ๋น„๋ฅผ ํ†ตํ•ด์„œ Unity์˜ ๋””์ง€ํ„ธ ํŠธ์œˆ ๋กœ๋ด‡์„ ๋ณด๋ฉฐ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ GUI์—์„œ๋Š” CSI ์นด๋ฉ”๋ผ์™€ ๋ฆฌ์–ผ์„ผ์Šค ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ์–ด์™”์œผ๋‚˜(๊ฐ€๊ณต์„ ๊ฑฐ์น˜์ง€ ์•Š์€ ์Œฉ ๋ฐ์ดํ„ฐ๋ฅผ C++ ๊ธฐ๋ฐ˜์˜ ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด์„œ ROS๋กœ ์ฝ์–ด์˜ด) ํ•ด๋‹น ๋ถ€๋ถ„์„ ์ˆ˜์—…์—์„œ ๋ฐฐ์šด Python์„ ์‚ฌ์šฉํ•œ ์ปดํ“จํ„ฐ ๋น„์ „์„ ํ†ตํ•ด์„œ ๊ฐ€๊ณต๋œ ์ด๋ฏธ์ง€๋กœ ์ œ์–ด์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

ย 

ํ…€ํ”„๋กœ์ ํŠธ ์ œ์•ˆ(๋‹น์‹œ์— ์ •ํ–ˆ๋˜ ๋ชฉํ‘œ) ๋‚ด์šฉ

ํ…€ํ”„๋กœ์ ํŠธ ์ด๋ฆ„: st_arms_eyes(st_arm ๋กœ๋ด‡์˜ ๋ˆˆ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ)

ํ…€ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ:

ํ˜„์žฌ ์บก์Šคํ†ค๋””์ž์ธ์œผ๋กœ VR๋กœ ์ œ์–ดํ•˜๋Š” ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ๋ฅผ ์„ค๊ณ„ ๋ฐ ์ œ์–ด๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ œ์ž‘ํ•œ ๋กœ๋ด‡์˜ ์ด๋ฆ„์€ st_arm_prime(st_arm_vMM) ์ด๋ฉฐ, ์ปดํ“จํ„ฐ๋น„์ „ ๊ณผ๋ชฉ ํ…€ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ด ๋กœ๋ด‡์— ๋ˆˆ์„ ๋‹ฌ์•„์ฃผ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.(๋กœ๋ด‡์— ๋‹ฌ๋ฆฐ ์นด๋ฉ”๋ผ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์›๊ฒฉ์ง€์˜ ๋กœ๋ด‡์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.)

VR๊ธฐ๋ฐ˜์˜ ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡๋Š” ๊ฐ€์ƒ ๊ณต๊ฐ„์— ์žˆ๋Š” ๋””์ง€ํ„ธ ํŠธ์œˆ ๋กœ๋ด‡์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ฐฉ์šฉํ•˜๊ณ  ์žˆ๋Š” HMD๋ฅผ ํ†ตํ•ด์„œ ์ตœ๋Œ€ 360๋„ ์ „๋ฐฉํ–ฅ์œผ๋กœ ์ฃผ๋ณ€์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ๋‹จ์ˆœํžˆ ์นด๋ฉ”๋ผ๋“ค๋กœ๋ถ€ํ„ฐ ์˜จ ๋ฐ›์€ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›๊ธฐ๋งŒ ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์นด๋ฉ”๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋ฏ€๋กœ์จ ๋”์šฑ๋” VR๊ธฐ๊ธฐ ์ฐฉ์šฉ์ž๊ฐ€ ๋” ์‹ค๊ฐ๋‚˜๊ฒŒ, ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘๋™์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ๋“ค! (ํ…€ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ ๋‚ด์— ๋‹ค ํ•˜์ง€ ๋ชปํ–ˆ๋”๋ผ๋„ ์ดํ›„ ๊พธ์ค€ํžˆ ์—…๋ฐ์ดํŠธ ํ•  ์˜ˆ์ •)

  • ๋ชธํ†ต์— ๋‹ฌ๋ฆด CSI ์นด๋ฉ”๋ผ ๋“ฑ์„ ํŠน์ง•์ ์„ ํ†ตํ•ด ํ•ฉ์นจ์œผ๋กœ์จ ๋”์šฑ๋” ๋„“์€ ์‹œ์•ผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก
  • ์นด๋ฉ”๋ผ๋ฅผ ํ†ตํ•ด์„œ ์–ป์€ ์ •๋ณด๋ฅผ ํ†ตํ•ด ๋ชธํ†ต์˜ ์œ„์น˜ ๋ฐ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ์˜ ์—”๋“œ์ดํŽ™ํ„ฐ์˜ ์ž์„ธ๋ฅผ ์ถ”์ •
  • ์˜ค๋ธŒ์ ํŠธ ์ธ์‹ ๋ฐ ์—”๋“œ์ดํŽ™ํ„ฐ ์ž์„ธ ๊ฒฐ์ •(์žก๊ณ ์ž ํ•˜๋Š” ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•˜๊ณ , ์—”๋“œ์ดํŽ™ํ„ฐ์˜ ์ž์„ธ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ)

jetson_orin_nx
์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ์—๋Š” Jetson Orin NX 16GB๋ผ๋Š” ์ž„๋ฒ ๋””๋“œ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
(์ด ๋ณด๋“œ๋Š” ์ดˆ๊ธฐ์— CUDA๊ฐ€ OFF๋กœ ์„ค์ •๋˜์–ด์žˆ์Œ, arm ํ”„๋กœ์„ธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์–ผ์„ผ์Šค ์นด๋ฉ”๋ผ ์„ค์ •๊ณผ์ •์ด ๋‹ค๋ฆ„ ๋“ฑ์˜ ์ด์œ ๋กœ ์ดˆ๊ธฐ ์„ค์ •์ด ํ•„์š”-->์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์„ค์ •๋ฒ• pptํŒŒ์ผ๋„ ์—…๋กœ๋“œ ์˜ˆ์ •)

ย  ย 

ย  ย  ย  ย 


1. "st_arms_eyes ๐Ÿ‘€ " ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ค๋ช…

์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋Š” 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์˜ ๋‚ด์šฉ์œผ๋กœ ์…‹ํŒ…์ด ๋˜๊ธฐ๋Š” ํ•˜๋‚˜ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค..)
jetson_setting

ย 

1) ์‹ค์‹œ๊ฐ„ ์ด๋ฏธ์ง€ ์Šคํ‹ฐ์นญ ๐Ÿถ

์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋Š” 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 ํด๋”์— ์ €์žฅ ํ•ฉ๋‹ˆ๋‹ค.

ย 

1๏ธโƒฃ 1.rec_video.py

1.rec_video.py
์ด ์ฝ”๋“œ๋Š” gstreamer๋ฅผ ํ†ตํ•ด์„œ ์ ฏ์Šจ์— ์—ฐ๊ฒฐ๋œ CSI ์นด๋ฉ”๋ผ๋กœ ํš๋“ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค. ์ฝ์–ด์˜จ ์ด๋ฏธ์ง€๋Š” imwrite๋ฅผ ํ†ตํ•ด์„œ output_l.mp4, output_r.mp4๋กœ ์ €์žฅ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” JetsonHacksNano๊ฐ€ ์ œ์ž‘ํ•œ CSI ์นด๋ฉ”๋ผ ์—ฐ๊ฒฐ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ย 

ย 

2๏ธโƒฃ 2.camera_calibration.py

์ด ์ฝ”๋“œ๋Š” 1. ์„ ํ†ตํ•ด์„œ ์ €์žฅํ•œ ์˜์ƒ๋“ค์„ ์ฝ์–ด์˜ค๊ณ  ์ฝ์–ด์˜จ ์˜์ƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒด์ปค๋ณด๋“œ(์ฒด์Šค๋ณด๋“œ)์—์„œ ํŠน์ง•์ ์„ ์ถ”์ถœํ•จ์œผ๋กœ์จ ์นด๋ฉ”๋ผ์˜ ์™œ๊ณก ์ •๋ณด๋ฅผ ์–ป์–ด์˜ต๋‹ˆ๋‹ค. ย 

ย 

3๏ธโƒฃ dual_camera_no_distrotion.py

dual_camera_no_distrotion.py
์ด ์ฝ”๋“œ๋Š” 2. ๋ฅผ ํ†ตํ•ด์„œ ์–ป์€ ์นด๋ฉ”๋ผ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์™œ๊ณก์„ ์ œ๊ฑฐํ•œ ๋’ค, 2๊ฐœ์˜ CSI ์นด๋ฉ”๋ผ๋กœ ๋ถ€ํ„ฐ ์–ป์–ด์˜จ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€๋กœ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์นด๋ฉ”๋ผ์˜ ์™œ๊ณก์„ ์—†์•ด๊ธฐ ๋•Œ๋ฌธ์ด ์ด๋ฏธ์ง€์˜ ์™ธ๊ณฝ์„ ์ด ๋ณ€ํ˜•๋˜์–ด์žˆ์œผ๋ฉฐ ๋นˆ๊ณต๊ฐ„์€ ๊ฒ€์€ ์˜์—ญ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (1~3 ๊ณผ์ •์—์„œ ํฌ๊ฒŒ ํ•„์š”๋Š” ์—†์ง€๋งŒ ์นด๋ฉ”๋ผ ๋ Œ์ฆˆ์— ๋ถˆ์ˆœ๋ฌผ์ด ๋ถ™๋Š” ๋“ฑ์˜ ์ผ๋กœ ์ธํ•ด 3.์—์„œ ์‹ค์‹œ๊ฐ„ ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€ ์Šคํ‹ฐ์นญ์ด ์ž˜ ์ˆ˜ํ–‰์ด ๋˜์ง€ ์•Š์„ ๋•Œ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด์„œ ์ƒ์„ฑํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค) ย 

ย 

4๏ธโƒฃ 3.realtime_camera_stitching.py

image_stitching.png
3.realtime_camera_stitching.py
์ด ์ฝ”๋“œ๋Š” ์นด๋ฉ”๋ผ์˜ ์™œ๊ณก์„ ๋ณด์™„ํ•˜์—ฌ ์–ป์€ ๋‘ ๊ฐœ์˜ ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ RANSAC์„ ํ†ตํ•ด H(์™ผ์ชฝ ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์˜ค๋ฅธ์ชฝ ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€์˜ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜ํ–‰๋ ฌ)์„ ์–ป์–ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„์œผ๋กœ H๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ตฌํ•  ๊ฒฝ์šฐ ์—ฐ์‚ฐ ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋”œ๋ ˆ์ด๊ฐ€ ์‹ฌํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ์—๋งŒ H๋ฅผ ์–ป๊ณ  ์ดํ›„์—๋Š” ์ด๋•Œ ๊ตฌํ•œ H๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์Šคํ‹ฐ์นญ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ H๊ฐ€ ์ž˜ ๊ตฌํ•ด์ง€์ง€ ๋ชปํ–ˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ H๋ฅผ ๋‹ค์‹œ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

camera_holder
์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณด์‹  ๋ถ„๋“ค ์ค‘์— ๋™์ผํ•œ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•˜์‹ค ๋ถ„๋“ค์€ cad ํด๋”์— ์žˆ๋Š” camera_holder ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ย  ย 

2) ์‹ค์‹œ๊ฐ„ ์นด๋ฉ”๋ผ ์œ„์น˜ ์ธ์ง€ ๋ฐ ์ž์„ธ ์œ ์ง€๋ฅผ ์œ„ํ•œ ์˜ค์ฐจ ํŒ๋‹จ ๐Ÿฑ

์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋Š” 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 ์ •๋ณด๋กœ ๋งŒ๋“ค์–ด ๊ณต๊ฐ„์„ ์ธ์‹ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ƒ ์ด๋ฒˆ ํ…€ํ”„๋กœ์ ํŠธ์—์„œ ํ•ด๋‹น ๋‚ด์šฉ์€ ๋„ˆ๋ฌด ์–ด๋ ค์›Œ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋Š” ๊ทธ๋Ÿฌํ•œ ๋‚ด์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค.)

ย 

1๏ธโƒฃ endeffector_camera.py

realsense
endeffector_camera.py
์ด ์ฝ”๋“œ๋Š” ์—”๋“œ์ดํŽ™ํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” realsense D435i ์นด๋ฉ”๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. Intel realsense์—์„œ ์ œ๊ณตํ•˜๋Š” realsense SDK๋ฅผ ํ†ตํ•ด์„œ ์ธ์‹ํ•œ ์นด๋ฉ”๋ผ๋ฅผ pyrealsense2 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์™ผ์ชฝ์ด๋Š” ์นด๋ฉ”๋ผ๊ฐ€ ์ฝ์–ด์˜จ RGB ์ด๋ฏธ์ง€, ์˜ค๋ฅธ์ชฝ์—๋Š” ์นด๋ฉ”๋ผ๊ฐ€ ์ฝ์–ด์˜จ Depth ์ด๋ฏธ์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” realsense์—์„œ ์ œ๊ณตํ•ด์ค€ ์˜ˆ์‹œ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ย 

ย 

2๏ธโƒฃ endeffector_camera_imu.py

endeffector_camera_imu.py
์ด ์ฝ”๋“œ๋Š” ์—”๋“œ์ดํŽ™ํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” realsense D435i ์นด๋ฉ”๋ผ์—์„œ imu ์ •๋ณด๋ฅผ ์–ป์–ด์˜ค๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. RGBD ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ์•„์ง ์ฐพ์ง€ ๋ชปํ•˜์˜€๊ณ , ์ดํ›„์— ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณต(์œ„์น˜, ์†๋„๋กœ ๋ˆ„์  ๋ฐ ์˜ค์ฐจ ๋ˆ„์  ํ•„ํ„ฐ๋ง)ํ•˜๊ธฐ์—๋Š” ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•  ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜์—ฌ ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ย 

ย 

3๏ธโƒฃ 4.endeffector_looking_book.py

4.endeffector_looking_book.py
mini_AR_magicalzone์„ ์ง„ํ–‰ํ•œ ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ ์นด๋ฉ”๋ผ ๋ฐ AR ์ด๋ฏธ์ง€์˜ ์ž์„ธ๋ฅผ ์•Œ๊ณ ์ž ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์žก๊ณ ์ž ํ•˜๋Š” ๋ฌผ์ฒด๊ฐ€ ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ์ฐพ์€ ์ ๋“ค์„ ํ†ตํ•ด์„œ ์—”๋“œ ์ดํŽ™ํ„ฐ๊ฐ€ ๊ทธ ์œ„์น˜๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ณ ์ž ํ•  ๋•Œ ๋ณด๊ณ  ์žˆ๋Š” ๋ฐฉํ–ฅ์ด ๋‹ฌ๋ผ์ง€๋”๋ผ๋„ ๋ฐ•์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์นด๋ฉ”๋ผ๊ฐ€ ์ด๋™ํ•˜์—ฌ ๋ฌผ์ฒด์— ๋ฐ˜์‚ฌ๋œ ๋น›์„ ๋ฐ›๊ฑฐ๋‚˜ ๊ทธ๋ฆผ์ž๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜, ํŠน์ง•์ •์„ ์žƒ๊ฒŒ ๋˜๋ฉด AR ์ด๋ฏธ์ง€๊ฐ€ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ย 

ย 

4๏ธโƒฃ 5.find_endeffecor_pose_error.py

5.find_endeffecor_pose_error.py
์ด ์ฝ”๋“œ๋Š” 4.์—์„œ ์ง„ํ–‰ํ•œ ์ฑ… ์œ„์—์„œ์˜ ๊ฐ€์ƒ์˜ ๋ฌผ์ฒด์˜ ๋‹ค์–‘ํ•œ ์œ„์น˜์—์„œ ๋ณด๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ์„ ์ธ์ง€ํ•˜๊ณ , ์ƒ๋Œ€์ ์œผ๋กœ ์˜ค์ฐจ๊ฐ€ ์ž˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ฒด์ปค๋ณด๋“œ(์ฒด์Šค๋ณด๋“œ)์—์„œ ์ง„ํ–‰ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์—”๋“œ ์ดํŽ™ํ„ฐ์˜ ์นด๋ฉ”๋ผ๊ฐ€ ์ฒด์ปค๋ณด๋“œ์˜ ์ค‘์•™์— ํ‰ํ–‰ํ•˜๊ฒŒ ์œ„์น˜ํ•˜๊ธฐ ์›ํ•  ๊ฒฝ์šฐ **์˜ค์ฐจ์ธ e(ref_X{:์ฐธ์กฐ ํฌ์ฆˆ} - act_X{์‹ค์ œ ํฌ์ฆˆ})**์— ์ƒ์ˆ˜ K๋ฅผ ๊ณฑํ•˜์—ฌ ํž˜์„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. F=KX
error
์—”๋“œ ์ดํŽ™ํ„ฐ๊ฐ€ ์›€์ง์ผ ๋•Œ๋ฅผ ๋‘๊ฐ€์ง€ ๋‹จ๊ณ„(1. XY ํ‰๋ฉด๋‚ด์—์„œ์˜ ์›€์ง์ž„-x,y,roll / 2. Z๋ฐฉํ–ฅ์„ ๊ณ ๋ คํ•œ ์›€์ง์ž„-z,pitch,yaw)๋กœ ๋‚˜๋ˆ„์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์œ„ํ•œ ์˜ค์ฐจ e๋ฅผ ๋กœ๋ด‡์— ๋„ฃ์–ด์ฃผ๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์ด๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์ด๋ฏธ์ง€์˜ ์™ผ์ชฝ ์œ„์— ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด์„œ ์ถ”์ข…ํ•˜๊ณ ์ž ํ•˜๋Š” ์ž์„ธ์™€ ์–ผ๋งŒํผ์˜ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š”์ง€ xyz, rpy(roll,pitch,yaw)์— ๋Œ€ํ•œ ์˜ค์ฐจ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฏธ์ง€์˜ ์™ผ์ชฝ ์•„๋ž˜์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด์„œ ์—”๋“œ ์ดํŽ™ํ„ฐ๊ฐ€ 1,2๋‹จ๊ณ„ ์ค‘ ์–ด๋–ค ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
pose_error

์—ฌ๊ธฐ์„œ ์˜ค์ฐจ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์— ์žˆ์–ด, ์นด๋ฉ”๋ผ์˜ ์ขŒํ‘œ์™€ ์ด๋ฏธ์ง€์˜ ์ขŒํ‘œ๋ฅผ ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์œ„ํ•ด์„œ ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์ถ•๋ฐฉํ–ฅ์˜ ๊ฐ’์„ ๋ณ€ํ™˜ ํ•˜์—ฌ ์˜ค์ฐจ์˜ ๊ฐ’์œผ๋กœ ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ถœ๋ ฅ๋œ ๊ฐ’์€ rad์—์„œ deg ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ํ•œ ํ•จ์ˆ˜๋ฅผ ๊ฑฐ์นœ ๊ฐ’์ž…๋‹ˆ๋‹ค.
chang_axis

ย  ย 

3) ๊ฐ์ฒด ์ธ์‹

์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋Š” 6.camera_treshold_contour.py, 8.realsense_img_save.py, yolov5 ํด๋” ์•ˆ์— ์žˆ๋Š” 9.object_detect_using_depthNyolov5.py ์ž…๋‹ˆ๋‹ค. ๋กœ๋ด‡ํŒ”์€ ํŠน์ •ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์–ด๋– ํ•œ ๋ฌผ์ฒด๋ฅผ ์žก๋Š” ๋“ฑ์˜ ๋™์ž‘์„ ํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•˜๋Š” ๊ณผ์ •์ด ๋กœ๋ด‡ํŒ”์—์„œ๋Š” ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์œ„ํ•œ ๊ฐ์ฒด ์ธ์‹์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ย 

1๏ธโƒฃ 6.camera_treshold_contour.py ๐Ÿป

6.camera_treshold_contour.py
์ด ์ฝ”๋“œ๋Š” ๋Ž์Šค ์นด๋ฉ”๋ผ๋ฅผ ํ†ตํ•ด์„œ 20cm~30cm (D435i ์นด๋ฉ”๋ผ๋Š” 20cm ์ด๋‚ด์˜ ์ด๋ฏธ์ง€๋Š” ์ž˜ ์ธ์‹ ๋ชปํ•จ, ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ตœ๋Œ€๊ฑฐ๋ฆฌ๋ฅผ 30cm๋กœ ์ œํ•œ) ๋–จ์–ด์ง„ ๋ฒ”์œ„๋กœ tresholdํ•œ Depth ์ด๋ฏธ์ง€๋ฅผ ์ด์ง„ํ™” ํ•˜์—ฌ ์ด๋ฅผ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ  RGB ์ด๋ฏธ์ง€์— ๊ฐ€์ค‘์น˜๋ฅผ ๊ณฑํ•จ์œผ๋กœ์จ ํ•ด๋‹น ๊นŠ์ด์— ๋Œ€ํ•œ RGB ์ด๋ฏธ์ง€๋งŒ ๋ฝ‘์•„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. RGB ์ด๋ฏธ์ง€๋งŒ ์ž˜ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ปจํˆฌ์–ด๋ฅผ ๋”ฐ์„œ ํŒŒ๋ž€์„ ์œผ๋กœ ํ‘œ์‹œํ•˜์˜€์œผ๋ฉฐ ๋Ž์Šค ์ด๋ฏธ์ง€๋กœ ์ด์ง„ํ™”ํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๊ณ„๊ฐ€ ๋‹ค์†Œ ๊ฑฐ์นœ ๋ถ€๋ถ„์ด ์žˆ์–ด erode์™€ dilate๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  blur๋ฅผ ํ†ตํ•ด์„œ ์™ธ๊ณฝ์„ ์กฐ๊ธˆ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ณ€๊ฒฝ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ธ์‹๋œ ์˜์—ญ์˜ ์ค‘์•™์ ์€ connectedComponentsWithStats() ๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์˜์—ญ๋‚ด์˜ ์ค‘์•™์ง€์ ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ผ ํ•˜์—ฌ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜์—ญ์˜ ์ค‘์•™์„ ๋นจ๊ฐ„์ƒ‰ ์›์ด ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
contour_depth

ํ•˜์ง€๋งŒ RGB ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€์™€ Depth ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€์˜ ์ค‘์‹ฌ์ ์ด ๋™์ผํ•˜์ง€ ์•Š์•„ ๋ฌผ์ฒด๊ฐ€ ๋‹ค์†Œ ๊น”๋”ํ•˜๊ฒŒ ์ธ์‹๋˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ ํ•™์Šต์ด ๋˜์–ด์žˆ์ง€ ์•Š์€, "์ˆœ์ˆ˜ unknown์ธ ๋ฌผ์ฒด๋„ ์ž˜ ์ธ์‹ํ•ด์„œ ๋ฌผ์ฒด๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ž" ์˜€์ง€๋งŒ ๋Ž์Šค๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฑ…์ƒ์„ ํ•จ๊ป˜ ์ธ์‹ํ•ด๋ฒ„๋ฆฌ๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ฝ”๋“œ๋Š” ์ดํ›„ ๊ฐ์ฒด ์ธ์‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ yolov5๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ย 

ย 

2๏ธโƒฃ 8.realsense_img_save.py

์ด ์ฝ”๋“œ๋Š” yolov5 ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•™์Šตํ•  ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์นด๋ฉ”๋ผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ดฌ์˜ํ•˜๊ธฐ๋ณด๋‹ค ์‚ฌ์šฉํ•  ์—”๋“œ ์ดํŽ™ํ„ฐ์— ์žฅ์ฐฉ๋˜๋Š” ์นด๋ฉ”๋ผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ฝ‘์•„ ๋ผ๋ฒจ๋ง์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์ด ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์นด๋ฉ”๋ผ๋ฅผ ์œ„์น˜์‹œํ‚ค๊ณ  ์—”ํ„ฐ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ˆ„๋ฅด๋ฉด 1,2,3, ..., n ์žฅ์˜ ์นด๋ฉ”๋ผ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์ €์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ esc๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ์‚ฌ์ง„ ์ €์žฅ์€ ์ข…๋ฃŒ๋˜๋ฉฐ, ๋‹ค์‹œ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ count๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ๊ธฐ์กด์— ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€๊ฐ€ ์ง€์›Œ์งˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜๋ฐ”๋ž๋‹ˆ๋‹ค. ย 

ย 

3๏ธโƒฃ 9.object_detect_using_depthNyolov5.py

yolo_depth
9.object_detect_using_depthNyolov5.py
์ด ์ฝ”๋“œ๋Š” yolov5 ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•™์Šต๋œ ์ด๋ฏธ์ง€๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์—‰๋šฑํ•œ ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด RGBD ์นด๋ฉ”๋ผ์˜ ์žฅ์ ์„ ์‚ด๋ ค, ์„ค์ •ํ•œ Depth ์ธ์ง€ ๊ฑฐ๋ฆฌ ๋‚ด์—์„œ๋งŒ ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก 6.์—์„œ ์‚ฌ์šฉํ•œ RGB ์ด๋ฏธ์ง€์˜ ํ•„ํ„ฐ๋ง์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—”๋“œ ์ดํŽ™ํ„ฐ์˜ ์นด๋ฉ”๋ผ๊ฐ€ ์›ํ•˜๋Š” ๋ฌผ์ฒด๋งŒ ์ธ์‹ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๋” ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ผ๋ฒจ๋ง์€ labelimg ๋ผ๋Š” ํˆด์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
ย  ย 

2. ์ „์ฒด ์˜์ƒ ๋ณด๊ธฐ ๋ฐ ์‹ค์ œ ๋กœ๋ด‡๊ณผ ์ž‘๋™

st_arms_eyes

-ํƒ€์ž„๋ผ์ธ-
์‹ค์ œ ๋กœ๋ด‡๋งŒ ๋ณด๊ธฐ: 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 โญ

st_arms_eyes's People

Contributors

1213tnals avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.