Skip to content

Commit

Permalink
Deploying to gh-pages from @ 709003e 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
andermi committed Jan 14, 2025
1 parent 7f9d8b7 commit 90dda96
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 2 deletions.
2 changes: 1 addition & 1 deletion main/search/search_index.json

Large diffs are not rendered by default.

94 changes: 93 additions & 1 deletion main/simulation/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,48 @@
</span>
</a>

<nav class="md-nav" aria-label="Gazebo">
<ul class="md-nav__list">

<li class="md-nav__item">
<a href="#electro-hydraulic-pto" class="md-nav__link">
<span class="md-ellipsis">
Electro-Hydraulic PTO
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#pneumatic-spring" class="md-nav__link">
<span class="md-ellipsis">
Pneumatic Spring
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#free-surface-hydrodynamics" class="md-nav__link">
<span class="md-ellipsis">
Free-Surface Hydrodynamics
</span>
</a>

</li>

</ul>
</nav>

</li>

<li class="md-nav__item">
<a href="#controller-interfaces" class="md-nav__link">
<span class="md-ellipsis">
Controller Interfaces
</span>
</a>

</li>

</ul>
Expand Down Expand Up @@ -1041,6 +1083,48 @@
</span>
</a>

<nav class="md-nav" aria-label="Gazebo">
<ul class="md-nav__list">

<li class="md-nav__item">
<a href="#electro-hydraulic-pto" class="md-nav__link">
<span class="md-ellipsis">
Electro-Hydraulic PTO
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#pneumatic-spring" class="md-nav__link">
<span class="md-ellipsis">
Pneumatic Spring
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#free-surface-hydrodynamics" class="md-nav__link">
<span class="md-ellipsis">
Free-Surface Hydrodynamics
</span>
</a>

</li>

</ul>
</nav>

</li>

<li class="md-nav__item">
<a href="#controller-interfaces" class="md-nav__link">
<span class="md-ellipsis">
Controller Interfaces
</span>
</a>

</li>

</ul>
Expand All @@ -1059,8 +1143,16 @@


<h1 id="simulation">Simulation<a class="headerlink" href="#simulation" title="Permanent link">&para;</a></h1>
<p>A computer simulation environment has created that that emulates the ROS 2 messages used on the buoy system, and connects them to a numerical simulation of the system dynamics and behavior of the electro-hydraulic Power-Take-Off device. The aim of this simulation is to provide a computer based simulation that for most behaviors, interacts with computer code in the same way the physical buoy system does. The aim is that code running on a desktop Linux machine can run unchanged on the physical buoy, and that the response of the simulated buoy is indistinguishable from the real system. The following sections provide some details of this simulator, and additional details are in the <a href="../theory/">theory</a> section.</p>
<p>A computer simulation environment has been created that simulates the dynamics of the wave-energy converter and emulates the ROS 2 messages used on the buoy system. This simulation includes a solver of the multi-body dynamics of the system, a numerical representation of the behavior and losses of the electro-hydraulic PTO, and a numerical simulation of the wave-buoy interaction processes based on linear hydrodynamic theory.</p>
<p>The aim of this simulation is to provide a computer based simulation that replicates the physical systems behavior and also interacts with computer code in the same way the physical buoy system does. The aim is that code running on a desktop Linux machine can run unchanged on the physical buoy, and that the response of the simulated buoy is indistinguishable from the real system. The following sections provide some details of this simulator, and additional specifics are in the <a href="../theory/">theory</a> section.</p>
<h2 id="gazebo">Gazebo<a class="headerlink" href="#gazebo" title="Permanent link">&para;</a></h2>
<p>The simulation environment here is built upon the popular <a href="https://gazebosim.org/docs/garden">Gazebo</a> Simulator that is supported by the Open Source Robotics Foundation. The core of this simulator is provided by a physics engine that is responsible for solving the 6 degree-of-freedom multi-body equations of motion. This engine determines the position in space solution of all the bodies in a simulation, subject to the forces that are acting on those bodies in any particular environment. This multi-body simulator also can enforce constraints on, and joints between, the bodies, allowing one to develop simulations in which two bodies are only allowed to slide by one another in one degree of freedom, for instance. Gazebo includes a number of forcings that are typical in robotics, gravity, contact forces between bodies, hydrodynamic drag forces, etc. Also, when used with the DART physics engine, Gazebo can include a general added-mass matrix which adds inertial forcing on specified bodies due to the tendency of the fluid surrounding a body to be accelerated along with the body. This is a critically important feature in underwater robotics and simulation efforts. Of course, all the required forcings to</p>
<p>In particular, this project has created plugins that provide forcing on the components of wave-energy converter system that are specific to this device and application. These plugins are loaded at run-time so exist independently of the main Gazebo software, but behave in an integrated way during simulations. The plug-in code described in the following sections implement specific forcings needed by this project.</p>
<h4 id="electro-hydraulic-pto">Electro-Hydraulic PTO<a class="headerlink" href="#electro-hydraulic-pto" title="Permanent link">&para;</a></h4>
<p>As described in the Architecture section, the MBARI wave-energy converter implements a custom developed electro-hydraulic power take-off device that converts mechanical power of a moving piston rod (force times velocity) to/from electrical energy that is supplied to or drawn from a battery system (voltage times current). This device consists of a linear hydraulic ram that is connected to a rotary hydraulic motor, linear motion of the ram translates to rotary motion of a shaft, and vice versa. The hydraulic motor shaft is directly coupled to a permanent magnet servo motor/driver. The power electronics maintains a commanded torque on the motor which results from current flowing to/from the battery system as appropriate. The Gazebo plugin developed to simulate this device takes in the piston velocity and commanded torque, and computes the resulting hydraulic pressure, motor RPM, and battery voltage and current. The plugin is programmed with the same default motor-current/RPM relationship as the physical system, and also respects the same limits on motor and battery current, motor RPMs, etc. A key simplifying assumption made in this model is that the rotary inertia of the motor shaft is negligible, and the hydraulic oil is incompressible. These assumptions cause the model of the PTO to be a quasi-static solution that neglects inertia forces of the rotary components of the motor. This has been shown to be a reasonable assumption at the motion frequencies the system operates at, and greatly increases the speed at which the solution progresses. The inertia of the piston itself is included in the simulation as it is an independent body in the equations of motion, constrained to move linearly with respect to the PTO housing.</p>
<h4 id="pneumatic-spring">Pneumatic Spring<a class="headerlink" href="#pneumatic-spring" title="Permanent link">&para;</a></h4>
<h4 id="free-surface-hydrodynamics">Free-Surface Hydrodynamics<a class="headerlink" href="#free-surface-hydrodynamics" title="Permanent link">&para;</a></h4>
<h2 id="controller-interfaces">Controller Interfaces<a class="headerlink" href="#controller-interfaces" title="Permanent link">&para;</a></h2>



Expand Down

0 comments on commit 90dda96

Please sign in to comment.