Skip to content

It is a simulator aimed at implementing the warehouse robot and DTSP

Notifications You must be signed in to change notification settings

JeonHyeongJunKW/warehouse-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

57 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

warehouse-simulator

๋ฌผ๋ฅ˜๋กœ๋ด‡ ์‹œ๋ฌผ๋ ˆ์ด์…˜๊ณผ Dynamic TSP๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ํ˜„ํ™ฉ

0.1 : ๊ธฐ๋ณธ ์‹œ๋ฌผ๋ ˆ์ด์…˜ ๋ฐ ์‹œ๊ฐํ™” ์ฝ”๋“œ

์ถ”๊ฐ€ ๊ณ„ํš :

  • ์ค‘๊ฐ„์— ๋…ธ๋“œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๋„ฃ์–ด๋‘๊ธฐ
  • ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋™์‹œ์— ๋Œ๋ ค์„œ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ
  • ๋กœ๋ด‡๊ฐ„์— ๊ฒฝ๋กœํšŒํ”ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋‹ฌ์„ฑํ•œ ๊ฒƒ:

  • ์„ ๋ฐ˜๊ฐ„ ์ด๋™๊ฒฝ๋กœ๋ฅผ A*star๋กœ ์ฐพ๊ธฐ(ํ˜„์žฌ ๋Œ€๊ฐ์„  ์ด๋™๋„ ๊ฐ€๋Šฅ)(v)
  • ์„ ๋ฐ˜์˜ ๊ฒฝ๋กœ ๋Œ€์‹ ์— ์„ ๋ฐ˜์— ํ• ๋‹น๋œ ๋…ธ๋“œ๋“ค ํ‘œ์‹œํ•˜๊ธฐ(v)
  • ๋‚จ์•„์žˆ๋Š” ์ฃผ๋ฌธ GUI์— ๋„ฃ๊ธฐ(v)
  • tsp ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ถ”๊ฐ€ ๋ฐ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋‘๊ธฐ(v)
  • ACO(v)
  • ์œ ์ „์•Œ๊ณ ๋ฆฌ์ฆ˜
  • PSO
  • ๋กœ๋ด‡์˜ ์ด์ „๊ฒฝ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ(v)
  • ์•„์ดํ…œ ์ถ”๊ฐ€๊ฐ€ ์•„๋‹Œ ์ฃผ๋ฌธ๋Ÿ‰ ์ˆ˜์ •(v)
  • ํŒจํ‚น์ง€์ ์— ๋”ฐ๋ฅธ ์ƒ‰๊น”ํ‘œ์‹œ ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ธฐ(v)
  • ๋งต ์‚ฌ์ด์ฆˆ ์ „๋ฐ˜์ ์œผ๋กœ ํ‚ค์šฐ๊ธฐ(v)
  • ๋กœ๋ด‡์˜ ์ „์ฒด๊ฒฝ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ(v)

๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์˜์ƒ

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์˜์ƒ

์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณ„ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ์˜์ƒ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ถœ๋ ฅ๊ฒฐ๊ณผ

์‹œ๋ฌผ๋ ˆ์ด์…˜ ๋ชฉ์ 

  • ์ฃผ๋ฌธ์„ ํ• ๋‹น ๋ฐ›์€ย ๋ฉ€ํ‹ฐ ๋กœ๋ด‡์˜ ์ตœ์  ๋™์„  ์Šค์ผ€์ค„๋ง
  • ๊ธฐ์กด ๋ฐฉ์‹(order grouping๊ณผ robot sceduling)์—์„œ Task allocation1๊ณผ Task sequencing2 ๊ตฌ์กฐ๋กœ ๊ฐœ์„ 

๋ฌธ์ œ ์ •์˜

  • j๊ฐœ์˜ ์•„์ดํ…œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ i๊ฐœ์˜ ์ฃผ๋ฌธ์ด ๋™์‹œ์— ๋“ค์–ด์˜ด : i = ์•ฝ 1000๊ฐœ
  • ๋กœ๋ด‡์ด ํ•œ ๋ฒˆ์— k๊ฐœ์˜ ์ฃผ๋ฌธ์„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•  ๋•Œ, ์–ด๋–ค์ฃผ๋ฌธ์„ ํ• ๋‹นํ•  ๊ฒƒ์ธ๊ฐ€.

์‹œ๋ฌผ๋ ˆ์ด์…˜์˜ ์ดˆ๊ธฐ ํ™˜๊ฒฝ์ •์˜

  • ๋กœ๋ด‡ : ํฌ์ธํŠธ ๋ชจ๋ธ(๊ธฐ๊ตฌํ•™ ๊ณ ๋ ค x)
  • 2D grid world map
  • 5 action : up, down, left, right, idle
  • ๊ฐ ๊ทธ๋ฆฌ๋“œ ์ด๋™ ๋ฐฉ์‹์„ directed ์™€ undirected ์ค‘์—์„œ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์‹œ๋ฌผ๋ ˆ์ด์…˜ ๊ตฌํ˜„์˜ ์ฐจํ›„ ๋ชฉํ‘œ

  • ๋งต(๋ฌผ๋ฅ˜ํ™˜๊ฒฝ)์˜ ์ƒ์„ฑ, ์ €์žฅ ๋ฐ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•œ๋‹ค.
  • ๋กœ๋ด‡์˜ ๊ตฌ๋™๋ฐฉ์‹์ด๋‚˜ ํฌ๊ธฐ๋“ฑ์˜ ์„ ์ •์ด ์ž์œ ๋กœ์›Œ์•ผํ•œ๋‹ค.
  • ์‹œ๋ฌผ๋ ˆ์ด์…˜์˜ ๋ฐฉ์‹(๊ธฐ๊ตฌํ•™ ๊ณ ๋ ค)์ด ์„ ํƒ ๊ฐ€๋Šฅํ•ด์•ผํ•œ๋‹ค.
  • ํ™•์žฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒํ•œ๋‹ค.

๊ตฌํ˜„๋ฐฉ์‹

  • ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์˜ ์‹œ๋ฌผ๋ ˆ์ด์…˜ ๊ตฌํ˜„
  • PyQT5 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ, ์‹œ๊ฐ์ ์œผ๋กœ ์‹œ๋ฌผ๋ ˆ์ด์…˜์„ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

์‚ฌ์šฉ๋ฐฉ๋ฒ•

๊ธฐ๋ณธ์‹คํ–‰

  • main.py๋ฅผ ๋นŒ๋“œํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋งต ํ™•์ธํ•˜๊ธฐ

  • ์‹คํ–‰ ํ›„, '๋งต ์ƒ์„ฑ ๋ฐ ํ™•์ธํ•˜๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, '๋งต ์ƒ์„ฑ๋„๊ตฌ' ์ฐฝ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.
  • ์ด๋•Œ, '๋งต๋ถˆ๋Ÿฌ์˜ค๊ธฐ'๋ฅผ ๋ˆ„๋ฅด๋ฉด, ๋งŒ๋“ค์–ด์ง„ ๋งต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒ˜ํ”Œ ๋งต(saved_map.json)์€ Mapํด๋”์— ์ €์žฅ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถˆ๋Ÿฌ์˜จ ๋งต์˜ resolution์ด๋‚˜ ํฌ๊ธฐ๋Š” ๋ฐ”๊พธ๋ฉด ์•ˆ๋˜์ง€๋งŒ, ๊ทธ์™ธ์— ๋ฒฝ, ์„ ๋ฐ˜, ํŒจํ‚น ์ง€์ , ์‹œ์ž‘ ์ง€์ ์€ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œํ›„, ๋‹ค์‹œ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ดˆ๋ก์ƒ‰์€ ์„ ๋ฐ˜์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 2*3์งœ๋ฆฌ ํฌ๊ธฐ์˜ ์„ ๋ฐ˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ 2๊ฐœ์”ฉ ๋ถ™์–ด์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ๋ž€์ƒ‰์€ ํŒจํ‚น ์ง€์ ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ชจ๋ฐ”์ผ๋กœ๋ด‡์ด ์žฌ๊ณ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ์žฅ์†Œ์ž…๋‹ˆ๋‹ค.
  • ๋นจ๊ฐ„์ƒ‰์€ ์‹œ์ž‘ ์ง€์ ์ด๋ฉฐ, ๋ชจ๋ฐ”์ผ๋กœ๋ด‡์ด ๋งจ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๊ณ , ํŒจํ‚น์žฅ์†Œ์— ์žฌ๊ณ ๋“ค์„ ๋‘๊ณ  ๋‹ค์‹œ ๋Œ์•„์˜ค๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.
  • xํ‘œ์‹œ๋กœ ๋œ ๋ธ”๋Ÿญ์€ ๋ฒฝ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ซ๊ธฐ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ '๋งต ์ƒ์„ฑ๋„๊ตฌ'์ฐฝ์„ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งต ์ƒ์„ฑํ•˜๊ธฐ

  • ์‹คํ–‰ ํ›„, '๋งต ์ƒ์„ฑ ๋ฐ ํ™•์ธํ•˜๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, '๋งต ์ƒ์„ฑ๋„๊ตฌ' ์ฐฝ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.
  • ๊ฐ€๋กœํฌ๊ธฐ์™€ ์„ธ๋กœํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์—ฌ, ๋งต์‚ฌ์ด์ฆˆ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์Šฌ๋ผ์ด๋”๋ฐ”๋ฅผ ์กฐ์ •๊ฐ€๋Šฅ)
  • ๊ฐ€๋กœ ๋ถ„ํ•ด๋Šฅ๊ณผ ์„ธ๋กœ ๋ถ„ํ•ด๋Šฅ์„ ์กฐ์ •ํ•˜์—ฌ, ๋งต์˜ ๋ถ„ํ•ด๋Šฅ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์Šฌ๋ผ์ด๋”๋ฐ”๋ฅผ ์กฐ์ •๊ฐ€๋Šฅ)
  • ์œ„์˜ ๋‘๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๊ณจ๋ž๋‹ค๋ฉด, '๋งต ํฌ๊ธฐ, ๋ถ„ํ•ด๋Šฅ ์ €์žฅ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.(ํ•œ๋ฒˆ ๋ฐ”๊พผ ์‚ฌ์ด์ฆˆ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)
  • ์ดํ›„์— ์„ ๋ฐ˜์˜ '๊ฐ€๋กœํฌ๊ธฐ','์„ธ๋กœํฌ๊ธฐ', '์•„์ดํ…œ์ˆ˜', '๋‹จ๋ฉด ์„ ๋ฐ˜ ์—ฌ๋ถ€'๋“ฑ์„ ๊ณ ๋ฅธ ํ›„์—, '์„ ๋ฐ˜ ์ƒ์„ฑํ•˜๊ธฐ'๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ๋งŒ๋“ค์–ด์ง„ ๋งต์— ์„ ๋ฐ˜์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฐ์น˜๊ฐ„์— ํ‚ค๋ณด๋“œ์— R๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์„ ๋ฐ˜์˜ ๋ฐฉํ–ฅ์ด ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ์— ์ž˜๋ชป ๋‘” ์„ ๋ฐ˜์ด ์žˆ๋‹ค๋ฉด '์„ ๋ฐ˜ ์ˆ˜์ •ํ•˜๊ธฐ'๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ , ์ž˜๋ชป๋œ ์„ ๋ฐ˜์„ ํด๋ฆญํ›„์—, ํ‚ค๋ณด๋“œ Delete๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์„ ๋ฐ˜์ด ์—†์–ด์ง‘๋‹ˆ๋‹ค.
  • '์„ ๋ฐ˜ ๋‹ค์‹œ๋งŒ๋“ค๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ๋‹ค์‹œ ๋ฒฝ, ์„ ๋ฐ˜, ํŒจํ‚น ์ง€์ , ์‹œ์ž‘ ์ง€์ ์ค‘์—์„œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์ž‡์Šต๋‹ˆ๋‹ค.
  • ๋‚˜๋จธ์ง€ ๋ฒฝ, ํŒจํ‚น, ์‹œ์ž‘ ์ง€์ ์€ resolution์œผ๋กœ ์ •ํ•ด์ง„ ๊ฒฉ์ž ์‚ฌ์ด์ฆˆ๋กœ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง‘๋‹ˆ๋‹ค. ๊ทธ์™ธ์— ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ๋Š” ์„ ๋ฐ˜๋ฐฐ์น˜์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  • ์™„์„ฑ์ด ๋‹ค๋˜์—ˆ๋‹ค๋ฉด, ๋งต ์ €์žฅํ•˜๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ, jsonํ˜•์‹์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋งต ์ •ํ•˜๊ธฐ

  • ์‹คํ–‰ ํ›„, '๋งต ๋ถˆ๋Ÿฌ์˜ค๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ์‹œ๋ฌผ๋ ˆ์ด์…˜ ๋งต์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋‚ด์—ญ

  • 21-11-21 Dynamic tsp์™€ online order picking์„ ์œ„ํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ถ”๊ฐ€
  • 21-11-23 GUI์ถ”๊ฐ€ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ •ํŒŒํŠธ ์ƒ์„ฑ. ํฐ๋ฒ„๊ทธ ์ˆ˜์ •
  • 21-11-23 09:00 : ๋‹ค์–‘ํ•œ ๊ฒฐ๊ณผ๋ณด๋Š” ๋ถ€๋ถ„ ์ถ”๊ฐ€. ์•„์ง ์กฐ์ •ํ•„์š”
  • 21-11-28 09:00 : Queue์—์„œ batch๋ฅผ ์ƒ์„ฑํ•˜๋Š”๊ฒฝ์šฐ์—๋Š” bound๋ฅผ ๊ฐœ์„ , ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ๋น ๋ฅด๊ฒŒํ•˜์—ฌ ์ง€์—ฐ๋˜๋Š”๊ฒƒ์„ ๋ฐฉ์ง€.

[1] Task allocation : ๋น„์Šทํ•œ ์ž‘์—…์„ ๋ฌถ์–ด์„œ ๋ฉ€ํ‹ฐ ๋กœ๋ด‡์—๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž‘์—…์„ ๋ถ„๋ฐฐ

[2] Task sequencing: ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋กœ๋ด‡์ด ๋ฐฉ๋ฌธํ•ด์•ผํ•˜๋Š” ์ง€์ ์ด ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ์—๋„ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„๋‚ด๋Š” Dynamic TSP๋ฌธ์ œํ•ด๊ฒฐ

About

It is a simulator aimed at implementing the warehouse robot and DTSP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages