<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.opencontinuumrobotics.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.opencontinuumrobotics.com/" rel="alternate" type="text/html" /><updated>2026-08-07T15:55:35-04:00</updated><id>https://www.opencontinuumrobotics.com/feed.xml</id><title type="html">Open Continuum Robotics Project</title><subtitle>Open Continuum Robotics Project by the Continuum Robotics Laboratory, University of Toronto
Empowering everyone to build their own continuum robot and start their research.</subtitle><entry><title type="html">Introducing OpenCR-MuJoCo</title><link href="https://www.opencontinuumrobotics.com/research/2026/06/26/openCRMuJoCo.html" rel="alternate" type="text/html" title="Introducing OpenCR-MuJoCo" /><published>2026-06-26T00:00:00-04:00</published><updated>2026-06-26T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/research/2026/06/26/openCRMuJoCo</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2026/06/26/openCRMuJoCo.html"><![CDATA[<figure class=""><a href="/assets/images/posts/research/mujoco/teaser.png" class="image-popup"><img src="/assets/images/posts/research/mujoco/teaser.png" alt="" /></a></figure>

<p>We are excited to introduce <strong>OpenCR-MuJoCo</strong>, an open-source project that brings tendon-driven continuum robots (TDCRs) into native MuJoCo through a mechanics-informed representation.</p>

<p>The motivation is simple. Continuum robots are compelling because they bend, conform, and make compliant contact along their whole body. That distributed compliance is one of the reasons they are promising for constrained manipulation, medical robotics, inspection, and delicate physical interaction.</p>

<p>It is also one of the reasons they are hard to simulate. For many existing learning and manipulation workflows, mature simulation infrastructure has become part of the research loop: fast rollouts, contact-rich scenes, robot arms, objects, actuators, teleoperation, and standard interfaces to learning code. In continuum robotics, we have a strong modeling foundation, but it is often harder to plug that foundation directly into the everyday simulation workflows used for contact-rich robot learning.</p>

<p>OpenCR-MuJoCo is our attempt to make that easier.</p>

<h2 id="building-on-the-existing-foundation">Building on the Existing Foundation</h2>

<p>Continuum robotics has benefited enormously from physically grounded simulation methods. Cosserat rod models, finite-element methods, discrete elastic rod formulations, and tools such as SoRoSim, SOFA, Elastica, DisMech, and related simulators have shaped how the field understands continuum robot mechanics. These methods remain important, and our work is very much built on the foundation they provide. Here, we ask a more infrastructure-oriented question:</p>

<p><strong>Can we put a TDCR directly inside MuJoCo in a way that is simple, fast, interpretable, and accurate enough to support real robot workflows?</strong></p>

<p>The answer we explore in OpenCR-MuJoCo is deliberately simple in nature. We discretize the continuum backbone into a serial chain of rigid links connected by elastic joints. The key is that the joint stiffnesses are derived from the robot’s material and geometric properties, rather than treated only as arbitrary fit parameters. Tendons are routed through sites along the backbone and actuated using MuJoCo’s native tendon model.</p>

<p>This lets the TDCR live as a native MuJoCo model: it can contact objects, share a scene with a robot arm, use standard MuJoCo actuators and tendons, and connect naturally to teleoperation and learning code. At the same time, the model keeps an interpretable relationship to the underlying continuum mechanics.</p>

<figure class=""><a href="/assets/images/posts/research/mujoco/method.png" class="image-popup" title="Mechanics-informed TDCR discretization and native MuJoCo integration.
"><img src="/assets/images/posts/research/mujoco/method.png" alt="" /></a><figcaption>
      Mechanics-informed TDCR discretization and native MuJoCo integration.

    </figcaption></figure>

<h2 id="what-we-contribute">What We Contribute</h2>

<p>The main contribution is a practical way to represent and use TDCRs inside native MuJoCo, built around this mechanics-informed discretization.</p>

<p>On the modeling side, the TDCR backbone is represented by rigid links and elastic joints whose stiffness comes from beam theory. As the discretization is refined, the approximation converges toward the continuum rod model, while each parameter still has a physical interpretation. In practice, this gives a useful balance: the model is simple enough to run quickly inside MuJoCo, but structured enough that changing material, geometry, tendon routing, or discretization resolution remains meaningful.</p>

<p>On the systems side, the model is encoded in standard MJCF and uses MuJoCo’s existing physics pipeline. That means native tendon actuation, contact handling, rigid-object interaction, and robot-arm integration happen in one MuJoCo scene. For contact-rich manipulation, this is especially useful: the contact locations and forces do not need to be specified ahead of time, but can emerge from the interaction between the compliant robot body, the objects, and the environment.</p>

<p>This is the part we are most excited about for the community. If continuum robots can be easier to instantiate, control, validate, and benchmark in a common simulation environment, then more researchers can compare methods on shared tasks instead of rebuilding similar infrastructure from scratch.</p>

<h2 id="validation-from-mechanics-to-hardware-to-policies">Validation: From Mechanics to Hardware to Policies</h2>

<p>A modeling workflow only becomes useful when researchers can trust it for the questions they want to ask. For OpenCR-MuJoCo, we evaluated that trust at three levels.</p>

<p>First, we compare against <strong>SoRoSim</strong>, a well-established Cosserat rod simulator. This is an important reference point because it tests whether the MuJoCo discretization behaves like a continuum-mechanics model, not merely whether it looks plausible. We evaluate static equilibrium shapes and dynamic tip-release trajectories across two materials spanning a large stiffness range, randomized loading conditions, and multiple discretization resolutions. In the practical operating regime used in our experiments, the static and dynamic errors are below 1% of robot length while maintaining real-time simulation.</p>

<table>
  <tr>
    <td width="50%">
      <img src="/assets/images/posts/research/mujoco/sorosim_statics_shapes.png" alt="Static TDCR shapes from MuJoCo compared with SoRoSim references." />
    </td>
    <td width="50%">
      <img src="/assets/images/posts/research/mujoco/sorosim_statics_error.png" alt="Static tip error versus discretization resolution." />
    </td>
  </tr>
</table>

<figure class=""><a href="/assets/images/posts/research/mujoco/sorosim_dynamics_overview.png" class="image-popup" title="Dynamic tip-release trajectories from MuJoCo compared with SoRoSim references.
"><img src="/assets/images/posts/research/mujoco/sorosim_dynamics_overview.png" alt="" /></a><figcaption>
      Dynamic tip-release trajectories from MuJoCo compared with SoRoSim references.

    </figcaption></figure>

<p>Second, we compare against <strong>real hardware</strong>. We calibrate the MuJoCo model to a physical three-segment, nine-tendon TDCR. After system identification, the model reaches a mean tip tracking error of about 7.7 mm, or 4.1% of the 186.5 mm robot length, on held-out hardware data. This test is important because real TDCRs include effects that are difficult to model perfectly, such as friction, hysteresis, assembly tolerances, and tendon pretension.</p>

<p>Third, we test whether the native MuJoCo representation is useful for <strong>policy learning and sim-to-real transfer</strong>. We collect teleoperated demonstrations in simulation, train state-based imitation-learning policies, and deploy them zero-shot on the physical robot. The tasks are intentionally contact-rich: one policy wraps the continuum body around a cylinder to lift and drop it into a bin, while another flips a small wall-mounted switch from behind. In the reported experiments, real-world success rates match or slightly exceed simulation: 76% for the grasping task and 78% for the switch task.</p>

<video src="/assets/images/posts/research/mujoco/opencr_mujoco_video.mp4" controls="" muted="" playsinline="" poster="/assets/images/posts/research/mujoco/opencr_mujoco_video_poster.jpg" style="display:block; width:100%; height:auto;"></video>

<p>We see this policy transfer as the ultimate practical test of the approach. Matching a reference model is necessary, and matching hardware trajectories is encouraging, but contact-rich manipulation asks whether the MuJoCo integration supports a full research workflow: model generation, calibration, teleoperation, data collection, policy training, and real robot deployment.</p>

<h2 id="what-is-included">What Is Included</h2>

<p>OpenCR-MuJoCo is meant to be research infrastructure, not just a static release for one paper. The repository includes:</p>

<ul>
  <li>A config-driven TDCR generator for material-based stiffness, pretension, collision settings, and modular heterogeneous robots.</li>
  <li>Native MuJoCo scenes for TDCR-only setups and TDCRs mounted on a Franka Panda arm.</li>
  <li>Teleoperation and controller tools for joint- and task-space TDCR control.</li>
  <li>Evaluation scripts and bundled reference data for reproducing the validation.</li>
</ul>

<p>For a new user, the intended workflow is lightweight: choose a JSON configuration, generate a MuJoCo scene, and run it with our teleop controller or a custom control loop.</p>

<table>
  <tr>
    <td width="33%">
      <img src="/assets/images/posts/research/mujoco/tdcr_tip_trace.gif" alt="Closed-loop TDCR tip tracing." />
    </td>
    <td width="33%">
      <img src="/assets/images/posts/research/mujoco/franka_tdcr_trace.gif" alt="Station keeping while the Franka arm moves." />
    </td>
    <td width="33%">
      <img src="/assets/images/posts/research/mujoco/kick_goal.gif" alt="Elastic kick interaction demo." />
    </td>
  </tr>
</table>

<h2 id="our-vision-for-future-work">Our Vision for Future Work</h2>

<p>We are releasing OpenCR-MuJoCo because we want continuum robotics to have simulation infrastructure that is easier to use, easier to reproduce, and easier to benchmark with.</p>

<p>Many groups build different TDCRs with different tendon routings, different materials, and for different tasks. That diversity is valuable. At the same time, it can make methods difficult to compare. We hope OpenCR-MuJoCo can provide one useful common ground.</p>

<p>There is still a lot to do. OpenCR-MuJoCo currently focuses on slender tendon-driven continuum robots where the Kirchhoff rod assumptions are appropriate. Other soft robot morphologies, richer sensing, shape feedback, vision-based policies, broader benchmarks, and deeper comparisons between learning methods are all open directions.</p>

<p>If you work on continuum robot modeling, control, learning, hardware design, or benchmarking, we would love for you to try it and tell us what would make it more useful. Bug reports, feature requests, benchmark ideas, new robot configurations, and pull requests are all welcome.</p>

<p>Try the demo, clone the repository, reproduce the validation, or build a model of your own TDCR! We are looking forward to seeing what the community does with it.</p>

<p><a href="https://continuumroboticslab.github.io/opencr-mujoco/" class="btn btn--success">Project Page</a>
<a href="https://github.com/ContinuumRoboticsLab/opencr-mujoco" class="btn btn--danger">GitHub</a> 
<a href="https://arxiv.org/abs/2606.22397" class="btn btn--info">Paper</a></p>]]></content><author><name>Chengnan (Jimmy) Shentu</name></author><category term="research" /><summary type="html"><![CDATA[An open-source MuJoCo workflow for tendon-driven continuum robots, contact-rich manipulation, and reproducible benchmarking.]]></summary></entry><entry><title type="html">Open Source FTL Motion Planner</title><link href="https://www.opencontinuumrobotics.com/research/2026/05/28/sb-ftl-cr-planner.html" rel="alternate" type="text/html" title="Open Source FTL Motion Planner" /><published>2026-05-28T00:00:00-04:00</published><updated>2026-05-28T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/research/2026/05/28/sb-ftl-cr-planner</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2026/05/28/sb-ftl-cr-planner.html"><![CDATA[<p>Follow-the-leader (FTL) motion exploits the unique morphology of continuum robots to navigate confined spaces by having the body retrace the path of the tip. We have developed a new approach to achieve FTL motion with a sampling-based motion planner that jointly considers robot configuration and base pose. The key idea is to decouple global shape search from base pose determination by computing the base pose through a closed-form geometric construction, thereby avoiding iterative optimization during online planning. The approach supports general forward models and enables efficient planning by shifting the majority of computation offline. As part of our OpenCR project, We have open sourced the code and planner used in the paper. Additional implementation details can be found in the <a href="https://arxiv.org/abs/2605.11618">paper</a>. We also set up an interactive demo on our project website where you can run the planner in the browser <a href="https://continuumroboticslab.github.io/sb-ftl-cr-planner/">here</a>.</p>

<figure class=""><img src="/assets/images/posts/research/FTLteaser.png" alt="" /></figure>

<p>In this post, we present a tutorial on how to use our open source <a href="https://github.com/ContinuumRoboticsLab/sb-ftl-cr-planner">sb-ftl-cr-planner</a> codebase. With our implementation, you can define a 3D curve and execute our motion planner to perform FTL motion along the curve. The planner is implemented in Python and uses Matplotlib for visualization.</p>

<h2 id="problem-defintion">Problem Defintion</h2>
<p>FTL motion is roughly characterized by having the CR body follows the path traced by its tip during insertion <sup id="fnref:FTLDefinition"><a href="#fn:FTLDefinition" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. The desired path is given as an order set of 3D waypoints \(\mathcal{W}=\{\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_n\}\). To formalize the requirments of FTL motion, we define two properties that should hold throughout the trajectory.</p>
<ol>
  <li>\(\textbf{Tip tracking}:\) The tip should be placed at waypoint \(\mathbf{w}_i\) when passing through it, and follow a smooth interpolation (e.g, linear) between consecutive waypoints.</li>
  <li>\(\textbf{Shape following:}\) The inserted portion of the robot should minimize deviation from the corresponding segment of the path.</li>
</ol>

<p>We consider a CR mounted to a 6-DOF base, representing practical systems where CRs are attached to serial manipulators. The CR configuration space is denoted by \(\mathcal{Q} \in \mathbb{R}^d\) and the combined system configuration space is \(\mathcal{K}=SE(3)\times\mathcal{Q}\). The goal of a FTL motion planner is to generate a sequence of \(N\) configurations \(\{(\mathbf{T}_{b,1}, \mathbf{q}_1),...,(\mathbf{T}_{b,N}, \mathbf{q}_N)\}\) that guides the robot through the path \(\mathcal{W}\) while obeying the two listed properties above.</p>

<figure class=""><img src="/assets/images/posts/research/FTLexample.gif" alt="" /></figure>

<hr />

<h2 id="code-organization">Code Organization</h2>
<p>The planner can be ran in headless mode or with a visualizer using Matplotlib. Installation instructions can be found in the README <a href="https://github.com/ContinuumRoboticsLab/sb-ftl-cr-planner/blob/main/README.md">here</a>. Three core classes are utilized in this repository.</p>

<h3 id="robot-class">Robot Class</h3>
<p>The robot class <code class="language-plaintext highlighter-rouge">ContinuumRobotModel(num_segments, segment_lengths, tendon_offset, *args, **kwargs)</code> contains necessary helper functions used throughout the planner. Notable is the <code class="language-plaintext highlighter-rouge">forward_kinematics(clark_coordinates: np.ndarray)</code> which returns an array of points along the robot backbone. Forward kinematics is left as an abstract unimplemented method in the parent class. Our planner is model agnostic meaning any forward model (e.g, Constant Curvature, Cosserat Rod, Simulation) can be used. We provide a <code class="language-plaintext highlighter-rouge">ConstantCurvature(*args, **kwargs)</code> child class that implements the forward kinematics based on the the constant curvature model. To add in your own model, all you have to do is inherit the parent <code class="language-plaintext highlighter-rouge">ContinuumRobotModel</code> class and implement your own forward kinematics function.</p>

<h3 id="motion-planner-class">Motion Planner Class</h3>
<p>The FTL motion planner is implemented as inherited classes of the parent class <code class="language-plaintext highlighter-rouge">GeneralMotionPlanner(*args, **kwargs)</code>. Similar to the robot class, it contains helper functions with the <code class="language-plaintext highlighter-rouge">follow_path()</code> function to be implemented in child classes. We provide 3 planners</p>
<ol>
  <li><code class="language-plaintext highlighter-rouge">No Cluster/Linear Sampling</code></li>
  <li><code class="language-plaintext highlighter-rouge">Threshold Cluster</code></li>
  <li><code class="language-plaintext highlighter-rouge">Direct Optimization</code></li>
</ol>

<p>which all inherit the parent <code class="language-plaintext highlighter-rouge">GeneralMotionPlanner</code> class. Each have their own implementation of <code class="language-plaintext highlighter-rouge">follow_path()</code> and discussed further in the <a href="https://arxiv.org/abs/2605.11618">paper</a>.</p>

<h3 id="desired-curve-class">Desired Curve Class</h3>
<p>To define the desired path for the CR to follow, the <code class="language-plaintext highlighter-rouge">TaskGenerator(*args, **kwargs)</code> class is used. Once initialized, this class has many methods to generate 3D curves. Some of the provided curves are,</p>
<ol>
  <li>Quadratic bezier curve: <code class="language-plaintext highlighter-rouge">generate_curved_path()</code></li>
  <li>Cubic bezier curve: <code class="language-plaintext highlighter-rouge">generate_cubic_bezier_path()</code></li>
  <li>Circular arc: <code class="language-plaintext highlighter-rouge">generate_c_shape_path()</code></li>
  <li>Straight zig-zag: <code class="language-plaintext highlighter-rouge">generate_z_shape_path()</code></li>
  <li>Spiral curve: <code class="language-plaintext highlighter-rouge">generate_spiral_path()</code></li>
</ol>

<p>This list is not exhaustive, but if nothing fits your use case, feel free to define your own custom path. As long as the curve is a numpy array of 3D points, our planner can follow it!</p>

<h2 id="code-walkthrough">Code Walkthrough</h2>
<p>We will now walkthrough the provided starter script <code class="language-plaintext highlighter-rouge">run_example.py</code>. You can do a quick run with</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python run_example.py
</code></pre></div></div>

<p>or use any of the provided command line arguments (<code class="language-plaintext highlighter-rouge">python run_example.py --help</code>). A few useful variations are,</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Linear-search baseline on an S-shape, 20k library, no animation</span>
python run_example.py <span class="nt">--planner</span> <span class="s2">"No Cluster/Linear Sampling"</span> <span class="nt">--curve</span> s <span class="se">\</span>
    <span class="nt">--num-samples</span> 20000 <span class="nt">--no-animate</span>

<span class="c"># Use an externally produced shape library (skips library generation)</span>
python run_example.py <span class="nt">--shape-lib-path</span> /path/to/library.json

<span class="c"># Save the dense motion plan (Clarke coords + base SE(3) + shape per step) to JSON</span>
python run_example.py <span class="nt">--save-history</span> my_plan.json
</code></pre></div></div>

<p>First, the robot model is initialized with the desired system parameters.</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">robot</span> <span class="o">=</span> <span class="nc">ConstantCurvature</span><span class="p">(</span>
    <span class="n">num_segments</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span>
    <span class="n">segment_lengths</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
    <span class="n">tendon_offset</span><span class="o">=</span><span class="p">[</span><span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">],</span>
    <span class="n">points_resolution</span><span class="o">=</span><span class="mf">0.05</span><span class="p">,</span>
<span class="p">)</span>
</code></pre></div></div>

<p>After the robot is created, we define the desired path using the provided helper function and command line arguments,</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">generator</span> <span class="o">=</span> <span class="nc">TaskGenerator</span><span class="p">(</span><span class="n">robot</span><span class="p">)</span>
<span class="n">waypoints</span> <span class="o">=</span> <span class="nf">_build_curve</span><span class="p">(</span><span class="n">generator</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">curve</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">num_waypoints</span><span class="p">,</span> <span class="n">p1</span><span class="o">=</span><span class="n">args</span><span class="p">.</span><span class="n">p1</span><span class="p">,</span> <span class="n">p2</span><span class="o">=</span><span class="n">args</span><span class="p">.</span><span class="n">p2</span><span class="p">)</span>
</code></pre></div></div>

<p>by default, a quadratic bezier curve is created,</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">generator</span><span class="p">.</span><span class="nf">generate_curved_path</span><span class="p">(</span>
    <span class="n">np</span><span class="p">.</span><span class="nf">array</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]),</span>
    <span class="n">np</span><span class="p">.</span><span class="nf">array</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">1.3</span><span class="p">]),</span>
    <span class="n">np</span><span class="p">.</span><span class="nf">array</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">1.6</span><span class="p">]),</span>
    <span class="n">num_waypoints</span><span class="o">=</span><span class="n">num_waypoints</span><span class="p">,</span>
<span class="p">)</span>
</code></pre></div></div>

<p>Now it is time to create the shape library! The high dimensioal configuration space of \(\mathcal{K}\) and nonlinear CR dynamics make iterative optimiztion approaches computationally exspensive. Generating a shape library offline then performing global shape search is the technique that makes our method <strong>Model agnostic, Efficient and Theoretically Guaranteed</strong>. These benefits are discussed more in the <a href="https://arxiv.org/abs/2605.11618">paper</a>.</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">general_follower</span> <span class="o">=</span> <span class="nc">GeneralPathFollower</span><span class="p">(</span><span class="n">robot</span><span class="p">)</span>
<span class="n">sampler</span> <span class="o">=</span> <span class="n">general_follower</span><span class="p">.</span><span class="nf">get_sampling_methods_by_name</span><span class="p">([</span><span class="n">args</span><span class="p">.</span><span class="n">planner</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
<span class="bp">...</span>
<span class="n">follower</span> <span class="o">=</span> <span class="nf">sampler</span><span class="p">(</span><span class="o">**</span><span class="n">sampler_kwargs</span><span class="p">)</span>
</code></pre></div></div>
<p>Initalizing the <code class="language-plaintext highlighter-rouge">sampler</code> class generates the shape library using the provided <code class="language-plaintext highlighter-rouge">robot</code> object and saves the library as an attribute.</p>

<p class="notice--success"><strong><em>Generating a Shape Library</em></strong>:
A core feature of our motion planner is that the shape library can be generated offline and reused. This enables the ability to generate very large or computationally exspensive libraries with complex models beyond just Constant Curvature once, and not have it effect the runtime of the planner. In <code class="language-plaintext highlighter-rouge">run_example.py</code> we generate a fresh library on each run as the cost for generation with the <code class="language-plaintext highlighter-rouge">ConstantCurvature</code> forward model is low and takes less than 30 seconds with 20,000 shapes.</p>

<p>Here is a visualization of 60 shapes from a shape library,</p>
<figure class=""><img src="/assets/images/posts/research/FTLShapeLib.png" alt="" /></figure>

<p>Finally, lets Follow-The-Leader!</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">history</span> <span class="o">=</span> <span class="n">follower</span><span class="p">.</span><span class="nf">follow_path</span><span class="p">(</span><span class="n">waypoints</span><span class="p">)</span>
<span class="n">interp_history</span><span class="p">,</span> <span class="n">interp_waypoints</span> <span class="o">=</span> <span class="n">general_follower</span><span class="p">.</span><span class="nf">interpolate_mp</span><span class="p">(</span>
    <span class="n">history</span><span class="p">,</span> <span class="n">steps_per_waypoint</span><span class="o">=</span><span class="n">args</span><span class="p">.</span><span class="n">interpolation_steps</span><span class="p">,</span> <span class="n">enable_optimization</span><span class="o">=</span><span class="bp">True</span>
<span class="p">)</span>
</code></pre></div></div>
<p><code class="language-plaintext highlighter-rouge">follow_path()</code> generates the sparse motion plan, one configuration \((\textbf{T}_{b, i}, \textbf{q}_{i})\) for each waypoint \(\mathbf{w}_i\) while <code class="language-plaintext highlighter-rouge">interpolate_mp()</code> fills in the gaps between each waypoint by intelligently interpolating between each configuration from <code class="language-plaintext highlighter-rouge">follow_path()</code>.</p>

<p>Once the motion plan is created, we include support to record deviation statistics and save the motion plan to disk.</p>

<p>Matplotlib is used to visualize the motion plan,</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">visualizer</span> <span class="o">=</span> <span class="nc">PathVisualizer</span><span class="p">(</span><span class="n">robot</span><span class="p">)</span>
<span class="n">visualizer</span><span class="p">.</span><span class="nf">plot_history</span><span class="p">(</span><span class="n">history</span><span class="p">,</span> <span class="n">waypoints</span><span class="p">,</span> <span class="n">show_animation</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">visualizer</span><span class="p">.</span><span class="nf">plot_history</span><span class="p">(</span><span class="n">interp_history</span><span class="p">,</span> <span class="n">waypoints</span><span class="p">,</span> <span class="n">show_animation</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">animation_interval</span><span class="o">=</span><span class="mf">0.01</span><span class="p">)</span>
</code></pre></div></div>
<p>both the sparse motion plan and interpolated motion plan are animated. The animation for the sparse plan (left) and interpolated plan (right) are shown below.</p>

<figure class=""><img src="/assets/images/posts/research/FTL_SideBySide.gif" alt="" /></figure>

<p>Happy tendon-driven continuum robotic simulating!</p>

<p><a href="https://arxiv.org/abs/2605.11618" class="btn btn--info">Paper</a> 
<a href="https://github.com/ContinuumRoboticsLab/sb-ftl-cr-planner" class="btn btn--danger">GitHub</a> 
<a href="https://continuumroboticslab.github.io/sb-ftl-cr-planner/" class="btn btn--success">Website</a></p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:FTLDefinition">
      <p>Maria Neumann and Jessica Burgner-Kahrs. Considerations for follow-the-leader motion of extensible tendon-driven continuum robots. IEEE International Conference on Robotics and Automation, pages 917–923, 2016. doi: <a href="https://doi.org/10.1109/ICRA.2016.7487223">10.1109/ICRA.2016.7487223</a> <a href="#fnref:FTLDefinition" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Nicholas Baldassini</name></author><category term="research" /><summary type="html"><![CDATA[In this tutorial we share how to use our open source TDCR follow-the-leader motion planner (Python, Matplotlib viewer). Our code is capable of defining 3D curves and solving for a sequence of configurations that performs follow-the-leader motion along the 3D curve.]]></summary></entry><entry><title type="html">Open Source TDCR Contact Model</title><link href="https://www.opencontinuumrobotics.com/research/2024/06/14/tdcr-contact-model.html" rel="alternate" type="text/html" title="Open Source TDCR Contact Model" /><published>2024-06-14T00:00:00-04:00</published><updated>2024-06-14T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/research/2024/06/14/tdcr-contact-model</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2024/06/14/tdcr-contact-model.html"><![CDATA[<p>In a previous <a href="https://www.opencontinuumrobotics.com/research/2024/04/05/tdcr-can.html">blogpost</a>, we explained a new approach for contact aided motion planning. As part of our OpenCR project, we have open sourced the model we use for simulation<sup id="fnref:Ashwin"><a href="#fn:Ashwin" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. Additional implementation details and examples can be found in our paper<sup id="fnref:Rao"><a href="#fn:Rao" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>.</p>

<p>In this blog we present a tutorial on how to use our open source <a href="https://github.com/ContinuumRoboticsLab/OpenTDCRContactModel">OpenTDCRContactModel</a>. With our code, you can build custom taskspaces with circular obstacles and apply our contact-aided search to tendon driven continuum robots to reach a target position in a 2D taskspace. The model is implemented in C++ and Matlab. We also provide an easy to use interface written in Python. For a quickstart, have a look to our <a href="https://colab.research.google.com/drive/12blCye60rOwlRdw1ya80a9P254LK0z9w?usp=sharing#scrollTo=YBk1qHRE2Iwe">Google collab demo notebook</a>.</p>

<figure class=""><img src="/assets/images/posts/research/contactmodel_still_figure.png" alt="" /></figure>

<h2 id="model-defintion">Model Defintion</h2>
<p>The model is posed as a nonlinear optimisation problem. The robot is said to be defined by ‘m’  piecewise constant curvature arcs. The objective of this problem is to find a set of m curvatures that minimize the robots potential energy. The nonlinear equality constraint makes sure that the input  tendon length is equal to the calculated tendon length. The nonlinear inequality constraint ensures that points on the robot lie outside all the obstacles.</p>

<h2 id="code-organization">Code Organization</h2>
<p>Installation instructions along with the source can be found <a href="https://github.com/ContinuumRoboticsLab/OpenTDCRContactModel#installation-instructions">here</a>. The two important classes to know for this implementation is the <code class="language-plaintext highlighter-rouge">Robot(radius, disk_num)</code> class and <code class="language-plaintext highlighter-rouge">Node(Robot, length, actuation)</code> class. <code class="language-plaintext highlighter-rouge">Node</code> is used to describe the robot at some point in joint space. <code class="language-plaintext highlighter-rouge">Node</code> also has a method <code class="language-plaintext highlighter-rouge">run_forward_model(taskspace, bool_reduced, model_type)</code> which calculates the forward kinematics of the robot given its current joint space configuration. Two options are avaliable for model_type, <code class="language-plaintext highlighter-rouge">model_type="KINEMATIC_MATLAB"</code> or <code class="language-plaintext highlighter-rouge">model_type="KINEMATIC_CPP"</code>. You can access the Node’s cartesian coordinates with <code class="language-plaintext highlighter-rouge">Node.ee</code> after calling <code class="language-plaintext highlighter-rouge">run_forward_model</code>.</p>

<p>The <code class="language-plaintext highlighter-rouge">Robot</code> class stores general configuration parameters of the robot like tendons, length and radius. Since the model uses a piece-wise constant curvature arc representation, the number of disks is used to discretize the backbone into that many subsegments. The robot object is then fed into each node object as a parameter.</p>

<p class="notice"><strong><em>Note:</em></strong> The robot lies in the xz plane and the model currently supports circular obstacles and 2d contact interactions.</p>

<h2 id="code-walkthrough">Code Walkthrough</h2>

<h3 id="taskspace">Taskspace</h3>
<p>Obstacles in the taskspace are defined by the <code class="language-plaintext highlighter-rouge">Circle(radius, (x, y, z))</code> class. More complex shapes can be formed by superimposing multiple circles.</p>

<p>Defining a taskspace is easy, just initialize a taskspace object then set each obstacle you want in your taskspace. Or alternatively, a default taskspace in <code class="language-plaintext highlighter-rouge">/workspaces</code> can be used.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>workspace = TaskspaceCircle()
radius = 0.01
obstacle_1 = Circle(radius, (0.02, 0.0, 0.03))
obstacle_2 = Circle(radius, (-0.04, 0.0, 0.03))
obstacle_3 = Circle(radius, (0.08, 0.0, 0.03))
workspace.set_obstacles(obstacle_1, 1, 1)
workspace.set_obstacles(obstacle_2, 1, 1)
workspace.set_obstacles(obstacle_3, 1, 1)
</code></pre></div></div>
<p>The parameters for <code class="language-plaintext highlighter-rouge">set_obstacles</code> are,</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># workspace.set_obstacles(Circle, n, z_delta)
#     Circle: new obstacle to add to the taskspace
#     n: add n copies offset by z_delta
#     z_delta: distance to offset the n copies
</code></pre></div></div>

<h3 id="robot">Robot</h3>
<p>Once the taskspace is created, a TDCR <code class="language-plaintext highlighter-rouge">Robot</code> object is also created by specifying the radius and number of discrete disks composing the robot. A <code class="language-plaintext highlighter-rouge">Node</code> object is also created representing the robot at some configuration in time. In the starting position, the Node will be set to have 0.001 length and 0.001 actuation.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      # mod_cr.Robot(radius, disks)
robot = mod_cr.Robot(6e-3, 30)

            # Node(Robot, length, actuation)
config_init = Node(robot, 0.001, 0.001)
config_init.set_init_guess(np.array([1]*robot1.nd))
config_init.T = np.eye(4)

# Run First forward kinematic iteration
config_init.run_forward_model(workspace, True, "KINEMATIC_CPP")
</code></pre></div></div>

<h3 id="motion-planning">Motion Planning</h3>
<p>Next a motion plan must be created. A target location can be specified and the following method will generate a sequence of joint space values (tendon actuation and tendon length). This sequence will then be applied to the robot with forward kinematics to traverse it through the taskspace. Paths can be created using the following <code class="language-plaintext highlighter-rouge">taskspace</code> method. This method will save a generated path to a <code class="language-plaintext highlighter-rouge">Nx2</code> csv file with each row being formatted as <code class="language-plaintext highlighter-rouge">segment_length, tendon_length</code></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>taskspace.generate_path(initial_Node, target=[x, y, z], filename='filename')
</code></pre></div></div>

<p>This method performs a greedy heuristic search through joint space sequences using Euclidean distance as a metric. More details can be found in Rao et al.<sup id="fnref:Rao:1"><a href="#fn:Rao" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>  The heuristic can be replaced with a custom heuristic you wish to investigate. Feel free to play around with it. The heuristic is defined in <code class="language-plaintext highlighter-rouge">/utils/taskspace.py</code>. Alternatively, you may load one of the premade path located in <code class="language-plaintext highlighter-rouge">/sample_paths</code>.</p>

<h3 id="forward-kinematics">Forward kinematics</h3>
<p>After the path is created, we then iterate over each position in the joint space csv file previously created. The forward kinematics of each value is calculated and saved to a list <code class="language-plaintext highlighter-rouge">traced_path</code>.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>prev_guess = config_init.var[0,::3]
sample_path = load_and_extract('sample_path.csv')
traced_path = [config_init]*len(sample_path)
for idx, iter in enumerate(sample_path):
    curr_node = Node(robot1, iter[0], iter[1])
    curr_node.set_init_guess(prev_guess)
    model_exitflag = curr_node.run_forward_model(workspace, True, "KINEMATIC_CPP")
    if model_exitflag:
        prev_guess = curr_node.var[0,::3]
        traced_path[idx] = curr_node
    else:
        print("Model did not converge")
        break
</code></pre></div></div>

<p class="notice--success"><strong><em>Selecting an Initial Guess</em></strong>:
The step on setting an initial guess with <code class="language-plaintext highlighter-rouge">config_init.set_init_guess</code> is important! As explained in the <strong>Model</strong> <strong>Definition</strong> section, the model used in our simulation environment is a complex nonlinear optimization problem. Additionally, the mapping between joint space and task space is not a one-to-one mapping during implicit contact motion. Setting a correct initial guess is crucial for model convergence. A rule of thumb that has worked well for us is to run the forward kinematics solver sequentially. This is done by setting the initial segment length and tendon length of the robot to be <code class="language-plaintext highlighter-rouge">(0.001, 0.001)</code> or as <code class="language-plaintext highlighter-rouge">1mm</code> in units for each. Then the model slowly progresses in <code class="language-plaintext highlighter-rouge">1mm</code> increments to remain stable. In each time step, the curvature values of the previous time frame is used as an initial guess for the next.</p>

<h3 id="visualizing-a-configuration">Visualizing a Configuration</h3>
<p>After the model has been run, and the nodes curvature values are determined, we can visualize the robot and taskspace by plotting it. The red dot is our target position.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>config_init.plot_configuration(workspace)
helpers.saveFigure()
# plt.show()
</code></pre></div></div>

<figure class=""><img src="/assets/images/posts/research/contactmodel_init.png" alt="" /></figure>

<h3 id="visualizing-a-motion-plan">Visualizing a Motion Plan</h3>
<p>For every motion plan that is generated and simulated, it can be visualized as a mp4 video.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>helpers.visualizing(traced_path, workspace, "filename")
</code></pre></div></div>
<p>Using the default taskspace and <code class="language-plaintext highlighter-rouge">3_sample_path.csv</code>, the resulting video is:</p>
<figure class=""><img src="/assets/images/posts/research/contactmodel_pathing.gif" alt="" /></figure>

<p>Happy tendon driven continuum robotic simulating!</p>

<p><a href="https://crl.utm.utoronto.ca/assets/paper/2024_ROBOSOFT_Lookahead.pdf" class="btn btn--info">Paper</a> 
<a href="https://github.com/ContinuumRoboticsLab/OpenTDCRContactModel" class="btn btn--danger">GitHub</a> 
<a href="https://colab.research.google.com/drive/12blCye60rOwlRdw1ya80a9P254LK0z9w?usp=sharing#scrollTo=YBk1qHRE2Iwe" class="btn btn--success">Google Collab</a></p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:Ashwin">
      <p>K.P. Ashwin, Soumya Kanti Mahapatra, Ashitava Ghosal: Profile and contact force estimation of cable-driven continuum robots in presence of obstacles. Mechanism and Machine Theory, 164:104404, 2021. doi: <a href="https://doi.org/10.1016/j.mechmachtheory.2021.104404">10.1016/j.mechmachtheory.2021.104404</a> <a href="#fnref:Ashwin" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:Rao">
      <p>Priyanka Rao, Itai Spigelman, Oren Salzman, Jessica Burgner-Kahrs: Computationally Efficient Lookahead Search for Contact-aided Navigation for Tendon-driven Continuum Robots. CRL, 164:104404, 2024. <a href="https://crl.utm.utoronto.ca/assets/paper/2024_ROBOSOFT_Lookahead.pdf">pdf</a> <a href="#fnref:Rao" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:Rao:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
  </ol>
</div>]]></content><author><name>Nicholas Baldassini</name></author><category term="research" /><summary type="html"><![CDATA[In this post we present a tutorial on how to use our open source TDCR contact model (C++, MATLAB, Python interface). This model is capable of building custom taskspaces with circular obstacles and applying contact-aided search to tendon driven continuum robots to reach a target position in a 2D taskspace.]]></summary></entry><entry><title type="html">Contact-Aided Navigation of Tendon-driven Continuum Robots</title><link href="https://www.opencontinuumrobotics.com/research/2024/04/05/tdcr-can.html" rel="alternate" type="text/html" title="Contact-Aided Navigation of Tendon-driven Continuum Robots" /><published>2024-04-05T00:00:00-04:00</published><updated>2024-04-05T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/research/2024/04/05/tdcr-can</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2024/04/05/tdcr-can.html"><![CDATA[<p>One of the most predominant features of tendon-driven continuum robots is their compliance. These ‘bendy’ flexible robots are widely used for their ability to conform to curvilinear shapes in response to forces applied by varied actuation. The most common actuation is the straight tendon routing (where the tendons run in a straight path, parallel to the backbone). In a hand-wavy approximation, this actuation can be assumed to apply a constant moment throughout the backbone, resulting in a constant curvature (also explained in a previous <a href="/101/2022/12/09/tdcr-cc-model.html">blogpost</a>. Introducing changes in the routing patterns<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> or adding mechanisms<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> results in additional forces/moments in the system, resulting in non-constant curvature along a single segment.</p>

<figure class=""><img src="/assets/images/posts/research/tdcr.gif" alt="" /></figure>

<p>While changing the robot design mechanically is viable, we asked ourselves whether we can harness more from the traditional single segment straight routing design to achieve more variation than just a constant-curvature. What if these additional forces/moments came from the environment instead of mechanical additions - which would be possible if the robot now leveraged the obstacles to change its curvature? This idea inspired our research on contact-aided navigation for these robots.</p>

<h2 id="reaching-a-target">Reaching a target</h2>

<p>Let’s consider a single segment TDCR in a planar workspace, cluttered with obstacles marked in blue. If the robot tip needs to reach the target position (red dot in the animation below), it is a fairly simple task. You basically need to select actutation values that minimize the distance between the tip and the target. We can set up a simple joint space search for this - where we consider three possible actions:</p>
<ol>
  <li>segment length increase (as its inserted into the workspace),</li>
  <li>tendon length decrease, and</li>
  <li>tendon length increase.</li>
</ol>

<p>Starting from an initial joint value, these three actions can be sequentially applied to build a lattice-based representation of the configuration space.</p>

<p class="notice">A lattice is a discretization of the configuration space into a set of states, and connections between these states, where every connection represents a feasible path.<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup></p>

<figure class=""><img src="/assets/images/posts/research/can.gif" alt="" /></figure>

<p>For now, lets keep optimality aside and focus on finding a solution by performing a greedy search. The greedy search is guided by a heuristic - for our case, we can set this heuristic to simply be the Euclidean distance between the robot tip and the target. This simple heuristic works quite well! There some additional changes you can make to prevent it from getting stuck in minimas but we will leave that discussion for another day.</p>

<h2 id="reaching-a-target-pose">Reaching a target pose</h2>
<p>Now that we have a solution to reach a target position, we can add an additional layer of challenge to our problem - How can we reach a target, with not just the desired position, but a desired orientation as well? We can retain all the machinery from the previous section, of building a lattice in the configuration space by sequentially applying joint space actions. But the more important question we need to answer is:</p>

<p><strong>What would the heuristic look like to reach a target pose?</strong></p>

<p>To reach a desired pose, we need to control x, y, and theta of the tip. However, we only have two controllable degrees-of-freedom where we can either change the length of the segment or bend it. The single segment is essentially underactuated for this task - leveraging contact-aided navigation allows the segment to use the obstacle as a kind-of passive degree of freedom to control the tip.</p>

<p>Our work, recently published in the IEEE Robotics &amp; Automation Letters<sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup>, seeks to solve this problem. The heuristic basically assumes that the end-effector’s motion can be modeled as a series of constant-curvature arcs - arcs whose end-points can only lie on the surface of obstacles. This condition ensures that the use of obstacles as a degree of freeodm is captured by the heuristic.</p>

<p>You can watch some of the solutions found by our method in the video below :</p>

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/da3eYGwzxts" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<h2 id="open-source-materials">Open-Source materials</h2>
<p>For now, we are releasing a preliminary version of the TDCR that can account for contacts on GitHub (link below). It is based on the kinematic model proposed by Ashwin et al. <sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup>.</p>

<p>Please watch this space for more details and tutorials!</p>

<p><a href="https://arxiv.org/pdf/2402.14175" class="btn btn--info">Paper</a> 
<a href="https://github.com/ContinuumRoboticsLab/OpenTDCRContactModel" class="btn btn--danger">GitHub</a> 
<a href="https://youtu.be/da3eYGwzxts" class="btn btn--success">Video</a></p>

<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>R.M. Grassmann, P. Rao, Q. Peyron, J. Burgner-Kahrs: FAS—A Fully Actuated Segment for Tendon-Driven Continuum Robots. Frontiers in Robotocs and AI, 9:873446, 2022. doi: <a href="https://doi.org/10.3389/frobt.2022.873446">10.3389/frobt.2022.873446</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2">
      <p>P. Rao, C. Pogue, Q. Peyron, E. Diller, J. Burgner-Kahrs: Modeling and Analysis of Tendon-Driven Continuum Robots for Rod-Based Locking. IEEE Robotics &amp; Automation Letters, 8(6):3126 - 3133, 2023. doi: <a href="https://doi.org/10.1109/LRA.2023.3264869">10.1109/LRA.2023.3264869</a> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3">
      <p>B. J. Cohen, G. Subramania, S. Chitta, M. Likhachev: Planning for Manipulation with Adaptive Motion Primitives.  IEEE International Conference on Robotics and Automation, pp. 5478-5485, 2011. doi: <a href="https://doi.org/10.1109/ICRA.2011.5980550">10.1109/ICRA.2011.5980550</a> <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>P. Rao, O. Salzmann, J. Burgner-Kahrs: Towards Contact-Aided Motion Planning for Tendon-Driven Continuum Robots. IEEE Robotics &amp; Automation Letters, 2024. doi: <a href="https://doi.org/10.1109/LRA.2024.3383211">10.1109/LRA.2024.3383211</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5">
      <p>K.P. Ashwin, Soumya Kanti Mahapatra, Ashitava Ghosal: Profile and contact force estimation of cable-driven continuum robots in presence of obstacles. Mechanism and Machine Theory, 164:104404, 2021. doi: <a href="https://doi.org/10.1016/j.mechmachtheory.2021.104404">10.1016/j.mechmachtheory.2021.104404</a> <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Priyanka Rao</name></author><category term="research" /><summary type="html"><![CDATA[What if we moved away from the classical obstacle avoidance paradigm in robotics and allowed continuum robots to leverage contact with the environments?]]></summary></entry><entry><title type="html">Algorithmic Motion Planning Meets Minimally-Invasive Robotic Surgery - Part 2</title><link href="https://www.opencontinuumrobotics.com/research/2024/01/14/inspection-mp.html" rel="alternate" type="text/html" title="Algorithmic Motion Planning Meets Minimally-Invasive Robotic Surgery - Part 2" /><published>2024-01-14T00:00:00-05:00</published><updated>2024-01-14T00:00:00-05:00</updated><id>https://www.opencontinuumrobotics.com/research/2024/01/14/inspection-mp</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2024/01/14/inspection-mp.html"><![CDATA[<h1 id="a-case-study-of-inspection-using-the-crisp-robot">A Case Study of Inspection Using the CRISP Robot</h1>
<p>In certain medical applications, physicians may want to inspect some region of interest for diagnostic purposes completing the procedure as fast as is safely possible to reduce costs and improve patient outcomes, especially if the patient is under anesthesia during the procedure.
For example, the needle-diameter Continuum Reconfigurable Incisionless Surgical Parallel (CRISP) robot <sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> <sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> was suggested to assist in the diagnosis of the cause of a pleural effusion (a serious medical condition that can cause the collapse of a patient’s lung) by visually inspecting the surface of the collapsed lung and chest wall inside the body<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup> (see Figure below).</p>

<h2 id="inspection-planning">Inspection Planning</h2>
<p>This can modeled as an <strong>inspection-planning problem</strong> where we are given a robot equipped with a sensor and a set of points of interest (POI) in the environment to be inspected by the sensor. The problem calls for computing a minimal-length motion plan for the robot that maximizes the number of POI inspected.</p>

<figure class=""><img src="/assets/images/posts/research/inspection-mp.png" alt="" /><figcaption>
      Example of Human anatomy inspection. Left: The CRISP robot is composed of needle-diameter tubes assembled into a parallel structure inside the patient’s body (in which a tube uses a snare system to grip a tube with a camera affixed to its tip) and then manipulated outside the body, allowing for smaller incisions and faster recovery times compared to traditional endoscopic tools (which have larger diameters). Middle: The CRISP robot in simulation inspecting a collapsed lung, a scenario segmented from a CT scan of a real patient with this condition. Visualization shows the robot (orange), the lungs (pink), and the pleural surface visible (green) and not visible (blue) by the robot’s camera sensor in its current configuration. Right: Two example configurations with inspected POI. The CRISP robot (orange) inspects POI (blue) on the organ surface with visible points covered by the cone shape (yellow).

    </figcaption></figure>

<p>Naively computed inspection plans may enable inspection of only a subset of the POI and may require motion plans significantly longer than an optimal plan, and hence may be undesirable or infeasible due to time constraints. Our goal is to compute kinematically feasible collision-free inspection plans that maximize the number of POI inspected, and of the plans that inspect those POI we compute a shortest one.</p>

<h2 id="what-makes-it-challenging">What makes it challenging</h2>
<p>Inspection planning is computationally challenging because we need to simultaneously reason  both about motion planning in a high-dimensional configuration space 
(the space of all parameters that determine the shape of the robot) as well as about maximizing the number of POI inspected.</p>

<p>There are multiple approaches to computing inspection plans, but here we focus on those that provide some formal guarantee on the quality of the solution. Generally speaking these methods (see, e.g., <sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup> <sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup>) exhaustively search over the space of all motion plans thus guaranteeing asymptotic optimality.
Roughly speaking, asymptotic optimality for inspection planning means these methods produce inspection plans whose length and the number of points inspected will asymptotically converge to those of an optimal inspection plan, given enough planning time.</p>

<p>Let’s dive deeper into the term we used earlier “exhaustively search over the space of all motion plans”. To do so, let’s go back to basics and consider shortest-path computation for a while (it may be worthwhile to visit previous posts on motion planning <a href="/101/2023/06/23/intro-mp-part1.html">Part 1</a>, <a href="/101/2023/06/28/intro-mp-part2.html">Part 2</a>). When we want to compute the shortest path to some point we can use the fact that any sub-path of a shortest path is also a shortest path. Namely, if we know that the shortest path between <code class="language-plaintext highlighter-rouge">a</code> and <code class="language-plaintext highlighter-rouge">c</code> passes through intermediate point <code class="language-plaintext highlighter-rouge">b</code> and we need to consider two paths connecting <code class="language-plaintext highlighter-rouge">a</code> and <code class="language-plaintext highlighter-rouge">b</code>, then the shorter one will always be better and we can discard the longer one. This is because if we take the shortest path connecting <code class="language-plaintext highlighter-rouge">b</code> and <code class="language-plaintext highlighter-rouge">c</code> it will always be preferable to append it to the shortest path connecting <code class="language-plaintext highlighter-rouge">a</code> and <code class="language-plaintext highlighter-rouge">b</code>. This is referred to as <em>Bellman’s principle of optimality</em>.</p>

<p>Going back to our problem of inspection planning this is not necessarily the case. To understand this, assume that we have two POIs and recall our two paths connecting <code class="language-plaintext highlighter-rouge">a</code> and <code class="language-plaintext highlighter-rouge">b</code>. Assume that the shorter one sees no POI while the longer one sees the first POI. Which one is better? We actually don’t know because it depends on the future: if we consider the first path, then we need to find a path between <code class="language-plaintext highlighter-rouge">b</code> and <code class="language-plaintext highlighter-rouge">c</code> that sees both POIs while if we consider the second path then we only need to find a path between <code class="language-plaintext highlighter-rouge">b</code> and <code class="language-plaintext highlighter-rouge">c</code> that sees the second POI.</p>

<p>To summarize, for each intermediate point, we need to consider the trade-off between short paths that see less POI and long paths that see more POI. This set has a name, “The Pareto-optimal frontier”. The set of Pareto-optimal inspection plans is the minimal set of inspection plans such that each plan is either shorter or has better coverage of the POI than any other inspection plan.
Unfortunately, computing this set comes at the price of very long computation times as the size of the search space is exponential in the number of POI.</p>

<h2 id="iris---incremental-random-inspection-roadmap-search">IRIS - Incremental Random Inspection-roadmap Search</h2>
<p>To solve the slow running times of existing algorithms, we introduced a new algorithm which we called Incremental Random Inspection-roadmap Search, or IRIS, which is an asymptotically optimal inspection-planning algorithm <sup id="fnref:8"><a href="#fn:8" class="footnote" rel="footnote" role="doc-noteref">6</a></sup> <sup id="fnref:9"><a href="#fn:9" class="footnote" rel="footnote" role="doc-noteref">7</a></sup>. Similar to sampling-based planners<sup id="fnref:1:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> <sup id="fnref:2:1"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>, IRIS incrementally constructs a sequence of increasingly dense roadmaps (graphs embedded in the configuration space) wherein each vertex represents a collision-free configuration and each edge a collision-free transition between configurations - and computes an inspection plan on the roadmaps as they are constructed.</p>

<p>Unfortunately, even the problem of computing an optimal inspection plan on a graph (and not in the configuration space) is computationally hard (see discussion above on computing the Pareto-optimal frontier). To circumvent this, we compute a near-optimal inspection plan on each roadmap. Basically, we use the fact that if two paths are “almost the same length” and see “almost the same set of POI”, essentially they are the same for all practical purposes and we can store only one (we have formal definitions for the “almost”s and the “essentially” but theses are out of the scope of this post).</p>

<p>This additional flexibility allows us to improve the quality of our inspection plan in an anytime manner, i.e., the algorithm can be stopped at any time and return the best inspection plan found up until that point.
We achieve this by incrementally densifying the roadmap and then searching over the densified roadmap for a near-optimal inspection plan—a process that is repeated as time allows.
By reducing the approximation factor (the mathematical tool we use to dictate which paths we consider paths as essentially the same) between iterations, we ensure  that our method is asymptotically optimal.</p>

<p>This allowed us to demonstrate the efficacy of our approach in simulation for several complex robotic systems as demonstrated in the Figure above.</p>

<p>For additional details on algorithmic motion planning for continuum robots, see <sup id="fnref:10"><a href="#fn:10" class="footnote" rel="footnote" role="doc-noteref">8</a></sup> and references within.</p>

<p><a href="https://doi.org/10.1177/02783649231171646" class="btn btn--info">Paper</a> 
<a href="https://github.com/UNC-Robotics/IRIS" class="btn btn--danger">GitHub</a></p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Arthur W Mahoney, Patrick L Anderson, Philip J Swaney, Fabien Maldonado, and Robert J Webster III. Reconfigurable parallel continuum robots for incisionless surgery. IEEE IROS, pp 4330–4336, 2016. doi: <a href="https://doi.org/10.1109/IROS.2016.7759637">10.1109/IROS.2016.7759637</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:2">
      <p>Patrick L Anderson, Arthur W Mahoney, and Robert J Webster III. Continuum reconfigurable parallel robots for surgery: Shape sensing and state estimation with uncertainty. IEEE Robot. Autom. Lett., 2(3):1617–1624, 2017. doi: <a href="https://doi.org/10.1109/LRA.2017.2678606">10.1109/LRA.2017.2678606</a> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:2:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:3">
      <p>Alan Kuntz, Chris Bowen, Cenk Baykal, Arthur W Mahoney, Patrick L Anderson, Fabien Maldonado, Robert J Webster III, and Ron Alterovitz. Kinematic design optimization of a parallel surgical robot to maximize anatomical visibility via motion planning. IEEE ICRA, pp 926–933, 2018. doi: <a href="https://doi.org/10.1109/ICRA.2018.8461135">10.1109/ICRA.2018.8461135</a> <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>Andreas Bircher, Kostas Alexis, Ulrich Schwesinger, Sammy Omari, Michael Burri, and Roland Siegwart. An incremental sampling–based approach to inspection planning: The rapidly–exploring random tree of trees. Robotica, 35(6):1327–1340, 2017. doi: <a href="https://doi.org/10.1017/S0263574716000084">10.1017/S0263574716000084</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5">
      <p>Premysl Kafka, Jan Faigl, and Petr Vana. Random inspection tree algorithm in visual inspection with a realistic sensing model and differential constraints. IEEE ICRA, pp 2782–2787, 2016. doi: <a href="https://doi.org/10.1109/ICRA.2016.7487440">10.1109/ICRA.2016.7487440</a> <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8">
      <p>Mengyu Fu, Alan Kuntz, Oren Salzman, and Ron Alterovitz. Toward asymptotically-optimal inspection planning via efficient near-optimal graph search. In RSS, 2019. doi: <a href="https://doi.org/10.15607/RSS.2019.XV.057">10.15607/RSS.2019.XV.057</a> <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:9">
      <p>Mengyu Fu, Alan Kuntz, Oren Salzman, Ron Alterovitz. Asymptotically optimal inspection planning via efficient near-optimal search on sampled roadmaps. The International Journal of Robotics Research, 42(4-5):150-175, 2023.  doi: <a href="https://doi.org/10.1177/02783649231171646">10.1177/02783649231171646</a> <a href="#fnref:9" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:10">
      <p>Oren Salzman. Algorithmic Motion Planning Meets Minimially-Invasive Robotic Surgery. IJCAI,pp 7039-7044, 2023. doi: <a href="https://doi.org/10.24963/ijcai.2023/804">10.24963/ijcai.2023/804</a> <a href="#fnref:10" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Oren Salzman</name></author><category term="research" /><summary type="html"><![CDATA[A Case Study of Inspection Using the CRISP Robot In certain medical applications, physicians may want to inspect some region of interest for diagnostic purposes completing the procedure as fast as is safely possible to reduce costs and improve patient outcomes, especially if the patient is under anesthesia during the procedure. For example, the needle-diameter Continuum Reconfigurable Incisionless Surgical Parallel (CRISP) robot 1 2 was suggested to assist in the diagnosis of the cause of a pleural effusion (a serious medical condition that can cause the collapse of a patient’s lung) by visually inspecting the surface of the collapsed lung and chest wall inside the body3 (see Figure below). Arthur W Mahoney, Patrick L Anderson, Philip J Swaney, Fabien Maldonado, and Robert J Webster III. Reconfigurable parallel continuum robots for incisionless surgery. IEEE IROS, pp 4330–4336, 2016. doi: 10.1109/IROS.2016.7759637 &#8617; Patrick L Anderson, Arthur W Mahoney, and Robert J Webster III. Continuum reconfigurable parallel robots for surgery: Shape sensing and state estimation with uncertainty. IEEE Robot. Autom. Lett., 2(3):1617–1624, 2017. doi: 10.1109/LRA.2017.2678606 &#8617; Alan Kuntz, Chris Bowen, Cenk Baykal, Arthur W Mahoney, Patrick L Anderson, Fabien Maldonado, Robert J Webster III, and Ron Alterovitz. Kinematic design optimization of a parallel surgical robot to maximize anatomical visibility via motion planning. IEEE ICRA, pp 926–933, 2018. doi: 10.1109/ICRA.2018.8461135 &#8617;]]></summary></entry><entry><title type="html">Algorithmic Motion Planning Meets Minimally-Invasive Robotic Surgery</title><link href="https://www.opencontinuumrobotics.com/research/2024/01/07/needlesteering-mp.html" rel="alternate" type="text/html" title="Algorithmic Motion Planning Meets Minimally-Invasive Robotic Surgery" /><published>2024-01-07T00:00:00-05:00</published><updated>2024-01-07T00:00:00-05:00</updated><id>https://www.opencontinuumrobotics.com/research/2024/01/07/needlesteering-mp</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2024/01/07/needlesteering-mp.html"><![CDATA[<h1 id="a-case-study-of-steerable-needles">A Case Study of Steerable Needles</h1>
<p>Steerable needles are a type of continuum robot, distinguished by their flexibility and capability to navigate through complex anatomical pathways. These robots are highly under-actuated, relying on interaction with the environment for movement and direction. The steering mechanism of steerable needles utilizes the asymmetric tip’s interaction with tissue forces during insertion. By externally rotating the needle shaft, the tip’s orientation is adjusted, allowing for controlled deflection towards desired directions upon further insertion. This method enables the needle to maneuver around obstacles such as bones, vessels, and nerves, accessing multiple targets without complete withdrawal. The reliance on environmental interaction for actuation not only enhances the safety and efficacy of medical interventions but also presents challenges and opportunities in motion planning and control within robotics, emphasizing navigation in environments with complex constraints and precision requirements.</p>

<h2 id="motion-planning-for-steerable-needles">Motion Planning for Steerable Needles</h2>
<p>Steerable needles can be used to reach clinical targets for biopsy purposes while safely avoiding obstacles such as blood vessels. This  clinical application can be modeled as a motion-planning problem which is the problem of determining a collision-free path or trajectory for a robot to move from its initial position to a desired goal position while avoiding obstacles in its environment (see also previous motion planning posts <a href="/101/2023/06/23/intro-mp-part1.html">Part 1</a>, <a href="/101/2023/06/28/intro-mp-part2.html">Part 2</a>).</p>

<figure class=""><img src="/assets/images/posts/101-needle-steering-app.jpg" alt="" /><figcaption>
      A medical steerable needle (cyan) is used to reach a nodule (green) while avoiding major blood vessels (red) for biopsy or cancer treatment. The left and right figures depicts the lung parenchyma (where the bronchial tubes are in brown) and the liver, respectively.

    </figcaption></figure>

<p>Ideally, a motion-planning algorithm should first guarantee that it will compute a solution, if one exists, in finite time, or notify the user that no solution exists (we call such motion planners <strong><em>complete</em></strong>”). Moreover, the computed solution should strive to maximize some objective which in our setting is patient safety (we call such motion planners <strong><em>optimal</em></strong>). This  can be quantified using metrics such as minimizing trajectory length, maximizing the minimal distance from obstacles and minimizing damage to sensitive tissue (see, e.g., <sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> <sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> <sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">3</a></sup> <sup id="fnref:6"><a href="#fn:6" class="footnote" rel="footnote" role="doc-noteref">4</a></sup>). Unfortunately, the lion’s share of planners developed  for steerable needles offer no formal guarantee on completeness, let alone optimality.</p>

<p>Some prior motion planners for steerable needles (see, e.g, <sup id="fnref:7"><a href="#fn:7" class="footnote" rel="footnote" role="doc-noteref">5</a></sup> <sup id="fnref:8"><a href="#fn:8" class="footnote" rel="footnote" role="doc-noteref">6</a></sup> <sup id="fnref:9"><a href="#fn:9" class="footnote" rel="footnote" role="doc-noteref">7</a></sup>) do aim to optimize motion-plan cost but they lack global optimality guarantees (this means that the cost of the solution they return may be a local optima). Some sampling-based planners (see, e.g., <sup id="fnref:10"><a href="#fn:10" class="footnote" rel="footnote" role="doc-noteref">8</a></sup> <sup id="fnref:11"><a href="#fn:11" class="footnote" rel="footnote" role="doc-noteref">9</a></sup>) are known to be both complete and optimal but those properties are usually proven only when they number of samples they use approaches infinity (this is referred to as asymptotic optimality).</p>

<p>These challenges inspired us to consider variants of completeness or optimality relevant to medical applications: In a series of recent papers (see, <sup id="fnref:12"><a href="#fn:12" class="footnote" rel="footnote" role="doc-noteref">10</a></sup> <sup id="fnref:13"><a href="#fn:13" class="footnote" rel="footnote" role="doc-noteref">11</a></sup>), we focus on specific types of guarantees relevant to real-world medical applications: resolution completeness and resolution optimality. Generally speaking, a resolution characterizes the discretization of some space such as the action space or configuration space of a robot. An algorithm is resolution complete if there exists a fine-enough resolution with which the algorithm finds a plan in finite time when a qualified solution exists, and otherwise correctly returns that no such plan exists. An algorithm is resolution optimal if it is resolution complete and if, when it does return a motion plan, the plan’s cost is guaranteed to be within a desired approximation factor of the cost of a globally optimal qualified motion plan. We illustrate this in the Figure below with an example showing searches with different resolutions for needle steering.</p>

<figure class=""><img src="/assets/images/posts/101-needle-steering.jpg" alt="" /><figcaption>
      Our resolution-complete motion planner uses search trees built using different resolutions, illustrated here in 2D. A valid motion plan goes from the start configuration (blue dot) to the goal point (green dot), while avoiding obstacles (red) and satisfying kinematic constraints. The left search tree uses a coarse resolution and fails to find a plan while the right one uses a finer resolution and successfully generates a motion plan (yellow).

    </figcaption></figure>

<h2 id="resolution-complete-search">Resolution-Complete Search</h2>
<p>We first presented Resolution-Complete Search (RCS), an efficient, resolution-complete motion planner for steerable needles based on a novel adaptation of multi-resolution planning <sup id="fnref:10:1"><a href="#fn:10" class="footnote" rel="footnote" role="doc-noteref">8</a></sup>. Under some mild assumptions on the system and the solution, the planner, in finite time, is guaranteed to find a plan as long as the problem admits a qualified solution. We then extended RCS to develop RCS*, that achieves resolution optimality <sup id="fnref:11:1"><a href="#fn:11" class="footnote" rel="footnote" role="doc-noteref">9</a></sup>.</p>

<p>We demonstrated the performance of our planners in two clinically realistic scenarios where the needle should reach a target while safely avoiding obstacles (e.g., blood vessels).
In the setting of lung biopsy, where the needle is deployed through a bronchoscope and must steer through the lung parenchyma (the tissue of the lung outside the bronchial tubes) and in the setting of liver biopsy, where the needle is deployed into the liver through its anterior surface and must steer through the liver tissue. We compared in simulation our planner with several other steerable needle planners and demonstrated experimentally that RCS and RCS* outperform the state-of-the-art in terms of computation time, success rate, and plan quality.</p>

<p>For additional details on algorithmic motion planning for continuum robots, see <sup id="fnref:14"><a href="#fn:14" class="footnote" rel="footnote" role="doc-noteref">12</a></sup> and references within.</p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:3">
      <p>Alberto Favaro, Leonardo Cerri, Stefano Galvan, Ferdinando Rodriguez Y Baena, and Elena De Momi. Automatic optimized 3D path planner for steerable catheters with heuristic search and uncertainty tolerance. IEEE ICRA, pp 9–16, 2018. doi: <a href="https://doi.org/10.1109/ICRA.2018.8461262">10.1109/ICRA.2018.8461262</a> <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>Alan Kuntz, Luis G Torres, Richard H Feins, Robert J Webster III, and Ron Alterovitz. Motion planning for a three-stage multilumen transoral lung access system. IEEE IROS, pp 3255–3261, 2015. doi: <a href="https://doi.org/10.1109/iros.2015.7353829">10.1109/iros.2015.7353829</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5">
      <p>Mengyu Fu, Alan Kuntz, Robert J Webster III, and Ron Alterovitz. Safe motion planning for steerable needles using cost maps automatically extracted from pulmonary images. IEEE IROS, pp 4942–4949, 2018. doi: <a href="https://doi.org/10.1109/IROS.2018.8593407">10.1109/IROS.2018.8593407</a> <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:6">
      <p>Michael Bentley, Caleb Rucker, Chakravarthy Reddy, Oren Salzman, Alan Kuntz. Safer Motion Planning of Steerable Needles via a Shaft-to-Tissue Force Model. J. Medical Robotics Res. 8(1&amp;2): 2350003:1-2350003:16, 2023. doi: <a href="https://doi.org/10.1142/S2424905X23500034">10.1142/S2424905X23500034</a> <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:7">
      <p>Jijie Xu, Vincent Duindam, Ron Alterovitz, and Ken Goldberg. Motion planning for steerable needles in 3D environments with obstacles using rapidly-exploring random trees and backchaining. IEEE CASE, pp 41–46, 2008. doi: <a href="https://doi.org/10.1109/COASE.2008.4626486">10.1109/COASE.2008.4626486</a> <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8">
      <p>Sachin Patil, Jessica Burgner, Robert J Webster III, and Ron Alterovitz. Needle steering in 3D via rapid replanning. IEEE Trans. Rob., 30(4):853–864, 2014. doi: <a href="https://doi.org/10.1109/TRO.2014.2307633">10.1109/TRO.2014.2307633</a> <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:9">
      <p>Marlene Pinzi, Stefano Galvan, and Ferdinando Rodriguez y Baena. The adaptive hermite fractal tree (AHFT): a novel surgical 3D path planning approach with curvature and heading constraints. International Journal of Computer Assisted Radiology and Surgery, 14(4):659–670, 2019. doi: <a href="https://doi.org/10.1007/s11548-019-01923-3">10.1007/s11548-019-01923-3</a> <a href="#fnref:9" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:10">
      <p>Steven M LaValle. <a href="https://lavalle.pl/planning/">Planning algorithms</a>. Cambridge university press, 2006. <a href="#fnref:10" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:10:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:11">
      <p>Oren Salzman. Sampling-based robot motion planning. Commun. ACM, 62(10):54–63, 2019. doi: <a href="https://doi.org/10.1145/3318164">10.1145/3318164</a> <a href="#fnref:11" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:11:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:12">
      <p>Mengyu Fu, Oren Salzman, and Ron Alterovitz. <a href="https://www.roboticsproceedings.org/rss17/p081.pdf">Toward certifiable motion planning for medical steerable needles</a>. In RSS, 2021. <a href="#fnref:12" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:13">
      <p>Mengyu Fu, Kiril Solovey, Oren Salzman, and Ron Alterovitz. Resolution-optimal motion planning for steerable needles. IEEE ICRA, pp 9652–9659, 2022. doi: <a href="https://doi.org/10.1109/ICRA46639.2022.9811850">10.1109/ICRA46639.2022.9811850</a> <a href="#fnref:13" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:14">
      <p>Oren Salzman. Algorithmic Motion Planning Meets Minimially-Invasive Robotic Surgery. IJCAI,pp 7039-7044, 2023. doi: <a href="https://doi.org/10.24963/ijcai.2023/804">10.24963/ijcai.2023/804</a> <a href="#fnref:14" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Oren Salzman</name></author><category term="research" /><summary type="html"><![CDATA[A Case Study of Steerable Needles Steerable needles are a type of continuum robot, distinguished by their flexibility and capability to navigate through complex anatomical pathways. These robots are highly under-actuated, relying on interaction with the environment for movement and direction. The steering mechanism of steerable needles utilizes the asymmetric tip’s interaction with tissue forces during insertion. By externally rotating the needle shaft, the tip’s orientation is adjusted, allowing for controlled deflection towards desired directions upon further insertion. This method enables the needle to maneuver around obstacles such as bones, vessels, and nerves, accessing multiple targets without complete withdrawal. The reliance on environmental interaction for actuation not only enhances the safety and efficacy of medical interventions but also presents challenges and opportunities in motion planning and control within robotics, emphasizing navigation in environments with complex constraints and precision requirements.]]></summary></entry><entry><title type="html">Learning Kit for Tendon-driven Continuum Robots</title><link href="https://www.opencontinuumrobotics.com/hands-on/2023/10/11/learning-kit.html" rel="alternate" type="text/html" title="Learning Kit for Tendon-driven Continuum Robots" /><published>2023-10-11T00:00:00-04:00</published><updated>2023-10-11T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/hands-on/2023/10/11/learning-kit</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/hands-on/2023/10/11/learning-kit.html"><![CDATA[<p>Hi! I am Ankit and I’ve spent my summer 2023 at the <a href="https://crl.utm.utoronto.ca/">CRL</a> developing a learning kit for Tendon Driven Continuum Robots together with <a href="https://reinhardgrassmann.github.io/">Reinhard Grassmann</a>. The learning kit uses CRL’s latest design papers<sup id="fnref:fas"><a href="#fn:fas" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> <sup id="fnref:arXiv2023"><a href="#fn:arXiv2023" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> and builds on the <a href="/hands-on/2023/04/28/one-actuation-module.html">open actuation module</a>. The motivation for the learning kit stems from the Open Continuum Robotics Project’s fundamental objective of empowering the world with open hardware and open software to create their continuum robots.</p>

<p>The idea is something I can relate to largely. Robotics Education is only just taking off in most parts of the world. With this project, I designed something that students at my home university, Manipal Institute of Technology in India, would be able to build. For the design, we considered various constraints such as component availability, 3D printer access, and skill level.</p>

<h2 id="components">Components</h2>
<p>The kit comprises a Tendon Driven Continuum Robot (TDCR), four actuators, two TI Launchpads, various complementary electronic components, and a custom casing to enclose the entire system. For the sake of brevity, I have omitted details thoroughly explained on our <a href="https://github.com/ContinuumRoboticsLab/OpenCR-Hardware">GitHub</a>.</p>

<h3 id="manipulator">Manipulator</h3>
<p>The manipulator of the TDCR consists of 10 <a href="/101/2023/02/24/tendon-routing-disks.html">Type-II spacer disks</a> equally distributed along a Nitinol Backbone with a diameter of 1.4 mm. The robot is capable of 3 DOFs, namely bending across two planes and rotation about its axis. I used three independently actuated tendons made of Spectra Fiber and an actuator to rotate the backbone, enabling these degrees of freedom.</p>

<p>The body of the spacer disk is fixed to the backbone axially, while a bearing in the middle enables the rotational DOF. It is split into two parts to allow for the insertion of the bearing in the middle. I changed the regular ball bearing to a pulley to reduce the number of unique components. The profile of the two parts allows for easy assembly while ensuring that the actuation through the tendons is optimal. The grooves ensure the adhesive stays inside the segment and does not spill out. A small part, functioning as a spacer to make the pulley bore smaller, is designed with a unique profile that balances the required friction to grip the backbone and the need for a constant curvature.</p>

<table>
  <tbody>
    <tr>
      <td><img src="https://www.opencontinuumrobotics.com/assets/images/posts/hands-on/learning_kit_sliced_FSD_assembly.gif" alt="" /></td>
      <td><img src="https://www.opencontinuumrobotics.com/assets/images/posts/hands-on/learning_kit_cad_manipulator.png" alt="" /></td>
      <td><img src="https://www.opencontinuumrobotics.com/assets/images/posts/hands-on/learning_kit_cad.png" alt="" /></td>
    </tr>
  </tbody>
</table>

<h3 id="actuators">Actuators</h3>
<p>Our actuation module was modified to suit this kit’s requirements. I replaced the multi-part casing with a single unit, such that the new case is easier to manufacture while maintaining adequate performance. The assembly process is simplified as the singular casing eliminates input and output shaft misalignment. The motor and the gears can easily fit into designated spaces using dedicated slots. Since the actuator will only actuate tendons, I introduced an extra bearing at the output shaft to handle the increased radial tension and eliminate shaft eccentricity.</p>

<p>I used the Launchpad TI LAUNCHXL-F28069M, a microcontroller development board, to control the motors with two motor Drivers, BOOSTXL-DRV8305EVM. Since four motors and each motor driver can control one motor, two Launchpads and four motor drivers are required to actuate the continuum robot.</p>

<table>
  <tbody>
    <tr>
      <td><img src="https://www.opencontinuumrobotics.com/assets/images/posts/hands-on/learning_kit_single_unit_actuation_module.png" alt="" /></td>
      <td><img src="https://www.opencontinuumrobotics.com/assets/images/posts/hands-on/learning_kit_cad_casing.png" alt="" /></td>
    </tr>
  </tbody>
</table>

<h3 id="housing">Housing</h3>
<p>All components are placed inside a hexagonal casing with windows made of transparent acrylic sheets to view the system’s working. The three tendon actuators are fixed horizontally to reduce tendon routing. Six pulleys are placed inside to help reduce the tendon offset and increase the efficiency of tendon control. One actuation module is placed at the bottom and controls backbone rotation. To secure the electric components in the case, I designed custom 3D-printed mounts. All components are visible from the windows to allow the user to see the robot’s functioning, allowing better understanding and enabling intuition development.</p>

<p>I used several techniques to adapt the design for manufacturing with an FDM 3D Printer:</p>
<ul>
  <li>teardrop method to ensure optimal vertical holes</li>
  <li>eliminated 90° overhangs using arcs</li>
  <li>used chamfers to reduce support material.</li>
  <li>counterbores for all bolt heads ensure a flush surface finish on all casing sides</li>
  <li>included partial slots for nuts to make assembly easier</li>
</ul>

<h2 id="assembly-guide">Assembly Guide</h2>
<p>Find a detailed assembly guide, printable STL Files and mechanical drawings on GitHub and watch the assembly video on YouTube:
<a href="https://github.com/ContinuumRoboticsLab/OpenCR-Hardware" class="btn btn--danger">GitHub</a> 
<a href="https://youtu.be/REcu881jMmQ" class="btn btn--success">Video</a></p>

<!-- Courtesy of embedresponsively.com -->

<div class="responsive-video-container">
    <iframe src="https://www.youtube-nocookie.com/embed/REcu881jMmQ" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
  </div>

<p>I encourage you to try and fabricate this learning kit and contact us regarding any queries or further developments you make! We would love to hear about your experience and see your prototypes!</p>

<h2 id="epilogue">Epilogue</h2>
<p>I took the design home and encouraged robotics enthusiasts at my home university to build and use OpenCR’s Learning Kit. The learning kit allows students to easily understand concepts, design, and implement various algorithms. I hope this kit or its successor will find its way into classrooms at different schools! Stay tuned for updates.</p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:fas">
      <p>Reinhard M. Grassmann, Priyanka Rao, Quentin Peyron, Jessica Burgner-Kahrs: FAS — A Fully Actuated Segment for Tendon-Driven Continuum Robots. Front. Robot. AI 9:873446, 2022. doi: <a href="https://doi.org/10.3389/frobt.2022.873446">10.3389/frobt.2022.873446</a> <a href="#fnref:fas" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:arXiv2023">
      <p>Reinhard M. Grassmann, Chengnan Shentu, Taqi Hamoda, Puspita Triana Dewi, Jessica Burgner-Kahrs. “Open Continuum Robotics – One Actuation Module to Create them All,” 2023, arXiv: <a href="https://arxiv.org/abs/2304.11850">2304.11850</a> <a href="#fnref:arXiv2023" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Ankit Aggarwal</name></author><category term="hands-on" /><summary type="html"><![CDATA[Hi! I am Ankit and I’ve spent my summer 2023 at the CRL developing a learning kit for Tendon Driven Continuum Robots together with Reinhard Grassmann. The learning kit uses CRL’s latest design papers1 2 and builds on the open actuation module. The motivation for the learning kit stems from the Open Continuum Robotics Project’s fundamental objective of empowering the world with open hardware and open software to create their continuum robots. Reinhard M. Grassmann, Priyanka Rao, Quentin Peyron, Jessica Burgner-Kahrs: FAS — A Fully Actuated Segment for Tendon-Driven Continuum Robots. Front. Robot. AI 9:873446, 2022. doi: 10.3389/frobt.2022.873446 &#8617; Reinhard M. Grassmann, Chengnan Shentu, Taqi Hamoda, Puspita Triana Dewi, Jessica Burgner-Kahrs. “Open Continuum Robotics – One Actuation Module to Create them All,” 2023, arXiv: 2304.11850 &#8617;]]></summary></entry><entry><title type="html">Introduction to Motion Planning for Continuum Robots - Part 2</title><link href="https://www.opencontinuumrobotics.com/101/2023/06/28/intro-mp-part2.html" rel="alternate" type="text/html" title="Introduction to Motion Planning for Continuum Robots - Part 2" /><published>2023-06-28T00:00:00-04:00</published><updated>2023-06-28T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/101/2023/06/28/intro-mp-part2</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/101/2023/06/28/intro-mp-part2.html"><![CDATA[<p>Today, we continue our introduction to motion planning for continuum robots. If you have missed Part 1 of the intro, look at <a href="/101/2023/06/23/intro-mp-part1.html">last week’s blog post</a> before you continue here!</p>

<h2 id="what-makes-motion-planning-particularly-challenging-for-continuum-robots">What makes motion planning particularly challenging for continuum robots?</h2>
<p>First, let’s discuss one of the primary differences between continuum robots and more “traditional” robots (for lack of a better term)—modeling.</p>

<p>As you’ve seen in prior (and future, I promise) blogs on this site, modeling the mechanics of continuum robots is fundamentally different from more traditional serial-link manipulator arms.</p>

<p>As a subset of mechanics, consider just the forward kinematics (FK) problem for continuum robots, i.e., mapping the robot’s joint state to the robot’s resultant shape in space.
For concentric tube robots this may be mapping the robot’s tubes’ rotation/translation values to the robot’s shape and for tendon-driven robots this may be mapping the robot’s tendon tensions/displacements to the robot’s shape.</p>

<p>What’s <em>actually</em> happening in the physical world is complicated here. There are elastic elements interacting with (potentially) other elastic elements in complex ways. There is difficult-to-model friction between components of the robot, hysteresis, potentially difficult-to-predict material properties, etc.</p>

<p>The continuum robotics community has taken a variety of approaches to modeling, but a fundamental trend exists: a <strong>trade-off between accuracy and speed-of-computation</strong>. That is, models which may be fast to compute are typically fast because they neglect to account for some of the physical phenomenon present in the actual robot. On the flip side, models that account for those phenomenon are slow to compute. In reality, there’s a spectrum here.</p>

<p>Constant curvature models, for instance, may take a purely geometric approach to FK, which is fast to compute, but tend to be less accurate. On the other end of the spectrum, you could consider leveraging something like finite element analysis to simulate the physics of a continuum robot to compute its shape. This would improve accuracy but would be much, much slower to compute. Somewhere in the middle of these you may find things like the Cosserat rod/string models, which are a popular way to model continuum robots and will be discussed in other blog posts here (this is the approach we take in my lab, usually, when we aren’t using machine learning-based methods).</p>

<p>Let’s contrast this with serial-link manipulator arms. For these, FK typically require only the multiplication of a handful of matrices, which is comparatively VERY fast, and comparatively VERY accurate, as these robots are rigid.</p>

<p>Okay, so why is this a problem when performing motion planning for continuum robots?</p>

<p>Well, one way to think about motion planning is that we are reasoning <em>in advance of actually moving</em> about the best way to move the robot to achieve our goals. This means that we need our ability to reason about motion to be accurate, otherwise how we predict the robot will move doesn’t mean much. For this reason, model inaccuracy plays havoc with naïve motion planning methods (such as we’ve discussed in last week’s <a href="/101/2023/06/23/intro-mp-part1.html">post</a>), and continuum robots have inaccurate models.</p>

<p>Further, the ways in which we are reasoning in advance about moving require us to consider a <em>whole bunch of potential motions</em> for the robot. Every vertex in the grid/lattice-based and sampling-based methods represents an FK computation. Every edge between them requires multiple (often many) FK computations. In the optimization-based methods, the computation of objective and constraint gradients frequently require many FK computations. So the time it takes to compute FK has HUGE implications in motion planning.</p>

<p>This modeling tension, fast but inaccurate or (somewhat) accurate but slow, is one of the fundamental challenges of applying motion planning to continuum robots, and the one I’ll focus on for the rest of this post.</p>

<figure class=""><img src="/assets/images/posts/101-motion-planning-intro-part2-Fig1.png" alt="" /><figcaption>
      As continuum robot models become more accurate, they tend to take longer to compute. This represents one of the fundamental challenges associated with applying motion planning to continuum robots.

    </figcaption></figure>

<h2 id="how-has-the-community-overcome-these-challenges">How has the community overcome these challenges?</h2>

<h3 id="modeling-accuracy-or-lack-thereof">Modeling accuracy (or lack thereof)</h3>
<p>The continuum robotics community (myself included) has largely taken an extremely unsatisfying approach to overcoming modeling inaccuracy. This approach, also used by much of the non-continuum robotics planning world, boils down to a simple idea: don’t let the robot get close to things. That way, if the model is inaccurate, hopefully the robot is far enough away from its environment that it won’t collide with it in unexpected ways.</p>

<p>As an example, in one of my papers<sup id="fnref:15"><a href="#fn:15" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>, we build into the objective function a notion of distance from obstacles. Specifically, We  define the cost of a configuration $\boldsymbol{q}$ as:</p>

\[\begin{split}
    &amp;\texttt{cost}(\boldsymbol{q})=\left\{
    \begin{array}{rcl}
    \cfrac{1}{\texttt{clear}(\boldsymbol{q})},&amp;&amp;\texttt{clear}(\boldsymbol{q}) &gt; 0\\
    \infty,&amp;&amp;\texttt{clear}(\boldsymbol{q}) \le 0,
    \end{array}\right.
  \end{split}\]

<p>where $\texttt{clear}$ is, informally defined here, the signed distance from the robot’s body at that configuration to the nearest obstacle.</p>

<p>The cost of a path $\boldsymbol{\xi}$ then becomes
\(\texttt{Cost}(\boldsymbol{\xi}) = \int_0^1 \texttt{cost}(\boldsymbol{\xi}(s))ds .\)</p>

<p>where $s$ is a normalized path arclength parameter. Note here that I’ve used little ‘c’ cost for cost over configuration and big ‘C’ Cost for cost over a path. Creative, I know.</p>

<p>You should really read the paper if you want formality here, but this should give you the gist. Also note that in the paper the notation is slightly different, but I’ve changed it here to more-closely match what I’ve used in the last <a href="/101/2023/06/23/intro-mp-part1.html">post</a>.</p>

<p>In that method, we leverage both sampling-based motion planning and optimization-based motion planning in parallel (building on [13]), where the method attempts to minimize the $\texttt{cost}$ of a path. This results in paths that travel as far from obstacles as possible, while still being constrained at the start and end configurations.</p>

<h3 id="computation-speed-or-lack-thereof">Computation speed (or lack thereof)</h3>
<p>The community has taken a variety of approaches to overcome the slow computation speed of continuum robot mechanical models. Here are a few, with some examples.</p>

<p><strong>The first, and most obvious, is the use of a fast-but-inaccurate mechanical model:</strong>
For instance, in Lyons et al. <sup id="fnref:16"><a href="#fn:16" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>, the authors simplify the mechanical model of concentric tube robots in two key ways. First, they assume that the tubes are torsionally rigid. Second, they assume that the stiffness of each tube dominates all of the tubes nested inside of it. This means that the shape of a tube is assumed to be independent of the motions of the tubes internal to it and that each tube deploys in a constant-curvature circular shape. The mechanical model that leverages these assumptions is sufficiently fast for planning, but again as discussed above <em>ad nauseam</em>, comes at the significant cost of accuracy.</p>

<p><strong>Another approach is to lean on advances in software engineering and programming languages to speed up the computation:</strong>
Leibrandt et. al.<sup id="fnref:17"><a href="#fn:17" class="footnote" rel="footnote" role="doc-noteref">3</a></sup> leverage <a href="https://en.wikipedia.org/wiki/Template_metaprogramming">template metaprogramming in C++</a>, which (I’m oversimplifying this explanation) moves a lot of expensive run-time computation to compile-time computation for concentric tube robots. This enabled very fast kinematics computation. The method leverages this in a PRM-style motion planner. In our paper<sup id="fnref:15:1"><a href="#fn:15" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> mentioned above, we use this template-based kinematic model, wrapping our parallel sampling and optimization method around it. Speaking of, our<sup id="fnref:15:2"><a href="#fn:15" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> use of <a href="https://en.wikipedia.org/wiki/Parallel_computing">parallelism</a> is another example of leveraging software engineering concepts to speed up computation in planning for continuum robots.</p>

<p><strong>We can also consider leveraging precomputation:</strong>
In the paper <sup id="fnref:18"><a href="#fn:18" class="footnote" rel="footnote" role="doc-noteref">4</a></sup> (its extension <sup id="fnref:19"><a href="#fn:19" class="footnote" rel="footnote" role="doc-noteref">5</a></sup>), the authors propose leveraging precomputation to build a roadmap for planning <em>after the environment is known but in advance of when it is needed</em>. This is a pretty specific (and restrictive) scenario, but makes sense in the application put forth by the papers, namely in surgery. These works present the case that pre-operative medical imaging provides the method with a 3D environment a day (or more) prior to when the surgery will happen. The method can then leverage that time to compute a dense, collision-free roadmap before it’s needed at surgery time. The proposed method utilizes the sampling-based method Rapidly-exploring Random Graph (RRG) (which is also presented in <sup id="fnref:7"><a href="#fn:7" class="footnote" rel="footnote" role="doc-noteref">6</a></sup>, in addition to PRM* and RRT*). The method also utilizes one of, if not the most precise (at the time, at least) mechanical models available for concentric tube robots. This dense, collision-free roadmap is built over the course of many hours using this accurate model and the anatomical environment segmented from the pre-operative medical imaging. Then, at the time of the surgery, the method proposes an interactive-rate supervisory control-style scheme in which a haptic device is used by the surgeon to input a desired tip position for the robot in the patient. Leveraging a nearest-neighbor data structure, the vertex in the roadmap that corresponds to the configuration with the robot’s tip closest to the desired position is then identified. Graph search is performed to identify a path on the roadmap from the current configuration to that configuration, and then the method “steps off” of the roadmap and leveraging damped least-squares iterative inverse kinematics <sup id="fnref:20"><a href="#fn:20" class="footnote" rel="footnote" role="doc-noteref">7</a></sup><sup id="fnref:21"><a href="#fn:21" class="footnote" rel="footnote" role="doc-noteref">8</a></sup>, which is conceptually very similar to resolved-rates control, drives the tip of the robot as close to the desired tip position as it can. This then repeats in a loop.</p>

<p>In our paper<sup id="fnref:22"><a href="#fn:22" class="footnote" rel="footnote" role="doc-noteref">9</a></sup>, my group has built upon this concept in a few ways. Among other contributions, we adapt the concepts to work for tendon-driven continuum robots (<sup id="fnref:18:1"><a href="#fn:18" class="footnote" rel="footnote" role="doc-noteref">4</a></sup> and <sup id="fnref:19:1"><a href="#fn:19" class="footnote" rel="footnote" role="doc-noteref">5</a></sup> are specific to concentric tube robots), introduce a modification to mechanical modeling and collision detection to improve speed, and remove the need to have the environment in advance of precomputing the dense roadmap. The method still heavily leverages precomputation, but only requires the environment immediately prior to when the supervisory control loop is started.</p>

<h2 id="so-whats-next">So what’s next?</h2>
<p>What are the open problems or areas to be explored in motion planning for continuum robots? Here are a few that I’m personally excited about.</p>
<h3 id="leveraging-learned-models-in-planning">Leveraging learned models in planning</h3>
<p>There has recently been a large interest in machine learning-based mechanical models of continuum robots, both for their potential to learn unmodeled (or unknowable/unmodelable) effects and their potential for fast computation (e.g., frequently the shape computation of a learned model is faster than the physics-based equivalent). I’ll leave the details of these methods to another post, written by myself or someone else. However germane to THIS post, how to leverage these types of models for motion planning of continuum robots is as-yet underexplored.</p>

<h3 id="principled-planning-under-uncertainty">Principled planning under uncertainty</h3>
<p>Motion planning in a way that handles uncertainty in a principled way has been leveraged to great effect in other areas of robotics. Given the uncertainty associated with continuum robots, the application/exploration of using these types of methods/formulations in planning for continuum robots has great potential.</p>

<h3 id="multi-fidelity-planning">Multi-fidelity planning</h3>
<p>The fact that we have a variety of models for continuum robots that trade computation speed for accuracy implies exciting potential for the use of multi-fidelity planning. One can imagine, as maybe the most obvious example, using a fast but inaccurate model to prioritize edge evaluation in a lazy planning paradigm, look up Lazy PRM if that doesn’t make sense to you, where full edge evaluation is then done with a high-fidelity model.</p>

<h2 id="closing-remarks">Closing remarks</h2>
<p>Hopefully the above alongside last week’s <a href="/101/2023/06/23/intro-mp-part1.html">Part 1</a> were a relatively gentle introduction to motion planning and how it relates conceptually to continuum robots. This wasn’t intended to be a comprehensive survey of planning for continuum robots. Rather, my intention was to give you the vocabulary and an understanding of the rough concepts sufficient for you to investigate the rest of the literature yourself, and to innovate on the state-of-the-art as you need for your specific problems.</p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:15">
      <p>A. Kuntz, M. Fu, R. Alterovitz: Planning High-Quality Motions for Concentric Tube Robots in Point Clouds via Parallel Sampling and optimization. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 2205-2212, 2019. doi: <a href="https://doi.org/10.1109/IROS40897.2019.8968172">10.1109/IROS40897.2019.8968172</a> <a href="#fnref:15" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:15:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a> <a href="#fnref:15:2" class="reversefootnote" role="doc-backlink">&#8617;<sup>3</sup></a></p>
    </li>
    <li id="fn:16">
      <p>L. A. Lyons, R. J. Webster, R. Alterovitz: Motion planning for active cannulas. IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 801-806, 2009. doi: <a href="https://doi.org/10.1109/IROS.2009.5354249">10.1109/IROS.2009.5354249</a> <a href="#fnref:16" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:17">
      <p>K. Leibrandt, C. Bergeles, G.-Z. Yang: Concentric Tube Robots: Rapid, Stable Path-Planning and Guidance for Surgical Use. IEEE Robotics &amp; Automation Magazine, vol. 24, no. 2, pp. 42-53, 2017. doi: <a href="https://doi.org/10.1109/MRA.2017.2680546">10.1109/MRA.2017.2680546</a> <a href="#fnref:17" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:18">
      <p>L. G. Torres, C. Baykal,  R. Alterovitz: Interactive-rate motion planning for concentric tube robots. IEEE International Conference on Robotics and Automation (ICRA), pp. 1915-1921, 2014. doi: <a href="https://doi.org/10.1109/ICRA.2014.6907112">10.1109/ICRA.2014.6907112</a> <a href="#fnref:18" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:18:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:19">
      <p>L. G. Torres et al.: A motion planning approach to automatic obstacle avoidance during concentric tube robot teleoperation. IEEE International Conference on Robotics and Automation (ICRA), pp. 2361-2367, 2015. doi: <a href="https://doi.org/10.1109/ICRA.2015.7139513">10.1109/ICRA.2015.7139513</a> <a href="#fnref:19" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:19:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:7">
      <p>S. Karaman and E. Frazzoli: Sampling-based algorithms for optimal motion planning. The International Journal of Robotics Research, 30(7):846-894, 2011. doi: <a href="https://doi.org/10.1177/0278364911406761">10.1177/0278364911406761</a> <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:20">
      <p>Y. Nakamura and H. Hanafusa: Inverse Kinematic Solutions With Singularity Robustness for Robot Manipulator Control. ASME. J. Dyn. Sys., Meas., Control., 108(3):163–171, 1986. doi: <a href="https://doi.org/10.1115/1.3143764">10.1115/1.3143764</a> <a href="#fnref:20" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:21">
      <p>C. W. Wampler: Manipulator Inverse Kinematic Solutions Based on Vector Formulations and Damped Least-Squares Methods. IEEE Transactions on Systems, Man, and Cybernetics, 16(1):93-101, 1986. doi: <a href="https://doi.org/10.1109/TSMC.1986.289285">10.1109/TSMC.1986.289285</a> <a href="#fnref:21" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:22">
      <p>M. Bentley, C. Rucker, A. Kuntz: Interactive-Rate Supervisory Control for Arbitrarily-Routed Multitendon Robots via Motion Planning. IEEE Access, vol. 10, pp. 80999-81019, 2022. doi: <a href="https://doi.org/10.1109/ACCESS.2022.3194515">10.1109/ACCESS.2022.3194515</a> <a href="#fnref:22" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Alan Kuntz</name></author><category term="101" /><summary type="html"><![CDATA[What makes motion planning particularly challenging for continuum robots? How does the continuum robotics community tackle those challenges?]]></summary></entry><entry><title type="html">Introduction to Motion Planning for Continuum Robots - Part 1</title><link href="https://www.opencontinuumrobotics.com/101/2023/06/23/intro-mp-part1.html" rel="alternate" type="text/html" title="Introduction to Motion Planning for Continuum Robots - Part 1" /><published>2023-06-23T00:00:00-04:00</published><updated>2023-06-23T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/101/2023/06/23/intro-mp-part1</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/101/2023/06/23/intro-mp-part1.html"><![CDATA[<p>First though.. <strong>What is motion planning?</strong></p>

<p>Motion planning stands as a central pillar in robotics. Planning enables robots and autonomous agents to move themselves and other parts of the world to a desired goal by choosing a sequence of appropriate actions. Like robotics in general, motion planning draws on a number of different fields in developing its tools. Approaches to motion planning have grown out of artificial intelligence, optimal control, and operations research.</p>

<p>That’s the first paragraph of my motion planning course syllabus. It’s a bit… grandiose, but I’ve found it to be effective in convincing the students that they are about to learn something interesting; hopefully it worked on you as well. It was also written by the professor who taught the course before I did, and whose syllabus I used as a starting point for my own (on the shoulders of giants etc etc etc). If that was sufficiently dramatic and you’re convinced to keep reading, let’s get to it.</p>

<p>More colloquially, motion planning can be broadly defined as the problem of computing motions, actions, or controls that move a robot through its environment in such a way that some task is performed while obeying some set of constraints.</p>

<p>In its most basic form, that task can be defined as moving from some start configuration to some goal configuration, with typical constraints being defined as obstacle avoidance over the motion, obeying joint limits, etc. Complexity in task definitions and constraint definitions builds from there.</p>

<p>I personally like to present motion planning as a generic optimization problem and then look specifically at how aspects of that problem are defined. <strong>Be forewarned, I’m going to grossly abuse notation/terminology and ignore nuance all over this post with the goal of imparting intuition rather than specifics.</strong></p>

<p>Consider:</p>

<p>$\boldsymbol{\xi}^* = \underset{\boldsymbol{\xi}}{\texttt{argmin}}\  \texttt{cost}(\boldsymbol{\xi})$</p>

<p>$s.t. \ \ \ c(\boldsymbol{\xi}) \ge 0$
$\ \ \ \ \ \ \ \ d(\boldsymbol{\xi}) = 0$</p>

<p>where $\boldsymbol{\xi}$ represents some trajectory, path, or plan parameterization, $\texttt{cost}$ is some cost function defined over these, $\boldsymbol{\xi}^*$ is an optimal plan under the cost function, and $c$ and $d$ are generic, as-of-yet-unspecified inequality and equality constraints (or sets of such constraints).</p>

<p>This generic optimization formalization is sufficiently expressive to talk about most of the basics of motion planning, and by varying how aspects of this formalization are defined we can arrive at most of the ways people have historically thought about motion planning.</p>

<p>As an example, let’s consider the very simple (relative to other motion planning problems) task of moving a holonomic robot from some start state to some goal state while avoiding some set of obstacles in its environment.</p>

<p>If we conceptualize $\boldsymbol{\xi}$ as defining a space curve in the robot’s configuration space, we can parameterize $\boldsymbol{\xi}$ by the normalized path length such that $\boldsymbol{\xi}(0)$ is the robot’s start configuration and $\boldsymbol{\xi}(1)$ is the robot’s configuration after following the full plan.</p>

<p>Often people consider minimizing path length, so we can imagine defining $\texttt{cost}$ as the length of the path (under some appropriate definition of length).</p>

<p>We also want to <em>constrain</em> the trajectory such that the robot ends in a goal configuration (broadly as an element of some goal set), and such that the entire trajectory avoids obstacles.</p>

<p>We can then cast this simple problem into our optimization framework simply as:</p>

<p>$\boldsymbol{\xi}^* = \underset{\boldsymbol{\xi}}{\texttt{argmin}}\  \texttt{length}(\boldsymbol{\xi})$</p>

<p>$s.t. \ \ \ \boldsymbol{\xi}(0) = \textrm{start configuration}$</p>

<p>$\ \ \ \ \ \ \ \ \boldsymbol{\xi}(1) \in \textrm{goal set}$</p>

<p>$\ \ \ \ \ \ \ \ \boldsymbol{\xi}(s) \textrm{ is collision free } \forall s \in [0,1]$</p>

<p>As in most interesting things, key considerations lie in the details (which I’ve completely ignored above). How is your trajectory parameterized? How do you define your goal set? How do you represent your robot and environment geometry, enabling you to check for collision? Is length even the right objective to minimize? The answer to these questions depends on your specific problem/robot/etc. If I knew what this is for you, I’d just solve your problems myself and take all the credit.</p>

<p>Okay, so this is the first step—representing your problem. Next, let’s solve it.</p>

<h2 id="how-do-methods-typically-work">How do methods typically work?</h2>
<p>In my head I broadly group modern motion planning methods into three groups, discrete grid/lattice-based search methods, sampling-based methods, and optimization-based methods. There’s an implied fourth group, “other” or maybe “miscellany”, but I’m going to focus on the first three in this post.</p>

<figure class=""><img src="/assets/images/posts/101-motion-planning-intro-part1-Fig1.png" alt="" /><figcaption>
      We can parameterize a robot’s configuration space by its actuation variables. Consider here a (ridiculously over-) simplified case of a single-tube concentric tube robot (which makes it just a tube robot, really, nothing concentric about it). We can actuate this robot by translating it in and out of its rectangular base, and by rotating it. A configuration can then be described as a point in this plane where one axis represents the translational value and one the rotational value. In practice, this space will be higher dimensional. For instance, a two-tube concentric tube robot would probably have a 4-dimensional space, two rotational and two translational, and a three-tube robot a 6-dimensional space, etc. It is in this space, which you can think about as the parameterized configuration space, that motion planning frequently happens.

    </figcaption></figure>

<h2 id="discrete-gridlattice-based-search-methods">Discrete grid/lattice-based search methods</h2>
<p>At their simplest, these methods consider a graph or tree (which is just a special kind of graph) embedded in the robot’s configuration space. If you are unsure what I mean by “graph or tree” stop now and read <a href="https://en.wikipedia.org/wiki/Graph_%28abstract_data_type%29">this</a> and <a href="https://en.wikipedia.org/wiki/Tree_%28data_structure%29">this</a> before moving on.</p>

<p>Notably for these methods, the graph is usually implied by a <em>discretization</em> over the robot’s possible actions. Imagine vertices of the graph as representing configurations or states of the robot, and edges as actions between states, which when applied from the source state result in the robot transitioning to the destination state. This action discretization is frequently defined in advance (and you can imagine applying this concept to robot’s with continuous action spaces simply by discretizing those action spaces). Due to the constant discretization, you can conceptualize these as creating something like a grid or lattice as the graph.</p>

<p>With this conceptualization, motion planning then reduces to a <em>search</em> over that graph, seeking the “shortest” path from your start vertex to any vertex that represents a goal configuration or state.</p>

<figure class=""><img src="/assets/images/posts/101-motion-planning-intro-part1-Fig2.png" alt="" /><figcaption>
      In the discrete grid/lattice-based search methods, we can conceptualize something like this grid-shaped graph embedded in the configuration space. Some of this graph may correspond to configurations where the robot’s shape collides with obstacles, such as this red volume which represents configurations where the tube is colliding with that liver there. (It’s a liver. Don’t ask me where it came from, I don’t make the rules. Regardless, we don’t want to run into it with our robot). If we have a start and goal configuration that are on this graph, or that we can easily connect to this graph, then we can run a graph search algorithm on this graph which, if we do it correctly, will return for us a collision free path (shown here in pink). Note: In these figures I’ve drawn a configuration space obstacle that corresponds to the liver obstacle in the robot’s workspace. This is just an example. This drawing is NOT what the configuration space obstacle would actually look like. In fact, in general it is infeasible to fully describe the configuration space obstacles. Many of the motion planning methods I describe here were designed in part to overcome this very issue.

    </figcaption></figure>

<p>How does this map back to our optimization formalization above? The cost function is minimized by applying a graph-search method that minimizes the accumulation of edge cost (so you need to define a cost over edges and recognize that without substantial modification you’re limited to considering objectives that can be modeled by costs that accumulate). The constraints are enforced simply by not considering edges that would result in a violation of the constraints during the search.</p>

<p>Cannonical graph search methods (not specific to motion plannning) include <a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Practical_optimizations_and_infinite_graphs">Uniform Cost Search (UCS)</a> (closely related to <a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Djikstra’s algorithm</a>) and <a href="https://en.wikipedia.org/wiki/A*_search_algorithm">A* search</a>.</p>

<p>The key to applying these methods in motion planning is frequently in coming up with an effective and admissible/consistent heuristic (see A* details for what that means). More advanced methods applied to motion planning specifically include D*<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>, D*-Lite<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>, and LPA*<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup>.
It’s also very much worth noting that inadmissible heuristics can also be leveraged to potentially great effect (see Multi-Heuristic A*<sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup>).</p>

<h2 id="sampling-based-methods">Sampling-based methods</h2>
<p>Perhaps the most popular class of motion planning methods, the sampling-based approaches are closely related to the graph-search methods. In fact, these methods frequently leverage graph search but on a graph constructed in a different manner.</p>

<p>Rather than a graph constructed via a discretization over the robot’s actions, the sampling-based methods leverage <em>random sampling</em> to construct the graph incrementally (this is why they are called sampling-based, as you may have guessed). The graph (or tree, which again, is just a special kind of graph) is embedded in the robot’s configuration space as above. It is constructed by iteratively randomly sampling states (or actions, sometimes) and attempting to connect the newly sampled state (or state resulting from the sampled action) to the graph/tree.</p>

<p>When adding states, (usually) the new state and the edge connecting it to the graph are checked for validity (e.g., joint-limit satisfaction and obstacle avoidance). If the state and/or edge are not valid, they aren’t added to the graph.</p>

<p>At some point, the hope is that the graph will contain a goal state, and then by running graph search (e.g., A*) on this randomly-generated graph the method will find a path from the start state to a goal. If the graph is a tree, this search is trivial as there’s only one path in the graph (ignoring some nuance, that’s what tree means).</p>

<figure class=""><img src="/assets/images/posts/101-motion-planning-intro-part1-Fig3.png" alt="" /><figcaption>
      In the sampling-based methods, the graph (or tree) is constructed in the configuration space via random sampling. It will almost certainly have a much different structure than the grid/lattice graphs will, and subsequently the algorithms will exhibit different properties.

    </figcaption></figure>

<p>The specifics of the graph, how the states/actions are sampled, how the connections are made, etc., are what distinguish the sampling-based methods from each other.</p>

<p>Okay, so let’s map these concepts back to our optimization formulation.</p>

<p><strong>Cost:</strong> If there are multiple paths in the graph, then the graph search over the graph can provide the lowest cost path in the graph, however the lowest cost path <em>possible</em> may not be in the graph at any given iteration. Many of the earlier versions of these methods ignored cost and instead attempted to find any path that avoided obstacles, providing a property called probabilistic-completeness. Since then, other methods build upon this to provide a guarantee called asymptotic optimality, which intuitively means that their best path will approach an optimal path (in cost) as runtime progresses (only getting arbitrarily close to an optimal path in the limit though). This contrasts with the discrete grid/lattice-based search methods in that those methods typically only provide a property called resolution completeness/optimality which intuitively means the path is complete or optimal for the resolution of the discretization, but not necessarily in general.</p>

<p><strong>Constraints:</strong> As with the discrete grid/lattice-based search methods, the sampling-based methods usually encode constraint satisfaction by only considering states/edges in the graph construction or search that satisfy the constraints, including obstacle avoidance.</p>

<p>Canonical probabilistically-complete methods include Probabilistic Roadmaps (PRM)<sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup> and Rapidly-exploring Random Trees (RRT)<sup id="fnref:6"><a href="#fn:6" class="footnote" rel="footnote" role="doc-noteref">6</a></sup>. Popular asymptotically-optimal methods include PRM*/RRT*<sup id="fnref:7"><a href="#fn:7" class="footnote" rel="footnote" role="doc-noteref">7</a></sup>, Batch-Informed Trees (BIT)<sup id="fnref:8"><a href="#fn:8" class="footnote" rel="footnote" role="doc-noteref">8</a></sup>, and Asymptotically-Optimal-RRT (AO-RRT)<sup id="fnref:9"><a href="#fn:9" class="footnote" rel="footnote" role="doc-noteref">9</a></sup>.</p>

<p class="notice--danger"><strong><em>Super-duper important point!</em></strong> Just because you’re using sampling-based methods does not mean you’re getting probabilistic completeness or asymptotic optimality. There are properties/assumptions you must satisfy in your specific application of these methods that are frequently nuanced, you’ll need to ensure that you satisfy these things. Read the papers detailing these methods for details!</p>

<h2 id="optimization-based-methods">Optimization-based methods</h2>
<p>Given the formulation we started with, i.e., casting the motion planning problem as constrained optimization, you may be asking yourself: “wait, why don’t we just use optimization methods from, you know, <em>mathematics</em>, to solve this problem?” Great question! Enter the optimization-based motion planning methods.</p>

<p>This class of methods leverages nonlinear, constrained optimization methods from the field of optimization itself explicitly to solve the motion planning problem using variations of our above formulation—rather than relying on the graph-search to minimize cost.</p>

<p>As of now, the majority of these methods (with an exception mentioned below) leverage gradients (and frequently higher-order derivatives) of the objective function and/or of the constraint functions in iterative optimization methods. Think penalty methods, augmented Lagrangian methods, interior point methods, etc. If these concepts are new to you, there is an amazing textbook on the subject by Wright and Nocedal <sup id="fnref:10"><a href="#fn:10" class="footnote" rel="footnote" role="doc-noteref">10</a></sup> that is open almost perpetually in my office.</p>

<p>At a high level there isn’t much more to the story. These methods take exactly the optimization-based formulation above and apply optimization techniques that work directly on such formulations.</p>

<figure class=""><img src="/assets/images/posts/101-motion-planning-intro-part1-Fig4.png" alt="" /><figcaption>
      Potentially abandoning the notion of a graph entirely, the optimization-based methods instead frequently parameterize a curve in the configuration space that connects the start and goal. Here that initial parameterization is just an evenly spaced set of configurations in between the start and goal, without consideration of the obstacles. These methods then leverage numerical optimization to minimize an objective while ensuring constraint satisfaction (such as by bringing the path out of regions of the space that collide with obstacles, a process here represented by the blue arrows).

    </figcaption></figure>

<p>Is it just that easy? Unfortunately, no. The prior paragraph is true at a high level, but the low level is where the details lie. The specific ways in which these methods define cost and their constraint functions such that they work well with the optimization techniques—e.g., ensuring they have gradients that are well-behaved—can make these methods a bit tricky to use in practice. However in many cases they end up working very, very well, which can make it worth the complexity.</p>

<p>Canonical methods include CHOMP<sup id="fnref:11"><a href="#fn:11" class="footnote" rel="footnote" role="doc-noteref">11</a></sup>, which leverages a variation of gradient descent, and TrajOpt<sup id="fnref:12"><a href="#fn:12" class="footnote" rel="footnote" role="doc-noteref">12</a></sup> which leverages Sequential Quadratic Programming (SQP). A different method, that is not nearly as popular as those methods, combines sampling-based planning with interior point optimization<sup id="fnref:13"><a href="#fn:13" class="footnote" rel="footnote" role="doc-noteref">13</a></sup>. I include it in this list because it was part of yours truly’s PhD work, and so here is a shameless plug.</p>

<p>There is also a method called Cross-Entropy Motion Planning (CEMP)<sup id="fnref:14"><a href="#fn:14" class="footnote" rel="footnote" role="doc-noteref">14</a></sup> that leverages a gradient-free optimization method (the cross-entropy method, as you may have guessed from the name). This is notable because many difficulties one may encounter in leveraging optimization-based methods may come from the gradients, or lack-thereof.</p>

<p class="notice--success">This concludes Part 1 of my introduction to motion planning for continuum robots. In next week’s <a href="/101/2023/06/28/intro-mp-part2.html">Part 2</a> we will look at the challenges of motion planning for continuum robots. Stay tuned!</p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>A. Stentz: Optimal and Efficient Path Planning for Partially-Known Environments. IEEE International Conference on Robotics and Automation, pp: 3310–3317, 1994. doi: <a href="https://doi.org/10.1109/ROBOT.1994.351061">10.1109/ROBOT.1994.351061</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2">
      <p>S. Koenig, M. Likhachev: Fast Replanning for Navigation in Unknown Terrain. Transactions on Robotics, 21(3):354–363, 2005. doi: <a href="https://doi.org/10.1109%2Ftro.2004.838026">10.1109/tro.2004.838026</a> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3">
      <p>S. Koenig, M. Likhachev, D. Furcy: Lifelong Planning A*. Artificial Intelligence, 155(1–2):93–146, 2004. doi: <a href="https://doi.org/10.1016/j.artint.2003.12.001">10.1016/j.artint.2003.12.001</a> <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>S. Aine, S. Swaminathan, V. Narayanan, V. Hwang, M. Likhachev: Multi-heuristic A*. The International Journal of Robotics Research, 35(1-3): 224-243, 2016. doi: <a href="https://doi.org/10.1177/0278364915594029">10.1177/0278364915594029</a> <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5">
      <p>L.E. Kavraki, P. Svestka, J.C. Latombe, M.H. Overmars: Probabilistic roadmaps for path planning in high-dimensional configuration spaces. IEEE Transactions on Robotics and Automation,  12(4):566-580, 1996. doi: <a href="https://doi.org/10.1109/70.508439">10.1109/70.508439</a> <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:6">
      <p>S.M. LaValle and  J.J. Kuffner Jr: Randomized kinodynamic planning. The International Journal of Robotics Research, 20(5):378-400, 2001. doi: <a href="https://doi.org/10.1177/02783640122067453">10.1177/02783640122067453</a> <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:7">
      <p>S. Karaman and E. Frazzoli: Sampling-based algorithms for optimal motion planning. The International Journal of Robotics Research, 30(7):846-894, 2011. doi: <a href="https://doi.org/10.1177/0278364911406761">10.1177/0278364911406761</a> <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8">
      <p>J.D. Gammell, T.D. Barfoot, S.S. Srinivasa: Batch Informed Trees (BIT*): Informed asymptotically optimal anytime search. The International Journal of Robotics Research, 39(5):543-567, 2020. doi: <a href="https://doi.org/10.1177/0278364919890396">10.1177/0278364919890396</a> <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:9">
      <p>K. Hauser, Y. Zhou: Asymptotically optimal planning by feasible kinodynamic planning in a state–cost space. IEEE Transactions on Robotics, 32(6):1431-1443, 2016. doi: <a href="https://doi.org/10.1109/TRO.2016.2602363">10.1109/TRO.2016.2602363</a> <a href="#fnref:9" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:10">
      <p>J. Nocedal and S. Wright: Numerical optimization. Springer-Verlag New York, 2006. doi: <a href="https://doi.org/10.1007/978-0-387-40065-5">10.1007/978-0-387-40065-5</a> <a href="#fnref:10" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:11">
      <p>M. Zucker, N. Ratliff, A.D. Dragan, M. Pivtoraiko, M. Klingensmith, C.M. Dellin, J.A. Bagnell, S.S. Srinivasa: Chomp: Covariant hamiltonian optimization for motion planning. The International Journal of Robotics Research, 32(9-10):1164-1193, 2013. doi: <a href="https://doi.org/10.1177/0278364913488805">10.1177/0278364913488805</a> <a href="#fnref:11" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:12">
      <p>J. Schulman, Y. Duan, J. Ho, A. Lee, I. Awwal, H. Bradlow, J. Pan, S. Patil, K. Goldberg, P. Abbeel: Motion planning with sequential convex optimization and convex collision checking. The International Journal of Robotics Research, 33(9):1251-1270, 2014. doi: <a href="https://doi.org/10.1177/0278364914528132">10.1177/0278364914528132</a> <a href="#fnref:12" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:13">
      <p>A. Kuntz, C. Bowen, R. Alterovitz: Fast anytime motion planning in point clouds by interleaving sampling and interior point optimization. Robotics Research: The 18th International Symposium ISRR, pp. 929-945, 2019. doi: <a href="https://doi.org/10.1007/978-3-030-28619-4_63">10.1007/978-3-030-28619-4_63</a> <a href="#fnref:13" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:14">
      <p>M. Kobilarov: Cross-entropy motion planning. The International Journal of Robotics Research, 31(7):855-871, 2012. doi: <a href="https://doi.org/10.1177/0278364912444543">10.1177/0278364912444543</a> <a href="#fnref:14" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Alan Kuntz</name></author><category term="101" /><summary type="html"><![CDATA[A quick introduction to motion planning, how to represent the problem, and what methods exist to solve it.]]></summary></entry><entry><title type="html">Continuum Robots @ICRA23</title><link href="https://www.opencontinuumrobotics.com/research/2023/05/12/icra2023-cr-highlights.html" rel="alternate" type="text/html" title="Continuum Robots @ICRA23" /><published>2023-05-12T00:00:00-04:00</published><updated>2023-05-12T00:00:00-04:00</updated><id>https://www.opencontinuumrobotics.com/research/2023/05/12/icra2023-cr-highlights</id><content type="html" xml:base="https://www.opencontinuumrobotics.com/research/2023/05/12/icra2023-cr-highlights.html"><![CDATA[<p>This year’s <a href="https://www.icra2023.org">IEEE International Conference on Robotics and Automation</a> holds a firework of continuum robotics research! Are you getting ready for the conference and creating your itineary? The following presentations, workshops, and papers are on my list this year. You can find the full conference <a href="https://ras.papercept.net/conferences/conferences/ICRA23/program">program</a> online!</p>

<h2 id="keynotes">Keynotes</h2>
<p>My keynote presentation at this year’s ICRA is all about the <a href="https://www.opencontinuumrobotics.com">Open Continuum Robotics Project</a>.</p>

<h3 id="accelerating-medical-robotics-innovation-with-the-open-continuum-robotics-project">Accelerating Medical Robotics Innovation with the Open Continuum Robotics Project</h3>
<p class="notice">Tuesday, 17:00 - 18:30 - Healthcare Robotics</p>

<p><strong>Speaker:</strong> Jessica Burgner-Kahrs</p>

<p><strong>Abstract:</strong> From robotically steered catheters and bronchoscopes to single port flexible instruments, continuum robotics has led to great advances in medical robotics over the past decade. Yet, research findings remain stubbornly difficult to reproduce because continuum robotics hardware and software are not readily available, and no common systems exist. Ultimately this slows the pace of innovation.</p>

<p>The Open Continuum Robotics Project combines hardware, software, and education with the goal of fostering more collaborative, cost-effective, and reproducible research. This enables rapid prototyping and iterative design, allowing researchers and clinicians to test and refine their ideas more quickly – including in resource-constrained settings. In this way, the Open Continuum Robotics Project accelerates the development of new technologies and treatments in medical robotics.</p>

<h2 id="workshop-and-tutorials">Workshop and Tutorials</h2>
<p>ICRA 2023 features an incredible rich set of workshops and tutorials this year, which makes it very hard to choose which one to attend (or when to rush from one room to the next #FOMO). The following ones feature aspects of continuum robotics and are worth a look!</p>

<h3 id="monday">Monday</h3>
<ul>
  <li>MW02: <a href="https://www.growing-robots.com/">Soft Growing Robots: From Search-and-Rescue to Intraluminal Interventions</a></li>
  <li>MW05: <a href="https://www.santannapisa.it/en/icra-2023-workshop-small-scale-medical-robots">Shrinking the Cutting Edge: Making Small-Scale Medical Robots for Humans</a></li>
  <li>MW10: <a href="https://www.origabot.cnrs.fr/workshop-icra-2023/">Origami-based structures for designing soft robots with new capabilities</a></li>
</ul>

<h3 id="friday">Friday</h3>
<ul>
  <li>FW12: <a href="https://www.mirmi.tum.de/mirmi/events/icra-2023-workshop/">Geometric Representations: The Roles of Screw Theory, Lie algebra, &amp; Geometric Algebra</a></li>
  <li>FW16: <a href="https://soft-robotics-workshop.bitbucket.io">Soft Robotics: Fusing function with structure</a></li>
  <li>FW22: <a href="https://sites.google.com/view/icra2023ws-force-shape/home">Force and shape perception for surgical instruments and robots</a></li>
  <li>FT29: <a href="http://www.softrobotictoolbox.org">Towards an accessible soft robotics toolbox and validation test rig</a></li>
</ul>

<h2 id="talks">Talks</h2>
<p>The majority of oral presentations of ICRA 2023 are adressing continuum robot modeling, with a focus on kinetostatics and dynamics using Cosserat theory and optimal control theory. It is fantastic to see a trend towards open toolboxes and knowledge mobilization! There are also some exciting soft continuum robot designs!</p>

<h3 id="fea-based-soft-robotic-modeling-simulating-a-soft-actuator-in-sofa-i">FEA-Based Soft Robotic Modeling: Simulating a Soft-Actuator in SOFA (I)</h3>
<p class="notice">09:50-10:00, Paper TuAT2.9</p>

<p><strong>Authors:</strong> Ferrentino, Pasquale; Roels, Ellen; Brancart, Joost; Terryn, Seppe	; Van Assche, Guy; Vanderborght, Bram</p>

<p><strong>Abstract:</strong> Soft robotics modeling is a research topic that is evolving fast. Many techniques are present in literature but most of them require analytical models with a lot of equations that are time-consuming, hard to resolve, and not so easy to handle. For this reason, the help of a soft mechanics simulator is essential in this field. In fact, this paper presents a tutorial on how to build a soft-robot model using an open-source Finite Element Analysis (FEA) simulator, called SOFA. This software is able to generate a simulation scene from a code written in Python or XML, so it can be used by people that with different fields of competence like mechanical knowledge, knowledge of material properties and programming skills. As a case study, a Python simulation of a cable-driven soft actuator that makes contact with a rigid object is considered. The basic working principles of SOFA required to make a scene are explained step by step. In particular, it shows how to simulate the mechanics and animate the bending behavior of the actuator. Furthermore, it will be shown also how to retrieve and save data from simulation, demonstrating that SOFA can easily adapt to a multi-disciplinary subject as the research in soft-robotics, but also be useful for teaching simulation and programming language principles to engineering students.</p>

<h3 id="sorosim-a-matlab-toolbox-for-hybrid-rigid-soft-robots-based-on-the-geometric-variable-strain-approach-i">SoRoSim: A MATLAB Toolbox for Hybrid Rigid-Soft Robots Based on the Geometric Variable-Strain Approach (I)</h3>
<p class="notice">15:40-15:50, Paper TuBT2.5</p>

<p><strong>Authors:</strong> Mathew, Anup Teejo; Ben Hmida, Ikhlas; Armanini, Costanza; Boyer, Frédéric; Renda, Federico</p>

<p><strong>Abstract:</strong> Soft robotics has been a trending topic within the robotics community for almost two decades. However, available tools for the modeling and analysis of soft robots are still limited. This paper introduces a user-friendly MATLAB toolbox, SoRoSim, that integrates the Geometric Variable Strain model of Cosserat rods to facilitate the static and dynamic analysis of soft, rigid, or hybrid robotic systems. We present a brief overview of the design and structure of the toolbox and validate it by comparing its results with those published in the literature. To highlight the toolbox’s potential to efficiently model, simulate, optimize, and control various robotic systems, we demonstrate four sample applications. The demonstrated applications explore different actuator and external loading conditions of single-, branched-, open-, and closed-chain robotic systems. We think that the soft-robotics research community will significantly benefit from the SoRoSim toolbox for a wide variety of applications.</p>

<h3 id="a-geometrically-exact-assumed-strain-modes-approach-for-the-geometrico-and-kinemato-static-modellings-of-continuum-parallel-robots-i">A Geometrically-Exact Assumed Strain Modes Approach for the Geometrico and Kinemato-Static Modellings of Continuum Parallel Robots (I)</h3>
<p class="notice">15:50-16:00, Paper TuBT2.6</p>

<p><strong>Authors:</strong> Briot, Sébastien; Boyer, Frédéric</p>

<p><strong>Abstract:</strong> There is a growing interest on the study of continuum parallel robots (CPRs) due to their higher stiffness and better dynamics capacities than serial continuum robots (SCRs). Several works have focused on the computation of their geometrico- and kinemato-static models, that can be sorted into two main categories: (i) models based on the continuous Cosserat equations: They are very accurate but assessing elastic stability with them is tricky; (ii) discretized models: They allow easily checking the elastic stability but they require a large number of elastic variables to be accurate.
In this paper, we extend an approach based on assumed strain modes developed for the dynamics of SCRs to the statics of CPRs. This method is able to predict the robot configuration with an excellent accuracy with a very limited number of elastic variables, contrary to other discretization methods. The method is also more than 100 times faster than finite differences for a better prediction accuracy. Finally, it is possible to assess the robot elastic stability by only checking the Hessian of the potential energy as for any discretization method, thus making the analysis of this property simpler.</p>

<h3 id="towards-a-physics-based-model-for-steerable-eversion-growing-robots">Towards a Physics-Based Model for Steerable Eversion Growing Robots</h3>
<p class="notice">16:00-16:10, Paper TuBT2.7</p>

<p><strong>Authors:</strong> Wu, Zicong; De Iturrate Reyzabal, Mikel; Sadati, Seyedmohammadhadi; Liu, Hongbin; Ourselin, Sebastien; Leff, Daniel Richard; Katzschmann, Robert Kevin; Rhode, Kawal; Bergeles, Christos</p>

<p><strong>Abstract:</strong> Soft robots that grow through eversion/apical extension can effectively navigate fragile environments such as ducts and vessels inside the human body. This letter presents the physics based model of a miniature steerable eversion growing robot. We demonstrate the robot’s growing, steering, stiffening and interaction capabilities. The interaction between two robot-internal components is explored, i.e., a steerable catheter for robot tip orientation, and a growing sheath for robot elongation/retraction. The behavior of the growing robot under different inner pressures and external tip forces is investigated. Simulations are carried out within the SOFA framework. Extensive experimentation with a physical robot setup demonstrates agreement with the simulations. The comparison demonstrates a mean absolute error of 10–20% between simulation and experimental results for curvature values, including catheter-only experiments, sheath-only experiments and full system experiments. To our knowledge, this is the first work to explore physics-based modelling of a tendon-driven steerable eversion growing robot. While our work is motivated by early breast cancer detection through mammary duct inspection and uses our MAMMOBOT robot prototype, our approach is general and relevant to similar growing robots.</p>

<h3 id="statics-and-dynamics-of-continuum-robots-based-on-cosserat-rods-and-optimal-control-theories-i">Statics and Dynamics of Continuum Robots Based on Cosserat Rods and Optimal Control Theories (I)</h3>
<p class="notice">16:20-16:30, Paper TuBT2.9</p>

<p><strong>Authors:</strong> Boyer, Frédéric; Lebastard, Vincent; Candelier, Fabien; Renda, Federico; Alamir, Mazen</p>

<p><strong>Abstract:</strong> This paper explores the relationship between optimal control and Cosserat beam theory from the perspective of solving the forward and inverse dynamics (and statics as a subcase) of continuous manipulators and snake-like bio-inspired locomotors. By invoking the principle of minimum potential energy, and the Gauss principle of least constraint, it is shown that the quasi-static and dynamic evolution of these robots, are solutions of optimal control problems (OCPs) in the space variable, which can be solved at each step (of loading or time) of a simulation with the shooting method. In addition to offering an alternative viewpoint on several simulation approaches proposed in the recent past, the optimal control viewpoint allows us to improve some of them while providing a better understanding of their numerical properties. The approach and its properties are illustrated through a set of numerical examples validated against a reference simulator.</p>

<h3 id="cobra-from-industrial-to-medical-surgery-with-slender-continuum-robots-i">COBRA: From Industrial to Medical Surgery with Slender Continuum Robots (I)</h3>
<p class="notice">15:00-15:10, Paper WeBT2.1</p>

<p><strong>Authors:</strong> Alatorre, David; Robles-Linares, Jose A.; Russo, Matteo; Elbanna, Mohamed A.; Wild, Samuel; Dong, Xin; Mohammad, Abdelkhalick; Kell, James; Norton, Andy; Axinte, Dragos</p>

<p><strong>Abstract:</strong> The maintenance of critical industrial components is often hindered by limited access, tortuous passages, and complex geometries. In highly constrained environments, inspection tasks are currently performed with borescopes, but even skilled operators struggle with hard-to-reach targets and the limited mobility prevents in-situ repair when defects are identified. Thanks to an active shape control, snake-like and continuum robots can outperform borescopes for short range inspection as well as enable intervention. However, their actuation technology limits their scalability in length, as longer bodies pose control challenges due to their intrinsically low stiffness and space constraints. To overcome the limitations of both borescopes and continuum robots, we here propose a modular design at their intersection, with both active tendon-driven and passively flexible segments. The main elements of the novel design, including actuation and control interface, are described, and the system is demonstrated in scenarios for aerospace assets, nuclear installations, and robot-assisted surgery.</p>

<h3 id="a-generalized-framework-for-concentric-tube-robot-design-using-gradient-based-optimization-i">A Generalized Framework for Concentric Tube Robot Design Using Gradient-Based Optimization (I)</h3>
<p class="notice">10:10-10:20, Paper ThAT2.8</p>

<p><strong>Authors:</strong> Lin, Jui-Te;Girerd, Cedric; Yan, Jiayao; Hwang, John T.; Morimoto, Tania K.</p>

<p><strong>Abstract:</strong> Concentric tube robots (CTRs) show particular promise for minimally invasive surgery due to their inherent compliance and ability to navigate in constrained environments. Due to variations in anatomy among patients and variations in task requirements among procedures, it is necessary to customize the design of these robots on a patient- or population-specific basis. However, the complex kinematics and large design space make the design problem challenging. Here we propose a computational framework that can efficiently optimize a robot design and a motion plan to enable safe navigation through the patient’s anatomy. The current framework is the first fully gradient-based method for CTR design optimization and motion planning, enabling an efficient and scalable solution for simultaneously optimizing continuous variables, even across multiple anatomies. The framework is demonstrated using two clinical examples, laryngoscopy and heart biopsy, where the optimization problems are solved for a single patient and across multiple patients, respectively.</p>

<h3 id="magnetic-soft-continuum-robots-with-braided-reinforcement">Magnetic Soft Continuum Robots with Braided Reinforcement</h3>
<p class="notice">10:20-10:30, Paper ThAT2.9</p>

<p><strong>Authors:</strong> Lloyd, Peter Robert; Onaizah, Onaizah; Pittiglio, Giovanni; Chathuranga, Damith Suresh; Chandler, James Henry; Valdastri, Pietro</p>

<p><strong>Abstract:</strong> Flexible catheters are used in a wide variety of surgical interventions including neurological, pancreatic and cardiovascular. In many cases a lack of dexterity and miniaturization along with excessive stiffness results in large regions of the anatomy being deemed inaccessible. Soft continuum robots have the potential to mitigate these issues. Due to its enormous potential for miniaturization, magnetic actuation is of particular interest in this field. Currently, flexible magnetic catheters often rely on forces of anatomical interaction to generate large deformations during navigation and for soft anatomical structures this could be considered potentially damaging. In this study we demonstrate the insertion of a high aspect ratio, 50 mm long by 2 mm diameter, soft magnetic catheter capable of navigating up to a 180 degree bend without the aid of interactive forces. This magnetic catheter is reinforced with a lengthwise braided structure and its magnetization allows it to shape form along tortuous paths. We demonstrate our innovation in a planar silicone pancreas phantom. We also compare our approach with a mechanically equivalent tip driven magnetic catheter and with an identically magnetized, unreinforced catheter.</p>

<h3 id="kinetostatic-modeling-of-tendon-driven-parallel-continuum-robots-i">Kinetostatic Modeling of Tendon-Driven Parallel Continuum Robots (I)</h3>
<p class="notice">15:00-15:10, Paper ThBT5.1</p>

<p><strong>Authors:</strong> Lilge, Sven; Burgner-Kahrs, Jessica</p>

<p><strong>Abstract:</strong> Tendon-driven parallel continuum robots consist of multiple individual continuous kinematic chains, that are actuated in bending utilizing tendons routed along their backbones. This work derives and proposes a Cosserat rod based kinetostatic modeling framework for such parallel structures that allows for efficiently solving the forward, inverse and velocity kinetostatic problems. Using this model, the kinematic properties such as reachable workspace, singularities, manipulability and compliance of tendon-driven parallel continuum robots are studied in detail. Experiments are conducted using a real robotic prototype to validate the derived modeling approach. Overall, a median pose accuracy of 4.9 mm, corresponding to 3.4% of the continuum robots’ lengths, and 6.2◦ is achieved. The median of the model’s computation time results in 0.51 s on standard computing hardware. Fast computations of below 100 ms can be achieved, if an appropriate initial guess for solving the kinetostatic model is available, making the model suitable for a range of different applications including optimization or control.</p>

<h2 id="posters">Posters</h2>
<p>The poster presentations at ICRA 2023 cover various aspects of (soft) continuum robots, including design, control, and sensing.</p>

<h3 id="a-soft-hybrid-actuated-continuum-robot-based-on-dual-origami-structures">A Soft Hybrid-Actuated Continuum Robot Based on Dual Origami Structures</h3>
<p class="notice">08:30-10:10, Paper TuPO1S-01.2</p>

<p><strong>Authors:</strong> Tao, Jian; Hu, Qiqiang; Luo, Tianzhi; Dong, Erbao</p>

<p><strong>Abstract:</strong> Soft continuum robots have shown tremendous potential for medical and industrial applications owing to their flexibility and continuous deformability. However, their telescopic and bending capabilities and variable stiffness are still limited. This study proposes a novel origami-inspired soft continuum robot to possess large telescopic and bending capabilities while improving stiffness based on the principle of antagonistic actuation. The soft robot consists of dual origami structures. The inner forms an air chamber actuated by pneumatics, and the outer is controlled by nine tendon-driven actuators. The proposed design uses the advantages of a hybrid actuation to achieve motion and stiffness control. The performance of the soft robot is studied experimentally based on single and three robot modules. Results show that the robot has an excellent stretch ratio and a maximum bending angle of 180°. The robot can also increase stiffness to resist the bending deformation induced by self-weight and loads.</p>

<h3 id="image-based-pose-estimation-and-shape-reconstruction-for-robot-manipulators-and-soft-continuum-robots-via-differentiable-rendering">Image-Based Pose Estimation and Shape Reconstruction for Robot Manipulators and Soft, Continuum Robots Via Differentiable Rendering</h3>
<p class="notice">Tuesday 08:30-10:10, Paper TuPO1S-01.6, Room T8</p>

<p><strong>Authors:</strong> Lu, Jingpei; Liu, Fei; Girerd, Cedric; Yip, Michael C.</p>

<p><strong>Abstract:</strong> State estimation from measured data is crucial for robotic applications as autonomous systems rely on sensors to capture the motion and localize in the 3D world. Among sensors that are designed for measuring a robot’s pose, or for soft robots, their shape, vision sensors are favorable because they are information-rich, easy to set up, and cost-effective. With recent advancements in computer vision, deep learning-based methods no longer require markers for identifying feature points on the robot. However, learning-based methods are data-hungry and hence not suitable for soft and prototyping robots, as building such bench-marking datasets is usually infeasible. In this work, we achieve image-based robot pose estimation and shape reconstruction from camera images. Our method requires no precise robot meshes, but rather utilizes a differentiable renderer and primitive shapes. It hence can be applied to robots for which CAD models might not be available or are crude. Our parameter estimation pipeline is fully differentiable. The robot shape and pose are estimated iteratively by back-propagating the image loss to update the parameters. We demonstrate that our method of using geometrical shape primitives can achieve high accuracy in shape reconstruction for a soft continuum robot and pose estimation for a robot manipulator.</p>

<h3 id="discrete-time-model-based-control-of-soft-manipulator-with-fbg-sensing">Discrete-Time Model Based Control of Soft Manipulator with FBG Sensing</h3>
<p class="notice">08:30-10:10, Paper TuPO1S-01.8</p>

<p><strong>Authors:</strong> Franco, Enrico; Aktas, Ayhan; Treratanakulchai, Shen; Garriga-Casanovas, Arnau; Donder, Abdulhamit; Rodriguez y Baena, Ferdinando</p>

<p><strong>Abstract:</strong> In this article we investigate the discrete-time model based control of a planar soft continuum manipulator with proprioceptive sensing provided by fiber Bragg gratings. A control algorithm is designed with a discrete-time energy shaping approach which is extended to account for control-related lag of digital nature. A discrete-time nonlinear observer is employed to estimate the uncertain bending stiffness of the manipulator and to compensate constant matched disturbances. Simulations and experiments demonstrate the effectiveness of the controller compared to a continuous time implementation.</p>

<h3 id="a-soft-robot-with-three-dimensional-shape-sensing-and-contact-recognition-multi-modal-sensing-via-tunable-soft-optical-sensors">A Soft Robot with Three Dimensional Shape Sensing and Contact Recognition Multi-Modal Sensing Via Tunable Soft Optical Sensors</h3>
<p class="notice">08:30-10:10, Paper TuPO1S-02.1</p>

<p><strong>Authors:</strong> McCandless, Max; Juliá Wise, Frank; Russo, Sheila</p>

<p><strong>Abstract:</strong> Soft optical sensing strategies are rapidly developing for soft robotic systems as a means to increase the controllability of soft compliant robots. In this paper, we present a roughness tuning strategy for the fabrication of soft optical sensors to achieve the dual functionality of shape sensing combined with contact recognition within a single multi-modal sensor. The molds used to fabricate the soft sensors are roughened via laser micromachining to achieve asymmetrical sensor responses when bent in opposite directions. We demonstrate the integration of these sensors into a fully soft robotic platform consisting of a multi-directional bending module with integrated 3D shape sensing and a gripper with tip position monitoring along with contact force recognition. We show the accuracy of our sensing strategy in validation experiments and a pick-andplace task is performed to demonstrate the robot’s functionality.</p>

<h3 id="on-tendon-driven-continuum-robots-with-compressible-backbones">On Tendon Driven Continuum Robots with Compressible Backbones</h3>
<p class="notice">08:30-10:10, Paper TuPO1S-03.7</p>

<p><strong>Authors:</strong> Srivastava, Manu; Walker, Ian</p>

<p><strong>Abstract:</strong> This paper discusses the effect of axial backbone compression on tendon-driven continuum robots. A new mechanics model for compensating for this effect that does not require tendon tension sensing or knowledge of manipulator material properties/stiffnesses is introduced and analyzed. In addition, we provide an analytical expression for the minimum preload on the tendons to achieve a given bend, a quantity determined empirically thus far. Our model is computationally efficient and achieves real time control on low cost hardware. The analysis is supported by experimental results demonstrating significant improvement over kinematics in open loop control of a tendon-driven continuum hose robot.</p>

<h3 id="data-driven-estimation-of-forces-along-the-backbone-of-concentric-tube-continuum-robots">Data-Driven Estimation of Forces Along the Backbone of Concentric Tube Continuum Robots</h3>
<p class="notice">Tuesday 15:00-16:40, Paper TuPO2S-02.6, Room T8</p>

<p><strong>Authors:</strong> Donat, Heiko; Mohammadi, Pouya; Steil, Jochen J.</p>

<p><strong>Abstract:</strong> Concentric tube continuum robots (CTCRs) belong to the family of continuum robots with applications in minimally invasive surgeries. Because of this application domain, measuring the external forces along the body of the robot is paramount. CTCRs are made up of thin elastic rods and are intended to be applied inside the human body, where conventional sensor-based measurements are not feasible. Consequently, research is resorting to estimate the forces through geometric, numeric, or optimization methods. However, these methods often suffer from slow convergence. In this paper, we introduce a novel data-driven approach for estimating contact forces along the body of a CTCR that offers an estimation precision comparable to the current state-of-the-art optimization-based approaches, but exhibits nearly two orders of magnitude faster convergence. The proposed method is scalable and exhibits a significant performance in response to a wide range of external forces. The approach was evaluated in simulations and on a real 2-tube CTCR.</p>

<h3 id="modeling-of-a-robotic-transcatheter-delivery-system">Modeling of a Robotic Transcatheter Delivery System</h3>
<p class="notice">09:00-10:40, Paper WePO1S-01.6</p>

<p><strong>Authors:</strong> Nayar, Namrata Unnikrishnan; Qi, Ronghuai; Desai, Jaydev P.</p>

<p><strong>Abstract:</strong> Intracardiac transcatheter systems guided by advanced imaging modalities are gaining popularity in treating mitral regurgitation in non-surgical candidates. Robotically steerable transcatheter systems must use model-based control strategies to ensure safer and more effective transcatheter procedures with less trauma while using smaller control gains. In this paper, a 4-DoF robotically steerable tendon-driven robot was fabricated, and the relationship between the tendon displacement and the joint angle was derived. This relation was derived in two parts to make this approach applicable to any other catheter system. A model was derived to determine the tendon tensions needed to achieve desired joint angles. Then, the tendon characteristics were studied, and a tendon elongation (TE) model was derived as a function of tendon length. Executing the modeling process in two steps makes it easy to introduce additional parameters like length, friction, and pose, to characterize complex systems like catheters. The TE model was used to actuate the joints of the robot and RMSE was computed to characterize its performance. Also, PID control was used along with the TE model to improve the system’s performance, and the contribution of the model and the controller in the system was recorded.</p>

<h3 id="a-novel-concentric-tube-steerable-drilling-robot-for-minimally-invasive-treatment-of-spinal-tumors-using-cavity-and-u-shape-drilling-techniques">A Novel Concentric Tube Steerable Drilling Robot for Minimally Invasive Treatment of Spinal Tumors Using Cavity and U-Shape Drilling Techniques</h3>
<p class="notice">09:00-10:40, Paper WePO1S-01.11</p>

<p><strong>Authors:</strong> Sharma, Susheela; Park, Ji Hwan; Amadio, Jordan P.; Khadem, Mohsen; Alambeigi, Farshid</p>

<p><strong>Abstract:</strong> In this paper, we present the design, fabrication, and evaluation of a novel flexible, yet structurally strong, Concentric Tube Steerable Drilling Robot (CT-SDR) to improve minimally invasive treatment of spinal tumors. Inspired by concentric tube robots, the proposed two degree-of-freedom (DoF) CT-SDR, for the first time, not only allows a surgeon to intuitively and quickly drill smooth planar and out-of-plane J- and U- shape curved trajectories, but it also, enables drilling cavities through a hard tissue in a minimally invasive fashion. We successfully evaluated the performance and efficacy of the proposed CT-SDR in drilling various planar and out-of-plane J-shape branch, U-shape, and cavity drilling scenarios on simulated bone materials.</p>

<h3 id="magnetic-ball-chain-robots-for-endoluminal-interventions">Magnetic Ball Chain Robots for Endoluminal Interventions</h3>
<p class="notice">09:00-10:40, Paper WePO1S-01.12</p>

<p><strong>Authors:</strong> Pittiglio, Giovanni; Mencattelli, Margherita; Dupont, Pierre</p>

<p><strong>Abstract:</strong> This paper introduces a novel class of hyperredundant robots comprised of chains of permanently magnetized spheres enclosed in a cylindrical polymer skin. With their shape controlled using an externally-applied magnetic field, the spherical joints of these robots enable them to bend to very small radii of curvature. These robots can be used as steerable tips for endoluminal instruments. A kinematic model is derived based on minimizing magnetic and elastic potential energy. Simulation is used to demonstrate the enhanced steerability of these robots in comparison to magnetic soft continuum robots designed using either distributed or lumped magnetic material. Experiments are included to validate the model and to demonstrate the steering capability of ball chain robots in bifurcating channels.</p>

<h3 id="model-based-pose-estimation-of-steerable-catheters-under-bi-plane-image-feedback">Model-Based Pose Estimation of Steerable Catheters under Bi-Plane Image Feedback</h3>
<p class="notice">09:00-10:40, Paper WePO1S-03.2</p>

<p><strong>Authors:</strong> Lawson, Jared; Chitale, Rohan; Simaan, Nabil</p>

<p><strong>Abstract:</strong> Small catheters undergo significant torsional deflections during endovascular interventions. A key challenge in enabling robot control of these catheters is the estimation of their bending planes. This paper considers approaches for estimating these bending planes based on bi-plane image feedback. The proposed approaches attempt to minimize error between either the direct (position-based) or instantaneous (velocity-based) kinematics with the reconstructed kinematics from bi-plane image feedback. A comparison between these methods is carried out on a setup using two cameras in lieu of a bi-plane fluoroscopy setup. The results show that the position-based approach is less susceptible to segmentation noise and works best when the segment is in a non-straight configuration. These results suggest that estimation of the bending planes can be accompanied with errors under 30◦. Considering that the torsional buildup of these catheters can be more than 180◦, we believe that this method can be used for catheter control with improved safety due to the reduction of this uncertainty.</p>

<h3 id="image-segmentation-for-continuum-robots-from-a-kinematic-prior">Image Segmentation for Continuum Robots from a Kinematic Prior</h3>
<p class="notice">09:00-10:40, Paper WePO1S-03.4</p>

<p><strong>Authors:</strong> Watson, Connor; Nguyen, Anna; Morimoto, Tania K.</p>

<p><strong>Abstract:</strong> In this work, we address the problem of robust segmentation of a continuum robot from images without the need for training data or markers. We present a method that leverages information about the kinematics of these robots to produce an estimate of the robot shape, which is refined through optimization over global image statistics. Our approach can be straightforwardly applied to any continuum robot design and is able to handle partial occlusions of the robot body, as well as challenging background conditions. We validate our method experimentally for a concentric tube robot in a simulated surgical environment and show that our method significantly outperforms a naive projection of the robot shape and color thresholding, which is commonly used in current vision-based estimation algorithms for these robots. Overall, this work has the potential to improve the viability of vision-based state estimation for continuum robots in real-world settings.</p>

<h3 id="an-equivalent-two-section-method-for-calculating-the-workspace-of-multi-segment-continuum-robots">An Equivalent Two Section Method for Calculating the Workspace of Multi-Segment Continuum Robots</h3>
<p class="notice">09:00-10:40, Paper ThPO1S-12.4</p>

<p><strong>Authors:</strong> Fan, Yeman; Liu, Dikai</p>

<p><strong>Abstract:</strong> Obtaining the shape and size of a robot’s workspace is essential for both its design and control. However, determining the accurate workspace of a multi-segment continuum robot by graphic or analytical methods is a challenging task due to its inherent flexibility and complex structure. Existing numerical methods have limitations when applied to a continuum robot. This paper presents an Equivalent Two Section (ETS) method for calculating the workspace of multi-segment continuum robots. This method is based on the forward kinematics and a piecewise constant curvature (PCC) model to determine the boundaries of the workspace. In order to verify the proposed method, simulation experiments are conducted using six different maximum bending angles and seven different number of segments. Results of the ETS method are compared to the true workspaces of these configurations estimated by an exhaustive approach. The results show that the proposed ETS method is both efficient and accurate, and has small estimation errors. Discussions on the advantages and limitations of the proposed ETS method are also presented.</p>

<h3 id="happarray-haptic-pneumatic-pouch-array-for-feedback-in-hand-held-robots">HaPPArray: Haptic Pneumatic Pouch Array for Feedback in Hand-Held Robots</h3>
<p class="notice">15:00-16:40, Paper ThPO2S-23.1</p>

<p><strong>Authors:</strong> Luo, Xiaolei; Lin, Jui-Te; Morimoto, Tania K.</p>

<p><strong>Abstract:</strong> Haptic feedback can provide operators of hand-held robots with active guidance during challenging tasks and with critical information on environment interactions. Yet for such haptic feedback to be effective, it must be lightweight, capable of integration into a hand-held form factor, and capable of displaying easily discernible cues. We present the design and evaluation of HaPPArray — a haptic pneumatic pouch array — where the pneumatic pouches can be actuated alone or in sequence to provide information to the user. A 3x3 array of pouches was integrated into a handle, representative of an interface for a hand-held robot. When actuated individually, users were able to correctly identify the pouch being actuated with 86% accuracy, and when actuated in sequence, users were able to correctly identify the associated direction cue with 89% accuracy. These results, along with a demonstration of how the direction cues can be used for haptic guidance of a medical robot, suggest that HaPPArray can be an effective approach for providing haptic feedback for hand-held robots.</p>]]></content><author><name>Jessica Burgner-Kahrs</name></author><category term="research" /><summary type="html"><![CDATA[A curated list of continuum robotics research presented]]></summary></entry></feed>