<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article article-type="research-article" dtd-version="1.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Robot. AI</journal-id>
<journal-title-group>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1735467</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2026.1735467</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Original Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Calibration-free per-finger force-feedback slip control for grasping by anthropomorphic hand with tri-axial tactile sensors</article-title>
<alt-title alt-title-type="left-running-head">Wong and Zhu</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/frobt.2026.1735467">10.3389/frobt.2026.1735467</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Wong</surname>
<given-names>Dickson Chiu Yu</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<uri xlink:href="https://loop.frontiersin.org/people/3254823"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal Analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Project administration" vocab-term-identifier="https://credit.niso.org/contributor-roles/project-administration/">Project administration</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Zhu</surname>
<given-names>Zheng H.</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2576241"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Project administration" vocab-term-identifier="https://credit.niso.org/contributor-roles/project-administration/">Project administration</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
</contrib>
</contrib-group>
<aff id="aff1">
<institution>Department of Mechanical Engineering, York University</institution>, <city>Toronto</city>, <state>ON</state>, <country country="CA">Canada</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Zheng H. Zhu, <email xlink:href="mailto:gzhu@yorku.ca">gzhu@yorku.ca</email>
</corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-02-09">
<day>09</day>
<month>02</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2026</year>
</pub-date>
<volume>13</volume>
<elocation-id>1735467</elocation-id>
<history>
<date date-type="received">
<day>30</day>
<month>10</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>25</day>
<month>12</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>02</day>
<month>01</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2026 Wong and Zhu.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Wong and Zhu</copyright-holder>
<license>
<ali:license_ref start_date="2026-02-09">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>This paper addresses the challenge of detecting and recovering from slip during robotic grasping of unknown objects, with the objective of establishing a robust no on-site or per-object calibration slip-recovery controller for an anthropomorphic hand. This hand is equipped with tri-axial piezoresistive tactile force sensors on each finger, and the proposed approach is validated through experimental analysis. The proposed methodology eliminates the need for object- or pose-specific calibration, explicit friction modelling, dense tactile arrays, line-of-sight vision, and a data-hungry learning process, enabling real-time implementation with minimal computation and integration effort. Using a commonly acquired online baseline from initial readings, slip is detected from relative changes between consecutive samples of the baseline-subtracted resultant tangential force, and object engagement is determined when the normal force reading deviates from a no-slip baseline beyond a preset threshold. Upon detecting slip, each finger increases its gripping force in closed-loop control until the slip stops, while enforcing motor-current protection in finger control to prevent actuator overload and object damage. Experiments were conducted on objects with different rigidity, weight, and surface textures, including an aluminium tube, a plastic water bottle, and a sponge. Additionally, the response time and variations in gripping force were evaluated. The results demonstrate rapid slip response via localized per-finger correction, good object conformability, and effective re-stabilization under different lifting speeds and sudden external disturbances. The per-finger design utilizes the minimum necessary correction at the offending finger, reducing unnecessary force increases on other fingers and improving grasp efficiency. This approach represents a practical solution for warehouse picking, human&#x2013;robot collaboration, and <italic>in situ</italic> manipulation where task-specific calibrations, visual access, or training datasets are impractical.</p>
</abstract>
<kwd-group>
<kwd>anthropomorphic hand</kwd>
<kwd>calibration-free</kwd>
<kwd>robotic grasping</kwd>
<kwd>slip detection</kwd>
<kwd>tactile sensors</kwd>
</kwd-group>
<funding-group>
<award-group id="gs1">
<funding-source id="sp1">
<institution-wrap>
<institution>Natural Sciences and Engineering Research Council of Canada</institution>
<institution-id institution-id-type="doi" vocab="open-funder-registry" vocab-identifier="10.13039/open_funder_registry">10.13039/501100000038</institution-id>
</institution-wrap>
</funding-source>
<award-id rid="sp1">RGPIN-2024-06290</award-id>
</award-group>
<funding-statement>The author(s) declared that financial support was received for this work and/or its publication. This work was supported by the Discovery Grant (RGPIN-2024-06290) and Collaborative Research and Training Experience Program Grant (555425-2021) of the Natural Sciences and Engineering Research Council of Canada.</funding-statement>
</funding-group>
<counts>
<fig-count count="7"/>
<table-count count="6"/>
<equation-count count="10"/>
<ref-count count="41"/>
<page-count count="00"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Robotic Control Systems</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>In prehensile manipulation, grasping is the foundational action upon which most manipulation behaviours are built, making it a central and active topic in the robotics community (<xref ref-type="bibr" rid="B2">Billard and Kragic, 2019</xref>). Its significance spans various domains, including industrial applications (<xref ref-type="bibr" rid="B39">Zhang et al., 2025a</xref>), agriculture (<xref ref-type="bibr" rid="B34">Wang et al., 2025b</xref>), food handling (<xref ref-type="bibr" rid="B19">Liu et al., 2023b</xref>), human-robot interactions (<xref ref-type="bibr" rid="B24">Ortenzi et al., 2021</xref>), and tasks involving delicate or unstructured environments (<xref ref-type="bibr" rid="B12">Jahanshahi and Zhu, 2024</xref>; <xref ref-type="bibr" rid="B21">Meng et al., 2022</xref>). In addition to grasp planning, the ability to sense and respond to slippage is equally crucial. The former establishes feasible and stable contact conditions, while the latter provides the real-time feedback necessary to maintain stability as conditions alter during operations. Grasp stability can be guaranteed by using geometric methods such as form closure or caging, which reduce the dependence on friction (<xref ref-type="bibr" rid="B1">Aceituno-Cabezas et al., 2023</xref>). However, these methods may not always work for unknown object geometry or pose, limited hand posture, or task constraints. In these situations, using reactive tactile feedback is a valuable complementary safety measure.</p>
<p>Nowadays, slip detection remains a fundamental challenge for both robotic grippers and anthropomorphic hands during grasping, particularly when manipulating unknown objects. Failure to quickly detect and correct slippage can lead to object loss, damage, and task failure (<xref ref-type="bibr" rid="B28">Romeo and Zollo, 2020</xref>). To address this issue, significant advancements have been made through the development of tactile sensors, which are configured either as standalone units or in array structures. These sensors can detect changes in electrical signals (<xref ref-type="bibr" rid="B18">Liu et al., 2023a</xref>; <xref ref-type="bibr" rid="B37">Yu et al., 2024</xref>), magnetic fields (<xref ref-type="bibr" rid="B20">Man et al., 2024</xref>), optical fiber (<xref ref-type="bibr" rid="B23">Mun et al., 2024</xref>), vibrations (<xref ref-type="bibr" rid="B15">Komeno and Matsubara, 2024</xref>), and convert them to useful force information for identifying slippage during grasping. Furthermore, visual-tactile sensors are another approach, in which the deformation of the elastomeric layer is translated into force information (<xref ref-type="bibr" rid="B40">Zhang et al., 2025b</xref>). However, several limitations exist. The need for calibration can complicate their use. Additionally, factors such as the frame rate of the camera, sensitivity to lighting conditions, and the heavy computational load of image processing can limit detection speed and affect the robustness and reliability of these sensors in slip detection applications.</p>
<p>Traditional slippage detection approaches depend on friction models (<xref ref-type="bibr" rid="B26">Pennestr&#xec; et al., 2016</xref>), which require prior knowledge of material properties and contact conditions, particularly the friction coefficient. The latter is typically absent for unknown objects. Transforming signals of contact forces from time to frequency domain provides another route (<xref ref-type="bibr" rid="B28">Romeo and Zollo, 2020</xref>; <xref ref-type="bibr" rid="B27">Qu et al., 2023</xref>), but it can introduce processing latency and may produce incorrect detections when the measurement is affected by non-slip vibrations, such as actuator motion and impacts. Recently, machine learning techniques have been employed to detect slip events directly from sensor data (<xref ref-type="bibr" rid="B11">Hu et al., 2023</xref>). However, they require substantial training data and adaptation to specific objects, limiting their generalizability across different tasks and contact conditions. Consequently, despite progress in both sensing and control, robust and scalable slip detection for everyday manipulation remains an open problem.</p>
<p>Current slip detection methods face several practical limitations. Regarding sensor design, there is a growing interest in array-based tactile skins. However, these often require dense sensor configurations and calibration processes for each sensor. For control strategies, model-based approaches often depend on measurements of normal and tangential forces, as well as known friction parameters, which are usually accompanied by the sensor calibration process. On the other hand, data-driven methods rely on large, specialized datasets tailored to specific sensors and tasks, along with significant computational resources. Moreover, both control approaches usually require prior knowledge of the objects being handled. Additionally, many of these solutions are designed primarily for parallel grippers or near-normal fingertip contact, rather than for the variable and oblique contact conditions found in anthropomorphic hands. What is lacking is a simple, calibration-free slip detection and recovery strategy that operates at the per-finger level, uses only low-dimensional tri-axial force measurements without vision or extensive learning, and remains robust when grasping unknown objects with varying poses and surface properties.</p>
<p>In this article, a closed-loop slip-detection method for an anthropomorphic hand during oblique fingertip contact is proposed, utilizing tri-axial piezoresistive tactile sensors. Referenced to a no-slip baseline estimated online from the initial readings, slippage is detected by the temporal variation of resultant tangential force computed from consecutive tri-axial tactile readings, and a consistent object contact is guaranteed by the normal force reading through a preset threshold value. Furthermore, motor-current protection is integrated directly into the same real-time control loop, improving stability without compromising actuator safety. This motivates the current study to develop a robust, calibration-free method for slip detection and recovery during the grasping of unknown objects using an anthropomorphic hand, equipped with tri-axial tactile force sensors on every finger.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Related works</title>
<sec id="s2-1">
<label>2.1</label>
<title>Tactile sensing technologies</title>
<p>Recent reviews have surveyed advances in tactile sensing for human&#x2013;robot interaction (<xref ref-type="bibr" rid="B13">Jassim et al., 2025</xref>) and in pushing and grasping manipulation in robotic arms (<xref ref-type="bibr" rid="B7">Efendi et al., 2025</xref>). In contact detection, piezoresistive sensors are widely used to detect contact onset and localize interaction points. Early studies have shown that soft sensor arrays are capable of producing real-time force maps with sub-millimeter precision, which is advantageous for localization in manipulation, establishing an example for feedback-driven grasp control (<xref ref-type="bibr" rid="B9">Hammond et al., 2014</xref>). Furthermore, recent work embeds piezoresistive networks directly into compliant robot hands and grippers, allowing them to maintain stable grasps when vision is unavailable, which includes fully 3D-printed wearable finger arrays for pressure-point localization and large-strain piezoresistive skins that also enable proprioceptive estimation and object classification (<xref ref-type="bibr" rid="B25">Pei et al., 2021</xref>; <xref ref-type="bibr" rid="B36">Yong et al., 2022</xref>). Moreover, in prosthetics, printable piezoresistive composites and skin-inspired tactile elements have been integrated to support safe interaction and haptic perception in unstructured environments (<xref ref-type="bibr" rid="B16">Lathers et al., 2017</xref>; <xref ref-type="bibr" rid="B35">Wu et al., 2018</xref>).</p>
</sec>
<sec id="s2-2">
<label>2.2</label>
<title>Control strategies for grip adjustment</title>
<p>On control strategies, piezoresistive sensors enable slip detection and closed-loop grip adjustment by capturing resistance fluctuations linked to shear forces. This capability has been demonstrated in both rigid and soft grippers, allowing real-time adaptation when handling fragile objects that require minimal force. Slip detection methods can be broadly categorized into three approaches. The traditional model approach utilizes thresholds or model-based rules that focus on normal force rate, tangential components, or friction models to identify incipient slip (<xref ref-type="bibr" rid="B29">Stachowsky et al., 2016</xref>; <xref ref-type="bibr" rid="B17">Liu and Howe, 2023</xref>; <xref ref-type="bibr" rid="B6">Deng et al., 2017</xref>). In contrast, electrical signal detection methods directly analyze electrical readouts from piezoresistive arrays, utilizing per-taxel voltage drops or current spikes during micro-slip as indicators (<xref ref-type="bibr" rid="B4">Chen et al., 2024</xref>; <xref ref-type="bibr" rid="B3">2021</xref>). Changes in directional force, such as an increase in specific direction, can also indicate the onset of sliding (<xref ref-type="bibr" rid="B38">Zhang et al., 2015</xref>). These methods can be sensitive to contact orientation, as object contact at an oblique angle can introduce normal-shear coupling, which biases tangential force estimates. This confusion may lead to incorrect detection unless pose-aware compensation or decoupling techniques are applied. Slip has also been inferred from contact acceleration or vibration, which typically requires dedicated inertial sensing elements and higher-bandwidth sampling and processing (<xref ref-type="bibr" rid="B10">Howe and Cutkosky, 1989</xref>). Consequently, their applicability can be constrained by the complexity of sensor integration and their sensitivity to non-slip vibrations. Lastly, the learning approach leverages time-space patterns from sensor arrays to generalize across various objects and grasp types. The limitation here mainly concerns the need for large labelled datasets to effectively cover a variety of objects, surfaces, and angles during the learning process (<xref ref-type="bibr" rid="B41">Zhao et al., 2025</xref>; <xref ref-type="bibr" rid="B33">Wang et al., 2025a</xref>).</p>
</sec>
<sec id="s2-3">
<label>2.3</label>
<title>Applications in dexterous/anthropomorphic hands</title>
<p>On the application side, many studies focus on the positioning of the sensing surface parallel to the object, in which the sensing surface is placed parallel to the object by using either parallel grippers (<xref ref-type="bibr" rid="B30">Sui et al., 2024</xref>; <xref ref-type="bibr" rid="B29">Stachowsky et al., 2016</xref>) or anthropomorphic hands (<xref ref-type="bibr" rid="B8">Gong et al., 2021</xref>; <xref ref-type="bibr" rid="B38">Zhang et al., 2015</xref>; <xref ref-type="bibr" rid="B6">Deng et al., 2017</xref>) with fingertips with near-normal contact. However, in real-world grasping situations, each finger makes contact with the object at different oblique angles. Recently, some researchers have started using anthropomorphic hands equipped with tactile sensors in the fingertips, utilizing advanced machine learning techniques (<xref ref-type="bibr" rid="B41">Zhao et al., 2025</xref>; <xref ref-type="bibr" rid="B5">Chen et al., 2025</xref>). These developments highlight the need to create designs that can robustly adapt to pose variations and develop testing protocols that accommodate a range of contact angles.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Strategy and implementation for slip detection</title>
<sec id="s3-1">
<label>3.1</label>
<title>Problem statement</title>
<p>Most tactile sensor-based slip detection methods are typically designed for parallel grippers, which assume that the contact between the fingertips and the surface of an object is nearly parallel. In contrast, anthropomorphic hands often make contact with an object at various angles across different fingers, creating a challenge for current slip detection systems. The proposed method addresses this issue by introducing a per-finger closed-loop slip controller. This controller uses force readings from a tri-axial piezoresistive force tactile sensor and infers slip from temporal changes in the resultant tangential force between consecutive readings, referenced to a runtime no-slip baseline. Therefore, the proposed controller avoids the need for explicit friction modeling, data-driven slip classifiers, inertial sensing elements, or frequency-domain processing. Here, calibration-free denotes that no additional user-performed calibration, object- or pose-specific tuning, or friction-parameter identification is required beyond the factory force output from the sensor and a short runtime baseline acquisition. This approach is designed to be robust against various uncertainties associated with the object, such as rigidity, weight, and surface textures. Additionally, the per-finger sensor configuration allows for independent slip detection for each finger. Control is only activated for the finger that detects a slip, which prevents excessive force from being applied by the other fingers on the object. This simple approach ensures robust slip detection with good object conformability while maintaining safe and stable grasp control.</p>
</sec>
<sec id="s3-2">
<label>3.2</label>
<title>Research methods</title>
<sec id="s3-2-1">
<label>3.2.1</label>
<title>Hardware setup</title>
<p>The experimental platform is shown in <xref ref-type="fig" rid="F1">Figure 1a</xref>, which consisted of a 7-degrees-of-freedom (DoF) robot arm (LRB iiwa 14 R820, KUKA), equipped with a five-fingered, cable-driven anthropomorphic hand (RH8D, Seed Robotics), which has 8 DoFs. In practice, only the DoFs relevant for controlling the bending of the fingers were employed. Also, in the design of the hand, the ring and pinky fingers are actuated by a single motor, resulting in both digits sharing a single DoF. Therefore, a total of 4 DoFs were used in this study. Moreover, the motor controlling the finger bending provides 12-bit resolution. The finger is fully straight at motor position 0 and fully bent at motor position 4,095.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>System setup for this study. <bold>(a)</bold> Overall system setup. <bold>(b)</bold> Anthropomorphic hand used in this study. The local coordinates of each tactile sensor are illustrated, with the z-axis pointing out of the page, which is not shown in the figure.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g001.tif">
<alt-text content-type="machine-generated">a. A robotic setup with labeled components: a robot arm with an anthropomorphic hand grasping a test object on an object holder. b. Close-up of the anthropomorphic hand's fingers. Each finger is equipped with tactile sensors, labeled with red and green axes indicating x and y directions, respectively.</alt-text>
</graphic>
</fig>
<p>Each fingertip is equipped with a three-axis piezoresistive tactile sensor (FTS3, Seed Robotics) that exhibits a resolution of 1 mN and a force measurement range of 30 N, with a sampling frequency of 50 Hz. The sensor measures forces along the x, y, and z directions based on their respective local coordinates, as shown in <xref ref-type="fig" rid="F1">Figure 1b</xref>. Real-time data were collected from sensors, allowing for the computation of various parameters for slip detection and grasp control. Given that the ring and pink fingers shared a motor, the average of their respective sensor readings was used to control the shared DoF.</p>
</sec>
<sec id="s3-2.2">
<label>3.2.2</label>
<title>Research design</title>
<p>The slip detection control consists of four phases, as illustrated in <xref ref-type="fig" rid="F2">Figure 2</xref>. In phase 1, the robot&#x2019;s fingers move toward the object until they gently make contact with its surface, which is monitored by measuring the force in the z-direction. Once contact is established, phase 2 involves the robot arm lifting the object to create a potential slipping event. In Phase 3, the slip detection control is activated, during which three operations occur concurrently. The system maintains object engagement by continuously monitoring the z-directional force, detecting slip by analyzing changes in the resultant tangential force between consecutive readings, and ensuring circuit protection by monitoring the electrical currents of the motors. Based on these measurements, commands are sent to each motor individually to adjust the gripping force and prevent slippage, as demonstrated by a stable grasp in the final stage.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Experimental procedure: <bold>(a)</bold> Engaging the object. <bold>(b)</bold> Moving the robot arm upward to induce slip once all fingers touch the object. <bold>(c)</bold> Implementing slip control. <bold>(d)</bold> Achieving a stable grasp.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g002.tif">
<alt-text content-type="machine-generated">The experimental procedure for slip detection is in a sequence of four stages labeled (a) to (d). The progression shows the hand engaging the object with a gentle touch, increasing gripping force as it moves up when slipping is detected, and ending with a firm grasp.</alt-text>
</graphic>
</fig>
<p>
<statement content-type="algorithm" id="Algorithm_1">
<label>Algorithm 1</label>
<title>Grasping and Slip Detection Control.</title>
<p>
<list list-type="simple">
<list-item>
<p>
<bold>Require:</bold>&#x2003;<inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>1:&#x2003;<bold>function</bold> Motor Position Adjustment(<inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,    <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>)</p>
</list-item>
<list-item>
<p>2:&#x2003;&#x2003;Get <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>3:&#x2003;&#x2003;Calculate <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>4:&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> <bold>then</bold>
</p>
</list-item>
<list-item>
<p>5:&#x2003;&#x2003;&#x2003;Increase <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>6:&#x2003;&#x2003;<bold>else</bold>
</p>
</list-item>
<list-item>
<p>7:&#x2003;&#x2003;&#x2003;Store <inline-formula id="inf20">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the updated value</p>
</list-item>
<list-item>
<p>8:&#x2003;&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>9:&#x2003;<bold>end function</bold>
</p>
</list-item>
<list-item>
<p>&#x2003;&#x2003;<bold>Stage 1: Baseline Forces Acquisition Phase</bold>
</p>
</list-item>
<list-item>
<p>10:&#x2003;Record first 20 sensor readings</p>
</list-item>
<list-item>
<p>11:&#x2003;Take the average and store as <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf22">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf23">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>12:&#x2003;Calculate <inline-formula id="inf24">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>&#x2003;&#x2003;<bold>Stage 2: Object Engagement Phase</bold>
</p>
</list-item>
<list-item>
<p>13:&#x2003;<bold>while</bold> true <bold>do</bold>
</p>
</list-item>
<list-item>
<p>14:&#x2003;&#x2003;Get <inline-formula id="inf25">
<mml:math id="m25">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf26">
<mml:math id="m26">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>15:&#x2003;&#x2003;Motor Position Adjustment(<inline-formula id="inf27">
<mml:math id="m27">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf28">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf29">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,      <inline-formula id="inf30">
<mml:math id="m30">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf31">
<mml:math id="m31">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>)</p>
</list-item>
<list-item>
<p>16:&#x2003;&#x2003;Get <inline-formula id="inf32">
<mml:math id="m32">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>17:&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf33">
<mml:math id="m33">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.3333em"/>
<mml:mo>&#x2265;</mml:mo>
<mml:mspace width="0.3333em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf34">
<mml:math id="m34">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mspace width="0.3333em"/>
<mml:mo>&#x2265;</mml:mo>
<mml:mspace width="0.3333em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> <bold>then</bold>
</p>
</list-item>
<list-item>
<p>18:&#x2003;&#x2003;&#x2003;Break</p>
</list-item>
<list-item>
<p>19:&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>20:&#x2003;&#x2003;<bold>end while</bold>
</p>
</list-item>
<list-item>
<p>&#x2003;&#x2003;<bold>Stage 3: Slip Detection</bold>
</p>
</list-item>
<list-item>
<p>21:&#x2003;<bold>while</bold> true <bold>do</bold>
</p>
</list-item>
<list-item>
<p>22:&#x2003;&#x2003;Motor Position Adjustment(<inline-formula id="inf35">
<mml:math id="m35">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf36">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf37">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,        <inline-formula id="inf38">
<mml:math id="m38">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf39">
<mml:math id="m39">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>)</p>
</list-item>
<list-item>
<p>23:&#x2003;&#x2003;Get <inline-formula id="inf40">
<mml:math id="m40">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf41">
<mml:math id="m41">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf42">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>24:&#x2003;&#x2003;Calculate <inline-formula id="inf43">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>25:&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf44">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the first reading <bold>then</bold>
</p>
</list-item>
<list-item>
<p>26:&#x2003;&#x2003;&#x2003;<inline-formula id="inf45">
<mml:math id="m45">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>27:&#x2003;&#x2003;<bold>else</bold>
</p>
</list-item>
<list-item>
<p>28:&#x2003;&#x2003;&#x2003;<inline-formula id="inf46">
<mml:math id="m46">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mspace width="6.3333em"/>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>s</mml:mi>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mtext>current&#x2009;value</mml:mtext>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mtext>previous&#x2009;value</mml:mtext>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>29:&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>30:&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf47">
<mml:math id="m47">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf48">
<mml:math id="m48">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> <bold>then</bold>
</p>
</list-item>
<list-item>
<p>31:&#x2003;&#x2003;&#x2003;Increase <inline-formula id="inf49">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by <inline-formula id="inf50">
<mml:math id="m50">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>32:&#x2003;&#x2003;<bold>else</bold>
</p>
</list-item>
<list-item>
<p>33:&#x2003;&#x2003;&#x2003;Store <inline-formula id="inf51">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the updated value</p>
</list-item>
<list-item>
<p>34:&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>35:&#x2003;&#x2003;Get <inline-formula id="inf52">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf53">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>36:&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf54">
<mml:math id="m54">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.3333em"/>
<mml:mo>&#x2265;</mml:mo>
<mml:mspace width="0.3333em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> <bold>then</bold>
</p>
</list-item>
<list-item>
<p>37:&#x2003;&#x2003;&#x2003;Decrease <inline-formula id="inf55">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by <inline-formula id="inf56">
<mml:math id="m56">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>38:&#x2003;&#x2003;<bold>else</bold>
</p>
</list-item>
<list-item>
<p>39:&#x2003;&#x2003;&#x2003;Store <inline-formula id="inf57">
<mml:math id="m57">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the updated value</p>
</list-item>
<list-item>
<p>40:&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>41:&#x2003;&#x2003;<bold>if</bold> user interruption occurs <bold>then</bold>
</p>
</list-item>
<list-item>
<p>42:&#x2003;&#x2003;&#x2003;Break</p>
</list-item>
<list-item>
<p>43:&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>44:&#x2003;<bold>end while</bold>
</p>
</list-item>
</list>
</p>
</statement>
</p>
</sec>
</sec>
<sec id="s3-3">
<label>3.3</label>
<title>Detection algorithm</title>
<p>This section presents a slip detection algorithm that controls the grasping of each finger using tri-axial tactile feedback. The algorithm has been implemented and validated on a real-world robot setup, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. This method involves monitoring the force in the z-direction to ensure that the object remains engaged. Changes in resultant force within the xy-plane between consecutive readings serve as indicators of potential slip. When a slip is detected, commands are sent to the corresponding motor to adjust the gripping force accordingly. Moreover, a circuit protection mechanism is integrated to prevent electrical current overload in the motor. This integrated approach allows for calibration-free, real-time slip detection and correction across the fingers without prior knowledge of the properties of the object.</p>
<p>The pseudocode is shown in <xref ref-type="statement" rid="Algorithm_1">Algorithm 1</xref>, and was applied to each finger independently. The force readings from the tactile sensors were stored in the matrix <inline-formula id="inf58">
<mml:math id="m58">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">raw</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> with three column vectors <inline-formula id="inf59">
<mml:math id="m59">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf60">
<mml:math id="m60">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf61">
<mml:math id="m61">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in <xref ref-type="disp-formula" rid="e1">Equation 1</xref>, which at any iteration <inline-formula id="inf62">
<mml:math id="m62">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<disp-formula id="e1">
<mml:math id="m63">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">raw</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>raw</mml:mtext>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<sec id="s3-3-1">
<label>3.3.1</label>
<title>Baseline forces acquisition phase</title>
<p>Before the program started, the first 20 sensor readings were taken and averaged to create the static baseline force vector <inline-formula id="inf63">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">0</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in <xref ref-type="disp-formula" rid="e2">Equation 2</xref>
<disp-formula id="e2">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">0</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>19</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">raw</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Also, the baseline xy-planar resultant force <inline-formula id="inf64">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> was calculated by <xref ref-type="disp-formula" rid="e3">Equation 3</xref>
<disp-formula id="e3">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">0</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
<mml:mo>,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">0</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-3-2">
<label>3.3.2</label>
<title>Object engagement phase</title>
<p>Following the establishment of baseline force values, the object engagement phase was initiated. During this phase, contact detection was performed using closed-loop control, which involved continuous monitoring of <inline-formula id="inf65">
<mml:math id="m68">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. At iteration <inline-formula id="inf66">
<mml:math id="m69">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, the value was calculated by <xref ref-type="disp-formula" rid="e4">Equation 4</xref>
<disp-formula id="e4">
<mml:math id="m70">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>Additionally, the motor position <inline-formula id="inf67">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the motor electrical current reading <inline-formula id="inf68">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> were also recorded. The finger was brought towards the object as long as <inline-formula id="inf69">
<mml:math id="m73">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> remained below the predefined detection threshold <inline-formula id="inf70">
<mml:math id="m74">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf71">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> was updated according to <xref ref-type="disp-formula" rid="e5">Equation 5</xref>
<disp-formula id="e5">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>if&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mtext>if&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mspace width="0.3333em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>Object&#x2009;engagement&#x2009;phase&#x2009;completed.</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>where <inline-formula id="inf72">
<mml:math id="m77">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> was the motor increment by monitoring <inline-formula id="inf73">
<mml:math id="m78">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf74">
<mml:math id="m79">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was the motor position limit, and <inline-formula id="inf75">
<mml:math id="m80">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was the limiting motor current threshold.</p>
<p>Furthermore, a termination condition was established, according to <xref ref-type="disp-formula" rid="e6">Equation 6</xref>, when<disp-formula id="e6">
<mml:math id="m81">
<mml:mrow>
<mml:mtext>Program&#x2009;terminated&#x2009;if</mml:mtext>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;or</mml:mtext>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Such a condition occurred when the sensor was misaligned with the target object. In such cases, adjustment of the gripping posture was necessary to ensure proper object handling.</p>
</sec>
<sec id="s3-3-3">
<label>3.3.3</label>
<title>Slip detection phase</title>
<p>In the slip detection phase, the grasp was continuously stabilized while maintaining contact and ensuring the safety of the actuators within a closed-loop system. A three-iteration process was carried out within each loop. The first iteration focused on ensuring object engagement, during which <xref ref-type="disp-formula" rid="e5">Equation 5</xref> was used to update <inline-formula id="inf76">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The second iteration involved slippage detection, which was accomplished through continuous monitoring of the xy-planer resultant force <inline-formula id="inf77">
<mml:math id="m83">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. From <xref ref-type="disp-formula" rid="e7">Equation 7</xref>, at iteration <inline-formula id="inf78">
<mml:math id="m84">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<disp-formula id="e7">
<mml:math id="m85">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mspace width="2em"/>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">raw</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>Also, <inline-formula id="inf79">
<mml:math id="m86">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:mi mathvariant="bold">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which was the difference in <inline-formula id="inf80">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> between consecutive readings, was calculated by <xref ref-type="disp-formula" rid="e8">Equation 8</xref> as<disp-formula id="e8">
<mml:math id="m88">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mi>m</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>In this work, <inline-formula id="inf81">
<mml:math id="m89">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is used as a conservative &#x201c;loss-of-stability&#x201d; signal. Large, abrupt changes in tangential force may correspond to incipient slip, micro-slip, or sudden tangential disturbances. The controller is designed to respond to these events in order to detect slippage and minimize the risk of dropping the object. Because corrective actions are localized to the offending finger and bounded by motor-position and current limits, occasional conservative triggers do not result in uncontrolled increases in grasp force.</p> <p>If <inline-formula id="inf82">
<mml:math id="m90">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> exceeded a predetermined threshold <inline-formula id="inf83">
<mml:math id="m91">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, a potential slipping event was identified. Therefore, <inline-formula id="inf84">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> was updated according to <xref ref-type="disp-formula" rid="e9">Equation 9</xref>
<disp-formula id="e9">
<mml:math id="m93">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>if&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3e;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>if&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2264;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>where <inline-formula id="inf85">
<mml:math id="m94">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> was the motor increment by monitoring <inline-formula id="inf86">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Therefore, the motor was rapidly adjusted to increase finger bending, intended to boost gripping force and improve frictional engagement, thereby helping prevent slipping. Also, <inline-formula id="inf87">
<mml:math id="m96">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is computed from differences between consecutive resultant tangential readings referenced to a runtime no-slip baseline. It does not require friction-parameter identification, or object- or pose-specific calibration procedures. In this study, no additional calibration performed by the user was necessary beyond the provided force output from the sensor.</p>
<p>The final iteration was the circuit protection, in which the motor position was adjust by monitoring <inline-formula id="inf88">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. According to <xref ref-type="disp-formula" rid="e10">Equation 10</xref>, at iteration <inline-formula id="inf89">
<mml:math id="m98">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<disp-formula id="e10">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>I</mml:mi>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>if&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>otherwise</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>where <inline-formula id="inf90">
<mml:math id="m100">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> was the motor decrement by monitoring <inline-formula id="inf91">
<mml:math id="m101">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Therefore, a secure grasp was maintained while the mechanism remained protected from damage caused by overcurrent.</p>
</sec>
</sec>
<sec id="s3-4">
<label>3.4</label>
<title>Object engagement detection</title>
<p>Three objects with different rigidity, weight, and surface textures were selected for this study, as shown in <xref ref-type="table" rid="T1">Table 1</xref>. As mentioned in <xref ref-type="sec" rid="s3-1">Section 3.1</xref>, the orientations of the sensors and the object during the grasping process were not guaranteed to be parallel. To mitigate this issue and ensure a consistent initial contact, a fixed value for <inline-formula id="inf95">
<mml:math id="m105">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was empirically determined for all fingers before all experiments. Here, a monotonic closing motion was commanded to all fingers, in which all <inline-formula id="inf96">
<mml:math id="m106">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> were increased from zero to the maximum motor, while <inline-formula id="inf97">
<mml:math id="m107">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was logged. The minimum value at which contact was reliably detected across trials was then determined by visual inspection using a trial-and-error method, starting from a value of 50 mN with an increment of 50 mN per trial. The results were illustrated in <xref ref-type="table" rid="T2">Table 2</xref>, which found that the same <inline-formula id="inf98">
<mml:math id="m108">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> value was sufficient for all fingers to touch these objects successfully. This threshold was selected once for the platform and then kept unchanged for all fingers and objects in this study.</p> <table-wrap id="T1" position="float"> <label>TABLE 1</label> <caption> <p>Objects used in experiments.</p> </caption> <table>  <thead valign="top"> <tr> <th align="center">Object</th> <th align="center"> <bold>Aluminium rod</bold> </th> <th align="center"> <bold>Sponge</bold> </th> <th align="center"> <bold>Water bottle</bold> </th> </tr> </thead> <tbody valign="top"> <tr> <td align="left">Object image</td> <td align="center"> <inline-graphic xlink:href="frobt-13-1735467-fx1.tif"> <alt-text content-type="machine-generated"> A cylindrical metal object with a smooth surface stands upright against a plain background on a black reflective surface. </alt-text> </inline-graphic> </td> <td align="center"> <inline-graphic xlink:href="frobt-13-1735467-fx2.tif"> <alt-text content-type="machine-generated"> Yellow sponge with an hourglass shape, standing upright against a neutral background. The sponge has a porous texture, visible across its surface. </alt-text> </inline-graphic> </td> <td align="center"> <inline-graphic xlink:href="frobt-13-1735467-fx3.tif"> <alt-text content-type="machine-generated"> A transparent plastic water bottle filled with clear liquid, placed against a neutral background. The bottle has a pink cap and is positioned upright. </alt-text> </inline-graphic> </td> </tr> <tr> <td align="center">Size (mm)</td> <td align="center"> &#xd8; <inline-formula id="inf92"> <mml:math id="m102"> <mml:mrow> <mml:mn>48</mml:mn> <mml:mo>&#xd7;</mml:mo> <mml:mn>275</mml:mn> </mml:mrow> </mml:math> </inline-formula> </td> <td align="center"> <inline-formula id="inf93"> <mml:math id="m103"> <mml:mrow> <mml:mn>55</mml:mn> <mml:mo>&#xd7;</mml:mo> <mml:mn>120</mml:mn> <mml:mo>&#xd7;</mml:mo> </mml:mrow> </mml:math> </inline-formula> 220 </td> <td align="center"> &#xd8; <inline-formula id="inf94"> <mml:math id="m104"> <mml:mrow> <mml:mn>65</mml:mn> <mml:mo>&#xd7;</mml:mo> <mml:mn>270</mml:mn> </mml:mrow> </mml:math> </inline-formula> </td> </tr> <tr> <td align="center">Weight (g)</td> <td align="center">380</td> <td align="center">41</td> <td align="center">745</td> </tr> </tbody>  </table> </table-wrap> <table-wrap id="T2" position="float"> <label>TABLE 2</label> <caption> <p>Parameter settings used in experiments.</p> </caption> <table>  <thead valign="top"> <tr> <th align="center">Parameter</th> <th align="center"> <inline-formula id="inf99"> <mml:math id="m109"> <mml:mrow> <mml:msubsup> <mml:mrow> <mml:mi>f</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>z</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>T</mml:mi> <mml:mi>H</mml:mi> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:math> </inline-formula> </th> <th align="center"> <inline-formula id="inf100"> <mml:math id="m110"> <mml:mrow> <mml:mi mathvariant="normal">&#x394;</mml:mi> <mml:msubsup> <mml:mrow> <mml:mi>f</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>x</mml:mi> <mml:mi>y</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>T</mml:mi> <mml:mi>H</mml:mi> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:math> </inline-formula> </th> <th align="center"> <inline-formula id="inf101"> <mml:math id="m111"> <mml:mrow> <mml:msubsup> <mml:mrow> <mml:mi>I</mml:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="italic">motor</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>T</mml:mi> <mml:mi>H</mml:mi> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:math> </inline-formula> </th> <th align="center"> <inline-formula id="inf102"> <mml:math id="m112"> <mml:mrow> <mml:mi>&#x3b4;</mml:mi> <mml:msub> <mml:mrow> <mml:mi>f</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>z</mml:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula> </th> <th align="center"> <inline-formula id="inf103"> <mml:math id="m113"> <mml:mrow> <mml:mi>&#x3b4;</mml:mi> <mml:msub> <mml:mrow> <mml:mi>f</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>x</mml:mi> <mml:mi>y</mml:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:math> </inline-formula> </th> <th align="center"> <inline-formula id="inf104"> <mml:math id="m114"> <mml:mrow> <mml:mi>&#x3b4;</mml:mi> <mml:mi>I</mml:mi> </mml:mrow> </mml:math> </inline-formula> </th> <th align="center"> <inline-formula id="inf105"> <mml:math id="m115"> <mml:mrow> <mml:msubsup> <mml:mrow> <mml:mi>P</mml:mi> </mml:mrow> <mml:mrow> <mml:mi mathvariant="italic">motor</mml:mi> </mml:mrow> <mml:mrow> <mml:mi>T</mml:mi> <mml:mi>H</mml:mi> </mml:mrow> </mml:msubsup> </mml:mrow> </mml:math> </inline-formula> </th> </tr> </thead> <tbody valign="top"> <tr> <td align="center">Value</td> <td align="center">100</td> <td align="center">10</td> <td align="center">600</td> <td align="center">5</td> <td align="center">50</td> <td align="center">20</td> <td align="center">4,095</td> </tr> </tbody>  </table> </table-wrap>
<p>After determining <inline-formula id="inf106">
<mml:math id="m116">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, this value was plugged into the algorithm, and the object engagement test was carried out to test its validity. The results are shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. The same <inline-formula id="inf108">
<mml:math id="m118">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> value was used in all subsequent experiments. Also, the maximum and final forces after stabilizing for each finger were listed in <xref ref-type="table" rid="T3">Table 3</xref>. From these results, a few observations were obtained. First, <inline-formula id="inf109">
<mml:math id="m119">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> slightly exceeded <inline-formula id="inf110">
<mml:math id="m120">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> after touching. The difference was caused by the fixed step increment in the motor control, which resulted in stepwise motion, introducing a small overshoot in <inline-formula id="inf111">
<mml:math id="m121">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. Also, it was observed that the sensor values dropped after reaching their maximum values. It was mainly caused by the restoration of the shape of the elastomeric layer in tactile sensors. Moreover, if the object was soft, such as a sponge, the fluctuations were found to be even more rigorous than those of rigid objects, which was mainly due to the shape restoration of the soft object.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Evaluation of the applicability of <inline-formula id="inf107">
<mml:math id="m117">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, which is illustrated as blue dashed lines in the figure, used in the algorithm for the object engagement test.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g003.tif">
<alt-text content-type="machine-generated">The graph illustrates (f_z)^control and p_motor for various objects, including an aluminum rod, a water bottle, and a sponge, to validate the accuracy of (f_z)^control. The top row shows the z-axis force (mN) for the thumb, index, middle, and average of the ring and pinky fingers, while the bottom row displays the corresponding motor positions.</alt-text>
</graphic>
</fig>
<p>The results demonstrated that all motors could be effectively controlled using feedback from corresponding sensor readings, and their positions were maintained once <inline-formula id="inf112">
<mml:math id="m122">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was reached. This showcased good conformability to different objects using the proposed method.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Variation in z-directional forces of each finger when engaging with different objects.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Object</th>
<th colspan="4" align="center">Aluminium rod</th>
<th colspan="4" align="center">Water bottle</th>
<th colspan="4" align="center">Sponge</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Finger</td>
<td align="center">Thumb</td>
<td align="center">Index</td>
<td align="center">Middle</td>
<td align="left">Average of ring and pinky</td>
<td align="center">Thumb</td>
<td align="center">Index</td>
<td align="center">Middle</td>
<td align="left">Average of ring and pinky</td>
<td align="center">Thumb</td>
<td align="center">Index</td>
<td align="center">Middle</td>
<td align="left">Average of ring and pinky</td>
</tr>
<tr>
<td align="center">Maximum <inline-formula id="inf113">
<mml:math id="m123">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> reading (mN)</td>
<td align="center">164</td>
<td align="center">133</td>
<td align="center">298</td>
<td align="center">172</td>
<td align="center">165</td>
<td align="center">228</td>
<td align="center">175</td>
<td align="center">157</td>
<td align="center">132</td>
<td align="center">193</td>
<td align="center">214</td>
<td align="center">189</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf114">
<mml:math id="m124">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> reading after stabilizing (mN)</td>
<td align="center">119</td>
<td align="center">111</td>
<td align="center">215</td>
<td align="center">112</td>
<td align="center">102</td>
<td align="center">133</td>
<td align="center">106</td>
<td align="center">112</td>
<td align="center">104</td>
<td align="center">151</td>
<td align="center">104</td>
<td align="center">129</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3-5">
<label>3.5</label>
<title>Slip detection on different objects</title>
<p>After finding <inline-formula id="inf115">
<mml:math id="m125">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, the slip-detection algorithm was implemented to evaluate its responsiveness and robustness. Two parameters were required to be determined for the deployment of this algorithm. The first was <inline-formula id="inf116">
<mml:math id="m126">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, which was used to determine whether a slip event occurred or not. Here, a slipping test was implemented to evaluate the value. After gently touching the object, the hand was moved upward at a speed of 100 mm/s to evaluate <inline-formula id="inf117">
<mml:math id="m127">
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the tested objects under slipping conditions. The results are shown in <xref ref-type="fig" rid="F4">Figure 4</xref>, which clearly demonstrates that there was a rigorous fluctuation in <inline-formula id="inf118">
<mml:math id="m128">
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> when slipping occurred. This finding provided strong evidence in support of the proposed slip detection method. This parameter required a balance on sensitivity. If <inline-formula id="inf119">
<mml:math id="m129">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was set too high, slip events went undetected, leading to false-negative outcomes. Conversely, if <inline-formula id="inf120">
<mml:math id="m130">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was set too low, the detector was vulnerable to mechanical vibrations and sensor noise, resulting in false positive results. From the results, it was shown that a single value for <inline-formula id="inf121">
<mml:math id="m131">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was efficient for all tested objects, as depicted as blue dashed lines in <xref ref-type="fig" rid="F4">Figure 4</xref>. The second was <inline-formula id="inf122">
<mml:math id="m132">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. As the grasping force increased with finger bending, this value directly influenced the maximum gripping force exerted on the object. For rigid or semi-rigid objects, a larger threshold was deemed acceptable since these objects could sustain a relatively greater gripping force without damage. Conversely, for soft objects, such as the sponge considered in this study, the threshold was restricted to prevent excessive deformation or damage of the object while ensuring grasp stability. The values for <inline-formula id="inf124">
<mml:math id="m134">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf125">
<mml:math id="m135">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">motor</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and other parameters required for the algorithm are listed in <xref ref-type="table" rid="T2">Table 2</xref>. Unless mentioned otherwise, the values in the table were used throughout the study.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Results of the slipping test to estimate <inline-formula id="inf123">
<mml:math id="m133">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>of different objects, in which the value is illustrated as blue dashed lines in the figure.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g004.tif">
<alt-text content-type="machine-generated">The three graphs illustrate the variation of delta_f_xy for the thumb, index finger, middle finger, and the average of the ring and pinky fingers, measured in mN, during the grasping motion that slips when the hand gently engages with an aluminium rod, a water bottle, and a sponge. The dotted purple lines indicate the validity of the preset delta_f_xy_TH throughout the experiments.</alt-text>
</graphic>
</fig>
<p>Then the slip detection test was carried out, and the results are shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. Also, the force variations and response time were shown in <xref ref-type="table" rid="T4">Table 4</xref>. From the results, it was shown that slippage could be successfully detected through monitoring <inline-formula id="inf126">
<mml:math id="m136">
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. When there was an abrupt change in <inline-formula id="inf127">
<mml:math id="m137">
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the motor responded quickly by increasing <inline-formula id="inf128">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to increase the gripping force, which was evidenced by the sudden increase in <inline-formula id="inf129">
<mml:math id="m139">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and the elimination of <inline-formula id="inf130">
<mml:math id="m140">
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. As a result, the gripping force was increased significantly to stop the slippage from continuing. Additionally, it was observed that all motors were halted promptly once the slippage was eliminated. On the other hand, there were occasional decreases in <inline-formula id="inf131">
<mml:math id="m141">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which resulted from the circuit protection mechanisms designed to prevent overcurrent and protect the circuit. Furthermore, the motor response time shows that the proposed algorithm responds quickly once a slip event is identified.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Results of the slip detection test of the three objects.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g005.tif">
<alt-text content-type="machine-generated">The graphs illustrate f_z_control, delta_f_xy, and P_motors for the thumb, index finger, middle finger, and average values of the ring and pinky fingers during the slip detection test across three objects: an aluminum rod, a water bottle, and a sponge. They demonstrate that abrupt changes in delta_f_xy trigger robust adjustments in P_motor to quickly increase grasping force and prevent slipping, while a stable or decreasing P_motor afterwards indicates effective circuit protection within the algorithm.</alt-text>
</graphic>
</fig>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Variation in forces and the response time of each finger with different objects during slip detection control.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Object</th>
<th colspan="4" align="center">Aluminium rod</th>
<th colspan="4" align="center">Water bottle</th>
<th colspan="4" align="center">Sponge</th>
</tr>
<tr>
<th align="center">Finger</th>
<th align="center">Thumb</th>
<th align="center">Index</th>
<th align="center">Middle</th>
<th align="center">Average of ring and pinky</th>
<th align="center">Thumb</th>
<th align="center">Index</th>
<th align="center">Middle</th>
<th align="center">Average of ring and pinky</th>
<th align="center">Thumb</th>
<th align="center">Index</th>
<th align="center">Middle</th>
<th align="center">Average of ring and pinky</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Maximum <inline-formula id="inf132">
<mml:math id="m142">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (mN)</td>
<td align="center">1,028</td>
<td align="center">4,195</td>
<td align="center">3,640</td>
<td align="center">372</td>
<td align="center">891</td>
<td align="center">3,956</td>
<td align="center">3,829</td>
<td align="center">630</td>
<td align="center">226</td>
<td align="center">424</td>
<td align="center">426</td>
<td align="center">226</td>
</tr>
<tr>
<td align="center">Time to reach maximum <inline-formula id="inf133">
<mml:math id="m143">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (s)</td>
<td align="center">2.26</td>
<td align="center">2.88</td>
<td align="center">2.50</td>
<td align="center">2.11</td>
<td align="center">3.81</td>
<td align="center">3.06</td>
<td align="center">3.82</td>
<td align="center">1.31</td>
<td align="center">2.81</td>
<td align="center">2.77</td>
<td align="center">3.09</td>
<td align="center">4.22</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf134">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> reading after stabilizing (mN)</td>
<td align="center">655</td>
<td align="center">2,348</td>
<td align="center">2060</td>
<td align="center">203</td>
<td align="center">732</td>
<td align="center">2,365</td>
<td align="center">2,984</td>
<td align="center">361</td>
<td align="center">150</td>
<td align="center">332</td>
<td align="center">257</td>
<td align="center">124</td>
</tr>
<tr>
<td align="center">Maximum variation in <inline-formula id="inf135">
<mml:math id="m145">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (s)</td>
<td align="center">42</td>
<td align="center">61</td>
<td align="center">171</td>
<td align="center">50</td>
<td align="center">32</td>
<td align="center">278</td>
<td align="center">179</td>
<td align="center">45</td>
<td align="center">12</td>
<td align="center">36</td>
<td align="center">38</td>
<td align="center">24</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf136">
<mml:math id="m146">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> reading after stabilizing (mN)</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">Response time for motor once slip occur (s)</td>
<td align="center">0.11</td>
<td align="center">0.13</td>
<td align="center">0.05</td>
<td align="center">0.05</td>
<td align="center">0.06</td>
<td align="center">0.18</td>
<td align="center">0.03</td>
<td align="center">0.30</td>
<td align="center">0.02</td>
<td align="center">0.06</td>
<td align="center">0.18</td>
<td align="center">0.14</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Therefore, slippage was successfully stopped on all tested objects by controlling <inline-formula id="inf137">
<mml:math id="m147">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> based on sensor readings. This quick response ensured that no excessive force was applied to the objects, thereby minimizing the risk of damage and highlighting the effectiveness of the detection method used.</p>
</sec>
<sec id="s3-6">
<label>3.6</label>
<title>Slip detection at different lifting speed</title>
<p>The detection algorithm was also evaluated against different lifting speeds. In this study, an aluminium rod was lifted at three vertical speeds: 100 mm/s, 300 mm/s, and 500 mm/s. The results are illustrated in <xref ref-type="fig" rid="F6">Figure 6</xref>. Also, the force variations and response time were shown in <xref ref-type="table" rid="T5">Table 5</xref>. It was found that for vertical speeds of 100 mm/s and 300 mm/s, the <inline-formula id="inf143">
<mml:math id="m153">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> defined in <xref ref-type="sec" rid="s3-4">Section 3.4</xref> was sufficient to detect slippage. However, when the vertical speed increased to 500 mm/s, <inline-formula id="inf144">
<mml:math id="m154">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> needed to be increased slightly to 300 to stop slipping successfully. It was found that as the vertical speed increased, a lower <inline-formula id="inf145">
<mml:math id="m155">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> could still allow for slip detection, but the response time was not fast enough for the hand to make the necessary corrections. This delay was attributed to the sampling speed of the sensors and the response of the motors during each iteration of the slip-detection phase. Therefore, it was necessary to increase <inline-formula id="inf146">
<mml:math id="m156">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> to compensate for this issue. This change reflects a control setpoint adjustment for higher speed operation, and it does not involve any additional sensor calibration.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Slip detection on an aluminium rod at varying lifting speeds.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g006.tif">
<alt-text content-type="machine-generated">The graphs illustrate the relationships among f_z_control, delta_f_xy, and P_motors for the thumb, index finger, middle finger, and the average of the ring and pinky fingers during the slip detection test with varying lifting speeds of an aluminum rod. At lower speeds, a single f_z_TH value suffices to prevent slipping, but as speeds increase, it must be adjusted to account for sensor sampling and motor response, while after stabilization, a consistent or decreasing P_motor signals the circuit protection efficiency within the algorithm, preserving grip strength.</alt-text>
</graphic>
</fig>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Variation in forces and the response time of each finger with aluminium rod at different lifting speeds during slip detection control.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Lifting velocity</th>
<th colspan="4" align="center">100 mm/s</th>
<th colspan="4" align="center">300 mm/s</th>
<th colspan="4" align="center">500 mm/s</th>
</tr>
<tr>
<th align="center">Finger</th>
<th align="center">Thumb</th>
<th align="center">Index</th>
<th align="center">Middle</th>
<th align="center">Average of ring and pinky</th>
<th align="center">Thumb</th>
<th align="center">Index</th>
<th align="center">Middle</th>
<th align="center">Average of ring and pinky</th>
<th align="center">Thumb</th>
<th align="center">Index</th>
<th align="center">Middle</th>
<th align="center">Average of ring and pinky</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Maximum <inline-formula id="inf138">
<mml:math id="m148">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>(mN)</td>
<td align="center">1,028</td>
<td align="center">4,195</td>
<td align="center">3,640</td>
<td align="center">372</td>
<td align="center">485</td>
<td align="center">1,651</td>
<td align="center">3,589</td>
<td align="center">1,281</td>
<td align="center">858</td>
<td align="center">3,531</td>
<td align="center">3,577</td>
<td align="center">1,313</td>
</tr>
<tr>
<td align="center">Time to reach maximum <inline-formula id="inf139">
<mml:math id="m149">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>(s)</td>
<td align="center">2.26</td>
<td align="center">2.88</td>
<td align="center">2.50</td>
<td align="center">2.11</td>
<td align="center">2.06</td>
<td align="center">2.30</td>
<td align="center">1.93</td>
<td align="center">2.18</td>
<td align="center">2.27</td>
<td align="center">1.99</td>
<td align="center">1.80</td>
<td align="center">1.64</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf140">
<mml:math id="m150">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>reading after stabilizing (mN)</td>
<td align="center">655</td>
<td align="center">2,348</td>
<td align="center">2060</td>
<td align="center">203</td>
<td align="center">332</td>
<td align="center">1,178</td>
<td align="center">2,462</td>
<td align="center">593</td>
<td align="center">628</td>
<td align="center">2042</td>
<td align="center">2,283</td>
<td align="center">579</td>
</tr>
<tr>
<td align="center">Maximum variation in <inline-formula id="inf141">
<mml:math id="m151">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>(s)</td>
<td align="center">42</td>
<td align="center">61</td>
<td align="center">171</td>
<td align="center">50</td>
<td align="center">57</td>
<td align="center">60</td>
<td align="center">258</td>
<td align="center">52</td>
<td align="center">108</td>
<td align="center">110</td>
<td align="center">180</td>
<td align="center">91</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf142">
<mml:math id="m152">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>reading after stabilizing (mN)</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">Response time for motor once slip occur (s)</td>
<td align="center">0.11</td>
<td align="center">0.13</td>
<td align="center">0.05</td>
<td align="center">0.05</td>
<td align="center">0.19</td>
<td align="center">0.14</td>
<td align="center">0.02</td>
<td align="center">0.14</td>
<td align="center">0.05</td>
<td align="center">0.15</td>
<td align="center">0.02</td>
<td align="center">0.03</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The results showed that, despite varying lifting speeds, <inline-formula id="inf147">
<mml:math id="m157">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> remained consistent. The robot hand applied a similar gripping force on the aluminium rod in each case. This confirms the effectiveness of closed-loop force control for slip detection, which proved reliable regardless of the lifting speed.</p>
</sec>
<sec id="s3-7">
<label>3.7</label>
<title>Sudden external disturbance detection</title>
<p>The robustness of the algorithm to sudden external disturbances was also evaluated in this study. After completing the slip-detection and establishing a stable grasp, the object was held in a stationary position. A manual pull was then applied vertically to simulate a sudden external disturbance. The results, shown in <xref ref-type="fig" rid="F7">Figure 7</xref>, illustrated the response following the vertical lifting.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Test for sudden external disturbance to aluminium rod and sponge.</p>
</caption>
<graphic xlink:href="frobt-13-1735467-g007.tif">
<alt-text content-type="machine-generated">The graphs illustrate the f_z_control, delta_f_xy, and P_motors for the thumb, index finger, middle finger, and the average of the ring and pinky fingers during the sudden external disturbance detection test with an aluminum rod and a sponge. They demonstrate that quick adjustments in P_motor can eliminate significant fluctuations in delta_f_xy, while post-disturbance results show a steady or decreasing P_motor, indicating the algorithm's effective circuit protection without compromising grip strength.</alt-text>
</graphic>
</fig>
<p>It was observed that this sudden pull induced a rapid fluctuation in <inline-formula id="inf148">
<mml:math id="m158">
<mml:mrow>
<mml:mi mathvariant="bold">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In response to these abrupt changes, <inline-formula id="inf149">
<mml:math id="m159">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of all fingers were quickly adjusted to accommodate them. This adaptation resulted in an immediate increase in gripping force, which was indicated by the sudden increase in <inline-formula id="inf150">
<mml:math id="m160">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">control</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. Furthermore, after the external disturbance was removed, some motors showed a decrease in <inline-formula id="inf151">
<mml:math id="m161">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">motor</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as a result of the circuit protection implemented within the algorithm while maintaining the gripping force.</p>
<p>Overall, the test results verified the robustness of the proposed algorithm against sudden external disturbances, as well as its ability to maintain a safe and stable grasp after the disturbance was removed.</p>
</sec>
<sec id="s3-12">
<label>3.8</label>
<title>Discussion</title>
<sec id="s3-12-1">
<label>3.8.1</label>
<title>Significance of the proposed control method</title>
<p>A comparison of existing slip-detection approaches with our proposed controller is presented in <xref ref-type="table" rid="T6">Table 6</xref>. The comparison, along with the experimental results, demonstrates that our control strategy, using simple tri-axial piezoresistive sensors, achieves simple, robust, and responsive slip detection in an anthropomorphic hand. By relying on <inline-formula id="inf152">
<mml:math id="m162">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for object engagement and <inline-formula id="inf153">
<mml:math id="m163">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for slip detection, the proposed method avoids the need for object- or pose-dependent calibration beyond the sensor provided force output and the runtime baseline acquisition, explicit friction modelling, or data-intensive learning pipelines, while still operating effectively across objects with distinct rigidity, weight, and surface textures.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Comparison of piezoresistive slip-detection methods.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Reference</th>
<th align="center">Sensor arrangement</th>
<th align="center">Availability</th>
<th align="center">Slip detection theory</th>
<th align="center">Strategy</th>
<th align="center">Calibration<xref ref-type="table-fn" rid="Tfn1">
<sup>a</sup>
</xref>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<xref ref-type="bibr" rid="B41">Zhao et al. (2025)</xref>
</td>
<td align="center">Array</td>
<td align="center">Commercial</td>
<td align="center">CNN slip classifier</td>
<td align="center">Hybrid</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B5">Chen et al. (2025)</xref>
</td>
<td align="center">Single</td>
<td align="center">Commercial</td>
<td align="center">CNN on tactile signals</td>
<td align="center">Hybrid</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B4">Chen et al. (2024)</xref>
</td>
<td align="center">Single</td>
<td align="center">Lab-made</td>
<td align="center">Shear/vibration sliding cues</td>
<td align="center">Control</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B17">Liu and Howe. (2023)</xref>
</td>
<td align="center">Single</td>
<td align="center">Commercial</td>
<td align="center">Probabilistic friction/slip</td>
<td align="center">Learning</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B14">Kim et al. (2022)</xref>
</td>
<td align="center">Single</td>
<td align="center">Lab-made</td>
<td align="center">Normal vs. shear thresholds</td>
<td align="center">Control</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B22">Mo et al. (2022)</xref>
</td>
<td align="center">Array</td>
<td align="center">Lab-made</td>
<td align="center">Piezoresistive and inductive slip cues</td>
<td align="center">Control</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B25">Pei et al. (2021)</xref>
</td>
<td align="center">Array</td>
<td align="center">Lab-made</td>
<td align="center">Spatiotemporal force pattern</td>
<td align="center">Control</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B32">Wang et al. (2019)</xref>
</td>
<td align="center">Array</td>
<td align="center">Lab-made</td>
<td align="center">DWT on 3-axis forces</td>
<td align="center">Control</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B31">Van Wyk and Falco. (2018)</xref>
</td>
<td align="center">Single</td>
<td align="center">Commercial</td>
<td align="center">LSTM on tactile time series</td>
<td align="center">Hybrid</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B6">Deng et al. (2017)</xref>
</td>
<td align="center">Single</td>
<td align="center">Commercial</td>
<td align="center">Torque/stiffness reflex</td>
<td align="center">Control</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B29">Stachowsky et al. (2016)</xref>
</td>
<td align="center">Single</td>
<td align="center">Lab-made</td>
<td align="center">Force/vibration slip signal</td>
<td align="center">Control</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B38">Zhang et al. (2015)</xref>
</td>
<td align="center">Array</td>
<td align="center">Lab-made</td>
<td align="center">Friction-cone grasp stability</td>
<td align="center">Control</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">Our approach</td>
<td align="center">Single</td>
<td align="center">Commercial</td>
<td align="center">Planar tangential force variation</td>
<td align="center">Control</td>
<td align="center">No</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn1">
<label>
<sup>a</sup>
</label>
<p>Calibration denotes an explicit procedure performed before or during deployment to obtain sensor force mapping coefficients or to identify physics model parameters such as friction, beyond manufacturer-provided sensor outputs and the runtime baseline acquisition.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>In the proposed controller, calibration-free means that no additional user-performed per-sensor or per-object calibration was conducted, and the slip decision relies on the runtime baseline and consecutive changes rather than fitted friction parameters. A key advantage of the proposed algorithm is that corrective actions are localized, and commands are sent only to the motor whose corresponding finger detects a slip, thereby increasing gripping force. This approach reduces unnecessary force exerted on fingers in no-slipping conditions, improving grasp efficiency and potentially reducing wear on both sensors. Additionally, the experimental results indicate that a compact set of threshold parameters <inline-formula id="inf154">
<mml:math id="m164">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf155">
<mml:math id="m165">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> for all fingers is adequate to generalize across a variety of everyday items. Moreover, the experimental results under varying lifting speeds and sudden external disturbances further indicate that the closed-loop scheme can stabilize grasps in dynamic conditions without requiring extensive tuning.</p>
</sec>
<sec id="s3-8-2">
<label>3.8.2</label>
<title>Limitations and future research</title>
<p>Despite the advantages of the current method, several limitations remain. In this article, calibration-free indicates that the controller does not need object or pose-specific tuning or friction parameter identification. It relies on a runtime baseline and changes in force rather than fitted models. First, the method assumed a fixed hand posture during grasping because the wrist DoFs were fixed. The test objects were positioned to ensure successful grasps, thereby avoiding misalignment issues. Second, the thresholds <inline-formula id="inf156">
<mml:math id="m166">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf157">
<mml:math id="m167">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> were selected offline using iterative testing. This approach may limit adaptability across a broader range of objects and tasks. These threshold values were kept fixed throughout the experiments, except for the highest lifting speed condition discussed in <xref ref-type="sec" rid="s3-6">Section 3.6</xref>, where <inline-formula id="inf158">
<mml:math id="m168">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> was increased due to sampling and motor response limits. Third, the current implementation was constrained by the sampling rate of the tactile sensors and the response time of the actuators, which became critical at higher lifting speeds, where higher thresholds were deemed necessary to compensate for the limited temporal resolution. This increase should be interpreted as a control setpoint adjustment for faster dynamics rather than an additional sensor calibration step. Finally, the experimental validation focused only on vertical lifting and disturbances using three representative objects. More complex in-hand manipulation, lateral perturbations, and cluttered environments were not considered in this study.</p>
<p>These limitations motivate several potential directions for future research. One approach is to develop an adaptive thresholding scheme that adjusts <inline-formula id="inf159">
<mml:math id="m169">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf160">
<mml:math id="m170">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>TH</mml:mtext>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> in real time based on observed force and slip history or estimated object properties. This adjustment would improve robustness across different tasks and hardware variations. Another direction is to integrate a camera into the system to incorporate vision in conjunction with the tactile-based controller. This integration can help actively refine grasp posture and contact placement, reducing the likelihood of misalignment and improving coverage of complex object geometries. Additionally, learning-based components, such as reinforcement learning, could be incorporated into the existing rule-based framework to modulate thresholds while preserving real-time operation without object- or pose-specific calibration or friction parameter identification.</p>
</sec>
</sec>
</sec>
<sec sec-type="conclusion" id="s4">
<label>4</label>
<title>Conclusion</title>
<p>This article introduces a calibration-free, per-finger force-feedback slip controller for an anthropomorphic hand that employs tri-axial tactile sensing and simple thresholding for real-time slip detection and correction on unknown objects. The design allows for localized adjustments for each finger, enhancing grasp efficiency and reducing unnecessary force on stable contacts. Experiments demonstrate rapid responses and stable grasps with controlled grip force across various object types and conditions, demonstrating the effectiveness of tri-axial sensing for slip control without calibration. However, limitations include a fixed hand posture due to reduced degrees of freedom, reliance on offline-tuned thresholds, and validation on a limited range of tasks. Future work will explore adaptive thresholding, vision-based grasping enhancements, and learning methods to improve performance on unseen objects and tasks while maintaining the framework&#x2019;s simplicity and real-time functionality.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s5">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="sec" rid="s11">Supplementary Material</xref>, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec sec-type="author-contributions" id="s6">
<title>Author contributions</title>
<p>DCYW: Writing &#x2013; review and editing, Formal Analysis, Writing &#x2013; original draft, Project administration, Methodology, Data curation, Software, Conceptualization, Investigation, Validation. ZZ: Project administration, Methodology, Supervision, Data curation, Conceptualization, Writing &#x2013; original draft, Writing &#x2013; review and editing, Funding acquisition, Resources, Investigation.</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of interest</title>
<p>The author(s) declared that this work was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="ai-statement" id="s9">
<title>Generative AI statement</title>
<p>The author(s) declared that generative AI was not used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<sec sec-type="supplementary-material" id="s11">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/frobt.2026.1735467/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/frobt.2026.1735467/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="Video3.mp4" id="SM1" mimetype="application/mp4" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Video2.mp4" id="SM2" mimetype="application/mp4" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Video1.mp4" id="SM3" mimetype="application/mp4" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<fn-group>
<fn fn-type="custom" custom-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/134743/overview">Jamshed Iqbal</ext-link>, University of Hull, United Kingdom</p>
</fn>
<fn fn-type="custom" custom-type="reviewed-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/134777/overview">Isak Karabegovi&#x107;</ext-link>, University of Biha&#x107;, Bosnia and Herzegovina</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2932089/overview">Yuri Gloumakov</ext-link>, University of Connecticut, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3019245/overview">Adhan Efendi</ext-link>, National Chin-Yi University of Technology, Taiwan</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Aceituno-Cabezas</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ballester</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Rodriguez</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Certified grasping</article-title>. <source>Int. J. Robotics Res.</source> <volume>42</volume>, <fpage>249</fpage>&#x2013;<lpage>262</lpage>. <pub-id pub-id-type="doi">10.1177/02783649231155952</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Billard</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Kragic</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Trends and challenges in robot manipulation</article-title>. <source>Science</source> <volume>364</volume>, <fpage>eaat8414</fpage>. <pub-id pub-id-type="doi">10.1126/science.aat8414</pub-id>
<pub-id pub-id-type="pmid">31221831</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Bai</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Geng</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Flexible piezoresistive three-dimensional force sensor based on interlocked structures</article-title>. <source>Sensors Actuators A Phys.</source> <volume>330</volume>, <fpage>112857</fpage>. <pub-id pub-id-type="doi">10.1016/j.sna.2021.112857</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
<etal/>
</person-group> (<year>2024</year>). <article-title>A rigid-flexible-soft coupled dexterous hand with sliding tactile perception and feedback</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>9</volume>, <fpage>11682</fpage>&#x2013;<lpage>11689</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2024.3497721</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Learning-based slip detection and fine control using the tactile sensor for robot stable grasping</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>10</volume>, <fpage>11156</fpage>&#x2013;<lpage>11163</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2025.3604723</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Deng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhong</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Nie</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Slippage and deformation preventive control of bionic prosthetic hands</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>22</volume>, <fpage>888</fpage>&#x2013;<lpage>897</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2016.2639553</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Efendi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shao</surname>
<given-names>Y.-H.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>C.-Y.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Technological development and optimization of pushing and grasping functions in robot arms: a review</article-title>. <source>Measurement</source> <volume>242</volume>, <fpage>115729</fpage>. <pub-id pub-id-type="doi">10.1016/j.measurement.2024.115729</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gong</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A flexible tactile sensor array for dynamic triaxial force measurement based on aligned piezoresistive nanofibers</article-title>. <source>IEEE Sensors J.</source> <volume>21</volume>, <fpage>21989</fpage>&#x2013;<lpage>21998</lpage>. <pub-id pub-id-type="doi">10.1109/JSEN.2021.3103781</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hammond</surname>
<given-names>F. L.</given-names>
</name>
<name>
<surname>Kramer</surname>
<given-names>R. K.</given-names>
</name>
<name>
<surname>Wan</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Howe</surname>
<given-names>R. D.</given-names>
</name>
<name>
<surname>Wood</surname>
<given-names>R. J.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Soft tactile sensor arrays for force feedback in micromanipulation</article-title>. <source>IEEE Sensors J.</source> <volume>14</volume>, <fpage>1443</fpage>&#x2013;<lpage>1452</lpage>. <pub-id pub-id-type="doi">10.1109/JSEN.2013.2297380</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Howe</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Cutkosky</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>1989</year>). <article-title>Sensing skin acceleration for slip and texture perception</article-title>. <source>Proc. 1989 Int. Conf. Robotics Automation</source> <volume>1</volume>, <fpage>145</fpage>&#x2013;<lpage>150</lpage>. <pub-id pub-id-type="doi">10.1109/ROBOT.1989.99981</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Machine learning for tactile perception: advancements, challenges, and opportunities</article-title>. <source>Adv. Intell. Syst.</source> <volume>5</volume>, <fpage>2200371</fpage>. <pub-id pub-id-type="doi">10.1002/aisy.202200371</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jahanshahi</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>Z. H.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Review of machine learning in robotic grasping control in space application</article-title>. <source>Acta Astronaut.</source> <volume>220</volume>, <fpage>37</fpage>&#x2013;<lpage>61</lpage>. <pub-id pub-id-type="doi">10.1016/j.actaastro.2024.04.012</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jassim</surname>
<given-names>H. S.</given-names>
</name>
<name>
<surname>Akhter</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Aalwahab</surname>
<given-names>D. Z.</given-names>
</name>
<name>
<surname>Neamah</surname>
<given-names>H. A.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Recent advances in tactile sensing technologies for human-robot interaction: current trends and future perspectives</article-title>. <source>Biosens. Bioelectron. X</source> <volume>26</volume>, <fpage>100669</fpage>. <pub-id pub-id-type="doi">10.1016/j.biosx.2025.100669</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kim</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Yun</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Soft tactile sensor to detect the slip of a robotic hand</article-title>. <source>Measurement</source> <volume>200</volume>, <fpage>111615</fpage>. <pub-id pub-id-type="doi">10.1016/j.measurement.2022.111615</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Komeno</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Matsubara</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Incipient slip detection by vibration injection into soft sensor</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>9</volume>, <fpage>3251</fpage>&#x2013;<lpage>3258</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2024.3366014</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lathers</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Mousa</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>La Belle</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Additive manufacturing fused filament fabrication three-dimensional printed pressure sensor for prosthetics with low elastic modulus and high filler ratio filament composites</article-title>. <source>3D Print. Addit. Manuf.</source> <volume>4</volume>, <fpage>30</fpage>&#x2013;<lpage>40</lpage>. <pub-id pub-id-type="doi">10.1089/3dp.2016.0051</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Howe</surname>
<given-names>R. D.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Beyond coulomb: stochastic friction models for practical grasping and manipulation</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>8</volume>, <fpage>5140</fpage>&#x2013;<lpage>5147</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2023.3292580</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Huh</surname>
<given-names>T. M.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>S. X.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Kopsaftopoulos</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Cutkosky</surname>
<given-names>M. R.</given-names>
</name>
<etal/>
</person-group> (<year>2023a</year>). <article-title>Design of active sensing smart skin for incipient slip detection in robotics applications</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>28</volume>, <fpage>1766</fpage>&#x2013;<lpage>1777</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2022.3224119</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2023b</year>). <article-title>Intelligent soft robotic grippers for agricultural and food product handling: a brief review with a focus on design and control</article-title>. <source>Adv. Intell. Syst.</source> <volume>5</volume>, <fpage>2300233</fpage>. <pub-id pub-id-type="doi">10.1002/aisy.202300233</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Man</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Jin</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Magnetic tactile sensor with bionic hair array for sliding sensing and object recognition</article-title>. <source>Adv. Sci.</source> <volume>11</volume>, <fpage>2306832</fpage>. <pub-id pub-id-type="doi">10.1002/advs.202306832</pub-id>
<pub-id pub-id-type="pmid">38236170</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meng</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Buzzatto</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liarokapis</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>On aerial robots with grasping and perching capabilities: a comprehensive review</article-title>. <source>Front. Robotics AI</source> <volume>8</volume>, <fpage>8</fpage>&#x2013;<lpage>2021</lpage>. <pub-id pub-id-type="doi">10.3389/frobt.2021.739173</pub-id>
<pub-id pub-id-type="pmid">35399745</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>A tactile sensor based on piezoresistive effect and electromagnetic induction</article-title>. <source>Sensors Actuators A Phys.</source> <volume>344</volume>, <fpage>113716</fpage>. <pub-id pub-id-type="doi">10.1016/j.sna.2022.113716</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mun</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Diaz Cortes</surname>
<given-names>D. S.</given-names>
</name>
<name>
<surname>Youn</surname>
<given-names>J.-H.</given-names>
</name>
<name>
<surname>Kyung</surname>
<given-names>K.-U.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Multi-degree-of-freedom force sensor incorporated into soft robotic gripper for improved grasping stability</article-title>. <source>Soft Robot.</source> <volume>11</volume>, <fpage>628</fpage>&#x2013;<lpage>638</lpage>. <pub-id pub-id-type="doi">10.1089/soro.2023.0068</pub-id>
<pub-id pub-id-type="pmid">38557239</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ortenzi</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Cosgun</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Pardi</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chan</surname>
<given-names>W. P.</given-names>
</name>
<name>
<surname>Croft</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Kuli&#x107;</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Object handovers: a review for robotics</article-title>. <source>IEEE Trans. Robotics</source> <volume>37</volume>, <fpage>1855</fpage>&#x2013;<lpage>1873</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2021.3075365</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pei</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Sang</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A fully 3d-printed wearable piezoresistive strain and tactile sensing array for robot hand</article-title>. <source>Adv. Mater. Technol.</source> <volume>6</volume>, <fpage>2100038</fpage>. <pub-id pub-id-type="doi">10.1002/admt.202100038</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pennestr&#xec;</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Rossi</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Salvini</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Valentini</surname>
<given-names>P. P.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Review and comparison of dry friction force models</article-title>. <source>Nonlinear Dynamics</source> <volume>83</volume>, <fpage>1785</fpage>&#x2013;<lpage>1801</lpage>. <pub-id pub-id-type="doi">10.1007/s11071-015-2485-3</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Mao</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Recent progress in advanced tactile sensing technologies for soft grippers</article-title>. <source>Adv. Funct. Mater.</source> <volume>33</volume>, <fpage>2306249</fpage>. <pub-id pub-id-type="doi">10.1002/adfm.202306249</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Romeo</surname>
<given-names>R. A.</given-names>
</name>
<name>
<surname>Zollo</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Methods and sensors for slip detection in robotics: a survey</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>73027</fpage>&#x2013;<lpage>73050</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2020.2987849</pub-id>
</mixed-citation>
</ref>
<ref id="B29">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Stachowsky</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hummel</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Moussa</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Abdullah</surname>
<given-names>H. A.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>A slip detection and correction strategy for precision robot grasping</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>21</volume>, <fpage>2214</fpage>&#x2013;<lpage>2226</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2016.2551557</pub-id>
</mixed-citation>
</ref>
<ref id="B30">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sui</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>A novel incipient slip degree evaluation method and its application in adaptive control of grasping force</article-title>. <source>IEEE Trans. Automation Sci. Eng.</source> <volume>21</volume>, <fpage>2454</fpage>&#x2013;<lpage>2468</lpage>. <pub-id pub-id-type="doi">10.1109/TASE.2023.3261403</pub-id>
</mixed-citation>
</ref>
<ref id="B31">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Van Wyk</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Falco</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Calibration and analysis of tactile sensors as slip detectors</article-title>,&#x201d; in <source>2018 IEEE international conference on robotics and automation (ICRA)</source>, <fpage>2744</fpage>&#x2013;<lpage>2751</lpage>. <pub-id pub-id-type="doi">10.1109/ICRA.2018.8461117</pub-id>
</mixed-citation>
</ref>
<ref id="B32">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Mei</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Flexible tactile sensor array for distributed tactile sensing and slip detection in robotic hand grasping</article-title>. <source>Sensors Actuators A Phys.</source> <volume>297</volume>, <fpage>111512</fpage>. <pub-id pub-id-type="doi">10.1016/j.sna.2019.07.036</pub-id>
</mixed-citation>
</ref>
<ref id="B33">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ru</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Lei</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>D.</given-names>
</name>
<etal/>
</person-group> (<year>2025a</year>). <article-title>Grasping state analysis of soft manipulator based on flexible tactile sensor and high-dimensional fuzzy system</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>30</volume>, <fpage>2165</fpage>&#x2013;<lpage>2176</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2024.3445504</pub-id>
</mixed-citation>
</ref>
<ref id="B34">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Tu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Knoll</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2025b</year>). <article-title>Towards damage-less robotic fragile fruit grasping: a systematic review on system design, end effector, and visual and tactile feedback</article-title>. <source>
<italic>J. of Field Robotics</italic> N/a</source> <volume>42</volume>, <fpage>4521</fpage>&#x2013;<lpage>4543</lpage>. <pub-id pub-id-type="doi">10.1002/rob.70021</pub-id>
</mixed-citation>
</ref>
<ref id="B35">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Man</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Asghar</surname>
<given-names>W.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>A skin-inspired tactile sensor for smart prosthetics</article-title>. <source>Sci. Robotics</source> <volume>3</volume>, <fpage>eaat0429</fpage>. <pub-id pub-id-type="doi">10.1126/scirobotics.aat0429</pub-id>
<pub-id pub-id-type="pmid">33141753</pub-id>
</mixed-citation>
</ref>
<ref id="B36">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yong</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Chapman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Aw</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Soft and flexible large-strain piezoresistive sensors: on implementing proprioception, object classification and curvature estimation systems in adaptive, human-like robot hands</article-title>. <source>Sensors Actuators A Phys.</source> <volume>341</volume>, <fpage>113609</fpage>. <pub-id pub-id-type="doi">10.1016/j.sna.2022.113609</pub-id>
</mixed-citation>
</ref>
<ref id="B37">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ghaffar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Design of a 3-d tactile sensing array for incipient slip detection in robotic dexterous manipulation</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>73</volume>, <fpage>1</fpage>&#x2013;<lpage>14</lpage>. <pub-id pub-id-type="doi">10.1109/TIM.2024.3436064</pub-id>
</mixed-citation>
</ref>
<ref id="B38">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Fingertip three-axis tactile sensor for multifingered grasping</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>20</volume>, <fpage>1875</fpage>&#x2013;<lpage>1885</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2014.2357793</pub-id>
</mixed-citation>
</ref>
<ref id="B39">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Fei</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2025a</year>). <article-title>Dexterous hand towards intelligent manufacturing: a review of technologies, trends, and potential applications</article-title>. <source>Robotics Computer-Integrated Manuf.</source> <volume>95</volume>, <fpage>103021</fpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2025.103021</pub-id>
</mixed-citation>
</ref>
<ref id="B40">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Mao</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>G.</given-names>
</name>
<etal/>
</person-group> (<year>2025b</year>). <article-title>Mambaslip: a novel multimodal large language model for real-time robotic slip detection</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>10</volume>, <fpage>6592</fpage>&#x2013;<lpage>6599</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2025.3568612</pub-id>
</mixed-citation>
</ref>
<ref id="B41">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ye</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zeng</surname>
<given-names>L.-L.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Universal slip detection of robotic hand with tactile sensing</article-title>. <source>Front. Neurorobotics</source> <volume>19</volume>, <fpage>19</fpage>&#x2013;<lpage>2025</lpage>. <pub-id pub-id-type="doi">10.3389/fnbot.2025.1478758</pub-id>
<pub-id pub-id-type="pmid">39991554</pub-id>
</mixed-citation>
</ref>
</ref-list>
</back>
</article>