Hydrodynamics - modulabs/gazebo-tutorial GitHub Wiki

Overview

์ด ํŽ˜์ด์ง€์—์„œ๋Š” 'LiftDragPlugin'์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์ค‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ๊ฐ€๋Šฅํ•œ 'BuoyancyPlugin'์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

Background

๋ฌผ์ฒด์— ์ž‘์šฉํ•˜๋Š” ๋ถ€๋ ฅ์˜ ํฌ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

buoyancy force on object = volume of object*density of fluid*gravity

Using the BuoyancyPlugin

  • <fluid_density>: ๋ฌผ์ฒด๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ์œ ์ฒด์˜ ๋ฐ€๋„. ๋‹จ์œ„๋Š” kilograms/cubic meters. ๊ธฐ๋ณธ์€ 999.1026 kg/m^3๋กœ ๋ฌผ์˜ ๋ฐ€๋„์ด๋‹ค.
  • <link>:
    • name: <link> ์˜ ์†์„ฑ์ค‘ ํ•˜๋‚˜. ์กด์žฌํ•˜๋Š” ๋งํฌ๋‚˜ ๋ชจ๋ธ์˜ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ด์•ผํ•œ๋‹ค.
    • <center_of_volume>: link frame์—์„œ ๋ถ€ํ”ผ์˜ ์ค‘์‹ฌ. ์„ธ ์ขŒํ‘œ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. Automatically calculated if unspecified.
    • <volume>: ๋งํฌ์˜ ๋ถ€ํ”ผ. Automatically calculated if unspecified.

๋‹ค์Œ์€ BuoyancyPlugin SDF์˜ ์˜ˆ์ด๋‹ค.

<model name="boat">
  <link name="body">
    <!-- ... link info here ... -->
  </link>

  <plugin name="BuoyancyPlugin" filename="libBuoyancyPlugin.so">
    <!-- a viscous liquid -->
    <fluid_density>2000</fluid_density>
    <link name="body">
      <center_of_volume>1 2 3</center_of_volume>
      <volume>50</volume>
    </link>
  </plugin>
</model>

Demo

gazebo --verbose worlds/underwater.world -u

ใ…ใ… world๋Š” ์„ธ๊ฐ€์ง€ ์ž ์ˆ˜ํ•จ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ผ์‹œ์ •์ง€๊ฐ€ ํ’€๋ฆฌ๊ฒŒ ๋˜๋ฉด ๊ฒ€์€์ƒ‰ ์ž ์ˆ˜ํ•จ์€ ๊ฐ€๋ผ์•‰๊ฒŒ๋˜๊ณ  ํฐ์ƒ‰ ์ž ์ˆ˜ํ•จ์€ ๋– ์˜ค๋ฅด๊ฒŒ ๋œ๋‹ค. ๋…ธ๋ž€์ƒ‰ ์ž ์ˆ˜ํ•จ๋งŒ์ด ์ œ ์œ„์น˜๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ด๋Š” ๊ฒ€์€์ƒ‰์˜ ๋ฐ€๋„๋Š” ๋ฌผ๋ณด๋‹ค ๋†’๊ณ  ํฐ์ƒ‰์˜ ๋ฐ€๋„๋Š” ๋ฌผ๋ณด๋‹ค ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋…ธ๋ฝ์ƒ‰ ์ž ์ˆ˜ํ•จ์€ ๋ฌผ๊ณผ ๊ฐ™์€ ๋ฐ€๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋…ธ๋ž‘์ƒ‰ ์ž ์ˆ˜ํ•จ์„ ์„ ํƒํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ ํŒจ๋„์„ ์—ด๊ณ  ํ† ํฌ๋ฅผ ์ฃผ๋ฉด ์•ž์œผ๋กœ ๋‚˜๊ฐ€๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ