Skip to content

[Bug] tool dropped in drawer in recovery modeย #247

@kimseoungyun

Description

@kimseoungyun

๐Ÿž ๋ฒ„๊ทธ ์„ค๋ช…

Recovery ๋ชจ๋“œ๊ฐ€ ์ผœ์ง„ ์ƒํƒœ์—์„œ ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ๋Š” ๊ฒฝ์šฐ, ์‹œ์Šคํ…œ์ด ํ•ด๋‹น ๊ณต๊ตฌ๋ฅผ ๋‹ค์‹œ ์žก์œผ๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด์„œ recovery ํ๋ฆ„์ด ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

ํ˜„์žฌ recovery ๋กœ์ง์€ ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ๋‚ด๋ถ€์— ์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋„ ๊ณ„์† grasp๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ž ์•ˆ์— ์žˆ๋Š” ๊ณต๊ตฌ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅ์„ฑ, ํŒŒ์ง€ ๊ฐ€๋Šฅ์„ฑ, ์ถฉ๋Œ ์œ„ํ—˜ ๋“ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋ฏ€๋กœ recovery ๋ชจ๋“œ์—์„œ๋Š” ๋ฌด๋ฆฌํ•˜๊ฒŒ ์žก์œผ๋ ค๊ณ  ํ•˜์ง€ ์•Š๊ณ , โ€œ๋ชป ์žก๋Š”๋‹คโ€๋ผ๊ณ  ํŒ๋‹จํ•œ ๋’ค ์„œ๋ž์„ ๋‹ซ๋Š” ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค.

๐Ÿ” ์žฌํ˜„ ๋ฐฉ๋ฒ•

  1. ์ž‘์—… ์ค‘ ๊ณต๊ตฌ๋ฅผ ๋†“์น˜๊ฑฐ๋‚˜ ์‹คํŒจ ์ƒํ™ฉ์„ ๋ฐœ์ƒ์‹œ์ผœ recovery ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•œ๋‹ค.
  2. Recovery ๊ณผ์ •์—์„œ ๋Œ€์ƒ ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ๋‚ด๋ถ€์— ์žˆ๋Š” ์ƒํƒœ๋กœ ์ธ์‹๋œ๋‹ค.
  3. ์‹œ์Šคํ…œ์ด ์„œ๋ž ์•ˆ์— ์žˆ๋Š” ๊ณต๊ตฌ๋ฅผ ๋‹ค์‹œ ์žก์œผ๋ ค๊ณ  ์‹œ๋„ํ•œ๋‹ค.
  4. ๊ณต๊ตฌ๋ฅผ ์žก์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ recovery ํ๋ฆ„์ด ๋ฉˆ์ถ˜๋‹ค.

โœ… ๊ธฐ๋Œ€ํ•œ ๋™์ž‘

Recovery ๋ชจ๋“œ์—์„œ ๋Œ€์ƒ ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด, ์‹œ์Šคํ…œ์€ ํ•ด๋‹น ๊ณต๊ตฌ๋ฅผ ๋‹ค์‹œ ์žก์œผ๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

  1. ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ์Œ์„ ์ธ์‹ํ•œ๋‹ค.
  2. Recovery ๋ชจ๋“œ์—์„œ๋Š” ํ˜„์žฌ ๊ณต๊ตฌ๋ฅผ ์žก์„ ์ˆ˜ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค.
  3. ์‚ฌ์šฉ์ž ๋˜๋Š” ๋กœ๊ทธ์— โ€œ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ์–ด ์žก์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹คโ€์™€ ๊ฐ™์€ ์ƒํƒœ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚จ๊ธด๋‹ค.
  4. Grasp ์‹œ๋„๋ฅผ ์ค‘๋‹จํ•œ๋‹ค.
  5. ์„œ๋ž ๋‹ซ๊ธฐ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
  6. ์„œ๋ž์„ ๋‹ซ์€ ๋’ค ์•ˆ์ „ ์ƒํƒœ ๋˜๋Š” ์‹คํŒจ ์ข…๋ฃŒ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•œ๋‹ค.

โŒ ์‹ค์ œ ๋™์ž‘

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 ๋ชจ๋“œ์—์„œ ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค.
  • ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ์œผ๋ฉด grasp๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • โ€œ๊ณต๊ตฌ๊ฐ€ ์„œ๋ž ์•ˆ์— ์žˆ์–ด ์žก์„ ์ˆ˜ ์—†์Œโ€ ์ƒํƒœ๊ฐ€ ๋กœ๊ทธ ๋˜๋Š” ๋ฉ”์‹œ์ง€๋กœ ๋‚จ๋Š”๋‹ค.
  • Grasp ์‹œ๋„ ์—†์ด ์„œ๋ž ๋‹ซ๊ธฐ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
  • ์„œ๋ž ๋‹ซ๊ธฐ ์ดํ›„ recovery๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒ๋œ๋‹ค.
  • recovery ํ๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ์ •์ƒ์ ์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋œ๋‹ค.
  • ์„œ๋ž ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฌผ๊ณผ์˜ ์ถฉ๋Œ ์œ„ํ—˜์ด ์ค„์–ด๋“ ๋‹ค.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions