Uuv_simulator: Q: ์ˆ˜๋ฉด ๋ชจ๋ธ๋ง?

์— ๋งŒ๋“  2017๋…„ 09์›” 15์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: uuvsimulator/uuv_simulator

์งˆ๋ฌธ, uuv ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ํŒŒ๋„์™€ ๊ฐ™์€ ์ˆ˜๋ฉด์„ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? (๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ’๋ ฅ ๋ฐœ์ „์†Œ ๋น„๋””์˜ค์—์„œ ๋ฉ‹์ง„ ํ‘œ๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?)

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Gazebo์˜ ํ‘œ๋ฉด ์„ ๋ฐ•์— ๋Œ€ํ•œ ๋ถ€๋ ฅ ๋ชจ๋ธ๋ง์— ๋น„์Šทํ•œ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์ด ๋…ผ์˜๋˜๊ณ  ์žˆ๋Š” ๊ณณ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ฝ๊ฐ„์˜ ์ง„์ „์„ ์ด๋ฃจ์—ˆ์œผ๋ฉฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜ ์ด์ƒ์˜ ๋งํฌ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์ „๋ง๋Œ€ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋˜๋Š” ๋ฉ”์‰ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋œ ๊ฐ์ฒด๋ฅผ ์ง€์›ํ•˜๋Š” ์ž‘์—… ์˜ˆ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์›จ์ด๋ธŒ ํ•„๋“œ๋Š” ํ‰๋ฉด ๋ฉ”์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ๋ง๋˜๋ฉฐ ์„ธ๊ณ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ๋น„์ฃผ์–ผ ๋ฐ ๋ฌผ๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ๋ฉด ๋ฉ”์‰ฌ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— CGAL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ˆ๋Š” ๋ถ€๋ ฅ๋งŒ ์žˆ๋Š” ์œ ๋‹ˆ๋ฒ„์„ค ์กฐ์ธํŠธ๋กœ ์—ฐ๊ฒฐ๋œ ์ผ๋ จ์˜ ์ƒ์ž๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค(๊ฐ์‡ ๋ ฅ ๋˜๋Š” ํ•ญ๋ ฅ ์—†์Œ).

buoyancy example 1

๋‘ ๋ฒˆ์งธ ์˜ˆ๋Š” ๋ถ€๋ ฅ๊ณผ ์•ฝ๊ฐ„์˜ ํ•ญ๋ ฅ์„ ๋ฐ›๋Š” ํŒŒ๋„์˜ ์—ฌ๋Ÿฌ ๋ฌผ์ฒด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ณดํŠธ๋Š” ์˜จ๋ผ์ธ 3D ์ฐฝ๊ณ ์—์„œ ๊ฐ€์ ธ์˜จ ์žฌ๊ณ ์ด๋ฉฐ ๋ถ€๋ ฅ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ •์  ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์‰ฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋ Œ๋”๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

buoyancy example

๋ชจ๋“  17 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”, ํ˜„์žฌ ์ˆ˜๋ฉด์ด๋‚˜ ํŒŒ๋„์— ๋Œ€ํ•œ ๋ฌผ๋ฆฌ์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ถ”๊ฐ€ํ•˜๋ฉด ์ข‹์€ ๊ธฐ๋Šฅ์ด์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” ์ž‘์—…ํ•  ๋Šฅ๋ ฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์˜ํ–ฅ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

๋น„๋””์˜ค๋‚˜ ์Šคํฌ๋ฆฐ์ƒท์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŒŒ๋„๋Š” ์ˆœ์ˆ˜ํ•œ ์‹œ๊ฐ ํšจ๊ณผ์ด๋ฉฐ ๋จธํ‹ฐ๋ฆฌ์–ผ ์†์„ฑ์—์„œ ์ด๋Ÿฌํ•œ ์…ฐ์ด๋” ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

์•„, ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php ๋ฅผ ์›”๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ(gazebo)์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ 

๋„ค, ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ JONSWAP ๋˜๋Š” Pierson-Moskowitz ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ์›จ์ด๋ธŒ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์…ฐ์ด๋”์™€ ๋ชจ๋ธ์— ๋Œ€ํ•ด ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•˜๋‚˜์˜ Gazebo ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณธ ๋ฌธ์ œ๋Š” ์ด ๋‘ ๋ชจ๋“ˆ์ด Gazebo์—์„œ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค( @sebastianscherer ์…ฐ์ด๋”๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ์ผ์‹œ ์ค‘์ง€ํ•˜๋ฉด ์›จ์ด๋ธŒ๊ฐ€ ๊ณ„์† ์‹คํ–‰๋จ). ์…ฐ์ด๋” ์™ธ์—๋Š” ํ™˜๊ฒฝ์—์„œ ํŒŒ๋„์™€ ๊ฐ™์€ ๊ฒƒ์„ ํ‘œ์‹œํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.
๋ชจ๋ธ๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‚ด๊ฐ€ ์ฐพ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” Kelpie ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๊ตฌํ˜„๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://www.researchgate.net/publication/259741742_Kelpie_A_ROS-Based_Multi-robot_Simulator_for_Water_Surface_and_Aerial_Vehicles

๊ตฌํ˜„ํ•˜๊ธฐ๋Š” ๋งค์šฐ ์‰ฌ์šด ๊ฒƒ ๊ฐ™์ง€๋งŒ ์–ผ๋งˆ๋‚˜ ์ข‹์€์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณด๋Š” ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ์‹œ๊ฐ์  ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋ฌผ๋ฆฌ์  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ทธ์™€ ๊ฐ™์€ ๊ฒƒ์— ๋งค์šฐ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ํŒŒ๋„์™€ ํ•จ๊ป˜ ๋นˆ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด

roslaunch uuv_descriptions ocean_waves.launch

๋Œ“๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๊ฒŒ์‹œ๋ฌผ์—์„œ ์„ค๋ช…ํ•œ ๋ฌผ๋ฆฌํ•™์ด ๊ตฌํ˜„๋˜์—ˆ์ง€๋งŒ ์•„์ง ์กฐ์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ฒซ ๋ฒˆ์งธ ์ปท์— ๋Œ€ํ•ด ๊ฝค ์„ค๋“๋ ฅ์ด ์žˆ์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ํŒŒ๋„๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ์˜๋ฏธ๊ฐ€ ์žˆ๊ธฐ ์ „์— ํ‰ํ‰ํ•œ ๋ฌผ์—์„œ ๋” ๋ฐœ์ „ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์ˆ˜๋ฉด ๋ชจ๋ธ๊ณผ ๋ณดํŠธ ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ์„ธ๊ณ„ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค. ์˜ˆ:

    <plugin name="floating" filename="libfloating.so">
      <water_model>ocean</water_model>
      <boat_models>
        <boat>box</boat>
      </boat_models>
    </plugin>

๋ฌผ ๋ชจ๋ธ์€ HeightMap(๋ฉ”์‹œ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค)์ด๊ณ  ๋ณดํŠธ ๋ชจ๋ธ์€ ์„ ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์ผ ๋งํฌ(ํ˜„์žฌ๋กœ์„œ๋Š”)๊ฐ€ ์žˆ๋Š” ์‚ผ๊ฐํ˜• ๋ฉ”์‰ฌ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฉ”์‰ฌ์˜ ๋ชจ๋“  ์ž ๊ธด ์‚ผ๊ฐํ˜•์— ๋Œ€ํ•œ ๋ถ€๋ ฅ, ์ ์„ฑ ๋งˆ์ฐฐ, ์••๋ ฅ ํ•ญ๋ ฅ ๋ฐ ์Šฌ๋ž˜๋ฐ ํž˜์„ ๊ณ„์‚ฐํ•˜๊ณ  ๊ฐ ์‚ผ๊ฐํ˜•์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ uuv-simulator์— ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๊นŒ? ์ด ๋‹จ๊ณ„์—์„œ ๋‚˜๋Š” ros๋ฅผ ํ”ผํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ uuv-simulator๊ฐ€ ros ์—†์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. (๋‚˜๋Š” ์žฅ๋ฏธ ๊ฒฝํ—˜์ด์—†๊ณ  ์ „๋ง๋Œ€๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค). ๋‚˜๋Š” ๋˜ํ•œ ์ „๋ง๋Œ€ ๊ธฐ๋ณธ ๋ถ„๊ธฐ(์ฆ‰, v9)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. uuv-simulator๋Š” v8๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋ฌผ๋ฆฌํ•™์—์„œ ์ ํ™” ์žฌ๋ฃŒ๋กœ ์ด๋™ํ•˜๋ฉด์„œ v8๊ณผ v9 ์‚ฌ์ด์— ์ด๋ฆ„์„ ๋ฐ”๊พผ ๋งŽ์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

uuv_simulator/uuv_world_plugins/uuv_world_plugins/ ์™€ uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/ ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฌผ๊ฒฐ ๋ชจ์–‘์˜ ์ˆ˜๋ฉด์— ์ƒ์ž๋ฅผ ๋–จ์–ด๋œจ๋ฆฌ๋Š” 2๋ถ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. https://youtu.be/X3bFU9bbL4A ์ด๊ฒƒ์€ ์ตœ์ดˆ์˜ ๊ฐœ๋… ์ฆ๋ช…์ž…๋‹ˆ๋‹ค...

๊ทธ ์˜์ƒ์€ ์ด๋ฏธ ๊ฝค ๋ฉ‹์ ธ ๋ณด์ธ๋‹ค!

ROS๊ฐ€ ์•„๋‹Œ ๋ถ€๋ถ„๊ณผ ์ˆœ์ˆ˜ํ•œ Gazebo ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ํŒŒ์ƒ๋œ ROS ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ๋„๋ก ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ถ„๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์ž์ฒด์ ์œผ๋กœ Gazebo ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ roslaunch ๋“ฑ ์—†์ด ์‹คํ–‰ํ•˜๋ ค๋ฉด ์•ฝ๊ฐ„์˜ ์ž‘์—…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ uuv_simulator์— ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ์ž‘์—… ์ค‘์ธ ํ”„๋กœํ† ํƒ€์ž…์ด ์žˆ์„ ๋•Œ ํ†ตํ•ฉ์„ ์ง€์›ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ Gazebo ๋ฒ„์ „ 7์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. SWARM ํ”„๋กœ์ ํŠธ ์ผ์ •์— ๋งž์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Gazebo 8 ๋˜๋Š” 9๋กœ ์–ธ์ œ ์ „ํ™˜

ํ•œ ๊ฐ€์ง€ ๋”. ๋‹น์‹ ์ด ๋ฐœ์‚ฌํ•˜๋Š” ์„ธ๊ณ„์˜ ํŒŒ๋„๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด

roslaunch uuv_descriptions ocean_waves.launch

์—ฌ๊ธฐ์—์„œ ์ด ์žฌ๋ฃŒ ํŒŒ์ผ์—์„œ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/uuvsimulator/uuv_simulator/blob/master/uuv_descriptions/Media/materials/scripts/waves.material#L16

์˜ˆ๋ฅผ ๋“ค์–ด ์ง„ํญ์€ ๋งค์šฐ ๋‚ฎ๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์ง„ํญ๊ณผ ์ฃผํŒŒ์ˆ˜๋ฅผ ๋„ฃ์–ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๊ฐ„๋‹จํ•œ 3D ๋ณดํŠธ ๋ชจ๋ธ์„ ํ•จ๊ป˜ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝํ—˜์ด ์—†์œผ๋‹ˆ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด๋“ฏ...

์›ํ•œ๋‹ค๋ฉด ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/uuvsimulator/uuv_simulator/tree/master/uuv_descriptions/world_models/aurora_static

์ •์ (๋งˆ์ปค์˜ ์ผ์ข…์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋จ)์ด์ง€๋งŒ ๋กœ๋ด‡ ๋ชจ๋ธ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  https://github.com/kf/kingfisher์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” Kingfisher์šฉ ๋ชจ๋ธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค https://github.com/bsb808/usv_gazebo_plugins ์˜ usv_gazebo_plugins๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Gazebo์˜ ํ‘œ๋ฉด ์„ ๋ฐ•์— ๋Œ€ํ•œ ๋ถ€๋ ฅ ๋ชจ๋ธ๋ง์— ๋น„์Šทํ•œ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์ด ๋…ผ์˜๋˜๊ณ  ์žˆ๋Š” ๊ณณ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ฝ๊ฐ„์˜ ์ง„์ „์„ ์ด๋ฃจ์—ˆ์œผ๋ฉฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜ ์ด์ƒ์˜ ๋งํฌ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์ „๋ง๋Œ€ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋˜๋Š” ๋ฉ”์‰ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋œ ๊ฐ์ฒด๋ฅผ ์ง€์›ํ•˜๋Š” ์ž‘์—… ์˜ˆ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์›จ์ด๋ธŒ ํ•„๋“œ๋Š” ํ‰๋ฉด ๋ฉ”์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ๋ง๋˜๋ฉฐ ์„ธ๊ณ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ๋น„์ฃผ์–ผ ๋ฐ ๋ฌผ๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ๋ฉด ๋ฉ”์‰ฌ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— CGAL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ˆ๋Š” ๋ถ€๋ ฅ๋งŒ ์žˆ๋Š” ์œ ๋‹ˆ๋ฒ„์„ค ์กฐ์ธํŠธ๋กœ ์—ฐ๊ฒฐ๋œ ์ผ๋ จ์˜ ์ƒ์ž๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค(๊ฐ์‡ ๋ ฅ ๋˜๋Š” ํ•ญ๋ ฅ ์—†์Œ).

buoyancy example 1

๋‘ ๋ฒˆ์งธ ์˜ˆ๋Š” ๋ถ€๋ ฅ๊ณผ ์•ฝ๊ฐ„์˜ ํ•ญ๋ ฅ์„ ๋ฐ›๋Š” ํŒŒ๋„์˜ ์—ฌ๋Ÿฌ ๋ฌผ์ฒด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ณดํŠธ๋Š” ์˜จ๋ผ์ธ 3D ์ฐฝ๊ณ ์—์„œ ๊ฐ€์ ธ์˜จ ์žฌ๊ณ ์ด๋ฉฐ ๋ถ€๋ ฅ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ •์  ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์‰ฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋ Œ๋”๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

buoyancy example

์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” ๋˜ํ•œ ๋น„๋””์˜ค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ฉด ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

https://www.youtube.com/watch?v=NHfNfg2vhMc

๊ทธ๋ฆฌ๊ณ  ์ €์žฅ์†Œ

https://github.com/PanosMalloris/Autonomous-Marine-Exploration-Water-Simulation-ROS-GAZEBO

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚˜๋Š” ๋ฌผ๊ฒฐ ๋ชจ์–‘์˜ ๋ฐ”๋‹ค๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด ROS์™€ ํ˜ธํ™˜๋˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
Kelpie์˜ ๋…ผ๋ฌธ์„ ์—ฐ๊ตฌํ–ˆ์ง€๋งŒ GitHub์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋””์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•„์„ธ์š”?

@srmainwaring ๋‹น์‹ ์˜ ๋ชจ๋ธ์€ ์ •๋ง ๋ฉ‹์ ธ์š”! ์ €๋Š” ํ˜„์žฌ ๋ฐ”๋‹ค ํ‘œ๋ฉด์—์„œ ํ”๋“ค๋ฆฌ๋Š” ๋ณดํŠธ์˜ ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Gazebo๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž‘์„ฑ ๊ฒฝํ—˜์ด ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ํ”๋“ค๋ฆฌ๋Š” ๋ฌผ์ฒด๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ/ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ณต์œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์–ด๋–ค ๋„์›€์ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

@samchamberlin ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/srmainwaring/asv_wave_sim.

@srmainwaring Hey Rhys, ์ €๋Š” ROS์™€ Gazebo๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์ด ์ข‹๊ฒŒ๋„ ๋‹น์‹ ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์œ ์šฉํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! Gazebo ํŒจํ‚ค์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํŒจํ‚ค์ง€์˜ ์›จ์ด๋ธŒ ๊ธฐ๋Šฅ์„ UUV ํŒจํ‚ค์ง€์˜ ์ˆ˜์ค‘ ๋ชจ๋ธ๋ง๊ณผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

@JuliusHendrix ์˜ˆ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋ถ€๋ ฅ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‘ ํŒจํ‚ค์ง€์—์„œ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ž ์ˆ˜์ •์ด ์ˆ˜๋ฉด์—์„œ ํŒŒ๋„์— ๋ฐ˜์‘ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด UUV์— ๋Œ€ํ•œ ๋ถ€๋ ฅ ๊ณ„์‚ฐ ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. . ์›จ์ด๋ธŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ €์žฅ์†Œ์˜ ๋ฌธ์ œ ์„น์…˜์—์„œ ๊ธฐ๊บผ์ด ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. UUV ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์€ ์ž‘์„ฑ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

OSRF VRX ํŒ€(https://bitbucket.org/osrf/vrx/src/default/)๋„ UUV ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์›จ์ด๋ธŒ ๋น„์ฃผ์–ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๋น„์ฃผ์–ผ์„ ๋ฌผ๋ฆฌํ•™๊ณผ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ œ ์ œ์•ˆ์„ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ด‘์‚ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ๋ฉด๋ ฅ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹๋ณด๋‹ค๋Š” UUV ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ๊ฐ™์€ ๋ณผ๋ฅจ ๊ธฐ๋ฐ˜ ๋ถ€๋ ฅ ๊ณ„์‚ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € VRX์™€ UUV์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฒฐํ•ฉํ•˜๊ณ  ๋‚˜์ค‘์— ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋” ๋ณต์žกํ•œ ๋ถ€๋ ฅ ๋ชจ๋ธ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@srmainwaring ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ์ž˜ ์‚ดํŽด

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰