๐ ๋ฒ๊ทธ ์ค๋ช
Recovery ๋ชจ๋๊ฐ ์ผ์ง ์ํ์์ ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ ๊ฒฝ์ฐ, ์์คํ
์ด ํด๋น ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ๋ฉด์ recovery ํ๋ฆ์ด ์ ์์ ์ผ๋ก ์ข
๋ฃ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
ํ์ฌ recovery ๋ก์ง์ ๊ณต๊ตฌ๊ฐ ์๋ ๋ด๋ถ์ ์๋ ์ํฉ์์๋ ๊ณ์ grasp๋ฅผ ์๋ํ ์ ์๋ค. ๊ทธ๋ฌ๋ ์๋ ์์ ์๋ ๊ณต๊ตฌ๋ ์ ๊ทผ ๊ฐ๋ฅ์ฑ, ํ์ง ๊ฐ๋ฅ์ฑ, ์ถฉ๋ ์ํ ๋ฑ์ ๊ณ ๋ คํด์ผ ํ๋ฏ๋ก recovery ๋ชจ๋์์๋ ๋ฌด๋ฆฌํ๊ฒ ์ก์ผ๋ ค๊ณ ํ์ง ์๊ณ , โ๋ชป ์ก๋๋คโ๋ผ๊ณ ํ๋จํ ๋ค ์๋์ ๋ซ๋ ๋จ๊ณ๋ก ๋์ด๊ฐ์ผ ํ๋ค.
๐ ์ฌํ ๋ฐฉ๋ฒ
- ์์
์ค ๊ณต๊ตฌ๋ฅผ ๋์น๊ฑฐ๋ ์คํจ ์ํฉ์ ๋ฐ์์์ผ recovery ๋ชจ๋๋ก ์ง์
ํ๋ค.
- Recovery ๊ณผ์ ์์ ๋์ ๊ณต๊ตฌ๊ฐ ์๋ ๋ด๋ถ์ ์๋ ์ํ๋ก ์ธ์๋๋ค.
- ์์คํ
์ด ์๋ ์์ ์๋ ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ๋ค.
- ๊ณต๊ตฌ๋ฅผ ์ก์ง ๋ชปํ๊ฑฐ๋ recovery ํ๋ฆ์ด ๋ฉ์ถ๋ค.
โ
๊ธฐ๋ํ ๋์
Recovery ๋ชจ๋์์ ๋์ ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ค๊ณ ํ๋จ๋๋ฉด, ์์คํ
์ ํด๋น ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ์ง ์์์ผ ํ๋ค.
๋์ ๋ค์๊ณผ ๊ฐ์ด ๋์ํด์ผ ํ๋ค.
- ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์์์ ์ธ์ํ๋ค.
- Recovery ๋ชจ๋์์๋ ํ์ฌ ๊ณต๊ตฌ๋ฅผ ์ก์ ์ ์๋ค๊ณ ํ๋จํ๋ค.
- ์ฌ์ฉ์ ๋๋ ๋ก๊ทธ์ โ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์์ด ์ก์ ์ ์์ต๋๋คโ์ ๊ฐ์ ์ํ ๋ฉ์์ง๋ฅผ ๋จ๊ธด๋ค.
- Grasp ์๋๋ฅผ ์ค๋จํ๋ค.
- ์๋ ๋ซ๊ธฐ ๋จ๊ณ๋ก ๋์ด๊ฐ๋ค.
- ์๋์ ๋ซ์ ๋ค ์์ ์ํ ๋๋ ์คํจ ์ข
๋ฃ ์ํ๋ก ์ ํํ๋ค.
โ ์ค์ ๋์
Recovery ๋ชจ๋์์ ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ ๊ฒฝ์ฐ์๋ ์์คํ
์ด ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ๋ค.
์ด๋ก ์ธํด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ์๋ ๋ด๋ถ ๊ณต๊ตฌ์ ๋ํด ๋ถํ์ํ grasp ์๋๊ฐ ๋ฐ์ํ๋ค.
- ๋ก๋ดํ ๋๋ ๊ทธ๋ฆฌํผ๊ฐ ์๋ ๋ด๋ถ ๊ตฌ์กฐ๋ฌผ๊ณผ ์ถฉ๋ํ ์ํ์ด ์๋ค.
- recovery ํ๊ฐ ์ ์์ ์ผ๋ก ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ์ง ๋ชปํ ์ ์๋ค.
- ์ฌ์ฉ์๋ recovery๊ฐ ์คํจํ๋์ง, ์งํ ์ค์ธ์ง ๋ช
ํํ ์๊ธฐ ์ด๋ ต๋ค.
- ์๋ ๋ซ๊ธฐ ๋จ๊ณ๊ฐ ์คํ๋์ง ์๊ณ recovery ๊ณผ์ ์ด ๋ฉ์ถ ์ ์๋ค.
๐ฅ๏ธ ์คํ ํ๊ฒฝ
- OS:
Ubuntu 22.04
- ROS 2 ๋ฒ์ :
ROS2 Humble
- Python ๋ฒ์ :
Python 3.10
- ๋ ํฌ์งํ ๋ฆฌ:
- ๋ธ๋์น:
- ์นด๋ฉ๋ผ ์ ๋ณด:
Intelยฎ RealSenseโข Depth Camera D435I
- ๋ก๋ดํ ์ ๋ณด:
Doosan-Robotics-M0609
- ๊ทธ๋ฆฌํผ ์ ๋ณด:
OnRobot RG2
๐ ๋ก๊ทธ ๋๋ ์๋ฌ ๋ฉ์์ง
Recovery mode entered.
Target tool detected.
Target tool location: inside drawer.
Attempting recovery grasp.
Grasp failed or not reachable.
Recovery task did not proceed to drawer close step.
๐ฅ ์คํฌ๋ฆฐ์ท/์์
ํด๋น ์์.
๐ ์ถ๊ฐ ์ ๋ณด
์์ ๋ฐฉํฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
- recovery ๋ชจ๋์์ target tool์ ์์น๊ฐ ์๋ ๋ด๋ถ์ธ์ง ๋จผ์ ํ์ธํ๋ค.
- ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ค๊ณ ํ๋จ๋๋ฉด grasp task๋ฅผ ์์ฑํ์ง ์๋๋ค.
- ์ด ๊ฒฝ์ฐ recovery ๊ฒฐ๊ณผ๋ฅผ
UNREACHABLE, CANNOT_GRASP_IN_DRAWER, ๋๋ ์ด์ ์คํ๋ ์คํจ ์ํ๋ก ์ฒ๋ฆฌํ๋ค.
- ์ฌ์ฉ์์๊ฒ โ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์์ด ์ก์ ์ ์์ต๋๋คโ๋ผ๋ ์ํ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ค.
- ์ดํ recovery ํ๋ฅผ ์๋ ๋ซ๊ธฐ ๋จ๊ณ๋ก ์ ํํ๋ค.
- ์๋ ๋ซ๊ธฐ ์ฑ๊ณต ํ ์ ์ฒด recovery๋ฅผ ์คํจ ์ข
๋ฃ ๋๋ ์์ ์ข
๋ฃ ์ํ๋ก ๋ง๋ฌด๋ฆฌํ๋ค.
- ๊ด๋ จ ๋ก๊ทธ์ recovery mode, target tool, detected location, skip grasp reason, next task๋ฅผ ๊ธฐ๋กํ๋ค.
์๋ฃ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
๐ ๋ฒ๊ทธ ์ค๋ช
Recovery ๋ชจ๋๊ฐ ์ผ์ง ์ํ์์ ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ ๊ฒฝ์ฐ, ์์คํ ์ด ํด๋น ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ๋ฉด์ recovery ํ๋ฆ์ด ์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
ํ์ฌ recovery ๋ก์ง์ ๊ณต๊ตฌ๊ฐ ์๋ ๋ด๋ถ์ ์๋ ์ํฉ์์๋ ๊ณ์ grasp๋ฅผ ์๋ํ ์ ์๋ค. ๊ทธ๋ฌ๋ ์๋ ์์ ์๋ ๊ณต๊ตฌ๋ ์ ๊ทผ ๊ฐ๋ฅ์ฑ, ํ์ง ๊ฐ๋ฅ์ฑ, ์ถฉ๋ ์ํ ๋ฑ์ ๊ณ ๋ คํด์ผ ํ๋ฏ๋ก recovery ๋ชจ๋์์๋ ๋ฌด๋ฆฌํ๊ฒ ์ก์ผ๋ ค๊ณ ํ์ง ์๊ณ , โ๋ชป ์ก๋๋คโ๋ผ๊ณ ํ๋จํ ๋ค ์๋์ ๋ซ๋ ๋จ๊ณ๋ก ๋์ด๊ฐ์ผ ํ๋ค.
๐ ์ฌํ ๋ฐฉ๋ฒ
โ ๊ธฐ๋ํ ๋์
Recovery ๋ชจ๋์์ ๋์ ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ค๊ณ ํ๋จ๋๋ฉด, ์์คํ ์ ํด๋น ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ์ง ์์์ผ ํ๋ค.
๋์ ๋ค์๊ณผ ๊ฐ์ด ๋์ํด์ผ ํ๋ค.
โ ์ค์ ๋์
Recovery ๋ชจ๋์์ ๊ณต๊ตฌ๊ฐ ์๋ ์์ ์๋ ๊ฒฝ์ฐ์๋ ์์คํ ์ด ๊ณต๊ตฌ๋ฅผ ๋ค์ ์ก์ผ๋ ค๊ณ ์๋ํ๋ค.
์ด๋ก ์ธํด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๐ฅ๏ธ ์คํ ํ๊ฒฝ
Ubuntu 22.04ROS2 HumblePython 3.10Intelยฎ RealSenseโข Depth Camera D435IDoosan-Robotics-M0609OnRobot RG2๐ ๋ก๊ทธ ๋๋ ์๋ฌ ๋ฉ์์ง
๐ฅ ์คํฌ๋ฆฐ์ท/์์
ํด๋น ์์.
๐ ์ถ๊ฐ ์ ๋ณด
์์ ๋ฐฉํฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
UNREACHABLE,CANNOT_GRASP_IN_DRAWER, ๋๋ ์ด์ ์คํ๋ ์คํจ ์ํ๋ก ์ฒ๋ฆฌํ๋ค.์๋ฃ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.