<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>gazebo_mcp.bridge package — ROS2 Gazebo MCP Server 1.0.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=8d563738"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="gazebo_mcp.tools package" href="gazebo_mcp.tools.html" />
<link rel="prev" title="gazebo_mcp package" href="gazebo_mcp.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
ROS2 Gazebo MCP Server
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Modules:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">gazebo_mcp</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="gazebo_mcp.html">gazebo_mcp package</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="gazebo_mcp.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l4 current"><a class="current reference internal" href="#">gazebo_mcp.bridge package</a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.tools.html">gazebo_mcp.tools package</a></li>
<li class="toctree-l4"><a class="reference internal" href="gazebo_mcp.utils.html">gazebo_mcp.utils package</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.html#submodules">Submodules</a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.html#module-gazebo_mcp.server">gazebo_mcp.server module</a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.html#module-gazebo_mcp">Module contents</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="gazebo_mcp.html">gazebo_mcp package</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="gazebo_mcp.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">gazebo_mcp.bridge package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-gazebo_mcp.bridge.connection_manager">gazebo_mcp.bridge.connection_manager module</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-gazebo_mcp.bridge.gazebo_bridge_node">gazebo_mcp.bridge.gazebo_bridge_node module</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-gazebo_mcp.bridge">Module contents</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.tools.html">gazebo_mcp.tools package</a></li>
<li class="toctree-l3"><a class="reference internal" href="gazebo_mcp.utils.html">gazebo_mcp.utils package</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.html#module-gazebo_mcp.server">gazebo_mcp.server module</a></li>
<li class="toctree-l2"><a class="reference internal" href="gazebo_mcp.html#module-gazebo_mcp">Module contents</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">ROS2 Gazebo MCP Server</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="modules.html">gazebo_mcp</a></li>
<li class="breadcrumb-item"><a href="gazebo_mcp.html">gazebo_mcp package</a></li>
<li class="breadcrumb-item active">gazebo_mcp.bridge package</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/gazebo_mcp.bridge.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="gazebo-mcp-bridge-package">
<h1>gazebo_mcp.bridge package<a class="headerlink" href="#gazebo-mcp-bridge-package" title="Link to this heading"></a></h1>
<section id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
</section>
<section id="module-gazebo_mcp.bridge.connection_manager">
<span id="gazebo-mcp-bridge-connection-manager-module"></span><h2>gazebo_mcp.bridge.connection_manager module<a class="headerlink" href="#module-gazebo_mcp.bridge.connection_manager" title="Link to this heading"></a></h2>
<p>Connection Manager for Gazebo MCP.</p>
<p>Manages ROS2 node lifecycle, connection state, and health monitoring:
- ROS2 context and node initialization
- Connection state tracking (disconnected, connecting, connected, error)
- Auto-reconnect with exponential backoff
- Health monitoring (periodic connection checks)
- Thread-safe operations
- Error recovery</p>
<p>This is a CRITICAL component - all ROS2 communication goes through this manager.</p>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionState">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.connection_manager.</span></span><span class="sig-name descname"><span class="pre">ConnectionState</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionState" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
<p>ROS2 connection states.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionState.DISCONNECTED">
<span class="sig-name descname"><span class="pre">DISCONNECTED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'disconnected'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionState.DISCONNECTED" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionState.CONNECTING">
<span class="sig-name descname"><span class="pre">CONNECTING</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'connecting'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionState.CONNECTING" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionState.CONNECTED">
<span class="sig-name descname"><span class="pre">CONNECTED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'connected'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionState.CONNECTED" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionState.ERROR">
<span class="sig-name descname"><span class="pre">ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'error'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionState.ERROR" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionState.RECONNECTING">
<span class="sig-name descname"><span class="pre">RECONNECTING</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'reconnecting'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionState.RECONNECTING" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.connection_manager.</span></span><span class="sig-name descname"><span class="pre">ConnectionManager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">node_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'gazebo_mcp_bridge'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auto_reconnect</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_reconnect_attempts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reconnect_base_delay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">health_check_interval</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>Manages ROS2 connection lifecycle and health.</p>
<p>Provides thread-safe ROS2 connection management with auto-reconnect,
health monitoring, and error recovery.</p>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">manager</span> <span class="o">=</span> <span class="n">ConnectionManager</span><span class="p">()</span>
<span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">connect</span><span class="p">()</span>
<span class="gp">>>> </span><span class="k">if</span> <span class="n">manager</span><span class="o">.</span><span class="n">is_connected</span><span class="p">():</span>
<span class="gp">... </span> <span class="c1"># Use ROS2 node</span>
<span class="gp">... </span> <span class="k">pass</span>
<span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">node_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'gazebo_mcp_bridge'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auto_reconnect</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_reconnect_attempts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reconnect_base_delay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">health_check_interval</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.__init__" title="Link to this definition"></a></dt>
<dd><p>Initialize connection manager.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>node_name</strong> – Name for the ROS2 node</p></li>
<li><p><strong>auto_reconnect</strong> – Enable automatic reconnection</p></li>
<li><p><strong>max_reconnect_attempts</strong> – Maximum reconnection attempts (0 = infinite)</p></li>
<li><p><strong>reconnect_base_delay</strong> – Base delay for exponential backoff (seconds)</p></li>
<li><p><strong>health_check_interval</strong> – Interval for health checks (seconds)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.state">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">state</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#gazebo_mcp.bridge.connection_manager.ConnectionState" title="gazebo_mcp.bridge.connection_manager.ConnectionState"><span class="pre">ConnectionState</span></a></em><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.state" title="Link to this definition"></a></dt>
<dd><p>Get current connection state (thread-safe).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.is_connected">
<span class="sig-name descname"><span class="pre">is_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.is_connected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.is_connected" title="Link to this definition"></a></dt>
<dd><p>Check if ROS2 connection is active.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.is_disconnected">
<span class="sig-name descname"><span class="pre">is_disconnected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.is_disconnected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.is_disconnected" title="Link to this definition"></a></dt>
<dd><p>Check if ROS2 connection is inactive.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.is_error">
<span class="sig-name descname"><span class="pre">is_error</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.is_error"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.is_error" title="Link to this definition"></a></dt>
<dd><p>Check if ROS2 connection is in error state.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.connect">
<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.connect" title="Link to this definition"></a></dt>
<dd><p>Establish ROS2 connection.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Connection timeout in seconds</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if connection successful</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NodeError" title="gazebo_mcp.utils.exceptions.ROS2NodeError"><strong>ROS2NodeError</strong></a> – If connection fails</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">manager</span> <span class="o">=</span> <span class="n">ConnectionManager</span><span class="p">()</span>
<span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mf">5.0</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.disconnect" title="Link to this definition"></a></dt>
<dd><p>Disconnect from ROS2.</p>
<p>Cleanly shuts down the ROS2 node, executor, and context.</p>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.reconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.reconnect" title="Link to this definition"></a></dt>
<dd><p>Reconnect to ROS2.</p>
<p>Uses exponential backoff for reconnection attempts.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True if reconnection successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">if</span> <span class="ow">not</span> <span class="n">manager</span><span class="o">.</span><span class="n">is_connected</span><span class="p">():</span>
<span class="gp">... </span> <span class="n">manager</span><span class="o">.</span><span class="n">reconnect</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.ensure_connected">
<span class="sig-name descname"><span class="pre">ensure_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.ensure_connected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.ensure_connected" title="Link to this definition"></a></dt>
<dd><p>Context manager to ensure ROS2 connection.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NotConnectedError" title="gazebo_mcp.utils.exceptions.ROS2NotConnectedError"><strong>ROS2NotConnectedError</strong></a> – If not connected and cannot connect</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">with</span> <span class="n">manager</span><span class="o">.</span><span class="n">ensure_connected</span><span class="p">():</span>
<span class="gp">... </span> <span class="c1"># Use ROS2 node here</span>
<span class="gp">... </span> <span class="k">pass</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.get_node">
<span class="sig-name descname"><span class="pre">get_node</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.get_node"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.get_node" title="Link to this definition"></a></dt>
<dd><p>Get the ROS2 node instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>ROS2 node instance</p>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NotConnectedError" title="gazebo_mcp.utils.exceptions.ROS2NotConnectedError"><strong>ROS2NotConnectedError</strong></a> – If not connected</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span> <span class="o">=</span> <span class="n">manager</span><span class="o">.</span><span class="n">get_node</span><span class="p">()</span>
<span class="gp">>>> </span><span class="c1"># Use node for ROS2 operations</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.on_connected">
<span class="sig-name descname"><span class="pre">on_connected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.14)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.on_connected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.on_connected" title="Link to this definition"></a></dt>
<dd><p>Register callback for connection established event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.on_disconnected">
<span class="sig-name descname"><span class="pre">on_disconnected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.14)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.on_disconnected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.on_disconnected" title="Link to this definition"></a></dt>
<dd><p>Register callback for disconnection event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.on_error">
<span class="sig-name descname"><span class="pre">on_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.14)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.on_error"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.on_error" title="Link to this definition"></a></dt>
<dd><p>Register callback for error state event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.__enter__">
<span class="sig-name descname"><span class="pre">__enter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__enter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.__enter__" title="Link to this definition"></a></dt>
<dd><p>Context manager entry.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.__exit__">
<span class="sig-name descname"><span class="pre">__exit__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_val</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_tb</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__exit__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.__exit__" title="Link to this definition"></a></dt>
<dd><p>Context manager exit.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.connection_manager.ConnectionManager.__del__">
<span class="sig-name descname"><span class="pre">__del__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__del__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.connection_manager.ConnectionManager.__del__" title="Link to this definition"></a></dt>
<dd><p>Destructor - ensure cleanup.</p>
</dd></dl>
</dd></dl>
</section>
<section id="module-gazebo_mcp.bridge.gazebo_bridge_node">
<span id="gazebo-mcp-bridge-gazebo-bridge-node-module"></span><h2>gazebo_mcp.bridge.gazebo_bridge_node module<a class="headerlink" href="#module-gazebo_mcp.bridge.gazebo_bridge_node" title="Link to this heading"></a></h2>
<p>Gazebo Bridge Node for Gazebo MCP.</p>
<p>ROS2 node that interfaces with Gazebo simulation:
- Service clients for Gazebo services (spawn, delete, get state, etc.)
- Topic subscriptions for sensor data
- Transform listener for TF data
- Action clients for complex operations</p>
<p>This is a CRITICAL component - it provides the actual Gazebo integration.</p>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.ModelState">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.gazebo_bridge_node.</span></span><span class="sig-name descname"><span class="pre">ModelState</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">twist</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'active'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#ModelState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>Model state information.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.ModelState.name">
<span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.ModelState.pose">
<span class="sig-name descname"><span class="pre">pose</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.pose" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.ModelState.twist">
<span class="sig-name descname"><span class="pre">twist</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.twist" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.ModelState.state">
<span class="sig-name descname"><span class="pre">state</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'active'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.state" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.ModelState.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">twist</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'active'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.gazebo_bridge_node.</span></span><span class="sig-name descname"><span class="pre">GazeboBridgeNode</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ros2_node</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>ROS2 node for Gazebo simulation interface.</p>
<p>Provides high-level interface to Gazebo services and topics.</p>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span> <span class="o">=</span> <span class="n">GazeboBridgeNode</span><span class="p">(</span><span class="n">ros2_node</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">models</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_model_list</span><span class="p">()</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">spawn_entity</span><span class="p">(</span><span class="s2">"turtlebot3"</span><span class="p">,</span> <span class="n">sdf_content</span><span class="p">,</span> <span class="n">pose</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">delete_entity</span><span class="p">(</span><span class="s2">"turtlebot3"</span><span class="p">)</span>
</pre></div>
</div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ros2_node</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.__init__" title="Link to this definition"></a></dt>
<dd><p>Initialize Gazebo bridge node.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>ros2_node</strong> – ROS2 node instance from ConnectionManager</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.spawn_entity">
<span class="sig-name descname"><span class="pre">spawn_entity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">xml_content</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'world'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.spawn_entity"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.spawn_entity" title="Link to this definition"></a></dt>
<dd><p>Spawn an entity in Gazebo.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Entity name (must be unique)</p></li>
<li><p><strong>xml_content</strong> – SDF or URDF XML content</p></li>
<li><p><strong>pose</strong> – Spawn pose (position and orientation)</p></li>
<li><p><strong>reference_frame</strong> – Reference frame for pose</p></li>
<li><p><strong>timeout</strong> – Service call timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if spawn successful</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelSpawnError" title="gazebo_mcp.utils.exceptions.ModelSpawnError"><strong>ModelSpawnError</strong></a> – If spawn fails</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If service call times out</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">pose</span> <span class="o">=</span> <span class="p">{</span>
<span class="gp">... </span> <span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mf">2.0</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">},</span>
<span class="gp">... </span> <span class="s2">"orientation"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">}</span>
<span class="gp">... </span><span class="p">}</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">spawn_entity</span><span class="p">(</span><span class="s2">"my_robot"</span><span class="p">,</span> <span class="n">urdf_content</span><span class="p">,</span> <span class="n">pose</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.delete_entity">
<span class="sig-name descname"><span class="pre">delete_entity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.delete_entity"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.delete_entity" title="Link to this definition"></a></dt>
<dd><p>Delete an entity from Gazebo.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Entity name</p></li>
<li><p><strong>timeout</strong> – Service call timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if deletion successful</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelDeleteError" title="gazebo_mcp.utils.exceptions.ModelDeleteError"><strong>ModelDeleteError</strong></a> – If deletion fails</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If service call times out</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">delete_entity</span><span class="p">(</span><span class="s2">"my_robot"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.set_entity_state">
<span class="sig-name descname"><span class="pre">set_entity_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">twist</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'world'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.set_entity_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.set_entity_state" title="Link to this definition"></a></dt>
<dd><p>Set entity state (pose and/or twist) in Gazebo.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Entity name</p></li>
<li><p><strong>pose</strong> – Target pose {position: {x,y,z}, orientation: {x,y,z,w}} or {roll,pitch,yaw}</p></li>
<li><p><strong>twist</strong> – Target velocity {linear: {x,y,z}, angular: {x,y,z}}</p></li>
<li><p><strong>reference_frame</strong> – Reference frame for pose (default: “world”)</p></li>
<li><p><strong>timeout</strong> – Service call timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if state set successfully</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelNotFoundError" title="gazebo_mcp.utils.exceptions.ModelNotFoundError"><strong>ModelNotFoundError</strong></a> – If model doesn’t exist</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If service call times out</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2ServiceError" title="gazebo_mcp.utils.exceptions.ROS2ServiceError"><strong>ROS2ServiceError</strong></a> – If service call fails</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="c1"># Set position only</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">set_entity_state</span><span class="p">(</span><span class="s2">"robot"</span><span class="p">,</span> <span class="n">pose</span><span class="o">=</span><span class="p">{</span><span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">}})</span>
<span class="gp">>>></span>
<span class="gp">>>> </span><span class="c1"># Set position and velocity</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">set_entity_state</span><span class="p">(</span>
<span class="gp">... </span> <span class="s2">"robot"</span><span class="p">,</span>
<span class="gp">... </span> <span class="n">pose</span><span class="o">=</span><span class="p">{</span><span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">}},</span>
<span class="gp">... </span> <span class="n">twist</span><span class="o">=</span><span class="p">{</span><span class="s2">"linear"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mi">0</span><span class="p">}}</span>
<span class="gp">... </span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_model_list">
<span class="sig-name descname"><span class="pre">get_model_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState" title="gazebo_mcp.bridge.gazebo_bridge_node.ModelState"><span class="pre">ModelState</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.get_model_list"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_model_list" title="Link to this definition"></a></dt>
<dd><p>Get list of models in Gazebo.</p>
<p>Subscribes to /gazebo/model_states topic to get current models.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Timeout for receiving model states</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>List of ModelState objects</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If timeout exceeded</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">models</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_model_list</span><span class="p">()</span>
<span class="gp">>>> </span><span class="k">for</span> <span class="n">model</span> <span class="ow">in</span> <span class="n">models</span><span class="p">:</span>
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">model</span><span class="o">.</span><span class="n">pose</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_model_state">
<span class="sig-name descname"><span class="pre">get_model_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState" title="gazebo_mcp.bridge.gazebo_bridge_node.ModelState"><span class="pre">ModelState</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.get_model_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_model_state" title="Link to this definition"></a></dt>
<dd><p>Get state of a specific model.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Model name</p></li>
<li><p><strong>timeout</strong> – Timeout for receiving data</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>ModelState object or None if not found</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">state</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_model_state</span><span class="p">(</span><span class="s2">"turtlebot3"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">state</span><span class="o">.</span><span class="n">pose</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.pause_physics">
<span class="sig-name descname"><span class="pre">pause_physics</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.pause_physics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.pause_physics" title="Link to this definition"></a></dt>
<dd><p>Pause Gazebo physics simulation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">pause_physics</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.unpause_physics">
<span class="sig-name descname"><span class="pre">unpause_physics</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.unpause_physics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.unpause_physics" title="Link to this definition"></a></dt>
<dd><p>Unpause Gazebo physics simulation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">unpause_physics</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.reset_simulation">
<span class="sig-name descname"><span class="pre">reset_simulation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.reset_simulation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.reset_simulation" title="Link to this definition"></a></dt>
<dd><p>Reset Gazebo simulation to initial state.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">reset_simulation</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.reset_world">
<span class="sig-name descname"><span class="pre">reset_world</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.reset_world"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.reset_world" title="Link to this definition"></a></dt>
<dd><p>Reset world to initial state (models + physics).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">reset_world</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_transform">
<span class="sig-name descname"><span class="pre">get_transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">source_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.get_transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.get_transform" title="Link to this definition"></a></dt>
<dd><p>Get transform between two frames.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target_frame</strong> – Target frame name</p></li>
<li><p><strong>source_frame</strong> – Source frame name</p></li>
<li><p><strong>timeout</strong> – Lookup timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Transform dictionary or None if not available</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">tf</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_transform</span><span class="p">(</span><span class="s2">"map"</span><span class="p">,</span> <span class="s2">"base_link"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">tf</span><span class="p">[</span><span class="s2">"translation"</span><span class="p">])</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.subscribe_to_topic">
<span class="sig-name descname"><span class="pre">subscribe_to_topic</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">topic_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">msg_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">qos_profile</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.subscribe_to_topic"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.subscribe_to_topic" title="Link to this definition"></a></dt>
<dd><p>Subscribe to a ROS2 topic.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>topic_name</strong> – Topic name</p></li>
<li><p><strong>msg_type</strong> – Message type class</p></li>
<li><p><strong>callback</strong> – Callback function</p></li>
<li><p><strong>qos_profile</strong> – QoS profile</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Subscription object</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">sensor_msgs.msg</span><span class="w"> </span><span class="kn">import</span> <span class="n">LaserScan</span>
<span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">laser_callback</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Laser ranges: </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">msg</span><span class="o">.</span><span class="n">ranges</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">sub</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">subscribe_to_topic</span><span class="p">(</span><span class="s2">"/scan"</span><span class="p">,</span> <span class="n">LaserScan</span><span class="p">,</span> <span class="n">laser_callback</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.destroy">
<span class="sig-name descname"><span class="pre">destroy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.destroy"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.gazebo_bridge_node.GazeboBridgeNode.destroy" title="Link to this definition"></a></dt>
<dd><p>Clean up resources.</p>
</dd></dl>
</dd></dl>
</section>
<section id="module-gazebo_mcp.bridge">
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-gazebo_mcp.bridge" title="Link to this heading"></a></h2>
<p>Gazebo MCP Bridge.</p>
<p>ROS2 bridge components for connecting to Gazebo simulation:
- ConnectionManager: ROS2 node lifecycle and connection management
- GazeboBridgeNode: ROS2 node for Gazebo service calls</p>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.</span></span><span class="sig-name descname"><span class="pre">ConnectionManager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">node_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'gazebo_mcp_bridge'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auto_reconnect</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_reconnect_attempts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reconnect_base_delay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">health_check_interval</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>Manages ROS2 connection lifecycle and health.</p>
<p>Provides thread-safe ROS2 connection management with auto-reconnect,
health monitoring, and error recovery.</p>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">manager</span> <span class="o">=</span> <span class="n">ConnectionManager</span><span class="p">()</span>
<span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">connect</span><span class="p">()</span>
<span class="gp">>>> </span><span class="k">if</span> <span class="n">manager</span><span class="o">.</span><span class="n">is_connected</span><span class="p">():</span>
<span class="gp">... </span> <span class="c1"># Use ROS2 node</span>
<span class="gp">... </span> <span class="k">pass</span>
<span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.__del__">
<span class="sig-name descname"><span class="pre">__del__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__del__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.__del__" title="Link to this definition"></a></dt>
<dd><p>Destructor - ensure cleanup.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.__enter__">
<span class="sig-name descname"><span class="pre">__enter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__enter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.__enter__" title="Link to this definition"></a></dt>
<dd><p>Context manager entry.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.__exit__">
<span class="sig-name descname"><span class="pre">__exit__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_val</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_tb</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__exit__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.__exit__" title="Link to this definition"></a></dt>
<dd><p>Context manager exit.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">node_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'gazebo_mcp_bridge'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auto_reconnect</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_reconnect_attempts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reconnect_base_delay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">health_check_interval</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.__init__" title="Link to this definition"></a></dt>
<dd><p>Initialize connection manager.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>node_name</strong> – Name for the ROS2 node</p></li>
<li><p><strong>auto_reconnect</strong> – Enable automatic reconnection</p></li>
<li><p><strong>max_reconnect_attempts</strong> – Maximum reconnection attempts (0 = infinite)</p></li>
<li><p><strong>reconnect_base_delay</strong> – Base delay for exponential backoff (seconds)</p></li>
<li><p><strong>health_check_interval</strong> – Interval for health checks (seconds)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.connect">
<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.connect" title="Link to this definition"></a></dt>
<dd><p>Establish ROS2 connection.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Connection timeout in seconds</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if connection successful</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NodeError" title="gazebo_mcp.utils.exceptions.ROS2NodeError"><strong>ROS2NodeError</strong></a> – If connection fails</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">manager</span> <span class="o">=</span> <span class="n">ConnectionManager</span><span class="p">()</span>
<span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mf">5.0</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.disconnect" title="Link to this definition"></a></dt>
<dd><p>Disconnect from ROS2.</p>
<p>Cleanly shuts down the ROS2 node, executor, and context.</p>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">manager</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.ensure_connected">
<span class="sig-name descname"><span class="pre">ensure_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.ensure_connected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.ensure_connected" title="Link to this definition"></a></dt>
<dd><p>Context manager to ensure ROS2 connection.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NotConnectedError" title="gazebo_mcp.utils.exceptions.ROS2NotConnectedError"><strong>ROS2NotConnectedError</strong></a> – If not connected and cannot connect</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">with</span> <span class="n">manager</span><span class="o">.</span><span class="n">ensure_connected</span><span class="p">():</span>
<span class="gp">... </span> <span class="c1"># Use ROS2 node here</span>
<span class="gp">... </span> <span class="k">pass</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.get_node">
<span class="sig-name descname"><span class="pre">get_node</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.get_node"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.get_node" title="Link to this definition"></a></dt>
<dd><p>Get the ROS2 node instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>ROS2 node instance</p>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2NotConnectedError" title="gazebo_mcp.utils.exceptions.ROS2NotConnectedError"><strong>ROS2NotConnectedError</strong></a> – If not connected</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span> <span class="o">=</span> <span class="n">manager</span><span class="o">.</span><span class="n">get_node</span><span class="p">()</span>
<span class="gp">>>> </span><span class="c1"># Use node for ROS2 operations</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.is_connected">
<span class="sig-name descname"><span class="pre">is_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.is_connected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.is_connected" title="Link to this definition"></a></dt>
<dd><p>Check if ROS2 connection is active.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.is_disconnected">
<span class="sig-name descname"><span class="pre">is_disconnected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.is_disconnected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.is_disconnected" title="Link to this definition"></a></dt>
<dd><p>Check if ROS2 connection is inactive.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.is_error">
<span class="sig-name descname"><span class="pre">is_error</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.is_error"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.is_error" title="Link to this definition"></a></dt>
<dd><p>Check if ROS2 connection is in error state.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.on_connected">
<span class="sig-name descname"><span class="pre">on_connected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.14)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.on_connected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.on_connected" title="Link to this definition"></a></dt>
<dd><p>Register callback for connection established event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.on_disconnected">
<span class="sig-name descname"><span class="pre">on_disconnected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.14)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.on_disconnected"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.on_disconnected" title="Link to this definition"></a></dt>
<dd><p>Register callback for disconnection event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.on_error">
<span class="sig-name descname"><span class="pre">on_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.14)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.on_error"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.on_error" title="Link to this definition"></a></dt>
<dd><p>Register callback for error state event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionManager.reconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.reconnect" title="Link to this definition"></a></dt>
<dd><p>Reconnect to ROS2.</p>
<p>Uses exponential backoff for reconnection attempts.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True if reconnection successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">if</span> <span class="ow">not</span> <span class="n">manager</span><span class="o">.</span><span class="n">is_connected</span><span class="p">():</span>
<span class="gp">... </span> <span class="n">manager</span><span class="o">.</span><span class="n">reconnect</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionManager.state">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">state</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#gazebo_mcp.bridge.connection_manager.ConnectionState" title="gazebo_mcp.bridge.connection_manager.ConnectionState"><span class="pre">ConnectionState</span></a></em><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionManager.state" title="Link to this definition"></a></dt>
<dd><p>Get current connection state (thread-safe).</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionState">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.</span></span><span class="sig-name descname"><span class="pre">ConnectionState</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/connection_manager.html#ConnectionState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionState" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
<p>ROS2 connection states.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionState.DISCONNECTED">
<span class="sig-name descname"><span class="pre">DISCONNECTED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'disconnected'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionState.DISCONNECTED" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionState.CONNECTING">
<span class="sig-name descname"><span class="pre">CONNECTING</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'connecting'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionState.CONNECTING" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionState.CONNECTED">
<span class="sig-name descname"><span class="pre">CONNECTED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'connected'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionState.CONNECTED" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionState.ERROR">
<span class="sig-name descname"><span class="pre">ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'error'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionState.ERROR" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ConnectionState.RECONNECTING">
<span class="sig-name descname"><span class="pre">RECONNECTING</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'reconnecting'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ConnectionState.RECONNECTING" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.</span></span><span class="sig-name descname"><span class="pre">GazeboBridgeNode</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ros2_node</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>ROS2 node for Gazebo simulation interface.</p>
<p>Provides high-level interface to Gazebo services and topics.</p>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span> <span class="o">=</span> <span class="n">GazeboBridgeNode</span><span class="p">(</span><span class="n">ros2_node</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">models</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_model_list</span><span class="p">()</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">spawn_entity</span><span class="p">(</span><span class="s2">"turtlebot3"</span><span class="p">,</span> <span class="n">sdf_content</span><span class="p">,</span> <span class="n">pose</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">delete_entity</span><span class="p">(</span><span class="s2">"turtlebot3"</span><span class="p">)</span>
</pre></div>
</div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ros2_node</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.__init__" title="Link to this definition"></a></dt>
<dd><p>Initialize Gazebo bridge node.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>ros2_node</strong> – ROS2 node instance from ConnectionManager</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.delete_entity">
<span class="sig-name descname"><span class="pre">delete_entity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.delete_entity"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.delete_entity" title="Link to this definition"></a></dt>
<dd><p>Delete an entity from Gazebo.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Entity name</p></li>
<li><p><strong>timeout</strong> – Service call timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if deletion successful</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelDeleteError" title="gazebo_mcp.utils.exceptions.ModelDeleteError"><strong>ModelDeleteError</strong></a> – If deletion fails</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If service call times out</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">delete_entity</span><span class="p">(</span><span class="s2">"my_robot"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.destroy">
<span class="sig-name descname"><span class="pre">destroy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.destroy"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.destroy" title="Link to this definition"></a></dt>
<dd><p>Clean up resources.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.get_model_list">
<span class="sig-name descname"><span class="pre">get_model_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState" title="gazebo_mcp.bridge.gazebo_bridge_node.ModelState"><span class="pre">ModelState</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.get_model_list"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.get_model_list" title="Link to this definition"></a></dt>
<dd><p>Get list of models in Gazebo.</p>
<p>Subscribes to /gazebo/model_states topic to get current models.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Timeout for receiving model states</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>List of ModelState objects</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If timeout exceeded</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">models</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_model_list</span><span class="p">()</span>
<span class="gp">>>> </span><span class="k">for</span> <span class="n">model</span> <span class="ow">in</span> <span class="n">models</span><span class="p">:</span>
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">model</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">model</span><span class="o">.</span><span class="n">pose</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.get_model_state">
<span class="sig-name descname"><span class="pre">get_model_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#gazebo_mcp.bridge.gazebo_bridge_node.ModelState" title="gazebo_mcp.bridge.gazebo_bridge_node.ModelState"><span class="pre">ModelState</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.get_model_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.get_model_state" title="Link to this definition"></a></dt>
<dd><p>Get state of a specific model.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Model name</p></li>
<li><p><strong>timeout</strong> – Timeout for receiving data</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>ModelState object or None if not found</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">state</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_model_state</span><span class="p">(</span><span class="s2">"turtlebot3"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">state</span><span class="o">.</span><span class="n">pose</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.get_transform">
<span class="sig-name descname"><span class="pre">get_transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">source_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.get_transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.get_transform" title="Link to this definition"></a></dt>
<dd><p>Get transform between two frames.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>target_frame</strong> – Target frame name</p></li>
<li><p><strong>source_frame</strong> – Source frame name</p></li>
<li><p><strong>timeout</strong> – Lookup timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Transform dictionary or None if not available</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">tf</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">get_transform</span><span class="p">(</span><span class="s2">"map"</span><span class="p">,</span> <span class="s2">"base_link"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">tf</span><span class="p">[</span><span class="s2">"translation"</span><span class="p">])</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.pause_physics">
<span class="sig-name descname"><span class="pre">pause_physics</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.pause_physics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.pause_physics" title="Link to this definition"></a></dt>
<dd><p>Pause Gazebo physics simulation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">pause_physics</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.reset_simulation">
<span class="sig-name descname"><span class="pre">reset_simulation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.reset_simulation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.reset_simulation" title="Link to this definition"></a></dt>
<dd><p>Reset Gazebo simulation to initial state.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">reset_simulation</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.reset_world">
<span class="sig-name descname"><span class="pre">reset_world</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.reset_world"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.reset_world" title="Link to this definition"></a></dt>
<dd><p>Reset world to initial state (models + physics).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">reset_world</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.set_entity_state">
<span class="sig-name descname"><span class="pre">set_entity_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">twist</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'world'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.set_entity_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.set_entity_state" title="Link to this definition"></a></dt>
<dd><p>Set entity state (pose and/or twist) in Gazebo.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Entity name</p></li>
<li><p><strong>pose</strong> – Target pose {position: {x,y,z}, orientation: {x,y,z,w}} or {roll,pitch,yaw}</p></li>
<li><p><strong>twist</strong> – Target velocity {linear: {x,y,z}, angular: {x,y,z}}</p></li>
<li><p><strong>reference_frame</strong> – Reference frame for pose (default: “world”)</p></li>
<li><p><strong>timeout</strong> – Service call timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if state set successfully</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelNotFoundError" title="gazebo_mcp.utils.exceptions.ModelNotFoundError"><strong>ModelNotFoundError</strong></a> – If model doesn’t exist</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If service call times out</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ROS2ServiceError" title="gazebo_mcp.utils.exceptions.ROS2ServiceError"><strong>ROS2ServiceError</strong></a> – If service call fails</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="c1"># Set position only</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">set_entity_state</span><span class="p">(</span><span class="s2">"robot"</span><span class="p">,</span> <span class="n">pose</span><span class="o">=</span><span class="p">{</span><span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">}})</span>
<span class="gp">>>></span>
<span class="gp">>>> </span><span class="c1"># Set position and velocity</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">set_entity_state</span><span class="p">(</span>
<span class="gp">... </span> <span class="s2">"robot"</span><span class="p">,</span>
<span class="gp">... </span> <span class="n">pose</span><span class="o">=</span><span class="p">{</span><span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">}},</span>
<span class="gp">... </span> <span class="n">twist</span><span class="o">=</span><span class="p">{</span><span class="s2">"linear"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mi">0</span><span class="p">}}</span>
<span class="gp">... </span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.spawn_entity">
<span class="sig-name descname"><span class="pre">spawn_entity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">xml_content</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_frame</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'world'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.spawn_entity"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.spawn_entity" title="Link to this definition"></a></dt>
<dd><p>Spawn an entity in Gazebo.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> – Entity name (must be unique)</p></li>
<li><p><strong>xml_content</strong> – SDF or URDF XML content</p></li>
<li><p><strong>pose</strong> – Spawn pose (position and orientation)</p></li>
<li><p><strong>reference_frame</strong> – Reference frame for pose</p></li>
<li><p><strong>timeout</strong> – Service call timeout</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if spawn successful</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.ModelSpawnError" title="gazebo_mcp.utils.exceptions.ModelSpawnError"><strong>ModelSpawnError</strong></a> – If spawn fails</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboTimeoutError" title="gazebo_mcp.utils.exceptions.GazeboTimeoutError"><strong>GazeboTimeoutError</strong></a> – If service call times out</p></li>
<li><p><a class="reference internal" href="gazebo_mcp.utils.html#gazebo_mcp.utils.exceptions.GazeboNotRunningError" title="gazebo_mcp.utils.exceptions.GazeboNotRunningError"><strong>GazeboNotRunningError</strong></a> – If Gazebo is not running</p></li>
</ul>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">pose</span> <span class="o">=</span> <span class="p">{</span>
<span class="gp">... </span> <span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mf">2.0</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">},</span>
<span class="gp">... </span> <span class="s2">"orientation"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">}</span>
<span class="gp">... </span><span class="p">}</span>
<span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">spawn_entity</span><span class="p">(</span><span class="s2">"my_robot"</span><span class="p">,</span> <span class="n">urdf_content</span><span class="p">,</span> <span class="n">pose</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.subscribe_to_topic">
<span class="sig-name descname"><span class="pre">subscribe_to_topic</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">topic_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">msg_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">qos_profile</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.subscribe_to_topic"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.subscribe_to_topic" title="Link to this definition"></a></dt>
<dd><p>Subscribe to a ROS2 topic.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>topic_name</strong> – Topic name</p></li>
<li><p><strong>msg_type</strong> – Message type class</p></li>
<li><p><strong>callback</strong> – Callback function</p></li>
<li><p><strong>qos_profile</strong> – QoS profile</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Subscription object</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">sensor_msgs.msg</span><span class="w"> </span><span class="kn">import</span> <span class="n">LaserScan</span>
<span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">laser_callback</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Laser ranges: </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">msg</span><span class="o">.</span><span class="n">ranges</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">sub</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">subscribe_to_topic</span><span class="p">(</span><span class="s2">"/scan"</span><span class="p">,</span> <span class="n">LaserScan</span><span class="p">,</span> <span class="n">laser_callback</span><span class="p">)</span>
</pre></div>
</div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.GazeboBridgeNode.unpause_physics">
<span class="sig-name descname"><span class="pre">unpause_physics</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.14)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><span class="pre">bool</span></a></span></span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#GazeboBridgeNode.unpause_physics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.GazeboBridgeNode.unpause_physics" title="Link to this definition"></a></dt>
<dd><p>Unpause Gazebo physics simulation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> – Service call timeout</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if successful</p>
</dd>
</dl>
<div class="admonition-example admonition">
<p class="admonition-title">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">node</span><span class="o">.</span><span class="n">unpause_physics</span><span class="p">()</span>
</pre></div>
</div>
</div>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ModelState">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">gazebo_mcp.bridge.</span></span><span class="sig-name descname"><span class="pre">ModelState</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">twist</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'active'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gazebo_mcp/bridge/gazebo_bridge_node.html#ModelState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gazebo_mcp.bridge.ModelState" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>Model state information.</p>
<dl class="py method">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ModelState.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">pose</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">twist</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'active'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#gazebo_mcp.bridge.ModelState.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ModelState.state">
<span class="sig-name descname"><span class="pre">state</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'active'</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ModelState.state" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ModelState.twist">
<span class="sig-name descname"><span class="pre">twist</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.14)"><span class="pre">None</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#gazebo_mcp.bridge.ModelState.twist" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ModelState.name">
<span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#gazebo_mcp.bridge.ModelState.name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="gazebo_mcp.bridge.ModelState.pose">
<span class="sig-name descname"><span class="pre">pose</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.14)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.14)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#gazebo_mcp.bridge.ModelState.pose" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="gazebo_mcp.html" class="btn btn-neutral float-left" title="gazebo_mcp package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="gazebo_mcp.tools.html" class="btn btn-neutral float-right" title="gazebo_mcp.tools package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>© Copyright 2025, Development Team.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>