[Plant Simulation Study #02] – ์ง„๊ณต ์ด์†ก ๋กœ๋ด‡ ๋ฐ๋ชจ , 3D CAD ์›€์ง์ž„ ๊ตฌํ˜„

๐Ÿงช [Plant Simulation Study #02] – ์ง„๊ณต ์ด์†ก ๋กœ๋ด‡ ๋ฐ๋ชจ , 3D CAD ์›€์ง์ž„ ๊ตฌํ˜„

๐ŸŽฌ ๊ฐœ์š”

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Plant Simulation์„ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•œ ๋‘ ๋ฒˆ์งธ ๋ฐ๋ชจ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ชจ๋ธ์€ ๋ฐ˜๋„์ฒด ๋ฐ ๋””์Šคํ”Œ๋ ˆ์ด ์‚ฐ์—…์— ์“ฐ์ด๋Š” ์ง„๊ณต ์ด์†ก ๋กœ๋ด‡ (Vaccum Robot) ๋ชจ๋ธ๋ง ๋ชฉ์ ์œผ๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํŠนํžˆ ์ด ๋ชจ๋ธ๋ง์—์„œ๋Š” Plant Simulation ์—์„œ ์ผ๋ฐ˜์ ์ธ 3D ์บ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

3D CAD ์™€ ๋ชจ๋ธ๋ง์„ ์ค€๋น„ํ•˜์„ธ์š”.

  • ์ œ์ž‘ ๋ชฉ์ : 3D CAD ๋ฅผ ์ด์šฉํ•œ Plant Simulation ์žฅ๋น„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ์ž‘ ๋ฐฉ๋ฒ•
  • ์‚ฌ์šฉ ๊ธฐ๋Šฅ: Method, Station ,Graphic Animation  ๋“ฑ

๐ŸŽฅ ์‹œ์—ฐ ์˜์ƒ

๐Ÿ’ก ์•„๋ž˜ ์˜์ƒ์€ ์‹ค์ œ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๐Ÿ‘‡ ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ณผ์ •์„ ์ง์ ‘ ํ™•์ธํ•ด๋ณด์„ธ์š”.

https://youtu.be/PzqqgF9sDKw

 


๐Ÿ› ๏ธ ์ฃผ์š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ตฌ์„ฑ

ํ•ญ๋ชฉ์„ค๋ช…
๊ณต์ • ํ๋ฆ„ Buffer → Dual Arm lower → Station → Buffer → Dual Arm Upper -> Station  [Work ์— ๋”ฐ๋ฅธ ๋ฐ˜๋ณต์ž‘์—…]
๋ผ์šฐํŒ… ์ „๋žต โ‘  ๊ณ ์ • ์ˆœ์„œ  -  ์ด ์ž‘์—…์—์„œ๋Š” ๊ณ ์ • ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋ธ๋ง ์š”์†Œ ๋กœ๋ด‡ ๋ณ„ ์กฐ์ธํŠธ ์ฒ˜๋ฆฌ
์‚ฌ์šฉ ๊ธฐ๋Šฅ Method, Attribute ์กฐ๊ฑด ๋ถ„๊ธฐ, ExperimentManager๋กœ ๋‹ค์ค‘ ์ „๋žต ์‹คํ–‰
 

1)  3D ์บ๋“œ์—์„œ ์• ๋‹ˆ๋งค์ด์…˜ ๊ทธ๋ž˜ํ”ฝ์„ ๋งŒ๋“œ์„ธ์š”.

  • ์„ค์ •ํ•˜๊ณ  ์‹ถ์€ ๊ฐ ๊ด€์ ˆ๋งˆ๋‹ค ๋”ฐ๋กœ๋”ฐ๋กœ Animation ์„ธํŒ…์„ ํ•ด์ฃผ์„ธ์š”
  • ํŠนํžˆ ํŠธ๋ฆฌ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ํ•˜๊ณ  Animation ์„ ์„ธํŒ…ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต CAD ๊ฐ€ BOM ์— ๋งž์ถฐ ํŠธ๋ฆฌ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ผญ ํ™•์ธํ•˜๊ณ  ์ž‘์—…ํ•˜์„ธ์š”
  • ๊ทธ๋ฆฌ๊ณ  ๊ฐ Joint ๋งˆ๋‹ค ์†๋„๋ฅผ ์„ค์ •ํ•˜์„ธ์š”. ์„ ํ˜• ์šด๋™์ธ์ง€ ํšŒ์ „์šด๋™์ธ์ง€ ์ž˜ ์„ ํƒํ•˜์„ธ์š”

2)  Method ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ ๊ด€์ ˆ์„ ์ œ์–ดํ•˜๋„๋ก ํ•˜์„ธ์š”

  • _3D.getobject("").moveto(,) ๋‚˜ Pose ๋ฅผ ์„ค์ •ํ•˜์˜€๋‹ค๋ฉด _3D.Pose("") ๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.
  • ์œ„๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” 3D ์›€์งํž˜ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค . ์ดํ›„ ์ต์ˆ™ํ•ด์ง„๋‹ค๋ฉด , ์ž์œ ์ž์žฌ๋กœ ์›€์ง์ด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
robot._3D.poses.moveto("work_load") -- _3D.Pose ๋ฅผ ์‚ฌ์šฉํ•œ ๋กœ๋ด‡ ์›€์งํž˜ ๊ตฌํ˜„
robot._3D.getobject("axis").moveto(0.05) -- _3D.getObject("").moveto() ๋ฅผ ํ™œ์šฉํ•œ ๋กœ๋ด‡ ์›€์ง์ž„ ๊ตฌํ˜„ ์˜ˆ์‹œ

 


๐Ÿ“ˆ ๋ถ„์„ ๋ฐ ๊ฒฐ๊ณผ ์š”์•ฝ

์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ†ตํ•ด 3D ์บ๋“œ์™€ Graphic Animation ์„ ์ด์šฉํ•˜์—ฌ Plant Simulation ์•ˆ์—์„œ ์‹œ๊ฐ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š” ์ง€ ๊ฐ„๋‹จ ํžˆ ๋งŒ๋“ค์–ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋ธ๋ง ์ž‘์—… ์‹œ ๋‹จ์ˆœํžˆ Station , Library ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹จ 3D Cad ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ๋ด‡์˜ ์ •๊ตํ•œ ์›€์ง์ž„์„ ํ‘œํ˜„ํ•˜์—ฌ ์•„๋ฆ„๋‹ค์šด ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ ํ•ด ๋ณด์„ธ์š” . ํŠนํžˆ C Level ์„ ์„ค๋“ํ•˜๊ฑฐ๋‚˜ , ๊ณ ๊ฐ์—๊ฒŒ ์˜์—…ํ•˜๊ฑฐ๋‚˜ , ๋””์ง€ํ„ธ ํŠธ์œˆ ๊ฐ™์€ ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ ์‹œ ๊ผญ ํ•„์š”ํ•œ ์Šคํ‚ฌ์ž…๋‹ˆ๋‹ค.


๐Ÿง  ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

์ด๋ฒˆ ๋ฐ๋ชจ๋Š” ์ง„๊ณต ์ด์†ก ๋กœ๋ด‡ ๋ฐ๋ชจ๋ฅผ ํ†ตํ•ด 3D CAD ์›€์ง์ž„ ๊ตฌํ˜„์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์œ„ ๋‚ด์šฉ์€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์ดˆ๋ณด์ ์ธ ๋‚ด์šฉ์ด๋ฉฐ , ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ํ•˜์‹œ๋‹ค๋ณด๋ฉด ์ˆ˜๋งŽ์€ Object ๋“ค์„ ์›€์ง์ด๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์„ ์•Œ๊ณ ์žˆ์–ด์•ผ ์ดํ›„ ๊ตฌํ˜„ํ•  ๋•Œ ๋ง‰ํž˜์—†์ด ์ง„ํ–‰๋˜๋Š” ์  ๋ช…์‹ฌํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.