<?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 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" article-type="research-article" dtd-version="1.3" xml:lang="EN">
<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">1606774</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2025.1606774</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>A photovoltaic panel cleaning robot with a lightweight YOLO v8</article-title>
<alt-title alt-title-type="left-running-head">Luo et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/frobt.2025.1606774">10.3389/frobt.2025.1606774</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Luo</surname>
<given-names>Jidong</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<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="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="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="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="investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</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="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="resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</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="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</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>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</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 &#x2013; original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Guoyi</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<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="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="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lei</surname>
<given-names>Yanjiao</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<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; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Dong</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<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="validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Yayong</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2766181"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Zhang</surname>
<given-names>Hongzhou</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<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="software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
</contrib-group>
<aff id="aff1">
<label>1</label>
<institution>College of Mechanical and Electrical Engineering, Tarim University</institution>, <city>Alar</city>, <country country="CN">China</country>
</aff>
<aff id="aff2">
<label>2</label>
<institution>Modern Agricultural Engineering Key Laboratory at Universities of Education Department of Xinjiang Uygur Autonomous Region</institution>, <city>Alar</city>, <country country="CN">China</country>
</aff>
<aff id="aff3">
<label>3</label>
<institution>Xinjiang Production and Construction Corps (XPCC) Key Laboratory of Utilization and Equipment of Special Agricultural and Forestry Products in Southern Xinjiang</institution>, <city>Alar</city>, <country country="CN">China</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Hongzhou Zhang, <email xlink:href="120100012@taru.edu.cn">120100012@taru.edu.cn</email>
</corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2025-10-31">
<day>31</day>
<month>10</month>
<year>2025</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>12</volume>
<elocation-id>1606774</elocation-id>
<history>
<date date-type="received">
<day>06</day>
<month>04</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>07</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2025 Luo, Wang, Lei, Wang, Chen and Zhang.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Luo, Wang, Lei, Wang, Chen and Zhang</copyright-holder>
<license>
<ali:license_ref start_date="2025-10-31">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>Cleaning PV (photovoltaic) panels is essential for a PV station, as dirt or dust reduces the effective irradiation of solar energy and weakens the efficiency of converting solar energy into free electrons. The inconsistent (cleaning efficacy) and unsafe (summarized voltage and current) manual method is a challenge for a PV station. Therefore, this paper develops a cleaning robot with PV detection, path planning, and action control. Firstly, a lightweight Mobile-VIT (Mobile Vision Transformer) model with a Self-Attention mechanism was used to improve YOLOv8 (You Only Look Once v8), resulting in an accuracy of 91.08% and a processing speed of 215 fps (frames per second). Secondly, an A&#x2a; and a DWA (Dynamic Window Approach) path planning algorithm were improved. The simulation result shows that the time consumption decreased from 1.19 to 0.66 s and the Turn Number decreased from 23 to 10 p (places). Finally, the robot was evaluated and calibrated in both indoor and outdoor environments. The results showed that the algorithm can successfully clean PV arrays without manual control, with the rate increasing by 23% after its implementation. This study supports the maintenance of PV stations and serves as a reference for technical applications of deep learning, computer vision, and robot navigation.</p>
</abstract>
<kwd-group>
<kwd>cleaning robot</kwd>
<kwd>photovoltaic station management</kwd>
<kwd>lightweight YOLO v8</kwd>
<kwd>deep learning enhancement</kwd>
<kwd>path planning</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declare that financial support was received for the research and/or publication of this article. This work was supported by the Science and Technology Program of XPCC (NO.2023AB031; 2023AA007); Research on intelligent cleaning device for photovoltaic panels based on iterative neural network (2021ZB02); This work was supported by the New Energy Industry Innovation Research Institute of Xinjiang Production and Construction Corps (2023-02-20 240106).</funding-statement>
</funding-group>
<counts>
<fig-count count="16"/>
<table-count count="5"/>
<equation-count count="29"/>
<ref-count count="37"/>
<page-count count="21"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-in-acceptance</meta-name>
<meta-value>Field Robotics</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Highlights</title>
<p>1. YOLO v8 has been lightweighted with the Mobile-ViT for the cleaning robot.</p>
<p>2. The localizing and path planning algorithms were improved and validated in a computer environment.</p>
<p>3. Autonomous navigation and operation of robot prototypes in real-world environments.</p>
</sec>
<sec id="s2" sec-type="intro">
<label>1</label>
<title>Introduction</title>
<p>Cleaning photovoltaic (PV) panels for a PV station (solar power station) is a crucial prerequisite for achieving high efficiency and ensuring long-term, stable power generation (<xref ref-type="bibr" rid="B2">Azouzoute et al., 2021</xref>). Periodically cleaned at PV stations to prevent dust on the silicon crystal surface from blocking light or affecting the panel&#x2019;s performance (<xref ref-type="bibr" rid="B2">Azouzoute et al., 2021</xref>). However, the traditional manual cleaning method is inefficient (time cost), variable (energy supply balance), and unsafe (voltage and current summation) for health (<xref ref-type="bibr" rid="B19">Mohd Nizam Ong et al., 2022</xref>). Automatic cleaning equipment and algorithms are likely to become a crucial means of replacing manual work and a key trend in future research (<xref ref-type="bibr" rid="B26">&#x15e;evik and Akta&#x15f;, 2022</xref>). In recent years, many PV cleaning studies have focused on the mechanisms of dust deposition (<xref ref-type="bibr" rid="B21">Patil et al., 2017</xref>; <xref ref-type="bibr" rid="B9">Hu et al., 2025</xref>), equipment development (<xref ref-type="bibr" rid="B3">Bergametti et al., 2014</xref>; <xref ref-type="bibr" rid="B17">Mariraj Mohan, 2016</xref>; <xref ref-type="bibr" rid="B15">Liu et al., 2021</xref>), and algorithm improvement (<xref ref-type="bibr" rid="B25">Sarode et al., 2023</xref>; <xref ref-type="bibr" rid="B21">Patil et al., 2017</xref>).</p>
<p>The dust deposition mechanism provides a comprehensive understanding of the movement, accumulation, and retention characteristics, which can provide a mathematical basis for effective cleaning. For example, <xref ref-type="bibr" rid="B9">Hu et al. (2025)</xref> used the correlation graph method to establish an adaptive relationship between the influencing factors and the deposition type for dust deposition on a PV panel. It developed an adaptive deposition model that accounts for capillary force, temperature, and humidity, resulting in a 39.5% reduction in error. <xref ref-type="bibr" rid="B20">Osmani et al. (2020)</xref> verified that the dust deposition mechanism is linked to the particle collision-adhesion mechanism and the environmental humidity through mechanical equilibrium and the adhesion law of energy. In a controllable particle size range and wind speed, properly increasing the inclination angle of photovoltaic panels can reduce dust accumulation. Mainstream studies on the dust particle deposition law by gravity (<xref ref-type="bibr" rid="B3">Bergametti et al., 2014</xref>; <xref ref-type="bibr" rid="B17">Mariraj Mohan, 2016</xref>), PV electrostatic adsorption of dust particles (<xref ref-type="bibr" rid="B15">Liu et al., 2021</xref>), the effect of airflow stress and flow velocity on dust deposition (<xref ref-type="bibr" rid="B5">Gao and Li, 2012</xref>; <xref ref-type="bibr" rid="B23">Qin et al., 2024</xref>), and dust accumulation by surface chemisorption (<xref ref-type="bibr" rid="B8">Hossain et al., 2022</xref>). For a power station, improvements in engineering techniques and systematic applications are also necessary.</p>
<p>A dust cleaning equipment for PV panels focuses on engineering effectiveness and technical applications (<xref ref-type="bibr" rid="B20">Osmani et al., 2020</xref>). For example, <xref ref-type="bibr" rid="B7">Habib et al. (2021)</xref> developed an auto-removing dust accumulation system on PV panels using an Arduino controller, a fan, and a soft cloth wiper, achieving 87% cleaning efficiency with no water usage. <xref ref-type="bibr" rid="B4">Chen Y. et al. (2023)</xref> developed an intelligent embedded hybrid system for cleaning PV panels using Linear Piezoelectric Actuators and Support Vector Machines, achieving 10%&#x2013;30% recovery of dust and energy management parameters (error &#x3c;5%). The hybrid system was evaluated in India&#x2019;s tropical climate, achieving a steady 15%&#x2013;28% increase in efficiency, along with a 40% reduction in operations and maintenance costs. Compared to stationary cleaning equipment, ground mobile robots (<xref ref-type="bibr" rid="B1">Antonelli et al., 2020</xref>; <xref ref-type="bibr" rid="B13">Li and Li, 2022</xref>) or aerial cleaning robots (<xref ref-type="bibr" rid="B10">Huang et al., 2025</xref>; <xref ref-type="bibr" rid="B18">Milidonis et al., 2023</xref>) offer higher flexibility, and a single machine can cover service work in multiple areas with better equipment and attachment economics. Aerial robots also need to consider the safety of low-altitude flight, the speed of single cleaning, and the necessary parameters, such as counterweight.</p>
<p>Whether a cleaning equipment is stationary or movable, on the ground or in the air, the application of intelligent algorithms has seen a trend and an integral part (<xref ref-type="bibr" rid="B14">Licardo et al., 2024</xref>). For example, <xref ref-type="bibr" rid="B12">Kshetrimayum et al. (2023)</xref> proposed a UAV (Unmanned Aerial Vehicle) for detecting, locating, and cleaning bird droppings in a PV station using an improved YOLO v7 (You Only Look Once), which calculates the dust distance and guides the cleaning equipment to clean efficiently. <xref ref-type="bibr" rid="B36">Chen B. R. et al. (2023)</xref> improved the fuzzy motion, rolling, and steering control for intelligent balance control and trajectory tracking, and found that the underdrive one-wheeled system can effectively pass various experimental scenarios, such as slope traversal and load disturbance. <xref ref-type="bibr" rid="B28">Yuan et al. (2024)</xref> noted that intelligent aerial robots have a broad range of applications in multiple fields, including both military and civilian contexts. The use of intelligent algorithms, such as deep learning, is of great benefit to the accuracy and work effectiveness of equipment robots.</p>
<p>Although many studies have discussed surface dust deposition patterns, the design and development of cleaning equipment, and detection methods for contaminated objects in PV station cleaning, there is a notable lack of reports on detecting PV panels through deep learning, planning paths through optimization algorithms, and building a robot to automate the cleaning of PV panels. This study enhanced the YOLO v8 network model to accurately detect PV panels, refined the DWA algorithm for path planning, and developed a robot system to implement the algorithm and perform PV station cleaning tasks.</p>
</sec>
<sec sec-type="materials" id="s3">
<label>2</label>
<title>Materials</title>
<sec id="s3-1">
<label>2.1</label>
<title>Image dataset and data enhancement</title>
<p>Processes such as training and testing of deep learning are performed on a ground-based image dataset (P-Pose, position and orientation). A typical PV station with multiple rows, pitted ground, and complex sunlight reflections was selected as the data acquisition site. During the data acquisition process, the robot was simulated with various shooting angles, oblique lateral, frontal views, high poses, backlight, and front light, and at different distances on 7 June 2023, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The acquisition method is manual shooting acquisition, and the acquisition tool is a smartphone (Redmi K40S, Shenzhen, China, Xiaomi Technology Co., Ltd.), with a resolution of 4,000 &#xd7; 1800. A total of 116 PV images were obtained as the original dataset, and the field dataset was constructed.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Partial image of the original dataset.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g001.tif">
<alt-text content-type="machine-generated">Sample images from the collected dataset.</alt-text>
</graphic>
</fig>
<p>The calibration process of the P-Pose dataset involves transforming the PV panel position and category information in the image into a computer-readable digital form. The complete dataset trained by the deep learning model for PV panel pose contains the PV pose category and the RoI (region of interest), which is used to obtain the coordinate position of the label to be recognized within the entire image. The labelled dataset in this folder is divided into one-to-one correspondences in the PV pose images. The dataset is labelled with the LabelMe app, which provides the &#x201c;Create Rect-Box&#x201d; rectangular shape. For a robot to start the cleaning, the labels are classified into &#x201c;front&#x201d; and &#x201c;side&#x201d;, as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, simulating the front and oblique side positions from the corresponding machine viewpoints. Labels of the same type will be automatically assigned the same colour when the next labelling operation is performed. Due to the compact arrangement in the PV station and the characteristics of multiple PV panels visible from the same viewpoint, the same position is repeatedly labelled to enhance robustness. The parameters include <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <italic>x</italic>, <italic>y</italic>, <italic>w</italic>, and <italic>h</italic>, where the <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the class number of the target object. When <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, the labeled was denoted &#x201c;side&#x201d;, and <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> denoted &#x201c;front&#x201d;. The <italic>x</italic>, and <italic>y</italic> are the horizontal and vertical offsets of the coordinates of the upper-left corner in the image. Then the <italic>w</italic> and <italic>h</italic> represent the width and height of the target label box. The four values are obtained after normalisation, i.e., the original data are mapped to the range of [0, 1] through a linear transformation for improved training and prediction.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Data labeling results of two random images in the dataset.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g002.tif">
<alt-text content-type="machine-generated">Two labeling forms on random images in the dataset.</alt-text>
</graphic>
</fig>
<p>To improve its generalization ability and robustness, data augmentation techniques were employed to enhance the training data in this study. Firstly, the data is lossless compressed and normalized to the following format: resolution 950 &#xd7; 428, RGB (Red/Green/Blue channels), and JPG (Joint Photographic Experts Group) file type. Then, the (0) no noise adding, (1) the Gaussian noise adding, (2) the Pepper noise adding, (3) the horizontal flipping, (4) the image blurring, (5) the luminance transformation, (6) the scaling, (7) the image translation, (8) and the rotation transformation were used to process all image in the dataset. All image examples were expanded to six times transformation (3&#x2013;8) and three times noise levels (0, 1, 2) to obtain a 2,088-image dataset (6 &#xd7; 3 &#xd7; 116 &#x3d; 2,088), as shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. To ensure the robustness and generalization ability of the model, all dataset samples are randomly divided into three sets, with a ratio of 8:1:1, resulting in 1,670 training set samples, 209 validation set samples, and 209 test set samples.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Examples of data augmentation. <bold>(a)</bold> A random RGB image data. <bold>(b)</bold> Pepper noise added to the a image. <bold>(c)</bold> Horizontal flip of the a image. <bold>(d)</bold> Gaussian noise added to the a image. <bold>(e)</bold> Brighten augmentation of the a image. <bold>(F)</bold> Dimed for the a image.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g003.tif">
<alt-text content-type="machine-generated">Examples of the augmented dataset. (a) A random image from the dataset.(b) Result of pepper noise added to the image.(c) Result of horizontal flip applied to the image.(d) Result of Gaussian noise added to the image. (e) Result of brighten augmentation applied to the image. (f) Result of dimmed augmentation applied to the image.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s3-2">
<label>2.2</label>
<title>YOLO v8 structure and the performance evaluation parameters</title>
<p>YOLO v8, developed by Ultralights, enhances efficiency and accuracy by building upon YOLO v6 and YOLO v7, which are primarily applied to tasks such as image classification, object detection, and instance segmentation. In this paper, we focus on the task of object detection. YOLO v8 consists of five models, including YOLO v8n, YOLO v8s, YOLO v8m, YOLO v8l, and YOLO v8x (<xref ref-type="bibr" rid="B29">Gamani et al., 2024</xref>). Considering the effect of model size, the YOLO v8n network model, which is compact yet highly accurate, is chosen in this paper. As shown in <xref ref-type="fig" rid="F4">Figure 4</xref>, the YOLO v8n model&#x2019;s detection network is primarily composed of four key components: Input, Backbone, Neck, and Head.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>The YOLO v8 network model structure.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g004.tif">
<alt-text content-type="machine-generated">Flowchart of a neural network architecture. It includes sections: Input, Backbone, Detect, Neck, Head, Conv, and SPPF. Each section contains layers like Conv, C2f, Concat, Bottleneck, Upsample, MaxPool2d, and SiLU, detailing connections and flow of operations. The Detect section highlights box loss functions.</alt-text>
</graphic>
</fig>
<p>The Input part is the data preprocessing component of the model, which includes multi-scale detection and normalization of pixel values to the range of [0, 1]. It helps improve the model&#x2019;s ability to manage different image brightnesses and contrasts better. Batch processing enables the Backbone model to process multiple images simultaneously. The Backbone contains the Conv, C2f (Cross Stage Partial Network 2 with Focus), and SPPF (Spatial Pyramid Pooling-Fast) modules (<xref ref-type="bibr" rid="B30">Liu and Zhou, 2024</xref>). The Conv module is primarily used for convolution and combines Batch Normalization (BN) and Sigmoid Linear Unit (SiLU) activation functions to process the input image. In addition, the SPPF structure converts an arbitrarily sized feature mapping into a fixed-size feature vector. The neck structure combines different layers of feature mapping to enhance detection performance, thereby constructing a feature pyramid. It helps the model to process multi-scale information more efficiently and perform learning and inference (<xref ref-type="bibr" rid="B31">Liu et al., 2018</xref>). The Head is the detection part of the target detection model, which employs strategies such as multi-stage prediction and cross-feature-graph linking to fuse multiple feature mapping outputs from the neck according to specific rules, thus obtaining a global feature vector box. Loss is a technique used to compute the position of the BBR in target detection and the size regression loss, which consists of complete IoU (Intersection over Union) Loss and Distribution Focal Loss. Complete IoU Loss, as the BBR loss function, considers the position, size, aspect ratio, and angle information of the box to measure the similarity between the predicted box and the real box more comprehensively. On the other hand, Distribution Focal Loss is used to suppress positional regression inaccuracies, which causes the model to pay more attention to samples that are difficult to regress, thereby effectively improving the positional BBR. The output Complete IoU is obtained by weighing the location and size difference factors, which in turn calculate the regression loss by measuring the difference in Complete IoU values between the predicted and real boxes.</p>
<p>The model was constructed on computer workstations in the on-campus laboratory, the experimental environment, with 64-bit Windows 10 operating system for training and validation, the computer hardware system configuration includes: the central processor is an Intel of Xeon &#xae; Silver 4210R CPU @ 2.40 GHz; the graphics card is an NVIDIA GeForce RTX 3060Ti; and 64 GB of operating memory. The programming and deployment of the YOLO v8 algorithm were conducted on the PyCharm 2023 platform using Python 3.8.17 as the programming language. The training was accelerated by using CUDA 11.8, and the network framework training was also conducted based on the deep learning framework PyTorch 2.0.0.</p>
<p>For the evaluation of the results models, the confusion matrix, precision (<italic>P</italic>), recall (<italic>R</italic>), mean average precision (<italic>mAP</italic>), F1 score (<italic>F1</italic>), number of floating-point operations (<italic>GFLOPs</italic>), and Frame Per Second, (<italic>FPS</italic>, unit fps) were used as evaluation metrics for the PV panel position detection model. In this case, the confusion matrix is used to evaluate the performance of the binary classification model, comparing the model&#x2019;s prediction results with the actual results to produce quantitative statistics for the four cases. The predicted and the actual results are categorized as positive and negative cases. These predictions can be represented in a confusion matrix (<xref ref-type="fig" rid="F5">Figure 5</xref>).</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The confusion matrix.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g005.tif">
<alt-text content-type="machine-generated">Confusion matrix with a two-by-two grid labeled as Real and Result. The Real categories are Positive and Negative, while the Result categories are Positive and Negative. The intersections represent True Positive (TP), False Positive (FP), False Negative (FN), and True Negative (TN).</alt-text>
</graphic>
</fig>
<p>The confusion matrix in (1) True Positives (<italic>TP</italic>): the samples number in which the model correctly predicts positive cases as positive; (2) True Negatives (<italic>TN</italic>): the samples number in which the model correctly predicts negative cases as negative; (3) False Positives (<italic>FP</italic>): the samples number in which the model incorrectly predicts negative cases as positive cases; (4) False Negatives (<italic>FN</italic>): the samples number in which the model incorrectly predicts positive cases as negative cases. Additionally, the <italic>P</italic> refers to the proportion of positive samples that are predicted correctly, as shown in <xref ref-type="disp-formula" rid="e1">Equation 1</xref>.<disp-formula id="e1">
<mml:math id="m5">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mtext>TP</mml:mtext>
<mml:mrow>
<mml:mtext>TP</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>FP</mml:mtext>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>The <italic>R</italic> can be calculated as the proportion of all targets correctly predicted, as in <xref ref-type="disp-formula" rid="e2">Equation 2</xref>.<disp-formula id="e2">
<mml:math id="m6">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mtext>FP</mml:mtext>
<mml:mrow>
<mml:mtext>TP</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>FN</mml:mtext>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>The <italic>mAP</italic> evaluates the performance in the target detection task by drawing the <italic>P-R</italic> curve and calculating the area under the curve. This study also used the <italic>mAP</italic> to assess the result, which is a balance between <italic>P</italic> and <italic>R</italic>, as the evaluation index for the detection model. The <italic>mAP</italic> can more accurately assess the performance of the model by considering the sorting effect of the model on distinct categories in the target detection. <italic>mAP</italic> is directly proportional to the performance of the algorithm model, and it can reflect the model&#x2019;s performance more comprehensively and objectively. The <italic>m</italic> denotes the average, and the number after denotes the threshold for determining whether a sample is positive or negative in terms of <italic>IoU</italic>. The <italic>mAP</italic> is the average accuracy of the <italic>n</italic> categories, calculated as shown in <xref ref-type="disp-formula" rid="e3">Equation 3</xref>.<disp-formula id="e3">
<mml:math id="m7">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>P</mml:mi>
<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:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The <italic>F1</italic> is the reconciled average of the detection rate and <italic>R</italic>, so the <italic>F1</italic> curve is usually used to compare the performance of different models. The <italic>F1</italic> can range from [0,1], and the larger, the better performance of the model, as shown in <xref ref-type="disp-formula" rid="e4">Equation 4</xref>.<disp-formula id="e4">
<mml:math id="m8">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>The <italic>GFLOPs</italic> measures the complexity of the model; higher values typically indicate that the model requires more computational resources for inference, resulting in longer inference times. On the contrary, a lower value indicates that the model is less computationally intensive and can complete the reasoning process faster. The detection frame rate refers to the <italic>FPS</italic> at which the processed image is displayed. A higher <italic>FPS</italic> means that the system can process images or videos faster, resulting in a smoother display or faster detection. The <italic>FPS</italic> is affected by both the algorithm weights and the hardware configuration of the experimental equipment.</p>
</sec>
<sec id="s3-3">
<label>2.3</label>
<title>The design of the robot</title>
<p>The overall structure of the robot was designed independently, as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, including the power supply structure, robot chassis (Bunker mini), mechanical arm (JAKA C4), control mechanism, motion mechanism, communication mechanism, camera, and working mechanism (water box, pumps and nozzles). Among them, the Li battery (24 V/10,000 mA h) and power management module of the power supply mechanism provide voltage to the entire robot. The emergency button is directly connected to the battery, and the PV panel serves as an additional power source for charging the battery. The host computer and input devices, such as display outputs and keyboards, form an independent control mechanism that is connected to other mechanisms to send control signals and execute task control processes. The robot motion mechanism serves as an independent motion control centre with the Robot Operating System (ROS 2 Foxy Fitzroy) and is connected to the host computer via communication. This independent control centre receives point cloud signals from the LiDAR (Light Detection and Ranging) and outputs control signals for the motion to the chassis mechanism, enabling the entire robot to move. The chassis is the skeleton, bearing, motor, and tire parts that provide the structural force to achieve the movement of the whole robot. The working mechanism comprises a robotic arm, an RGB-D (RGB-Depth) camera (Astra&#x2b; with Orbbec SDK), and a nozzle part. The camera acquires image information in real-time, and the nozzle outputs high water pressure (90 &#xb1; 10 kPa), allowing the robotic arm to adjust the position and angle of the output. The communication mechanism prepares the entire robot for networking with other robots and the whole cleaning task.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Primary structure of the robot. <bold>(a)</bold> The design of the robot. <bold>(b)</bold> The structural diagram of the robot.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g006.tif">
<alt-text content-type="machine-generated">Diagram of a robotic system labeled &#x22;a&#x22; and &#x22;b&#x22;. &#x22;a&#x22; shows a side view, featuring parts like a solar power panel, LiDAR, robotic arm, RGB-D camera, and caterpillar tread. &#x22;b&#x22; details the mechanisms, including working, control, motion, communication, and power supply, with components like the host computer, Li-ion battery, and servo motor.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec sec-type="methods" id="s4">
<label>3</label>
<title>Methods</title>
<sec id="s4-1">
<label>3.1</label>
<title>YOLO v8 structure and cost function improvement approach</title>
<p>To further improve the accuracy and efficiency of YOLO v8, the box cost function has been optimized to enhance the training and testing of the network, enabling the PV panels cleaning robot to identify variable PVs in the mobile view. Among them, Mobile-ViT is further optimized based on the efficient and lightweight visual ViT model and Transformer model (<xref ref-type="bibr" rid="B32">Mehta et al., 2021</xref>), which is commonly used in computing resource and storage space-constrained recognition and detection environments for outdoor deployments of movable equipment.</p>
<p>
<xref ref-type="fig" rid="F7">Figure 7</xref> provides a schematic of the improved Mobile-ViT model, including its detailed components: Mobile-ViT block, Transformer, MV2, and feature fusion. Each Block in the Mobile-ViT module consists of MHSA (Multi-Head Self-Attention) layers and FFNN (Feed-Forward Neural Networks) layers stacked alternately. The feature mapping is generated by a convolutional module of size n &#xd7; n for local feature modeling, followed by a convolutional layer with a 1 &#xd7; 1 convolutional kernel to adjust the channel number. This is then followed by global feature modelling through the Unfold, Transformer, and Fold structures, in that order. Then, a convolutional layer with a 1 &#xd7; 1 convolutional kernel size is used to adjust the channel size to the original size, followed by shortcut branching with the original input feature mappings spliced by the channel concept. Finally, a convolutional layer with a convolutional kernel size of n &#xd7; n is used for feature fusion to obtain the final output, as shown in <xref ref-type="disp-formula" rid="e5">Equation 5</xref>.<disp-formula id="e5">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>Transforme</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>U</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Mobile-ViT network structure.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g007.tif">
<alt-text content-type="machine-generated">Diagram illustrating a neural network architecture. It includes a sequence of processing blocks such as Mobile ViT blocks, MV2 (Inverted Residual Blocks), and convolution layers. The flow begins with an image input at size 128x128, passes through multiple transformations including convolution and Mobile ViT blocks, and ends with global pooling and logits output. Transformer components act as convolutions for global representations. The diagram emphasizes feature fusion and transformation steps.</alt-text>
</graphic>
</fig>
<p>Where the <italic>N</italic> is the number of spreading picture blocks, the <italic>p</italic> is the size of the picture blocks; the <italic>W</italic> and <italic>H</italic> are the width and height of the spreading picture blocks. In the Transformer module, Self-Attention is used to learn the correlation between various locations in the image, thereby fully understanding the inner structure of the image features. Self-Attention calculates each token by considering the correlation with all other tokens using the formula, as shown in <xref ref-type="disp-formula" rid="e6">Equation 6</xref>.<disp-formula id="e6">
<mml:math id="m10">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
<mml:msqrt>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msqrt>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Where <italic>T</italic> denotes the length of the sequence, <italic>dk</italic> denotes the dimension of <italic>K</italic> (<italic>dq</italic>, and <italic>dv</italic> are for <italic>Q</italic>, and <italic>V</italic>). Before calculating SoftMax, the weight matrix is multiplied by the <italic>d</italic>
<sub>
<italic>k</italic>
</sub> <italic>&#x3d; -0.5</italic>. After completing the calculation of <italic>XX</italic>
<sup>
<italic>T</italic>
</sup>, the variance of the elements in the matrix becomes large, causing the SoftMax distribution to become extremely steep, which affects the stable calculation of the gradient, as <xref ref-type="disp-formula" rid="e7">Equation 7</xref>. The previously computed similarity can be normalized, and the variance can be adjusted to <italic>1/N</italic>, which decouples the steepness of the SoftMax distribution from <italic>d</italic>. Before training and testing, the class weight was set as an inverse proportion of the example to the classes balance, as <xref ref-type="bibr" rid="B4">Chen Y. et al. (2023)</xref> reported. Therefore, the stability of the gradient can be maintained during the training process, allowing the Self-Attention mechanism to be implemented and the Self-Attention feature extraction to be completed.<disp-formula id="e7">
<mml:math id="m11">
<mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>Finally, the contextual dependencies between local and global blocks are established through the channel fusion and recovery operations, as shown in <xref ref-type="disp-formula" rid="e8">Equation 8</xref>.<disp-formula id="e8">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>G</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3be;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>U</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>Where the <italic>X</italic>
<sub>
<italic>N</italic>
</sub> denotes the input local feature block, <italic>X</italic>
<sub>
<italic>U</italic>
</sub> denotes the expanded local feature block, <italic>X</italic>
<sub>
<italic>G</italic>
</sub> denotes the fused feature block, and <italic>&#x3be;</italic> denotes the feature-weighted fusion operation. The feature reduction of the channel is performed using multi-scale convolution, and the extraction of positional features for PV panels is achieved through a feature fusion structure.</p>
<p>In addition, considering that YOLO relies on the BBR (Bounding Box Regression) module to determine the location of objects (<xref ref-type="bibr" rid="B33">Girshick et al., 2015</xref>), during the training process. The BBR loss function is design as MPDIoU. The core design idea of the MPDIoU is to define two metrics, the centroid distance discrepancy metric (MD) and the target box width-height discrepancy metric (PD). In this case, the MD is calculated by determining the Euclidean distance (ED) between the centroids of the two target boxes and then normalising it to the range of [0, 1], as shown in <xref ref-type="disp-formula" rid="e9">Equation 9</xref>.<disp-formula id="e9">
<mml:math id="m13">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mn>2</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mn>2</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>Where the <italic>c</italic>
<sub>
<italic>1</italic>
</sub> and <italic>c</italic>
<sub>
<italic>2</italic>
</sub> denote the coordinates of the centre points of the two target boxes. The <italic>w</italic>
<sub>
<italic>1</italic>
</sub> and <italic>h</italic>
<sub>
<italic>1</italic>
</sub> denote the width and height of the first target box. And the <italic>w</italic>
<sub>
<italic>2</italic>
</sub> and <italic>h</italic>
<sub>
<italic>2</italic>
</sub> denote the width and height of the second target box, by the sum of the ED between the coordinates of the upper left and lower right corners of the two target frames and normalizing this distance to [0,1], as <xref ref-type="disp-formula" rid="e10">Equation 10</xref>.<disp-formula id="e10">
<mml:math id="m14">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mn>2</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mn>2</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Where the <inline-formula id="inf5">
<mml:math id="m15">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf6">
<mml:math id="m16">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> denote the coordinates of the upper left corner of the two target frames. The <inline-formula id="inf7">
<mml:math id="m17">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf8">
<mml:math id="m18">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> denote the coordinates of the lower right corner of the two target frames, as shown in <xref ref-type="disp-formula" rid="e11">Equation 11</xref>.<disp-formula id="e11">
<mml:math id="m19">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>The overlap metric MPD and traditional IoU are weighted and fused to obtain the <inline-formula id="inf9">
<mml:math id="m20">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>I</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in <xref ref-type="disp-formula" rid="e12">Equation 12</xref>.<disp-formula id="e12">
<mml:math id="m21">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>I</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>U</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>I</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>U</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">&#x3b1;</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>where <inline-formula id="inf10">
<mml:math id="m22">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a hyperparameter used to control the weighting between the two metrics. Define the BBR loss function LMPDIoU based on MPDIoU according to the definition of MPDIoU, as <xref ref-type="disp-formula" rid="e13">Equation 13</xref>.<disp-formula id="e13">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>I</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>I</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>Replacing class Bbox Loss and class YOLO v8 Detection Loss in the detection HEAD module with class <inline-formula id="inf11">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>I</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> similarity comparisons between the target boxes make it more applicable to overlapping BBR, improving the speed of convergence and the accuracy of the regression results. The method comprehensively considers the centroid distance difference and width-height difference between PV positional, thus providing a more comprehensive and accurate result.</p>
</sec>
<sec id="s4-2">
<label>3.2</label>
<title>Algorithm improvement and simulation for robot path planning</title>
<p>The previous deep learning target recognition results also need to be integrated with the path planning algorithm to determine the working path, enabling the robot to achieve continuous automatic operation. The iterative process of the A&#x2a; algorithm is enhanced by self-regulated search and path smoothing rules, and local optimization is applied to optimize the real-time performance of the A&#x2a; algorithm (<xref ref-type="bibr" rid="B36">Li and Zhang, 2023</xref>). Its core principle is to find the optimal heuristic choice by comparing the relationship between the heuristic cost and the global cost, as expressed in <xref ref-type="disp-formula" rid="e14">Equation 14</xref>.<disp-formula id="e14">
<mml:math id="m25">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>Where the <inline-formula id="inf12">
<mml:math id="m26">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the identification of the current scene-searching locus. The <inline-formula id="inf13">
<mml:math id="m27">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the minimum surrogate value from the robot&#x2019;s initial locus to the target locus. The <inline-formula id="inf14">
<mml:math id="m28">
<mml:mrow>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the actual minimum cost for the robot to travel from the initial locus to the current locus <inline-formula id="inf15">
<mml:math id="m29">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. And the <inline-formula id="inf16">
<mml:math id="m30">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a heuristic function representing the expected cost for the robot to travel from the current locus <inline-formula id="inf17">
<mml:math id="m31">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> to the target locus. The unobstructed travelling path of two points at the current and target loci in the Cartesian coordinate system.<disp-formula id="e15">
<mml:math id="m32">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>The improved A&#x2a; algorithm used in this paper is capable of automatically adjusting the weighting coefficients of the heuristic function <inline-formula id="inf18">
<mml:math id="m33">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, during the path planning process. <xref ref-type="disp-formula" rid="e15">Equation 15</xref> is based on the addition of the self-adjusting weighting coefficient formula, denoted as <xref ref-type="disp-formula" rid="e16">Equation 16</xref>.<disp-formula id="e16">
<mml:math id="m34">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>where <inline-formula id="inf19">
<mml:math id="m35">
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the self-adjustment weight coefficient and <inline-formula id="inf20">
<mml:math id="m36">
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Considering that the PV panel cleaning robot utilises a tracked mobile chassis, the steering process requires multiple speed adjustments, which increases the difficulty of controlling the chassis movement and reduces the robot&#x2019;s efficiency. The improved A&#x2a; algorithm in this paper also requires further smoothing and optimization using Bessel curves, as shown in <xref ref-type="disp-formula" rid="e17">Equation 17</xref>.<disp-formula id="e17">
<mml:math id="m37">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>Where the <inline-formula id="inf21">
<mml:math id="m38">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> denotes the binomial coefficients. The <italic>t</italic> denotes a parameter and satisfies, where <inline-formula id="inf22">
<mml:math id="m39">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. The <inline-formula id="inf23">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes a control locus. The <italic>n</italic> is proportional to the degree of smoothing of the path. And the <inline-formula id="inf24">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the control points, and the planning result of the path that passes through the locus <inline-formula id="inf25">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and to <inline-formula id="inf26">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Furthermore, considering that the robot&#x2019;s operating environment during motion is dynamic, it is necessary to investigate the need for localized consideration of real-time obstacle avoidance in the capability process. Therefore, the dynamic window of the robot was enhanced by its dynamics and inertia, and feasible arc trajectories were generated by selecting appropriate velocities. Various constraints can be added as needed. Assuming that the robot&#x2019;s traveling trajectory can be considered a straight line during a very short sampling interval, the increment of the robot&#x2019;s displacement in the global coordinate system is now <italic>&#x2206;t</italic>, as shown in <xref ref-type="disp-formula" rid="e18">Equation 18</xref>.<disp-formula id="e18">
<mml:math id="m44">
<mml:mrow>
<mml:mfenced open="{" close="" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">sin</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>Where the <italic>x(t)</italic> is the position component in the X direction of the world XOY axis, and the <italic>y(t)</italic> is the position component in the Y direction. The <italic>&#x3b8;(t)</italic> is the direction angle. The <italic>v(t)</italic> is the line velocity. And the <inline-formula id="inf27">
<mml:math id="m45">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> <italic>(t)</italic> is the angular velocity. Therefore, based on the limitation of the robot acceleration, the sampling space of the velocity at this time is given by <xref ref-type="disp-formula" rid="e19">Equation 19</xref>.<disp-formula id="e19">
<mml:math id="m46">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>Where the <inline-formula id="inf28">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf29">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the linear and angular velocities of the robot at the current moment, as shown in <xref ref-type="disp-formula" rid="e20">Equation 20</xref>.<disp-formula id="e20">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msqrt>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>Where the <inline-formula id="inf30">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf31">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the maximum and minimum values of the linear acceleration of the robot. The <inline-formula id="inf32">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf33">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the maximum and minimum values of the angular acceleration. The <inline-formula id="inf34">
<mml:math id="m54">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the distance between the robot and the nearest obstacle in the map, and only when the condition is satisfied will the robot not collide with the obstacle. The sampling speed of the robot must collectively satisfy the above constraints, i.e., the velocities of the robot, shown as <xref ref-type="disp-formula" rid="e21">Equation 21</xref>.<disp-formula id="e21">
<mml:math id="m55">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>&#x2229;</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>&#x2229;</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>After calculating the robot&#x2019;s traveling paths at different operational velocities, it is necessary to select the optimal one from these paths. The trajectory evaluation function evaluates all the predicted paths under the velocity sampling space. Then it chooses the velocity corresponding to the scored optimal travel path as the next velocity state. The mathematical formulation of the trajectory evaluation function is as <xref ref-type="disp-formula" rid="e22">Equation 22</xref>.<disp-formula id="e22">
<mml:math id="m56">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf35">
<mml:math id="m57">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf36">
<mml:math id="m58">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf37">
<mml:math id="m59">
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denote the weight coefficients of the corresponding functions, respectively. The <inline-formula id="inf38">
<mml:math id="m60">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes that the robot reaches the end of the travelling path with the currently set sampling speed <inline-formula id="inf39">
<mml:math id="m61">
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>, and the angle <inline-formula id="inf40">
<mml:math id="m62">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> between the robot&#x2019;s facing and the target at this moment, and the degree of this angle is inversely proportional to the scoring. The <inline-formula id="inf41">
<mml:math id="m63">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes that the robot&#x2019;s facing is the same as the nearest robot on the current traveling path. The <inline-formula id="inf42">
<mml:math id="m64">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the distance <inline-formula id="inf43">
<mml:math id="m65">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> between the robot and the nearest obstacle in the current travelling path, which is proportional to the score, and is set to a constant value assuming that there is no obstacle in this travelling path. The <inline-formula id="inf44">
<mml:math id="m66">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the running linear velocity <inline-formula id="inf45">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the robot, and this value is proportional to the score.</p>
</sec>
<sec id="s4-3">
<label>3.3</label>
<title>Mapping and localization of robots in outdoor environments</title>
<p>Although the robot&#x2019;s work path functions were discussed in the previous section under simulated conditions, actual robot work requires a detailed consideration of the entire process, including localization, spatial transformations, and testing of the actual work effect. Therefore, the Gmapping algorithm (<xref ref-type="bibr" rid="B34">Cuenca et al., 2023</xref>; <xref ref-type="bibr" rid="B35">Grisetti et al., 2005</xref>) is used, which has been improved for map construction, and the improved AMCL (Adaptive Monte Carlo Localization) algorithm, which primarily involves initialization, particle weight sampling, weight computation, resampling, and map updating. Among them, initializing particles means setting the weight of each particle to the average weight (w), as shown in <xref ref-type="disp-formula" rid="e23">Equation 23</xref>, so that <italic>N</italic> particles are initialized.<disp-formula id="e23">
<mml:math id="m68">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="normal">N</mml:mi>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>Particle weight sampling refers to relying on the data model acquired by the sensors to approximate the actual state of the mobile robot. Weight computation refers to the calculation of weights using Bayesian probability formulas in the traditional application of the RBPF algorithm. In this paper, the sensor observation data <inline-formula id="inf46">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is integrated into the proposed distribution, which focuses the sampling process on the region with the highest likelihood of observation, thereby improving sampling efficiency and accuracy, as shown in <xref ref-type="disp-formula" rid="e24">Equation 24</xref>.<disp-formula id="e24">
<mml:math id="m70">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2248;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
<mml:msubsup>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#xb7;</mml:mo>
<mml:msup>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
<p>Resampling: scanning the surroundings through the sensors, scenarios with sparse localization features and high similarity may be encountered, which can skew the particle weights towards homogenization, resulting in most particles deviating from the actual state. In the actual calculation process, the particle weight dispersion metric <inline-formula id="inf47">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mtext>eff</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be <xref ref-type="disp-formula" rid="e25">Equation 25</xref>.<disp-formula id="e25">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>Where the <italic>N</italic> denotes the number, and the <inline-formula id="inf48">
<mml:math id="m73">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> denotes the particle weight gap. At this point, resampling is required to replace the previously sampled particles. This strategy enhances the positioning accuracy of the particles, resulting in more accurately generated maps. Map update: The optimal particles are selected based on the particle weight sizes in the particle set <inline-formula id="inf49">
<mml:math id="m74">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, which determines the best trajectory for the mobile robot. Then, the map is updated in real-time based on this trajectory using sensor observations from LiDAR, and the constructed map is stored, thus completing the entire SLAM map-building process as described in <xref ref-type="disp-formula" rid="e26">Equation 26</xref>.<disp-formula id="e26">
<mml:math id="m75">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf50">
<mml:math id="m76">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the joint estimation of the robot&#x2019;s motion position, i.e., the robot&#x2019;s localization, using the odometer control information and the sensor observation information, and <inline-formula id="inf51">
<mml:math id="m77">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2236;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the computation of the robot&#x2019;s motion position in combination with the observation information for the computation and updating of the environment feature map.</p>
<p>Since then, the localization technique used has been AMCL, based on the PFA (Particle Filter Algorithm) [63]. In the process of calculating the particle weights, two additional data points need to be tracked, i.e., the mean value of the long-term change of the particle weights <inline-formula id="inf52">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the mean value of the short-term change of the particle weights <inline-formula id="inf53">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in <xref ref-type="disp-formula" rid="e27">Equation 27</xref>.<disp-formula id="e27">
<mml:math id="m80">
<mml:mrow>
<mml:mfenced open="{" close="" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>
</p>
<p>In the particle resampling phase, the algorithm performs random sampling of arbitrary particles to increase the number of random particles. The cleaning robot can accurately localize when the short-term variation mean <inline-formula id="inf54">
<mml:math id="m81">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is equal to or greater than the long-term variation means <inline-formula id="inf55">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, when the particle population tends to converge. However, suppose the average measurement probability of each particle in the particle set decreases. In that case, the robot may encounter localisation problems, at which point random particles need to be added to resolve the issue, as shown in <xref ref-type="disp-formula" rid="e28">Equation 28</xref>.<disp-formula id="e28">
<mml:math id="m83">
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>
</p>
<p>To optimize the computational speed of the algorithm, AMCL employs KLD (Kullback-Leibler Divergence) sampling. This sampling method determines the size of the particle ensemble by calculating the distance between the approximation of the particle filter and the actual probability distribution, as in <xref ref-type="disp-formula" rid="e29">Equation 29</xref>.<disp-formula id="e29">
<mml:math id="m84">
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>9</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:msqrt>
<mml:mfrac>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mn>9</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:msqrt>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
<p>Where the <inline-formula id="inf56">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the particle set size; <italic>k</italic> is the extent to which the particle subset covers the global map; <italic>&#x3b1;</italic> is the error threshold between the approximate probability distribution and the proper distribution; and <italic>&#x3b2;</italic> is the points on the normal distribution.</p>
</sec>
</sec>
<sec sec-type="results" id="s5">
<label>4</label>
<title>Result</title>
<sec id="s5-1">
<label>4.1</label>
<title>YOLO v8 improvement results for PV panel detection</title>
<p>
<xref ref-type="table" rid="T1">Table 1</xref> presents the results of training and comparing the improved YOLO v8n-PP with 5 other similar deep learning models, including YOLO v5s, YOLO v7, YOLO v8s, and YOLO v8n, under the same datasets and training conditions. Under the condition of keeping the PV panels positional dataset, model hyperparameters, and training parameters consistent, it can be seen from the table that the YOLO v8n-PP model performs best in all performance metrics, and its seven algorithmic model evaluation metrics are significantly better than those of the other algorithms. On the contrary, the YOLO v5s model performs worse in all performance metrics, due to its use of a shallower feature extraction network. As a result, most performance evaluation metrics show lower levels. The results of this experiment demonstrate the superiority of the YOLO v8n-PP model in detecting the positional attitude of the PV panels.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Comparative experiments of different algorithmic models.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">
<italic>P</italic> (%)</th>
<th align="center">
<italic>R</italic> (%)</th>
<th align="center">
<italic>mAP</italic>@0.5 (%)</th>
<th align="center">
<italic>F1</italic> (%)</th>
<th align="center">
<italic>GFLOPs</italic> (t)</th>
<th align="center">
<italic>mAP</italic>@0.5:0.95 (%)</th>
<th align="center">
<italic>FPS</italic> (fps)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">YOLO v5s</td>
<td align="center">90.31</td>
<td align="center">81.64</td>
<td align="center">88.07</td>
<td align="center">88</td>
<td align="center">15.8</td>
<td align="center">80.87</td>
<td align="center">76</td>
</tr>
<tr>
<td align="center">YOLO v7</td>
<td align="center">89.13</td>
<td align="center">82.24</td>
<td align="center">85.93</td>
<td align="center">87</td>
<td align="center">11.6</td>
<td align="center">82.65</td>
<td align="center">87</td>
</tr>
<tr>
<td align="center">YOLO v8s</td>
<td align="center">90.37</td>
<td align="center">82.31</td>
<td align="center">88.22</td>
<td align="center">86</td>
<td align="center">28.3</td>
<td align="center">87.63</td>
<td align="center">157</td>
</tr>
<tr>
<td align="center">YOLO v8n</td>
<td align="center">91.43</td>
<td align="center">83.33</td>
<td align="center">88.95</td>
<td align="center">87</td>
<td align="center">8.2</td>
<td align="center">86.63</td>
<td align="center">126</td>
</tr>
<tr>
<td align="center">YOLO v8n-PP</td>
<td align="center">
<bold>94.88</bold>
</td>
<td align="center">
<bold>89.11</bold>
</td>
<td align="center">
<bold>93.36</bold>
</td>
<td align="center">
<bold>93</bold>
</td>
<td align="center">
<bold>6.1</bold>
</td>
<td align="center">
<bold>91.08</bold>
</td>
<td align="center">
<bold>215</bold>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Note: Bolded data are optimal values.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>To compare the recognition effect of different algorithm models on PV panel orientation more graphically, the optimal training weight file for each algorithm model is used to visualise and analyse the test set. The visualization results are shown in <xref ref-type="fig" rid="F8">Figure 8</xref>. In this experiment, pictures with overlapping PV backgrounds and containing two types of orientations are selected as the objects of comparison. The comparative analysis reveals that the recognition accuracy of YOLO v8n surpasses that of the previous three algorithms. However, when dealing with PV panels positioned in overlapping backgrounds, the algorithm may appear to recognise PV targets that are heavily occluded, resulting in cluttered recognition target frames. It may also appear to recognize overlapping back-row PV panels. This phenomenon may cause serious interference with the robot, potentially preventing it from conducting the cleaning operation correctly. The YOLO v8n-PP further enhances the comprehensive performance of target detection and simultaneously enables accurate detection of the current PV panels to be cleaned under an overlapping background. This allows the cleaning robot to accurately adjust the path command during the autonomous navigation stage, ensuring smooth operation.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Comparison results of different algorithms. <bold>(a)</bold> Output of YOLO v5s. <bold>(b)</bold> Output of YOLO v7. <bold>(c)</bold> Output of YOLO v8s. <bold>(d)</bold> Output of YOLO v8n. <bold>(e)</bold> Output of YOLO v8n-PP (this paper).</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g008.tif">
<alt-text content-type="machine-generated">Solar panels displayed in five images labeled a to e, each annotated with detection boxes and confidence scores. Some boxes are green, others red, indicating side and front views of the panels. The panels are installed on a sandy terrain.</alt-text>
</graphic>
</fig>
<p>To evaluate the performance of the improved algorithm more intuitively, the <italic>P</italic>, <italic>R</italic>, and <italic>mAP@0.5</italic> of the YOLO v8n and YOLO v8n-PP models are shown in <xref ref-type="fig" rid="F9">Figure 9</xref> during the training process for comparison. <xref ref-type="fig" rid="F9">Figure 9</xref> shows the visual comparison of <italic>P</italic> between YOLO v8n and YOLO v8n-PP models during the training process. According to the analysis of the experimental data, the YOLO v8n algorithm has a low initial <italic>P</italic> in the first 100 rounds of deep learning. It fluctuates with the increase in the number of rounds in deep learning. It is only after the 100th round that the <italic>P</italic> stabilizes and remains above 90%. However, until the end of training, the curve still exhibits significant fluctuations, indicating that the <italic>P</italic> is not stable enough. In contrast, the YOLO v8n-PP algorithm has an initial <italic>P</italic> about 10% higher relative to YOLO v8n in the first 100 rounds of deep learning, and the <italic>P</italic> grows more smoothly as the number of deep learning rounds increases. Before the 100th round, the <italic>P</italic> has reached a steady state, which persists until the end of training, and the <italic>P</italic> curve remains stable, consistently higher than that of YOLO v8n.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>The training result of the YOLO v8n and YOLO v8n-PP. <bold>(a)</bold> The training <italic>P</italic>, Loss of the YOLO v8n and YOLO v8n-PP. <bold>(b)</bold> The training <italic>mPA@50:90</italic> of the YOLO v8n and YOLO v8n-PP.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g009.tif">
<alt-text content-type="machine-generated">Two line graphs side by side. Graph (a) on the left shows the precision and loss over epochs for YOLOv8n models, with various line styles representing train and validation accuracy and loss. Precision improves and loss decreases as epochs progress. Graph (b) on the right displays mPA at 0.5:0.95 over epochs for YOLOv8n and YOLOv8n-PP models, with accuracy increasing over time. Both graphs include legends identifying the different lines.</alt-text>
</graphic>
</fig>
<p>Demonstrates the YOLO v8n and YOLO v8n-PP models in the training process of <italic>mAP@0.5</italic> visual comparison. According to the analysis of the experimental data, YOLO v8n&#x2032;s <italic>mAP@0.5</italic> remains volatile and has not yet reached a stable state at the end of training. Still, YOLO v8n-PP of <italic>mAP@0.5</italic> is larger than YOLO v8n and shows a smoother curve, which flattens out at the late stage of training. From the visualization results, the superiority of the YOLO v8n-PP model extends beyond numerical level advantages; the stability of its recognition ability is also crucial. The stability of its recognition ability is excellent in both the training and testing phases, consistently providing high-quality recognition results. This stability enables the model to remain efficient and accurate when managing complex tasks. Due to this, the YOLO v8n-PP model demonstrates excellent applicability when performing PV position recognition tasks on physical devices. Its stable recognition capability and excellent numerical performance enable the model to effectively cope with a variety of complex environments and conditions, thus providing great convenience in practical operations.</p>
<p>To verify the effectiveness of the improvement algorithm, three improvement YOLO v8n models were built for ablation-style experiments, including YOLO v8n-M, YOLO v8n-MPD, and YOLO v8n-PP. Among them, YOLO v8n-M is a lightweight model suitable for mobile devices, replacing Mobile-ViT as the Backbone. YOLO v8n-MPD is to replace class Bbox-Loss and class v8 detection loss in the detection HEAD module with the BBR loss function class LMPD-IoU-Loss. finally, YOLO v8n-PP is to replace class LMPD-IoU-Loss with class LMPD-IoU-Loss (this study model). Position recognition is a crucial visual task, and the original YOLO v8n has demonstrated strong reliability in this field. By analyzing the results of the ablation-style experiments in <xref ref-type="table" rid="T2">Table 2</xref>, the original YOLO v8n shows strong reliability in PV panel bit-position recognition. The initial deep learning using the unimproved YOLO v8n achieved 91.43%, 83.33%, 88.95%, 87%, and 126 fps fo<italic>r P, R, mAP@0.5, F1</italic>, and <italic>FPS</italic>, respectively. The excellent performance of these evaluated metrics highlights the potential of the YOLO v8n algorithm for PV bit-posture recognition. However, the algorithm still suffers from problems in the evaluation of detection metrics, such as low <italic>F1</italic>, <italic>mAP@0.5:0.95</italic>, and <italic>GFLOPs</italic>. Despite the model&#x2019;s overall superior performance, there is still room for improvement in the algorithm&#x2019;s metric performance in the field of target detection. Therefore, there is a need to continue exploring and optimizing YOLO v8n to enhance its performance in tasks such as PV position recognition.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Results of YOLO v8 ablation-style experiment.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">Mobile-ViT</th>
<th align="center">
<italic>MPD</italic>
<break/>
<italic>IoU</italic>
</th>
<th align="center">
<italic>P</italic> (%)</th>
<th align="center">
<italic>R</italic> (%)</th>
<th align="center">
<italic>mAP</italic>@0.5 (%)</th>
<th align="center">F1 (%)</th>
<th align="center">
<italic>GFLOPs</italic> (t)</th>
<th align="center">
<italic>mAP</italic>@0.5:0.95 (%)</th>
<th align="center">
<italic>FPS</italic>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">YOLO v8n</td>
<td align="center">&#x2212;</td>
<td align="center">&#x2212;</td>
<td align="center">91.43</td>
<td align="center">83.33</td>
<td align="center">88.95</td>
<td align="center">87</td>
<td align="center">8.2</td>
<td align="center">86.63</td>
<td align="center">126</td>
</tr>
<tr>
<td align="center">YOLO v8n-M</td>
<td align="center">&#x221a;</td>
<td align="center">&#x2212;</td>
<td align="center">92.95</td>
<td align="center">
<bold>92.23</bold>
</td>
<td align="center">92.92</td>
<td align="center">92</td>
<td align="center">
<bold>5.8</bold>
</td>
<td align="center">90.77</td>
<td align="center">
<bold>239</bold>
</td>
</tr>
<tr>
<td align="center">YOLO v8n-MPD</td>
<td align="center">&#x2212;</td>
<td align="center">&#x221a;</td>
<td align="center">92.19</td>
<td align="center">84.61</td>
<td align="center">90.06</td>
<td align="center">88</td>
<td align="center">8.7</td>
<td align="center">86.07</td>
<td align="center">122</td>
</tr>
<tr>
<td align="center">YOLO v8n-PP</td>
<td align="center">&#x221a;</td>
<td align="center">&#x221a;</td>
<td align="center">
<bold>94.88</bold>
</td>
<td align="center">89.11</td>
<td align="center">
<bold>93.36</bold>
</td>
<td align="center">
<bold>93</bold>
</td>
<td align="center">6.1</td>
<td align="center">
<bold>91.08</bold>
</td>
<td align="center">215</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Note: Bolded data are optimal values. And the &#x201c;&#x221a;&#x201d; means the network improvement method.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>Improvements to the algorithm include the optimization of the YOLO v8n model using a more efficient neural network structure, resulting in a significant reduction in computational effort while improving target detection accuracy and increasing the computational speed of the network model, with a maximum detection <italic>FPS</italic> of 239 fps. Compared to the unimproved YOLO v8n, the <italic>P</italic>, <italic>R</italic>, <italic>mAP</italic>@0.5, <italic>F1</italic>, <italic>mAP</italic>@0.5: 0.95, and <italic>FPS</italic> of YOLO v8n-M were raised by 1.52%, 8.9%, 3.97%, 5%, 4.14%, and 113 fps, and the <italic>GFLOPs</italic> was reduced by 2.4 t. It means that replacing Mobile-ViT for the network backbone can lead to a significant improvement in comprehensive network performance. After replacing the MPDIoU, the <italic>P</italic>, <italic>R</italic>, <italic>mAP</italic>@0.5, and <italic>F1</italic> of YOLO v8n-MPD were improved by 0.76%, 1.28%, 1.11%, and 1%, but the <italic>GFLOPs</italic> was also increased by 0.5 t, and its <italic>mAP</italic>@0.5:0.95, and the <italic>FPS</italic> decreased by 0.56% and 4 fps. The <italic>P</italic>, <italic>R</italic>, <italic>mAP</italic>@0.5, <italic>F1</italic>, <italic>mAP</italic>@0.5: 0.95, and <italic>FPS</italic> of YOLO v8n-PP were increased by 3.45%, 5.78%, 4.41%, 6%, 4.45%, and 89 fps, and the <italic>GFLOPs</italic> was decreased to 2.1 t.</p>
<p>By comparing the results of the ablation-style experiments, the seven evaluation metrics of the YOLO v8n-PP exhibit excellent performance in identifying the PV panel&#x2019;s positional attitude. The four evaluation metrics <italic>P</italic>, <italic>R</italic>, <italic>mAP</italic>@0.5, <italic>F1</italic>, <italic>mAP</italic>@0.5: 0.95, and <italic>FPS</italic> reach their optimal values in this experiment, while the three evaluation metrics of <italic>R</italic>, <italic>GFLOPs</italic>, and <italic>FPS</italic> also demonstrate an elevated level of performance. The results of this ablation-style experiment fully validate the comprehensive performance advantages of the YOLO v8n-PP target detection model in PV panel position recognition.</p>
</sec>
<sec id="s5-2">
<label>4.2</label>
<title>Computer simulation results of path planning algorithms</title>
<p>To compare the visualization results and running data more intuitively, this simulation experiment utilizes the MATLAB software. On the raster maps of two sizes, 30 &#xd7; 30 and 60 &#xd7; 60, the control variable method is used to unify the green circle marks on the left side as the starting point and the green circle mark on the right side as the endpoint. The starting point and end point positions are the same under the exact raster map specification. The number of obstacles generated accounts for 20% of the total number of squares, and the layout of obstacles remains unchanged. Simulation experiments of path planning are conducted for the heuristic functions before and after optimization, respectively, and the experimental results of the two cases are compared. The simulation results are shown in <xref ref-type="fig" rid="F10">Figure 10</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Comparison between before and after heuristic improvement. <bold>(a)</bold> 30 &#xd7; 30 map results before improvement, <bold>(b)</bold> 30 &#xd7; 30 map results after improvement. <bold>(c)</bold> 60 &#xd7; 60 map results before improvement, <bold>(d)</bold> 60 &#xd7; 60 map results after improvement. Those black pixels denote obstacles, while white denotes open space. The green plum dots in the lower left corner indicate the starting point, and the yellow dots in the upper right corner denote the goal point. Colored paths denote the area involved in path planning during movement. The distance from the starting point corresponds to the transition between warm and cold colours.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g010.tif">
<alt-text content-type="machine-generated">Four visual representations of grid-based pathfinding, labeled a to d. Each grid has black and white cells with colored pathways. Image a shows a path through blue to red gradients. Image b features a similar path with distinct color segmentation. Image c displays a more intricate path with expanded gradients. Image d depicts a linear path with a clear color progression from blue to red.</alt-text>
</graphic>
</fig>
<p>
<xref ref-type="table" rid="T3">Table 3</xref> shows the results of the simulation experiments are as follows: under the 30 &#xd7; 30 raster map, the optimized algorithm with heuristic function increases the length of the travelling path by 6.9%, but shortens the search time by 73.61%; under the 60 &#xd7; 60 raster map, the optimized algorithm increases the length of the travelling path by 14.29%, but shortens the search time by 79.3%. These experimental results demonstrate that the A&#x2a; algorithm optimised by the heuristic function aligns with the changing characteristics of path planning when the heuristic function h(n) is taken into account. Although it may not be the shortest traveling path, the path length increases slightly. The search time is significantly reduced, which verifies the validity of the heuristic function optimization in the A&#x2a; algorithm.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Compared the results of heuristic functions under different specifications of raster maps.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Map size (m<sup>2</sup>)</th>
<th align="center">Method</th>
<th align="center">Path length (m)</th>
<th align="center">Search time (s)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="2" align="center">30 &#xd7; 30</td>
<td align="center">original A&#x2a;algorithm</td>
<td align="center">58</td>
<td align="center">4.51</td>
</tr>
<tr>
<td align="center">Heuristic optimization</td>
<td align="center">62</td>
<td align="center">1.19</td>
</tr>
<tr>
<td rowspan="2" align="center">60 &#xd7; 60</td>
<td align="center">original A&#x2a;algorithm</td>
<td align="center">98</td>
<td align="center">8.60</td>
</tr>
<tr>
<td align="center">Heuristic optimization</td>
<td align="center">112</td>
<td align="center">1.78</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="table" rid="T4">Table 4</xref> shows the results of the simulation experiments are as follows: in a 30 &#xd7; 30 raster map, the optimized algorithm with corner smoothing reduces the length of the travelling path by 3.23%, the search time by 44.54% and corners by 56.52%; in a 60 &#xd7; 60 raster map, the optimized algorithm reduces the length of the travelling path by 10.71%, the search time by 19.1% and the Turn Number (<italic>CN</italic>, Corner Number, units places or p) by 55%. These experimental results show that the A&#x2a; algorithm optimized by corner smoothing has reduced the path length. In contrast, the search time and the <italic>CN</italic> have been significantly reduced, which verifies the effectiveness of corner smoothing optimization for the A&#x2a; algorithm shown in <xref ref-type="fig" rid="F11">Figure 11</xref>.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Comparison results of corner smoothing optimization under different specifications of raster maps.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Map size (m<sup>2</sup>)</th>
<th align="center">Smoothing method</th>
<th align="center">Path length (m)</th>
<th align="center">Search time (s)</th>
<th align="center">
<italic>CN</italic> (p)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="2" align="center">30 &#xd7; 30</td>
<td align="center">Without smoothing</td>
<td align="center">62</td>
<td align="center">1.19</td>
<td align="center">23</td>
</tr>
<tr>
<td align="center">Corner smoothing</td>
<td align="center">60</td>
<td align="center">0.66</td>
<td align="center">10</td>
</tr>
<tr>
<td rowspan="2" align="center">60 &#xd7; 60</td>
<td align="center">Without smoothing</td>
<td align="center">112</td>
<td align="center">1.78</td>
<td align="center">40</td>
</tr>
<tr>
<td align="center">Corner smoothing</td>
<td align="center">100</td>
<td align="center">1.44</td>
<td align="center">18</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Corner smoothing optimization before and after. <bold>(a)</bold> 30 &#xd7; 30 map results before improvement, <bold>(b)</bold> 30 &#xd7; 30 map results after improvement. <bold>(c)</bold> 60 &#xd7; 60 map results before improvement, <bold>(d)</bold> 60 &#xd7; 60 map results after improvement. Those black pixels denote obstacles, while white denotes open space. The green plum dots in the lower left corner indicate the starting point, and the yellow dots in the upper right corner denote the goal point. Colored paths denote the area involved in path planning during movement. The distance from the starting point corresponds to the transition between warm and cold colours.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g011.tif">
<alt-text content-type="machine-generated">Four grid-based pathfinding visualizations labeled a, b, c, and d. Each grid contains black and white squares with a path marked in a spectrum from blue to red. The path starts with a green dot and ends with a red dot, indicating the route taken in a maze-like environment. Each visualization demonstrates a different pathfinding strategy or scenario.</alt-text>
</graphic>
</fig>
<p>This simulation experiment is also based on the MATLAB, set the simulation range of 60 m &#xd7; 60 m, the starting point and the end point are set as diagonal state to increase the path length, to more intuitively show the effect of the local path planning, the priority of the obstacle position is arranged in the vicinity of the diagonal straight line, and the simulation parameters are adjusted according to the speed setting of the robot: the maximum line speed is 5 m/s, the line acceleration is 0.2 m/s<sup>2</sup>, the maximum rotational speed is 20 rad/s, and the rotational acceleration is 50 rad/s<sup>2</sup>. The parameters of the evaluation function are set as follows: <italic>&#x3b1; &#x3d; 0.05</italic>, <italic>&#x3b2; &#x3d; 0.1</italic>, <italic>&#x3b3; &#x3d; 0.</italic>1. The simulation process is shown in <xref ref-type="fig" rid="F12">Figure 12</xref>.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Simulation result of the local DWA path planning algorithm in MATLAB. <bold>(a&#x2013;d)</bold> four key process of the optimised path planning method in this paper.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g012.tif">
<alt-text content-type="machine-generated">Four graphs labeled a, b, c, and d display trajectories with red squares representing obstacles. Blue lines indicate paths navigating through the obstacles. Each graph shows paths progressing from the bottom left to the upper right, with varying proximity to the red squares, labeled at the endpoints.</alt-text>
</graphic>
</fig>
<p>In the illustration, the red rectangular boxes represent obstacles, while the blue lines indicate the simulated robots&#x2019; traveling trajectories. The green ray beams illustrate the local path planning results simulated for various speed combinations. From <xref ref-type="fig" rid="F12">Figure 12</xref>, the DWA (Dynamic Window Approach) algorithm effectively completes local path planning in the map, demonstrating the usefulness of DWA in the obstacle avoidance function.</p>
</sec>
<sec id="s5-3">
<label>4.3</label>
<title>Results of PV cleaning robots in a real environment</title>
<p>Camera calibration is performed through MATLAB&#x2019;s Camera Calibrator App to achieve the calibration of the robot&#x2019;s coordinates to the world coordinates, to facilitate the effect of the simulation results in <xref ref-type="sec" rid="s4-2">section 4.2</xref>, and the localization pathfinding results in <xref ref-type="sec" rid="s3-3">section 3.3</xref>, to better understand the effects of the camera calibration and the cleaning of the robot. As shown in <xref ref-type="fig" rid="F13">Figure 13</xref>, the image data of subfigure a was used for calibration, and after counting the error distribution of subfigure b, 40 groups of 0.5 pixel error data were all in the camera calibration error, and the corrective coordinate transformation was solved to obtain the robot&#x2019;s internal reference matrix as <inline-formula id="inf57">
<mml:math id="m86">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>477.6700</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>334.2009</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>478.0829</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>238.3404</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> The effective focal length is <inline-formula id="inf58">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>477.67</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf59">
<mml:math id="m88">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>478.0829</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, The coordinates of the main focal point are <inline-formula id="inf60">
<mml:math id="m89">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>334.2009</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>238.3404</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>. The radial distortion coefficient is <inline-formula id="inf61">
<mml:math id="m90">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.0406</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>0.0727</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>. The tangential distortion coefficient is <inline-formula id="inf62">
<mml:math id="m91">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>, with an average reprojection error of 0.2214 pixels.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Calibration process and results in world coordinates. <bold>(a)</bold> the image data used for the calibration, <bold>(b)</bold> the error statistics during the calibration process. <bold>(c)</bold> is the camera-centered calibration of the viewpoints. <bold>(d)</bold> Calibration panel for the center calibration view.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g013.tif">
<alt-text content-type="machine-generated">Panel a shows a grayscale photo of a chessboard pattern labeled with detected points and coordinates. Panel b displays a bar chart of mean errors for images, highlighting outliers. Panel c illustrates a 3D plot of colored rectangles representing various measurements in millimeters along X, Y, and Z axes. Panel d depicts a 3D scatter plot with numbered points and colored outlines, showing different spatial data configurations.</alt-text>
</graphic>
</fig>
<p>Thereafter, the robot&#x2019;s reference angle and reference speed must also be calibrated. The calibration principle is proportional calibration, which involves measuring the speed and reference coordinate direction, as shown in <xref ref-type="fig" rid="F14">Figure 14</xref>. The initial position in the x-direction of the world coordinates is preset in the laboratory. The cleaning robot is allowed to start from the starting position by random forward movement and left rotation commands. It then returns to the original position and direction, stopping for the first time after 15 min. After this, the total distance <italic>S</italic> and the total amount of converted angle <italic>&#x3b8;</italic> were counted. The measured movement deviation <italic>s</italic> and angular deviation <italic>&#x3c9;</italic> are taken as the corrected data, which are then input into the angular velocity calibration program for error correction. Measure the moving deviation <italic>s</italic> and angular deviation <italic>&#x3c9;</italic> for correction data and input them into the program for error correction, where <inline-formula id="inf63">
<mml:math id="m92">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> is the velocity proportional deviation and <inline-formula id="inf64">
<mml:math id="m93">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>360</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> is the angular proportional deviation.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>Calibration process and results for speed and direction.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g014.tif">
<alt-text content-type="machine-generated">A robot on a tiled floor with a tape measure extending from its base, marked from 0 to 100 centimeters. Red arrows indicate the X-axis of the robot and the zero-degree X-axis of the world coordinate system.</alt-text>
</graphic>
</fig>
<p>
<xref ref-type="fig" rid="F15">Figure 15</xref> illustrates the map construction and path planning process in the indoor laboratory environment, which evaluates the previously described map construction and path planning process. The a1 and a2 represent the map construction for autonomous movement, and b1 and b2 represent the path planning during autonomous movement. The c1 and c2 show the results of the obstacle avoidance process. As <xref ref-type="fig" rid="F15">Figures 15a,b</xref> show, the path planning aims to obtain a straight line that avoids obstacles, rotates as little as possible, and moves efficiently, which is highly time-efficient. b to c shows that the process of obstacle avoidance can be conducted in both simulation (<xref ref-type="sec" rid="s4-3">section 4.3</xref>) and laboratory environments. As the PV cleaning robot plans its path of travel and begins to move, dynamic obstacles quickly appear. When a dynamic obstacle appears in the local cost map, the PV panels cleaning robot quickly steers towards the PV panels to avoid colliding with the obstacle. It automatically enables local path planning, allowing the PV cleaning robot to replan its travel path to the target location and safely bypass obstacles. The calibration process and the calibration process above have a certain degree of accuracy.</p>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>Test results of the robot in an indoor environment. <bold>(a)</bold> The map construction is for autonomous movement. <bold>(b)</bold> The map construction and path of <bold>(a)</bold>. <bold>(c)</bold> The path planning during autonomous movement. <bold>(d)</bold> The map construction and path of <bold>(c)</bold>. <bold>(e)</bold> The result of obstacle avoidance. <bold>(f)</bold> The map construction and path of the <bold>(e)</bold>.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g015.tif">
<alt-text content-type="machine-generated">(a) A mobile robot equipped with a robotic arm is positioned indoors with solar panels in the background. (b) A mapped digital layout with highlighted areas and pathways. (c) The rear view of the robot with visible mechanical components. (d) Similar digital layout showing movement paths and mapping details. (e) Two red fire extinguishers next to the robot on a tiled floor. (f) Another digital map showing pathways and coverage area.</alt-text>
</graphic>
</fig>
<p>The same setup and correction results were applied to the PV station cleaning test in the field environment. The test results are presented in <xref ref-type="fig" rid="F16">Figure 16</xref>, demonstrating that the machine development in this paper has a specific cleaning effect and provides a reference value. Among them, the location DWA algorithm was modified to clean the front and back of the same row of 24 PV panels, resulting in an actual increase in cleaning speed of 23%. The results and the previous simulation test have a certain difference. Still, this difference is not contradictory to the point, because the algorithm improves the pathfinding process, specifically by completing the previous cleaning before moving on to the next cleaning target at the start of the process. The actual cleaning time also includes the operating time of the robotic arm, so the difference is also within reasonable limits.</p>
<fig id="F16" position="float">
<label>FIGURE 16</label>
<caption>
<p>Results of PV panel cleaning in real-world environments.</p>
</caption>
<graphic xlink:href="frobt-12-1606774-g016.tif">
<alt-text content-type="machine-generated">A robotic arm mounted on a wheeled platform positioned next to large solar panels. The robot appears to be designed for maintenance or cleaning tasks, operating in a sunny outdoor setting.</alt-text>
</graphic>
</fig>
<p>
<xref ref-type="table" rid="T5">Table 5</xref> presents the results of a comparison between this study and several existing studies, including target detection methods, path planning algorithms, cleaning methods, and PV panel conditions. Among them, the Target detection method is used to indicate the detection method used in the implementation process, reflecting the functional accuracy and intelligence. The path planning algorithm reflects the automation in the execution of the work. The cleaning method refers to the practical approach used to clean, emphasising the efficiency of the work. PV panel condition is the universality of the method. The method described by Ma and Prabhakaran can achieve the detection of pollutants and is more universal in terms of the conditions of realisation; however, the subsequent cleaning process is not described. Jin and Yang can achieve cleaning without applying water, which is richer and better than the method in this paper, and Jin&#x2019;s method is better than Yang and Riawan methods in terms of automation, although it uses the ACO algorithm to find the way. However, the Jin, Yang, and Riawan method does not identify the target of the work and is less accurate and intelligent than this paper&#x2019;s method; however, the work is less automated than this paper&#x2019;s method. Overall, in terms of functional accuracy, intelligence, and automation, this paper has certain advantages; however, subsequent research can be further strengthened in terms of cleaning and the universality of work conditions.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Contrasts with several similar studies.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Method</th>
<th align="center">Target detection method</th>
<th align="center">Path planning algorithm</th>
<th align="center">Cleaning method</th>
<th align="center">PV panel condition</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Ma method (<xref ref-type="bibr" rid="B16">Ma et al., 2022</xref>)</td>
<td align="center">YOLO-PX</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">All</td>
</tr>
<tr>
<td align="center">Prabhakaran method (<xref ref-type="bibr" rid="B22">Prabhakaran et al., 2022</xref>)</td>
<td align="center">RMVDM</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">All</td>
</tr>
<tr>
<td align="center">Grando robot (<xref ref-type="bibr" rid="B6">Grando et al., 2019</xref>)</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">Nozzles and water</td>
<td align="center">With rail</td>
</tr>
<tr>
<td align="center">Jin robot (<xref ref-type="bibr" rid="B11">Jin et al., 2024</xref>)</td>
<td align="center">-</td>
<td align="center">ACO algorithm</td>
<td align="center">Both dry or with water</td>
<td align="center">With rail</td>
</tr>
<tr>
<td align="center">Yang robot (<xref ref-type="bibr" rid="B27">Yang et al., 2023</xref>)</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">Dry with brushes</td>
<td align="center">Tilted and grounded</td>
</tr>
<tr>
<td align="center">Riawan robot (<xref ref-type="bibr" rid="B24">Riawan et al., 2018</xref>)</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">Nozzles and water</td>
<td align="center">Horizontal off-ground</td>
</tr>
<tr>
<td align="center">Introduced robot</td>
<td align="center">YOLO-v8n-PP</td>
<td align="center">Location DWA</td>
<td align="center">Nozzles and water</td>
<td align="center">Tilted and grounded</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<label>5</label>
<title>Conclusion</title>
<p>Cleaning with an auto-robot is essential and a further trend for a PV station. This study enhanced the YOLO v8 network model to accurately detect objects, refined the DWA algorithm to plan paths, and developed a robot system for cleaning purposes. The main conclusions are as follows:<list list-type="simple">
<list-item>
<label>(1)</label>
<p>A lightweight Mobile-ViT model incorporating a Self-Attention mechanism is utilized to enhance YOLO v8, yielding an accuracy of 91.08% and a processing speed of 215 fps.</p>
</list-item>
<list-item>
<label>(2)</label>
<p>A&#x2a; global path planning algorithm and DWA local path planning algorithm are improved, and the results in the simulation environment show that the time consumption decreases from 1.19 s to 0.66 s and the <italic>CN</italic> decreases from 23 to 10 p.</p>
</list-item>
<list-item>
<label>(3)</label>
<p>The robot was debugged and calibrated in the PV station environment, and results showed that the robot could build a work map and clean without manual control, showing the rate increased by 23% after the improved algorithm.</p>
</list-item>
</list>
</p>
<p>The robot provided a reference for the engineering applications of deep learning, computer vision, and robot navigation. However, the robot in this paper requires further field tests and development to validate its effectiveness and advantages, such as multi-copter cooperation and collaboration with other entities (e.g., UAVs). For the detection of pollutants, further research can also identify their types, quantities, and locations, which would improve cleaning efficiency and energy utilisation rates.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec sec-type="author-contributions" id="s8">
<title>Author contributions</title>
<p>JL: Conceptualization, Data curation, Formal Analysis, Funding acquisition, Investigation, Methodology, Project administration, Resources, Software, Supervision, Validation, Visualization, Writing &#x2013; original draft, Writing &#x2013; review and editing. GW: Data curation, Methodology, Supervision, Writing &#x2013; original draft. YL: Conceptualization, Writing &#x2013; review and editing. DW: Funding acquisition, Resources, Validation, Visualization, Writing &#x2013; review and editing. YC: Visualization, Writing &#x2013; review and editing. HZ: Funding acquisition, Software, Visualization, Writing &#x2013; review and editing.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>The authors declare that the research 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="s11">
<title>Generative AI statement</title>
<p>The author(s) declare that no Generative AI was used in the creation of this manuscript.</p>
</sec>
<sec sec-type="disclaimer" id="s12">
<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>
<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/2319617/overview">Vladan Papi&#x107;</ext-link>, University of Split, Croatia</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/2336091/overview">Josip Musi&#x107;</ext-link>, University of Split, Croatia</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3039399/overview">Zdenko Kovacic</ext-link>, University of Zagreb, Croatia</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>Antonelli</surname>
<given-names>M. G.</given-names>
</name>
<name>
<surname>Beomonte Zobel</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>De Marcellis</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Palange</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Autonomous robot for cleaning photovoltaic panels in desert zones</article-title>. <source>Mechatronics</source> <volume>68</volume>, <fpage>102372</fpage>. <pub-id pub-id-type="doi">10.1016/j.mechatronics.2020.102372</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Azouzoute</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Zitouni</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>El Ydrissi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hajjaj</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Garoum</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Bennouna</surname>
<given-names>E. G.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Developing a cleaning strategy for hybrid solar plants PV/CSP: case study for semi-arid climate</article-title>. <source>Energy</source> <volume>228</volume>, <fpage>120565</fpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2021.120565</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Bergametti</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>For&#xea;t</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Dust deposition. 179-200&#x2a;179-200</article-title>,&#x201d; in <source>Mineral dust: a key player in the Earth system</source>. Editors <person-group person-group-type="editor">
<name>
<surname>Knippertz</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Stuut</surname>
<given-names>J. W.</given-names>
</name>
</person-group> (<publisher-loc>Netherlands, Dordrecht</publisher-loc>: <publisher-name>Springer</publisher-name>).</mixed-citation>
</ref>
<ref id="B37">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>B. R.</given-names>
</name>
<name>
<surname>Hsu</surname>
<given-names>C. F.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>T. T.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Intelligent balancing and trajectory tracking control for unicycle robots</article-title>. <source>Int. J. Fuzzy Syst.</source>, <volume>25</volume>, <fpage>2954</fpage>-<lpage>2968</lpage>. <pub-id pub-id-type="doi">10.1007/s40815-023-01600-3</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>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ye</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>An optimization method of deep transfer learning for vegetation segmentation under rainy and dry season differences in a dry thermal valley</article-title>. <source>Plants-Basel</source> <volume>12</volume>, <fpage>3383</fpage>. <pub-id pub-id-type="doi">10.3390/plants12193383</pub-id>
<pub-id pub-id-type="pmid">37836123</pub-id>
</mixed-citation>
</ref>
<ref id="B34">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Cuenca</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Moncayo</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Geomagnetic navigation using Rao Blackwellized particle filter</article-title>. In <source>AIAA Scitech Forum and Exposition, 2023</source>. <publisher-name>American Institute of Aeronautics and Astronautics Inc</publisher-name>. <pub-id pub-id-type="doi">10.2514/6.2023-1452</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gao</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Dust deposition in ventilation and air-conditioning duct Bend flows</article-title>. <source>Energ Convers. Manage</source> <volume>55</volume>, <fpage>49</fpage>&#x2013;<lpage>59</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2011.10.018</pub-id>
</mixed-citation>
</ref>
<ref id="B29">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Gamani</surname>
<given-names>A. R. A.</given-names>
</name>
<name>
<surname>Arhin</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Asamoah</surname>
<given-names>A. K.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Performance evaluation of YOLOv8 model configurations, for instance segmentation of strawberry fruit development stages in an open field environment</article-title>. <source>arXiv</source>, <publisher-name>arXiv:2408.05661</publisher-name>.</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Grando</surname>
<given-names>M. N. G. N.</given-names>
</name>
<name>
<surname>Maletz</surname>
<given-names>E. R.</given-names>
</name>
<name>
<surname>Martins</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Simas</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Simoni</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Robots for cleaning photovoltaic panels: state of the art and future prospects</article-title>. <source>Rev. Tecnol. Cienc.</source> <fpage>137</fpage>&#x2013;<lpage>150</lpage>. <pub-id pub-id-type="doi">10.33414/rtyc.35.137-150.2019</pub-id>
</mixed-citation>
</ref>
<ref id="B35">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Grisetti</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Stachniss</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Burgard</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Improving grid - based SLAM with Rao - Blackwellized particle filters by adaptive proposals and selective resampling</article-title>. <source>Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)</source>. <pub-id pub-id-type="doi">10.1109/ROBOT.2005.1570566</pub-id>
</mixed-citation>
</ref>
<ref id="B33">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Girshick</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Fast R-CNN</article-title>. <source>Proceedings of the IEEE International Conference on Computer Vision (ICCV)</source>. <comment>arXiv:1504</comment>, <fpage>08083</fpage>.</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Habib</surname>
<given-names>M. R.</given-names>
</name>
<name>
<surname>Tanvir</surname>
<given-names>M. S.</given-names>
</name>
<name>
<surname>Suhan</surname>
<given-names>A. Y.</given-names>
</name>
<name>
<surname>Vadher</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Alrashed</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shawmee</surname>
<given-names>T. T.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). &#x201c;<article-title>Automatic solar panel cleaning system based on arduino for dust removal</article-title>,&#x201d; in <conf-name>2021 International Conference on Artificial Intelligence and Smart Systems (ICAIS)</conf-name>, <conf-loc>Coimbatore, India</conf-loc>, <conf-date>25-27 March 2021</conf-date>, <fpage>1555</fpage>&#x2013;<lpage>1558</lpage>.</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hossain</surname>
<given-names>M. I.</given-names>
</name>
<name>
<surname>Ali</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Bermudez Benito</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Figgis</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>A&#xef;ssa</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Anti-soiling coatings for enhancement of PV panel performance in desert environment: a critical review and market overview</article-title>. <source>Materials</source> <volume>15</volume>, <fpage>7139</fpage>. <pub-id pub-id-type="doi">10.3390/ma15207139</pub-id>
<pub-id pub-id-type="pmid">36295209</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Numerical simulation of dust deposition on photovoltaic module surface based on multifactor fusion deposition mechanism</article-title>. <source>Sci. Total Environ.</source> <volume>959</volume>, <fpage>178327</fpage>. <pub-id pub-id-type="doi">10.1016/j.scitotenv.2024.178327</pub-id>
<pub-id pub-id-type="pmid">39756298</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>Y. P.</given-names>
</name>
<name>
<surname>Kshetrimayum</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Sandnes</surname>
<given-names>F. E.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>UAV-based automatic detection, localization, and cleaning of bird excrement on solar panels</article-title>. <source>IEEE Trans. Syst. Man, Cybern. Syst.</source> <volume>55</volume>, <fpage>1657</fpage>&#x2013;<lpage>1670</lpage>. <pub-id pub-id-type="doi">10.1109/tsmc.2024.3506533</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Meng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2024</year>). <article-title>Design and path planning method of control system for photovoltaic panel cleaning robot</article-title>. <source>J. Comput.</source> <volume>35</volume>, <fpage>175</fpage>&#x2013;<lpage>190</lpage>. <pub-id pub-id-type="doi">10.53106/199115992024083504013</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Kshetrimayum</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Liou</surname>
<given-names>J. J. H.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>Y. P.</given-names>
</name>
</person-group> (<year>2023</year>). &#x201c;<article-title>A deep learning based detection of bird droppings and cleaning method for photovoltaic solar panels</article-title>,&#x201d; in <conf-name>2023 IEEE International Conference on Systems, Man, and Cybernetics (SMC)</conf-name>, <conf-loc>Honolulu, United States</conf-loc>, <conf-date>01-04 October 2023</conf-date>, <fpage>3398</fpage>&#x2013;<lpage>3403</lpage>.</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Development of following robot for supplying power to solar panel cleaning robot</article-title>. <source>Industrial Robot Int. J. robotics Res. Appl.</source> <volume>49</volume>, <fpage>88</fpage>&#x2013;<lpage>95</lpage>. <pub-id pub-id-type="doi">10.1108/ir-03-2021-0055</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Licardo</surname>
<given-names>J. T.</given-names>
</name>
<name>
<surname>Domjan</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Orehova&#x10d;ki</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Intelligent robotics&#x2014;A systematic review of emerging technologies and trends</article-title>. <source>Electronics</source> <volume>13</volume>, <fpage>542</fpage>. <pub-id pub-id-type="doi">10.3390/electronics13030542</pub-id>
</mixed-citation>
</ref>
<ref id="B36">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Improved A&#x2a; algorithm with DWA for dynamic obstacle avoidance in mobile robot navigation</article-title>. <source>J. of Intell. &#x26; Robot. Sys.</source> <volume>108</volume>(<issue>3</issue>), <fpage>1</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1007/s10846-023-01882-5</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yue</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Study of a dust deposition mechanism dominated by electrostatic force on a solar photovoltaic module</article-title>. <source>Sci. Total Environ.</source> <volume>754</volume>, <fpage>142241</fpage>. <pub-id pub-id-type="doi">10.1016/j.scitotenv.2020.142241</pub-id>
<pub-id pub-id-type="pmid">33254918</pub-id>
</mixed-citation>
</ref>
<ref id="B31">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Qi</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Jia</surname>
<given-names>J.</given-names>
</name>
</person-group>, &#x201c;<article-title>Path aggregation network for instance segmentation</article-title>, &#x201d;<source>2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition</source>, <publisher-loc>Salt Lake City, United States</publisher-loc>, <year>2018</year>, <fpage>8759</fpage>&#x2013;<lpage>8768</lpage>. <pub-id pub-id-type="doi">10.1109/CVPR.2018.00913</pub-id>
</mixed-citation>
</ref>
<ref id="B30">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>X.</given-names>
</name>
</person-group>, &#x201c;<article-title>Object detection algorithm for UAV aerial image based on improved YOLOv8</article-title>,&#x201d; <source>2024 5th International Conference on Electronic Communication and Artificial Intelligence (ICECAI)</source>, <publisher-loc>Shenzhen, China</publisher-loc>, <year>2024</year>, <fpage>789</fpage>&#x2013;<lpage>793</lpage>. <pub-id pub-id-type="doi">10.1109/ICECAI62591.2024.10675035</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Shan</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>An occlusion detection algorithm for small targets on the surface of photovoltaic modules based on deep learning</article-title>. <source>Proc. SPIE</source> <volume>12474</volume>, <fpage>8</fpage>. <pub-id pub-id-type="doi">10.1117/12.2653504</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mariraj Mohan</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>An overview of particulate dry deposition: measuring methods, deposition velocity and controlling factors</article-title>. <source>Int. J. Environ. Sci.</source> <volume>13</volume>, <fpage>387</fpage>&#x2013;<lpage>402</lpage>. <pub-id pub-id-type="doi">10.1007/s13762-015-0898-7</pub-id>
</mixed-citation>
</ref>
<ref id="B32">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mehta</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Rastegari</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Mobilevit: Light - weight, general - purpose, and mobile - friendly vision transformer</article-title>. <source>ArXiv preprint ArXiv: 2110.02178</source>.</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Milidonis</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Eliades</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Grigoriev</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Blanco</surname>
<given-names>M. J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Unmanned aerial vehicles (UAVs) in the planning, operation and maintenance of concentrating solar thermal systems: a review</article-title>. <source>Sol. Energy</source> <volume>254</volume>, <fpage>182</fpage>&#x2013;<lpage>194</lpage>. <pub-id pub-id-type="doi">10.1016/j.solener.2023.03.005</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohd Nizam Ong</surname>
<given-names>N. A. F.</given-names>
</name>
<name>
<surname>Sadiq</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Md Said</surname>
<given-names>M. S.</given-names>
</name>
<name>
<surname>Jomaas</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Mohd Tohir</surname>
<given-names>M. Z.</given-names>
</name>
<name>
<surname>Kristensen</surname>
<given-names>J. S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Fault tree analysis of fires on rooftops with photovoltaic systems</article-title>. <source>J. Build. Eng.</source> <volume>46</volume>, <fpage>103752</fpage>. <pub-id pub-id-type="doi">10.1016/j.jobe.2021.103752</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Osmani</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Haddad</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Lemenand</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Castanier</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ramadan</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A review on maintenance strategies for PV systems</article-title>. <source>Sci. Total Environ.</source> <volume>746</volume>, <fpage>141753</fpage>. <pub-id pub-id-type="doi">10.1016/j.scitotenv.2020.141753</pub-id>
<pub-id pub-id-type="pmid">33027871</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Patil</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Bagi</surname>
<given-names>J. S.</given-names>
</name>
<name>
<surname>Wagh</surname>
<given-names>M. M.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>A review on cleaning mechanism of solar photovoltaic panel</article-title>,&#x201d; in <conf-name>2017 International Conference on Energy, Communication, Data Analytics and Soft Computing (ICECDS)</conf-name>, <conf-loc>Chennai, India</conf-loc>, <conf-date>01-02 August 2017</conf-date>, <fpage>250</fpage>&#x2013;<lpage>256</lpage>.</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Prabhakaran</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Annie Uthra</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Preetharoselyn</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Feature extraction and classification of photovoltaic panels based on convolutional neural network</article-title>. <source>Comput. Mater. Continua</source> <volume>74</volume>, <fpage>1437</fpage>&#x2013;<lpage>1455</lpage>. <pub-id pub-id-type="doi">10.32604/cmc.2023.032300</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qin</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Qiao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Study on multiple influence mechanism of airflow-dust-gas coupling diffusion under large vortex flow technology</article-title>. <source>Build. Environ.</source> <volume>257</volume>, <fpage>111538</fpage>. <pub-id pub-id-type="doi">10.1016/j.buildenv.2024.111538</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Riawan</surname>
<given-names>I. P. G.</given-names>
</name>
<name>
<surname>Kumara</surname>
<given-names>I. N. S.</given-names>
</name>
<name>
<surname>Partha</surname>
<given-names>C. G. I.</given-names>
</name>
<name>
<surname>Nyoman Setiawan</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Santiari</surname>
<given-names>D. A. S.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Robot for cleaning solar PV module to support rooftop PV development</article-title>,&#x201d; in <conf-name>2018 International Conference on Smart Green Technology in Electrical and Information Systems (ICSGTEIS)</conf-name>, <conf-loc>Bali, Indonesia</conf-loc>, <conf-date>25-27 October 2018</conf-date>, <fpage>132</fpage>&#x2013;<lpage>137</lpage>.</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sarode</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Ghugal</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Yadav</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Dantule</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Nandankar</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>A comprehensive review on solar panel cleaning robot technologies</article-title>. <source>AIP Conf. Proc.</source> <volume>2753</volume>, <fpage>20018</fpage>. <pub-id pub-id-type="doi">10.1063/5.0127800</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>&#x15e;evik</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Akta&#x15f;</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Performance enhancing and improvement studies in a 600 kW solar photovoltaic (PV) power plant; manual and natural cleaning, rainwater harvesting and the snow load removal on the PV arrays</article-title>. <source>Renew. Energ.</source> <volume>181</volume>, <fpage>490</fpage>&#x2013;<lpage>503</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2021.09.064</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Research on mechanism design and kinematic characteristics of self-propelled photovoltaic cleaning robot</article-title>. <source>Appl. Sci.</source> <volume>13</volume>, <fpage>6967</fpage>. <pub-id pub-id-type="doi">10.3390/app13126967</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Yuan</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2024</year>). &#x201c;<article-title>Research on the intelligent control system of aerial robots</article-title>,&#x201d; in <source>Advances and challenges in advanced unmanned aerial systems: selected contributions of ICAUAS 2023</source>. Editors <person-group person-group-type="editor">
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<publisher-loc>Singapore</publisher-loc>: <publisher-name>Springer Nature Singapore</publisher-name>), <fpage>65</fpage>&#x2013;<lpage>75</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>