Suturing Tasks Automation Based on Skills Learned From Demonstrations: A Simulation Study

Haoying Zhou1,3, Yiwei Jiang1, Shang Gao1, Shiyue Wang3, Peter Kazanzides2,3 and Gregory S. Fischer1 This work was supported in part by NSF AccelNet award OISE-1927275 and OISE-192735.1Department of Robotics Engineering, Worcester Polytechnic Institute, Worcester, MA, USA. (Emails: hzhou6, yjiang5, sgao, gfischer@wpi.edu)2Department of Computer Science, Johns Hopkins University, Baltimore, MD, USA. (Email: pkaz@jhu.edu)3Laboratory for Computational Sensing and Robotics, Johns Hopkins University, Baltimore, MD, USA.
Abstract

In this work, we develop an open-source surgical simulation environment that includes a realistic model obtained by MRI-scanning a physical phantom, for the purpose of training and evaluating a Learning from Demonstration (LfD) algorithm for autonomous suturing. The LfD algorithm utilizes Dynamic Movement Primitives (DMP) and Locally Weighted Regression (LWR), but focuses on the needle trajectory, rather than the instruments, to obtain better generality with respect to needle grasps. We conduct a user study to collect multiple suturing demonstrations and perform a comprehensive analysis of the ability of the LfD algorithm to generalize from a demonstration at one location in one phantom to different locations in the same phantom and to a different phantom. Our results indicate good generalization, on the order of 91.5%, when learning from more experienced subjects, indicating the need to integrate skill assessment in the future.

I Introduction

Robotic surgery has revolutionized the field of medical science by providing surgeons with enhanced dexterity, visualization, and precision during minimally invasive procedures. In the recent two decades, the usage of surgical robots in hospitals has significantly increased [1]. As the technology becomes more widespread, there is an increasing need to improve task autonomy [2] for surgical robots to facilitate their use by clinicians.

For instance, the da Vinci® Surgical System (dVSS), one of the most widely adopted robotic platforms [3], has transformed surgical interventions, enabling complex procedures with improved patient outcomes. However, despite the remarkable capabilities of robotic systems, certain repetitive tasks, such as suturing, continue to demand significant manual intervention, which can impose cognitive load on surgeons and impact procedural efficiency.

Automating repetitive surgical tasks has emerged as a promising approach to alleviate the cognitive burden on surgeons, allowing them to focus on critical decision-making and enhancing patient care. In this regard, automating suturing has gained significant attention, aiming to reduce surgical time, enhance precision, and ensure consistent suture placement, thereby optimizing surgical outcomes.

In this paper, we present a method for automatic suturing path planning using the da Vinci Research Kit (dVRK) [4] in simulation with comprehensive analysis. Taking advantage of the Asynchronous Multi-Body Framework (AMBF) simulator [5, 6] that integrates seamlessly with dVRK and adding a phantom volume scanned by MRI, we construct a realistic simulation surgical scene to perform the suturing procedures for training the automation algorithms. Our approach leverages Learning from Demonstration (LfD) with Dynamic Movement Primitives (DMPs) [7, 8, 9] and Locally Weighted Regression (LWR) [10]. Also, we construct a user study to collect data from human subjects to train the robot on performing suturing tasks. Notably, this simulation scene allows us to have much higher flexibility for phantom and environment selections and overcome the restrictions on demonstration collection. Moreover, the simulation enables us to obtain the ground truth of objects for motion analysis and generality tests. Furthermore, the trained model is anticipated to be directly deployed to the physical dVRK, ensuring its practical applicability.

In summary, the contributions of this work are:

  • A novel and realistic simulation environment using an MRI-scanned phantom

  • A recording pipeline for suturing automation data collection in the simulation

  • A method to improve the generality of the LfD algorithm by selecting the suture needle as the learning object

  • A comprehensive assessment of generality by testing at different positions and with different phantoms

II Related Works

A series of researches have been done to push forward the effort on real-world bi-manual suturing tasks automation. Sen et al.[11] proposed the Suture Needle Angular Positioner (SNAP) to ensure a constant transformation between the robot manipulator and the suture needle so that it can facilitate the suturing automation procedure with sequential convex programming. The known transformation not only enables the researchers to regard the needle as an extended end-effector for calculating the kinematics, but also excludes the variance due to different needle grasps. On the other hand, the constant transformation restricts the generality of the algorithm. Varier et al. [12] first introduced Reinforcement Learning (RL) to accomplish the suturing automation. Nevertheless, Varier’s method requires to discretize the workspace of the robot which is a challenging task when implementing in real surgeries. Also, depending on the grid size, it might need tremendous computational power to enable the algorithm. Schwaner et al. [13, 14] presented a LfD algorithm prototype of suturing automation with DMPs using UR5 robot arms holding a da Vinci Large Needle Driver. Schwaner’s method integrates with computer-vision-based tracking and implements the algorithm on a real-world robot. Nevertheless, it collects demonstrations from the real world, which can be a challenging and time-consuming process. In addition, the complexity of collecting real-life demonstrations leads to greater difficulty when performing generality tests.

Due to the restrictions in the real world and ethical concerns, simulation environments have been developed to facilitate the process of obtaining demonstrations for LfD and medical training[5, 6, 15, 16, 17]. Collecting demonstrations from simulation can overcome some difficulties of obtaining ground truth when performing suturing tasks, such as suture needle tracking[18], and allows experimentation without risk. An ideal simulation can also optimize the experiment design by eliminating the random error due to the noise from the robot or the external environment and help to construct a better understanding of human motion patterns.

III Methodology

The following two sections present standard formulations of Dynamic Movement Primitives (DMP) and Locally Weighted Regression (LWR) as background information. These are followed by Section III-C, which describes the LfD pipeline that is based on the needle trajectory.

III-A Dynamic Movement Primitives

DMP[7, 8, 9, 19, 20, 21, 22] is a method for trajectory control and planning, which can represent complex motor actions without manual parameter tuning. In this work, we use discrete DMP to learn a point-to-point trajectory from a demonstration. Corresponding methodologies for position and orientation regeneration are shown in the following sections.

III-A1 Position

We utilize DMPs to encode Cartesian space robot position trajectories and generate the learning weights. DMPs can represent a movement trajectory with a group of second-order ordinary differential equations, as shown in Equation 1 [9]:

τ2y¨=αy(βy(gy)+τy˙)+f(x)τx˙=αxxsuperscript𝜏2¨𝑦subscript𝛼𝑦subscript𝛽𝑦𝑔𝑦𝜏˙𝑦𝑓𝑥𝜏˙𝑥subscript𝛼𝑥𝑥\begin{split}\tau^{2}\ddot{y}&=\alpha_{y}(\beta_{y}(g-y)+\tau\dot{y})+f(x)\\ \tau\dot{x}&=-\alpha_{x}x\end{split}start_ROW start_CELL italic_τ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¨ start_ARG italic_y end_ARG end_CELL start_CELL = italic_α start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_g - italic_y ) + italic_τ over˙ start_ARG italic_y end_ARG ) + italic_f ( italic_x ) end_CELL end_ROW start_ROW start_CELL italic_τ over˙ start_ARG italic_x end_ARG end_CELL start_CELL = - italic_α start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_x end_CELL end_ROW (1)

where y𝑦yitalic_y, which can also be represented as y(t)3𝑦𝑡superscript3y(t)\in\mathbb{R}^{3}italic_y ( italic_t ) ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, is the Cartesian space position of the robot system’s end effector at time t𝑡titalic_t; x𝑥xitalic_x is a system variable which initiates at 1 and diminishes to 0 over time; αxsubscript𝛼𝑥\alpha_{x}italic_α start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, αysubscript𝛼𝑦\alpha_{y}italic_α start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and βysubscript𝛽𝑦\beta_{y}italic_β start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT +absentsuperscript\in\mathbb{R}^{+}∈ blackboard_R start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT are the gain coefficients; g3𝑔superscript3g\in\mathbb{R}^{3}italic_g ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT is the goal position of the end effector; τ+𝜏superscript\tau\in\mathbb{R}^{+}italic_τ ∈ blackboard_R start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT is the time constant; and f(x)𝑓𝑥f(x)italic_f ( italic_x ) is the nonlinear forcing term represented by Equation 2. Regardless of how the gain coefficients are chosen, the robot system will always converge to g𝑔gitalic_g because the influence of f(x)𝑓𝑥f(x)italic_f ( italic_x ) will be ignored when x0𝑥0x\rightarrow 0italic_x → 0. This feature can ensure the stability of the system.

The nonlinear forcing term f(x)𝑓𝑥f(x)italic_f ( italic_x ) can be represented as[9]:

f(x)=i=1Nbfsψi(x)wii=1Nbfsψi(x)x(gy0)ψi(x)=ehi(xci)2hi=Nbfs1.5αxci𝑓𝑥superscriptsubscript𝑖1subscript𝑁𝑏𝑓𝑠subscript𝜓𝑖𝑥subscript𝑤𝑖superscriptsubscript𝑖1subscript𝑁𝑏𝑓𝑠subscript𝜓𝑖𝑥𝑥𝑔subscript𝑦0subscript𝜓𝑖𝑥superscript𝑒subscript𝑖superscript𝑥subscript𝑐𝑖2subscript𝑖superscriptsubscript𝑁𝑏𝑓𝑠1.5subscript𝛼𝑥subscript𝑐𝑖\begin{split}f(x)&=\frac{\sum_{i=1}^{N_{bfs}}\psi_{i}(x)w_{i}}{\sum_{i=1}^{N_{% bfs}}\psi_{i}(x)}x(g-y_{0})\\ \psi_{i}(x)&=e^{-h_{i}(x-c_{i})^{2}}\\ h_{i}&=\frac{{N_{bfs}}^{1.5}}{\alpha_{x}c_{i}}\end{split}start_ROW start_CELL italic_f ( italic_x ) end_CELL start_CELL = divide start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_ARG italic_x ( italic_g - italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_CELL start_CELL = italic_e start_POSTSUPERSCRIPT - italic_h start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x - italic_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_h start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL = divide start_ARG italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1.5 end_POSTSUPERSCRIPT end_ARG start_ARG italic_α start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_CELL end_ROW (2)

where ψi(x)subscript𝜓𝑖𝑥\psi_{i}(x)italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) is a basis function, which is a Gaussian function; Nbfssubscript𝑁𝑏𝑓𝑠N_{bfs}italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT is the number of basis functions; y03subscript𝑦0superscript3y_{0}\in\mathbb{R}^{3}italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT is the initial position of the end effector; wi3subscript𝑤𝑖superscript3w_{i}\in\mathbb{R}^{3}italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT represents the learning weights; cisubscript𝑐𝑖c_{i}italic_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the center of the Gaussian function and hisubscript𝑖h_{i}italic_h start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the variance of the Gaussian function.

For learning from demonstration, we can calculate the desired nonlinear term fdes(x)subscript𝑓𝑑𝑒𝑠𝑥f_{des}(x)italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_x ) from a given demonstration trajectory [ydemo,y˙demo,y¨demo]subscript𝑦𝑑𝑒𝑚𝑜subscript˙𝑦𝑑𝑒𝑚𝑜subscript¨𝑦𝑑𝑒𝑚𝑜[y_{demo},\dot{y}_{demo},\ddot{y}_{demo}][ italic_y start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT , over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT , over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ], and then we can obtain the learning weights wisubscript𝑤𝑖w_{i}italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to regenerate the trajectories:

fdes(x)=τ2y¨demoαy(βy(gdemoydemo)+τy˙demo)=i=1Nbfsψi(x)wii=1Nbfsψi(x)x(gdemoydemo(0))subscript𝑓𝑑𝑒𝑠𝑥superscript𝜏2subscript¨𝑦𝑑𝑒𝑚𝑜subscript𝛼𝑦subscript𝛽𝑦subscript𝑔𝑑𝑒𝑚𝑜subscript𝑦𝑑𝑒𝑚𝑜𝜏subscript˙𝑦𝑑𝑒𝑚𝑜superscriptsubscript𝑖1subscript𝑁𝑏𝑓𝑠subscript𝜓𝑖𝑥subscript𝑤𝑖superscriptsubscript𝑖1subscript𝑁𝑏𝑓𝑠subscript𝜓𝑖𝑥𝑥subscript𝑔𝑑𝑒𝑚𝑜subscript𝑦𝑑𝑒𝑚𝑜0\begin{split}f_{des}(x)&=\tau^{2}\ddot{y}_{demo}-\alpha_{y}(\beta_{y}(g_{demo}% -y_{demo})+\tau\dot{y}_{demo})\\ &=\frac{\sum_{i=1}^{N_{bfs}}\psi_{i}(x)w_{i}}{\sum_{i=1}^{N_{bfs}}\psi_{i}(x)}% x(g_{demo}-{y_{demo}}(0))\end{split}start_ROW start_CELL italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_x ) end_CELL start_CELL = italic_τ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT - italic_α start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_g start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ) + italic_τ over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL = divide start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_ARG italic_x ( italic_g start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ( 0 ) ) end_CELL end_ROW (3)

where ydemo(0)subscript𝑦𝑑𝑒𝑚𝑜0y_{demo}(0)italic_y start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ( 0 ) is the initial state of the demonstration trajectory and gdemosubscript𝑔𝑑𝑒𝑚𝑜g_{demo}italic_g start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT is the goal state of the demonstration trajectory.

For the time constant τ𝜏\tauitalic_τ, we can move it into the gain coefficients αxsubscript𝛼𝑥\alpha_{x}italic_α start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, βysubscript𝛽𝑦\beta_{y}italic_β start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and αysubscript𝛼𝑦\alpha_{y}italic_α start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT. Therefore, without losing any generality, we can set the time constant τ=1𝜏1\tau=1italic_τ = 1 for simplification. After calculating the learning weights via LWR and substituting the learning weights into Equation 1, we can obtain the y¨¨𝑦\ddot{y}over¨ start_ARG italic_y end_ARG in Equation 1 and integrate y¨¨𝑦\ddot{y}over¨ start_ARG italic_y end_ARG to regenerate the trajectory y𝑦yitalic_y.

III-A2 Orientation

For orientation, we utilize quaternions [23, 24, 25, 26], 𝐪=v+𝐮S3𝐪𝑣𝐮superscript𝑆3\mathbf{q}=v+\mathbf{u}\in S^{3}bold_q = italic_v + bold_u ∈ italic_S start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, to represent the angular movements, where v𝑣v\in\mathbb{R}italic_v ∈ blackboard_R, 𝐮3𝐮superscript3\mathbf{u}\in\mathbb{R}^{3}bold_u ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT and S3superscript𝑆3S^{3}italic_S start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT is a unit sphere in 4superscript4\mathbb{R}^{4}blackboard_R start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT. For this kind of representation, q𝑞qitalic_q and q𝑞-q- italic_q are the same orientation. Similar to Equation 1, DMPs can also represent an angular movement trajectory with a group of second-order ordinary differential equations as follows[27]:

τ2ω˙=αz(βz2log(goq¯)τω)+fo(x)q˙=12ωqω=2log(goq¯)superscript𝜏2˙𝜔subscript𝛼𝑧subscript𝛽𝑧2𝑙𝑜𝑔subscript𝑔𝑜¯𝑞𝜏𝜔subscript𝑓𝑜𝑥˙𝑞12𝜔𝑞𝜔2𝑙𝑜𝑔subscript𝑔𝑜¯𝑞\begin{split}\tau^{2}\dot{\mathbf{\omega}}&=\alpha_{z}(\beta_{z}2log(g_{o}*% \overline{q})-\tau\mathbf{\omega})+f_{o}(x)\\ \dot{q}&=\frac{1}{2}\mathbf{\omega}*q\\ \mathbf{\omega}&=2log(g_{o}*\overline{q})\end{split}start_ROW start_CELL italic_τ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over˙ start_ARG italic_ω end_ARG end_CELL start_CELL = italic_α start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT 2 italic_l italic_o italic_g ( italic_g start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ∗ over¯ start_ARG italic_q end_ARG ) - italic_τ italic_ω ) + italic_f start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ( italic_x ) end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_q end_ARG end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ω ∗ italic_q end_CELL end_ROW start_ROW start_CELL italic_ω end_CELL start_CELL = 2 italic_l italic_o italic_g ( italic_g start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ∗ over¯ start_ARG italic_q end_ARG ) end_CELL end_ROW (4)

where log()𝑙𝑜𝑔log(\cdot)italic_l italic_o italic_g ( ⋅ ) refers to the natural logarithm[24]; q¯¯𝑞\overline{q}over¯ start_ARG italic_q end_ARG is the quaternion conjugation; goS3subscript𝑔𝑜superscript𝑆3g_{o}\in S^{3}italic_g start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ∈ italic_S start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT is the goal quaternion orientation; ω3𝜔superscript3\mathbf{\omega}\in\mathbb{R}^{3}italic_ω ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, which can also be denoted as ω(t)𝜔𝑡\mathbf{\omega}(t)italic_ω ( italic_t ), is the angular velocity of the robot system at time t𝑡titalic_t; x𝑥xitalic_x is a system variable identical to Equation 1; αzsubscript𝛼𝑧\alpha_{z}italic_α start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT and βzsubscript𝛽𝑧\beta_{z}italic_β start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT are the gain coefficients; τ𝜏\tauitalic_τ is the time constant; fo(x)subscript𝑓𝑜𝑥f_{o}(x)italic_f start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ( italic_x ) is the nonlinear forcing term. As in the previous section, we can set the time constant τ=1𝜏1\tau=1italic_τ = 1 for simplification. The rules of operations for quaternions are defined in the papers[25, 26].

The nonlinear forcing term fo(x)subscript𝑓𝑜𝑥f_{o}(x)italic_f start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ( italic_x ) can be represented as:

fo(x)=Doi=1Nbfsoψi(x)wioi=1Nbfsoψi(x)xsubscript𝑓𝑜𝑥subscript𝐷𝑜superscriptsubscript𝑖1superscriptsubscript𝑁𝑏𝑓𝑠𝑜subscript𝜓𝑖𝑥superscriptsubscript𝑤𝑖𝑜superscriptsubscript𝑖1superscriptsubscript𝑁𝑏𝑓𝑠𝑜subscript𝜓𝑖𝑥𝑥\begin{split}f_{o}(x)&=D_{o}\frac{\sum_{i=1}^{N_{bfs}^{o}}\psi_{i}(x)w_{i}^{o}% }{\sum_{i=1}^{N_{bfs}^{o}}\psi_{i}(x)}x\end{split}start_ROW start_CELL italic_f start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ( italic_x ) end_CELL start_CELL = italic_D start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT divide start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_ARG italic_x end_CELL end_ROW (5)

where Do=diag(2log(goq0))3×3subscript𝐷𝑜𝑑𝑖𝑎𝑔2𝑙𝑜𝑔subscript𝑔𝑜subscript𝑞0superscript33D_{o}=diag(2log(g_{o}*q_{0}))\in\mathbb{R}^{3\times 3}italic_D start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT = italic_d italic_i italic_a italic_g ( 2 italic_l italic_o italic_g ( italic_g start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ∗ italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) ∈ blackboard_R start_POSTSUPERSCRIPT 3 × 3 end_POSTSUPERSCRIPT is the scaling term; q0subscript𝑞0q_{0}italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT is the initial state of the orientation trajectory; ψisubscript𝜓𝑖\psi_{i}italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the basis function shown in Equation 2; wio3superscriptsubscript𝑤𝑖𝑜superscript3w_{i}^{o}\in\mathbb{R}^{3}italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT is the learning weight for orientation trajectories.

Similar to Equation 3 , given the demonstration orientation trajectory [qdes,ωdes,ω˙des]subscript𝑞𝑑𝑒𝑠subscript𝜔𝑑𝑒𝑠subscript˙𝜔𝑑𝑒𝑠[q_{des},\mathbf{\omega}_{des},\dot{\mathbf{\omega}}_{des}][ italic_q start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT , italic_ω start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT , over˙ start_ARG italic_ω end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ] and Equation 4, we can calculate the learning weights 𝐰iosuperscriptsubscript𝐰𝑖𝑜\mathbf{w}_{i}^{o}bold_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT via solving the following equation:

i=1Nbfsoψi(x)wioi=1Nbfsoψi(x)x=Do1(ω˙desαz(βz2log(gdesoq¯des)ωdes))superscriptsubscript𝑖1superscriptsubscript𝑁𝑏𝑓𝑠𝑜subscript𝜓𝑖𝑥superscriptsubscript𝑤𝑖𝑜superscriptsubscript𝑖1superscriptsubscript𝑁𝑏𝑓𝑠𝑜subscript𝜓𝑖𝑥𝑥superscriptsubscript𝐷𝑜1subscript˙𝜔𝑑𝑒𝑠subscript𝛼𝑧subscript𝛽𝑧2𝑙𝑜𝑔superscriptsubscript𝑔𝑑𝑒𝑠𝑜subscript¯𝑞𝑑𝑒𝑠subscript𝜔𝑑𝑒𝑠\footnotesize\begin{split}\frac{\sum_{i=1}^{N_{bfs}^{o}}\psi_{i}(x)w_{i}^{o}}{% \sum_{i=1}^{N_{bfs}^{o}}\psi_{i}(x)}x=D_{o}^{-1}(\dot{\mathbf{\omega}}_{des}-% \alpha_{z}(\beta_{z}2log(g_{des}^{o}*\overline{q}_{des})-\mathbf{\omega}_{des}% ))\end{split}start_ROW start_CELL divide start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_ARG italic_x = italic_D start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( over˙ start_ARG italic_ω end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT - italic_α start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( italic_β start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT 2 italic_l italic_o italic_g ( italic_g start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT ∗ over¯ start_ARG italic_q end_ARG start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ) - italic_ω start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ) ) end_CELL end_ROW (6)

where gdesosuperscriptsubscript𝑔𝑑𝑒𝑠𝑜g_{des}^{o}italic_g start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT is the goal state of the demonstration orientation trajectory.

After obtaining the learning weights, we can integrate the quaternions in Equation 4 using the following formula:

𝐪(t+Δt)=eω(t)Δt2𝐪(t)e𝐫={cos(𝐫)+sin(𝐫)𝐫𝐫𝐫𝟎𝟎otherwise𝐪𝑡Δ𝑡superscript𝑒𝜔𝑡Δ𝑡2𝐪𝑡superscript𝑒𝐫cases𝑐𝑜𝑠delimited-∥∥𝐫𝑠𝑖𝑛delimited-∥∥𝐫𝐫delimited-∥∥𝐫𝐫00otherwise\begin{split}\mathbf{q}(t+\Delta t)&=e^{\frac{\mathbf{\omega}(t)\Delta t}{2}}*% \mathbf{q}(t)\\ e^{\mathbf{r}}&=\left\{\begin{array}[]{lr}cos(\lVert\mathbf{r}\rVert)+sin(% \lVert\mathbf{r}\rVert)\frac{\mathbf{r}}{\lVert\mathbf{r}\rVert}&\mathbf{r}% \neq\mathbf{0}\\ \mathbf{0}&\textrm{otherwise}\end{array}\right.\end{split}start_ROW start_CELL bold_q ( italic_t + roman_Δ italic_t ) end_CELL start_CELL = italic_e start_POSTSUPERSCRIPT divide start_ARG italic_ω ( italic_t ) roman_Δ italic_t end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT ∗ bold_q ( italic_t ) end_CELL end_ROW start_ROW start_CELL italic_e start_POSTSUPERSCRIPT bold_r end_POSTSUPERSCRIPT end_CELL start_CELL = { start_ARRAY start_ROW start_CELL italic_c italic_o italic_s ( ∥ bold_r ∥ ) + italic_s italic_i italic_n ( ∥ bold_r ∥ ) divide start_ARG bold_r end_ARG start_ARG ∥ bold_r ∥ end_ARG end_CELL start_CELL bold_r ≠ bold_0 end_CELL end_ROW start_ROW start_CELL bold_0 end_CELL start_CELL otherwise end_CELL end_ROW end_ARRAY end_CELL end_ROW (7)

If we limit the domain of the exponential map e𝐫superscript𝑒𝐫e^{\mathbf{r}}italic_e start_POSTSUPERSCRIPT bold_r end_POSTSUPERSCRIPT : 3S3superscript3superscript𝑆3\mathbb{R}^{3}\rightarrow S^{3}blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT → italic_S start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT to 𝐫<πdelimited-∥∥𝐫𝜋\lVert\mathbf{r}\rVert<\pi∥ bold_r ∥ < italic_π and the domain of the logarithmic map to S3/(1+[0,0,0]T)superscript𝑆31superscript000𝑇S^{3}/(-1+[0,0,0]^{T})italic_S start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT / ( - 1 + [ 0 , 0 , 0 ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ), then both mappings become one-to-one, continuously differentiable and inverse to each other. In addition, we also utilize phase stopping and goal switching[27] techniques for better performance.

III-B Locally Weighted Regression

Locally weighted regression[10] belongs to a class of nonparametric statistical techniques called locally weighted learning (LWL). LWR is a memory-based learning algorithm that can efficiently represent and train complex motor movements in autonomous adaptive control of robotic systems. The key advantage of LWR is its fast training speed, which only requires adding new training data to the memory.

We can use LWR to calculate the optimal learning weights wisubscript𝑤𝑖w_{i}italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT for positions in Equation 3. Then, the cost function to be minimized is defined as:

J(wi)=ψi(x)(fdes(x)wi(x(gdemoydemo(0))))2𝐽subscript𝑤𝑖subscript𝜓𝑖𝑥superscriptsubscript𝑓𝑑𝑒𝑠𝑥subscript𝑤𝑖𝑥subscript𝑔𝑑𝑒𝑚𝑜subscript𝑦𝑑𝑒𝑚𝑜02\begin{split}J(w_{i})=\sum\psi_{i}(x)(f_{des}(x)-w_{i}(x(g_{demo}-y_{demo}(0))% ))^{2}\end{split}start_ROW start_CELL italic_J ( italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = ∑ italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ( italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_x ) - italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ( italic_g start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ( 0 ) ) ) ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL end_ROW (8)

Since x𝑥xitalic_x, which can be also denoted as x(t)𝑥𝑡x(t)italic_x ( italic_t ), is a function of time t𝑡titalic_t, therefore, denoting yoffset=gdemoydemo(0)subscript𝑦𝑜𝑓𝑓𝑠𝑒𝑡subscript𝑔𝑑𝑒𝑚𝑜subscript𝑦𝑑𝑒𝑚𝑜0y_{offset}=g_{demo}-y_{demo}(0)italic_y start_POSTSUBSCRIPT italic_o italic_f italic_f italic_s italic_e italic_t end_POSTSUBSCRIPT = italic_g start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_d italic_e italic_m italic_o end_POSTSUBSCRIPT ( 0 ), we can rewrite Equation 8 as follows:

J(wi)=ψi(t)(fdes(t)wi(x(t)yoffset)2\begin{split}J(w_{i})=\sum\psi_{i}(t)(f_{des}(t)-w_{i}(x(t)y_{offset})^{2}\end% {split}start_ROW start_CELL italic_J ( italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = ∑ italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t ) ( italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_t ) - italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ( italic_t ) italic_y start_POSTSUBSCRIPT italic_o italic_f italic_f italic_s italic_e italic_t end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL end_ROW (9)

For solving Equation 9, construct a diagonal matrix ΨisubscriptΨ𝑖\Psi_{i}roman_Ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT using ψisubscript𝜓𝑖\psi_{i}italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT along with time:

Ψi=[ψi(t0)00ψi(t1)0000ψi(tn)]subscriptΨ𝑖matrixsubscript𝜓𝑖subscript𝑡000subscript𝜓𝑖subscript𝑡10000subscript𝜓𝑖subscript𝑡𝑛\small\begin{split}\Psi_{i}=\begin{bmatrix}\psi_{i}(t_{0})&\cdots&0&0\\ \vdots&\psi_{i}(t_{1})&\ddots&0\\ 0&\ddots&\ddots&\vdots\\ 0&0&\cdots&\psi_{i}(t_{n})\end{bmatrix}\end{split}start_ROW start_CELL roman_Ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_CELL start_CELL ⋱ end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL ⋱ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] end_CELL end_ROW (10)

where t0,t1,,tnsubscript𝑡0subscript𝑡1subscript𝑡𝑛t_{0},t_{1},\cdots,t_{n}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , ⋯ , italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT indicate the corresponding times of demonstration trajectory points. Then, we can convert the terms x(t)yoffset𝑥𝑡subscript𝑦𝑜𝑓𝑓𝑠𝑒𝑡x(t)y_{offset}italic_x ( italic_t ) italic_y start_POSTSUBSCRIPT italic_o italic_f italic_f italic_s italic_e italic_t end_POSTSUBSCRIPT and fdes(t)subscript𝑓𝑑𝑒𝑠𝑡f_{des}(t)italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_t ) into a matrix form as s𝑠sitalic_s and Fdsubscript𝐹𝑑F_{d}italic_F start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT:

s=[x(t0)yoffsetx(tn)yoffset],Fd=[fdes(t0)fdes(tn)]\begin{split}s=\begin{bmatrix}x(t_{0})y_{offset}\\ \vdots\\ x(t_{n})y_{offset}\end{bmatrix},\qquad F_{d}=\begin{bmatrix}f_{des}(t_{0})\\ \vdots\\ f_{des}(t_{n})\end{bmatrix}\end{split}start_ROW start_CELL italic_s = [ start_ARG start_ROW start_CELL italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) italic_y start_POSTSUBSCRIPT italic_o italic_f italic_f italic_s italic_e italic_t end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_x ( italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) italic_y start_POSTSUBSCRIPT italic_o italic_f italic_f italic_s italic_e italic_t end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , italic_F start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_f start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] end_CELL end_ROW (11)

Substituting Equation 10 and Equation 11 into Equation 9, we can obtain:

J(wi)=(FdsTwi)TΨi(FdsTwi)𝐽subscript𝑤𝑖superscriptsubscript𝐹𝑑superscript𝑠𝑇subscript𝑤𝑖𝑇subscriptΨ𝑖subscript𝐹𝑑superscript𝑠𝑇subscript𝑤𝑖\begin{split}J(w_{i})&=(F_{d}-s^{T}w_{i})^{T}\Psi_{i}(F_{d}-s^{T}w_{i})\end{split}start_ROW start_CELL italic_J ( italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_CELL start_CELL = ( italic_F start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT - italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT - italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_CELL end_ROW (12)

Using the least square method to optimize, we obtain the learning weight along with time t𝑡titalic_t [10]:

wi=sTΨiFdsTΨissubscript𝑤𝑖superscript𝑠𝑇subscriptΨ𝑖subscript𝐹𝑑superscript𝑠𝑇subscriptΨ𝑖𝑠\begin{split}w_{i}=\frac{s^{T}\Psi_{i}F_{d}}{s^{T}\Psi_{i}s}\end{split}start_ROW start_CELL italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = divide start_ARG italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_F start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_ARG start_ARG italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_s end_ARG end_CELL end_ROW (13)

III-C Learning From Demonstration Pipeline

In our work, we grasp the needle using a script and utilize a simple trajectory planning technique to move the PSMs to the desired poses for handing over the needle. Therefore, we implement learning from demonstration algorithms for motion \romannum2 and \romannum4 as shown in section IV-C.

The pipeline for implementing the LfD algorithm is shown in Figure 1.

Refer to caption
Figure 1: Learning from Demonstration pipeline

The simulation object ground truth database contains the ground truth of all objects as described in section IV-A. We can obtain the ground-truth states of the needle, entry & exit points and PSM joints from both the demonstrations and the real-time simulation scene. Given those ground-truth states, we can find the desired start and goal states for the robot system’s end-effector.

IV Experiment Setup

IV-A Simulation Platform

As shown in Figure 2, we construct simulation scenes for suturing using AMBF[6]; the simulation platform contains:

  • a suturing phantom choosing from two alternatives

  • two simulated dVRK Patient Side Manipulators (PSMs) with Large Needle Drivers from Intuitive Surgical, Inc.

  • one simulated dVRK Endoscope Camera Manipulator (ECM) with a stereo camera attached

  • one suture needle with radius of 10.18 mm, 120-degree arc angle and thread attached

  • red markers for entry and exit points

The dimensions of the dVRK arms are obtained from the measurements of the real-world first-generation dVSS.

Refer to caption
(a) Phantom 1: Synthetic
Refer to caption
(b) Phantom 2: Scanned
Figure 2: Simulation environments

To obtain phantom 2, we scanned the 3D-MED Soft Tissue Suture Pad using MRI and added the scanned volume to the simulation platform (Figure 3). Compared to CT scanning, MRI scanning can provide more details and has higher contrast for soft tissues or phantoms[28]. Therefore, we selected MRI to scan the phantom and this method can be further used to scan real tissues or complex phantoms in the future.

Refer to caption
(a) Real-World Phantom
Refer to caption
(b) MRI-Scanned Volume
Figure 3: 3D-MED soft tissue suture pad

IV-B Teleoperation Setup

For the teleoperation setup, we utilize the dVRK High Resolution Stereo Viewer (HRSV, also known as the viewer console) and Master Tool Manipulators (MTMs), as shown in Figure 4, to interact with the simulation platform. This setup is identical to the dVSS clinical setup and thus it can bring an immersive and realistic experience when teleoperating.

Refer to caption
(a) Physical dVRK
Refer to caption
(b) Simulation Scene in HRSV
Figure 4: Teleoperation setup

Integrating with the dVRK HRSV brings the stereo vision to the system users. The stereo viewer allows the users to generate pseudo 3D vision so that they can have a more realistic and accurate sense of the depth information.

IV-C User Study

For obtaining the training data for the LfD algorithm, we perform a user study under approved IRB protocols IRB-22-0593 at Worcester Polytechnic Institute and HIRB00000701 at Johns Hopkins University. We recruited 10 subjects, consisting of 8 males and 2 females. Among those 10 users, 4 users have previous experience with surgical training and using the dVRK. The human subjects are asked to perform simple continuous sutures without tying knots in the simulation, as shown in the supplemental video. A single-throw suture without tying a knot can be decomposed into the following five subtasks[14]:

  1. i.

    Pick up the needle from the initial pose using the right arm (PSM2) and move PSM2 so that the needle tip is at the desired entry point

  2. ii.

    Insert the needle through the phantom using PSM2 to the exit point

  3. iii.

    Regrasp the needle with the left arm (PSM1).

  4. iv.

    Extract the needle with PSM1, completing the throw

  5. v.

    Hand over the needle from PSM1 to PSM2 and move to the next initial pose

In the simulation scenes, we segmented the phantom and named different pairs of entry and exit markers as in Figure 5.

Refer to caption
(a) Phantom 1: Synthetic
Refer to caption
(b) Phantom 2: Scanned
Figure 5: Marker indices for phantoms

The users perform the suture task following the sequence of indices from 1 to 4. For each phantom, the users complete the suture task for all 4 pairs consecutively. The collected data is segmented manually and utilized as the training datasets.

IV-D Data Collection and Preprocessing

In this section, we describe our data collection techniques and strategies.

IV-D1 Data Collection Framework

The control and communication commands of the simulation follow the Collaborative Robotics Toolkit (CRTK) convention [29], which ensures compatibility with the physical dVRK. To collect demonstration data, we develop the data collection framework shown in Figure 6.

Refer to caption
Figure 6: Motion data collection framework

The foot pedal presses are also included in the data collection. The raw collected data is in joint space and stored in ROS bags.

IV-D2 Data Preprocessing

The ground-truth poses of the needle, entry & exit points are directly subscribed from the simulation. To segment the raw collected data, we use a velocity-based filter to examine the points with given thresholds [30]. When stretching out the raw input data, for Cartesian space positions, a quintic interpolation is used. On the other hand, for the Cartesian space orientations, spherical linear interpolation[31] is used. For performance evaluation, we utilize the Dynamic Time Warping (DTW) technique [32, 33, 34] to synchronize trajectories with different lengths.

V Experimental Evaluation and Result

V-A Model Parameters

The hyperparameters we utilize in this paper are shown in Table I.

TABLE I: Model hyper-parameters
Name Value Meaning
αxsubscript𝛼𝑥\alpha_{x}italic_α start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT 1 gain coefficient for the system variable x𝑥xitalic_x
αysubscript𝛼𝑦\alpha_{y}italic_α start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT / αzsubscript𝛼𝑧\alpha_{z}italic_α start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT 25 proportional gain for position and orientation LfD
βysubscript𝛽𝑦\beta_{y}italic_β start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT / βzsubscript𝛽𝑧\beta_{z}italic_β start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT 6.25 derivative gain for position and orientation LfD
Nptssubscript𝑁𝑝𝑡𝑠N_{pts}italic_N start_POSTSUBSCRIPT italic_p italic_t italic_s end_POSTSUBSCRIPT 500 (100) number of both LfD regenerated points for task \romannum2 (for task \romannum4)
Nbfssubscript𝑁𝑏𝑓𝑠N_{bfs}italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT 100 (50) number of both LfD basis functions for task \romannum2 (for task \romannum4)
Nbfsosuperscriptsubscript𝑁𝑏𝑓𝑠𝑜N_{bfs}^{o}italic_N start_POSTSUBSCRIPT italic_b italic_f italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o end_POSTSUPERSCRIPT 40 (20) number of both LfD basis functions for task \romannum2 (for task \romannum4)

V-B Trajectory Regeneration

First, we evaluate the performance of the LfD algorithm. For the evaluation, we select a random user’s data at the scan2 pair of entry and exit markers. Then, we train the LfD algorithm and test on the same pair of entry and exit markers. After that, we plot both the demonstrations and the regenerated trajectories in Figure 7.

Refer to caption
(a) Position Trajectory
Refer to caption
(b) Orientation Trajectory
Figure 7: Demonstration and regenerated trajectories of the suture needle at the pair scan2

From this figure, we can anticipate that the regenerated trajectories can perform the same suture task in the simulation scenes successfully.

Furthermore, we repeat the above evaluation test for all 8 pairs of entry & exit markers of all 10 users. We calculate not only the point-level errors like start and goal state errors but also the trajectory-level errors to assess the performance of the trajectory regeneration, as summarized in Table II. Due to some abrupt shifts in the trajectory or among different users, we may have a chance to observe high average errors and can evaluate the median of the errors instead to access the performance.

TABLE II: Errors of LfD regenerated trajectories
Item Mean STD
task \romannum2   pos error (mm) start 0 0
goal 0.05 0.06
trajectory 0.17 0.07
task \romannum2   ori error (deg) start 0 0
goal 0.74 1.24
trajectory 1.71 8.44
task \romannum4   pos error (mm) start 0.02 0.02
goal 0.43 0.31
trajectory 0.38 0.16
task \romannum4   ori error (deg) start 0 0
goal 11.32 (median 2.71) 22.03
trajectory 17.54 (median 1.42) 27.09

When substituting the regenerated trajectories into the simulation scenes, 76 trajectories successfully accomplish the suture task. The trajectory regeneration using the LfD algorithm achieves 95% success rate with reasonable start & goal state errors.

V-C Generality Test

For the next step, we assess the generality of the LfD algorithm by training the LfD algorithm on each pair of entry & exit markers from both phantoms shown in Figure 5 and testing it using all pairs of entry & exit markers. We observe the suture task completeness to assess the generality.

The generality can be quantized based on the classical model of probability and represented in the following four levels:

  • 1.0 - Successfully complete the suture task

  • 0.8 - Fail to complete the suture task, but only missing the exit marker when extracting, as shown in Figure8a

  • 0.4 - Fail to complete the suture task due to missing the entry marker when inserting but still following a reasonable trajectory, as shown in Figure8b

  • 0 - Fail to complete the suture task due to the other reasons

Refer to caption
(a) Miss the exit marker
Refer to caption
(b) Miss the entry marker
Figure 8: Partial completion cases

Going through the generality test for all users and all pairs of entry & exit markers, we obtain the heat map shown in Figure 9.

Refer to caption
Figure 9: Generality test result

The average values of generality for all users are shown in Table IV. We can see that the LfD algorithm has reasonable generality for the selected suturing subtasks and is worth further investigation. In addition, we can anticipate that we may have a chance to achieve better performance by introducing more experienced or even professional human subjects.

TABLE III: Generality result
User Generality
Experienced 0.915
Naive 0.742
Overall 0.811
TABLE IV: Success rate of experienced users
Task Individual Overall
\romannum1 256 / 256 256 / 256
\romannum2 202 / 256 202 / 256
\romannum3 197 / 202 197 / 256
\romannum4 181 / 197 181 / 256
\romannum5 181 / 181 181 / 256

V-D Task Execution Performance

According to the results shown in Table IV, we can see that the regenerated trajectories learned from the experienced users have much better performance in the generality test. Therefore, when assessing the overall suturing task success rate, we will only focus on the experienced users set to exclude the errors due to lack of acquaintance of the skills.

From Table IV, we can see that the regenerated trajectories learned from the experienced users have an overall success rate of 70.7% for suturing task completion. Nevertheless, we also find that most of the failures have a similar scenario as shown in Figure8a. For success rate evaluation, the result is binary instead of discrete values. Therefore, compared to the generality test result, the success rates would have smaller values due to the false negative cases.

Last but not least, we evaluate the task execution time. We record the time taken for completing a whole suturing procedure on each pair of entry & exit markers and obtain:

Refer to caption
Figure 10: Task execution time

From Figure 10, we can see that for suturing tasks on a simple synthetic phantom, the LfD algorithm can slightly improve the time efficiency when completing the tasks. On the other hand, for the tasks on the scanned phantom with higher complexity, the LfD algorithm can reduce the total time for completing the suturing task by 20%.

VI Discussion and Future Development

In this work, we build a novel and realistic simulation scene using an MRI-scanned phantom, and construct a data collection pipeline for the simulation. Also, we present a LfD algorithm using DMP and LWR for suturing task automation with comprehensive analyses. As a result, we can see that the regenerated trajectories using the LfD algorithm can complete the suturing task with 95% success rate in the simulation. Also, the algorithm achieves high generality of 0.811 and time efficiency by a 20% reduction in task execution time. In addition, we can see that the regenerated trajectories learned from the experienced users usually have better performance. Therefore, for further development, we can introduce more experienced human subjects or professional human subjects such as surgeons. Moreover, we can implement skill assessment techniques [35, 36, 37, 38, 39] when preprocessing the data to exclude unskilled demonstrations.

Taking advantage of AMBF and CRTK, and integrating with advanced vision perception methods [40, 41, 42, 43, 44, 45, 46] to obtain the estimated poses of the suturing needle, we may further extend the proposed algorithm from the simulation to the real world.

Acknowledgement

This work was supported in part by NSF AccelNet awards OISE-1927275 and OISE-1927354. Thanks to Juan Antonio Barragan, Hisashi Ishida and Adnan Munawar for their contributions toward establishing the simulation framework.

References

  • [1] K. H. Sheetz, J. Claflin, and J. B. Dimick, “Trends in the adoption of robotic surgery for common surgical procedures,” JAMA network open, vol. 3, no. 1, pp. e1 918 911–e1 918 911, 2020.
  • [2] A. Attanasio, B. Scaglioni, E. De Momi, P. Fiorini, and P. Valdastri, “Autonomy in surgical robotics,” Annual Review of Control, Robotics, and Autonomous Systems, vol. 4, pp. 651–679, 2021.
  • [3] A. D’Annibale, E. Morpurgo, V. Fiscon, P. Trevisan, G. Sovernigo, C. Orsini, and D. Guidolin, “Robotic and laparoscopic surgery for treatment of colorectal diseases,” Diseases of the colon & rectum, vol. 47, pp. 2162–2168, 2004.
  • [4] P. Kazanzides, Z. Chen, A. Deguet, G. S. Fischer, R. H. Taylor, and S. P. DiMaio, “An open-source research kit for the da vinci® surgical system,” in 2014 IEEE international conference on robotics and automation (ICRA).   IEEE, 2014, pp. 6434–6439.
  • [5] A. Munawar, Y. Wang, R. Gondokaryono, and G. S. Fischer, “A real-time dynamic simulator and an associated front-end representation format for simulating complex robots and environments,” in 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2019, pp. 1875–1882.
  • [6] A. Munawar, J. Y. Wu, G. S. Fischer, R. H. Taylor, and P. Kazanzides, “Open simulation environment for learning and practice of robot-assisted surgical suturing,” IEEE Robotics and Automation Letters, vol. 7, no. 2, pp. 3843–3850, 2022.
  • [7] A. J. Ijspeert, J. Nakanishi, and S. Schaal, “Movement imitation with nonlinear dynamical systems in humanoid robots,” in Proceedings 2002 IEEE International Conference on Robotics and Automation (Cat. No. 02CH37292), vol. 2.   IEEE, 2002, pp. 1398–1403.
  • [8] S. Schaal, “Dynamic movement primitives-a framework for motor control in humans and humanoid robotics,” in Adaptive motion of animals and machines.   Springer, 2006, pp. 261–280.
  • [9] A. J. Ijspeert, J. Nakanishi, H. Hoffmann, P. Pastor, and S. Schaal, “Dynamical movement primitives: learning attractor models for motor behaviors,” Neural computation, vol. 25, no. 2, pp. 328–373, 2013.
  • [10] S. Schaal, C. G. Atkeson, and S. Vijayakumar, “Scalable techniques from nonparametric statistics for real time robot learning,” Applied Intelligence, vol. 17, no. 1, pp. 49–60, 2002.
  • [11] S. Sen, A. Garg, D. V. Gealy, S. McKinley, Y. Jen, and K. Goldberg, “Automating multi-throw multilateral surgical suturing with a mechanical needle guide and sequential convex optimization,” in 2016 IEEE international conference on robotics and automation (ICRA).   IEEE, 2016, pp. 4178–4185.
  • [12] V. M. Varier, D. K. Rajamani, N. Goldfarb, F. Tavakkolmoghaddam, A. Munawar, and G. S. Fischer, “Collaborative suturing: A reinforcement learning approach to automate hand-off task in suturing for surgical robots,” in 2020 29th IEEE international conference on robot and human interactive communication (RO-MAN).   IEEE, 2020, pp. 1380–1386.
  • [13] K. L. Schwaner, D. Dall’Alba, P. T. Jensen, P. Fiorini, and T. R. Savarimuthu, “Autonomous needle manipulation for robotic surgical suturing based on skills learned from demonstration,” in 2021 IEEE 17th international conference on automation science and engineering (CASE).   IEEE, 2021, pp. 235–241.
  • [14] K. L. Schwaner, I. Iturrate, J. K. Andersen, P. T. Jensen, and T. R. Savarimuthu, “Autonomous bi-manual surgical suturing based on skills learned from demonstration,” in 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2021, pp. 4017–4024.
  • [15] J. Allard, S. Cotin, F. Faure, P.-J. Bensoussan, F. Poyer, C. Duriez, H. Delingette, and L. Grisoni, “Sofa-an open source framework for medical simulation,” in MMVR 15-Medicine Meets Virtual Reality, vol. 125.   IOP Press, 2007, pp. 13–18.
  • [16] A. J. Lungu, W. Swinkels, L. Claesen, P. Tu, J. Egger, and X. Chen, “A review on the applications of virtual reality, augmented reality and mixed reality in surgical simulation: an extension to different kinds of surgery,” Expert review of medical devices, vol. 18, no. 1, pp. 47–62, 2021.
  • [17] M. Haiderbhai, R. Gondokaryono, T. Looi, J. M. Drake, and L. A. Kahrs, “Robust sim2real transfer with the da vinci research kit: A study on camera, lighting, and physics domain randomization,” in 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2022, pp. 3429–3435.
  • [18] Y. Jiang, H. Zhou, and G. S. Fischer, “Markerless suture needle tracking from a robotic endoscope based on deep learning,” in 2023 International Symposium on Medical Robotics (ISMR).   IEEE, 2023, pp. 1–7.
  • [19] A. J. Ijspeert, J. Nakanishi, and S. Schaal, “Learning attractor landscapes for learning motor primitives,” in Advances in neural information processing systems, 2003, pp. 1547–1554.
  • [20] S. Schaal, J. Peters, J. Nakanishi, and A. Ijspeert, “Control, planning, learning, and imitation with dynamic movement primitives,” in Workshop on Bilateral Paradigms on Humans and Humanoids: IEEE International Conference on Intelligent Robots and Systems (IROS 2003), 2003, pp. 1–21.
  • [21] A. Pervez and D. Lee, “Learning task-parameterized dynamic movement primitives using mixture of gmms,” Intelligent Service Robotics, vol. 11, no. 1, pp. 61–78, 2018.
  • [22] M. Ginesi, D. Meli, A. Roberti, N. Sansonetto, and P. Fiorini, “Autonomous task planning and situation awareness in robotic surgery,” in 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2020, pp. 3144–3150.
  • [23] S. Chiaverini, B. Siciliano et al., “Unit quaternion: a useful tool for inverse kinematics of robot manipulators,” SYSTEMS ANALYSIS, MODELLING, SIMULATION, vol. 35, no. 1, pp. 45–60, 1999.
  • [24] A. Ude, “Filtering in a unit quaternion space for model-based object tracking,” Robotics and Autonomous Systems, vol. 28, no. 2-3, pp. 163–172, 1999.
  • [25] A. M. Sabatini, “Quaternion-based extended kalman filter for determining orientation by inertial and magnetic sensing,” IEEE transactions on Biomedical Engineering, vol. 53, no. 7, pp. 1346–1356, 2006.
  • [26] J. J. Faraway and S. B. Choe, “Modelling orientation trajectories,” Statistical Modelling, vol. 9, no. 1, pp. 51–68, 2009.
  • [27] A. Ude, B. Nemec, T. Petrić, and J. Morimoto, “Orientation in cartesian space dynamic movement primitives,” in 2014 IEEE International Conference on Robotics and Automation (ICRA).   IEEE, 2014, pp. 2997–3004.
  • [28] M. P. Hiorns, “Imaging of the urinary tract: the role of ct and mri,” Pediatric nephrology, vol. 26, no. 1, pp. 59–68, 2011.
  • [29] Y.-H. Su, A. Munawar, A. Deguet, A. Lewis, K. Lindgren, Y. Li, R. H. Taylor, G. S. Fischer, B. Hannaford, and P. Kazanzides, “Collaborative robotics toolkit (crtk): Open software framework for surgical robotics research,” in 2020 Fourth IEEE International Conference on Robotic Computing (IRC).   IEEE, 2020, pp. 48–55.
  • [30] I. Iturrate, E. H. Østergaard, M. Rytter, and T. R. Savarimuthu, “Learning and correcting robot trajectory keypoints from a single demonstration,” in 2017 3rd International Conference on Control, Automation and Robotics (ICCAR).   IEEE, 2017, pp. 52–59.
  • [31] V. E. Kremer, “Quaternions and slerp,” in Embots. dfki. de/doc/seminar ca/Kremer Quaternions. pdf, 2008.
  • [32] A. Kassidas, J. F. MacGregor, and P. A. Taylor, “Synchronization of batch trajectories using dynamic time warping,” AIChE Journal, vol. 44, no. 4, pp. 864–875, 1998.
  • [33] T. Giorgino, “Computing and visualizing dynamic time warping alignments in r: the dtw package,” Journal of statistical Software, vol. 31, pp. 1–24, 2009.
  • [34] A. Vakanski, I. Mantegh, A. Irish, and F. Janabi-Sharifi, “Trajectory learning for robot programming by demonstration using hidden markov model and dynamic time warping,” IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), vol. 42, no. 4, pp. 1039–1052, 2012.
  • [35] K. Moorthy, Y. Munz, A. Dosis, F. Bello, A. Chang, and A. Darzi, “Bimodal assessment of laparoscopic suturing skills: construct and concurrent validity,” Surgical Endoscopy And Other Interventional Techniques, vol. 18, pp. 1608–1612, 2004.
  • [36] A. C. Frischknecht, S. J. Kasten, S. J. Hamstra, N. C. Perkins, R. B. Gillespie, T. J. Armstrong, and R. M. Minter, “The objective assessment of experts’ and novices’ suturing skills using an image analysis program,” Academic Medicine, vol. 88, no. 2, pp. 260–264, 2013.
  • [37] S. S. Vedula, A. O. Malpani, L. Tao, G. Chen, Y. Gao, P. Poddar, N. Ahmidi, C. Paxton, R. Vidal, S. Khudanpur et al., “Analysis of the structure of surgical activity for a suturing and knot-tying task,” PloS one, vol. 11, no. 3, p. e0149174, 2016.
  • [38] W. M. IJgosse, E. Leijte, S. Ganni, J.-M. Luursema, N. K. Francis, J. J. Jakimowicz, and S. M. Botden, “Competency assessment tool for laparoscopic suturing: development and reliability evaluation,” Surgical Endoscopy, vol. 34, pp. 2947–2953, 2020.
  • [39] A. M. Shayan, S. Singh, J. Gao, R. E. Groff, J. Bible, J. F. Eidt, M. Sheahan, S. S. Gandhi, J. V. Blas, and R. Singapogu, “Measuring hand movement for suturing skill assessment: A simulation-based study,” Surgery, vol. 174, no. 5, pp. 1184–1192, 2023.
  • [40] F. Zhong, D. Navarro-Alarcon, Z. Wang, Y.-h. Liu, T. Zhang, H. M. Yip, and H. Wang, “Adaptive 3d pose computation of suturing needle using constraints from static monocular image feedback,” in 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2016, pp. 5521–5526.
  • [41] Z.-Y. Chiu, F. Richter, E. K. Funk, R. K. Orosco, and M. C. Yip, “Bimanual regrasping for suture needles using reinforcement learning for rapid motion planning,” in 2021 IEEE International Conference on Robotics and Automation (ICRA).   IEEE, 2021, pp. 7737–7743.
  • [42] Z.-Y. Chiu, A. Z. Liao, F. Richter, B. Johnson, and M. C. Yip, “Markerless suture needle 6d pose tracking with robust uncertainty estimation for autonomous minimally invasive robotic surgery,” in 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2022, pp. 5286–5292.
  • [43] Y. Jiang, H. Zhou, and G. S. Fischer, “Development and evaluation of a markerless 6 dof pose tracking method for a suture needle from a robotic endoscope,” Journal of Medical Robotics Research, vol. 8, no. 03n04, p. 2340009, 2023.
  • [44] S. Gao, Y. Wang, X. Ma, H. Zhou, Y. Jiang, K. Yang, L. Lu, S. Wang, B. C. Nephew, L. Fichera et al., “Intraoperative laparoscopic photoacoustic image guidance system in the da vinci surgical system,” Biomedical optics express, vol. 14, no. 9, pp. 4914–4928, 2023.
  • [45] L. Qian, C. Song, Y. Jiang, Q. Luo, X. Ma, P. W. Chiu, Z. Li, and P. Kazanzides, “Flexivision: Teleporting the surgeon’s eyes via robotic flexible endoscope and head-mounted display,” in 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).   IEEE, 2020, pp. 3281–3287.
  • [46] S. Gao, Y. Wang, H. Zhou, K. Yang, Y. Jiang, L. Lu, S. Wang, X. Ma, B. C. Nephew, L. Fichera et al., “Laparoscopic photoacoustic imaging system integrated with the da vinci surgical system,” in Medical Imaging 2023: Image-Guided Procedures, Robotic Interventions, and Modeling, vol. 12466.   SPIE, 2023, pp. 62–70.