<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">28165</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2022.028165</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Improved Dijkstra Algorithm for Mobile Robot Path Planning and Obstacle Avoidance</article-title>
<alt-title alt-title-type="left-running-head">Improved Dijkstra Algorithm for Mobile Robot Path Planning and Obstacle Avoidance</alt-title>
<alt-title alt-title-type="right-running-head">Improved Dijkstra Algorithm for Mobile Robot Path Planning and Obstacle Avoidance</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Alshammrei</surname><given-names>Shaher</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Boubaker</surname><given-names>Sahbi</given-names></name><xref ref-type="aff" rid="aff-2">2</xref><email>sboubaker@uj.edu.sa</email>
</contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Kolsi</surname><given-names>Lioua</given-names></name><xref ref-type="aff" rid="aff-1">1</xref>
<xref ref-type="aff" rid="aff-3">3</xref></contrib>
<aff id="aff-1"><label>1</label><institution>Department of Mechanical Engineering, College of Engineering, University of Ha&#x2019;il</institution>, <addr-line>Ha&#x2019;il, 2440</addr-line>, <country>Saudi Arabia</country></aff>
<aff id="aff-2"><label>2</label><institution>Department of Computer and Network Engineering, College of Computer Science and Engineering, University of Jeddah</institution>, <addr-line>Jeddah, 21959</addr-line>, <country>Saudi Arabia</country></aff>
<aff id="aff-3"><label>3</label><institution>Research Laboratory of Metrology and Energy Systems, National Engineering School, Energy Engineering Department, University of Monastir</institution>, <addr-line>Monastir, 5000</addr-line>, <country>Tunisia</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Sahbi Boubaker. Email: <email>sboubaker@uj.edu.sa</email></corresp>
</author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2022-04-20"><day>20</day>
<month>04</month>
<year>2022</year></pub-date>
<volume>72</volume>
<issue>3</issue>
<fpage>5939</fpage>
<lpage>5954</lpage>
<history>
<date date-type="received"><day>04</day><month>2</month><year>2022</year></date>
<date date-type="accepted"><day>22</day><month>3</month><year>2022</year></date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2022 Alshammrei et al.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Alshammrei et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_28165.pdf"></self-uri>
<abstract>
<p>Optimal path planning avoiding obstacles is among the most attractive applications of mobile robots (MRs) in both research and education. In this paper, an optimal collision-free algorithm is designed and implemented practically based on an improved Dijkstra algorithm. To achieve this research objectives, first, the MR obstacle-free environment is modeled as a diagraph including nodes, edges and weights. Second, Dijkstra algorithm is used offline to generate the shortest path driving the MR from a starting point to a target point. During its movement, the robot should follow the previously obtained path and stop at each node to test if there is an obstacle between the current node and the immediately following node. For this aim, the MR was equipped with an ultrasonic sensor used as obstacle detector. If an obstacle is found, the MR updates its diagraph by excluding the corresponding node. Then, Dijkstra algorithm runs on the modified diagraph. This procedure is repeated until reaching the target point. To verify the efficiency of the proposed approach, a simulation was carried out on a hand-made MR and an environment including 9 nodes, 19 edges and 2 obstacles. The obtained optimal path avoiding obstacles has been transferred into motion control and implemented practically using line tracking sensors. This study has shown that the improved Dijkstra algorithm can efficiently solve optimal path planning in environments including obstacles and that STEAM-based MRs are efficient cost-effective tools to practically implement the designed algorithm.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Mobile robot (MR)</kwd>
<kwd>STEAM</kwd>
<kwd>path planning</kwd>
<kwd>obstacle avoidance</kwd>
<kwd>improved dijkstra algorithm</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1"><label>1</label><title>Introduction</title>
<p>In the current 21<sup>st</sup> century, robots are occupying a key place in several domains including industry, agriculture, healthcare, construction, logistics and education&#x2026; In education, extensive works have focused on implementing Science, Technology, Engineering, Art and Mathematics (STEAM) approaches around mobile robots (MRs). With the integration of modern technologies such as 3D printing, open-source programming environments, artificial intelligence (AI) and Internet of Things (IoT) in the fourth industrial revolution 4.0 context, MRs are playing constructive roles. Due to their capability of locomotion and ability to interact with their close environments, MRs (controlled or autonomous) can be used in education and research. MRs are inherently multidisciplinary systems involving several disciplines ranging from material engineering to cognitive science and computer vision. Concepts like kinematics, 3D printing, mechanical design and material science belong to the Mechanical Engineering (ME). In addition, an MR should include motors, sensors, controllers, power electronics and batteries which are concepts related to Electrical Engineering (EE). Computer Engineering (CE) and Computer Science (CS) may be present in a MR through programming and more attractively through modern applications such as path planning, computer vision, wireless sensor networks, communication, artificial intelligence. Purchasing &#x201C;professional&#x201D; mobile robotics platforms is unfortunately expensive for a relatively limited use (as low as 1&#x0025;) as reported by [<xref ref-type="bibr" rid="ref-1">1</xref>]. To overcome this difficulty, many researchers resorted to design their own DIY (Do-It-Yourself) platforms under various technical (should be based on open resources), educational (can be used to implement various educational activities), cost (should be affordable) and efficiency (should perform several tasks) considerations.</p>
<p>In this paper, the progressive steps of a STEAM framework around an MR are detailed. A particular attention is allocated to the components in order to make it as easy as possible to be implemented by students at different levels. In addition, the problem of path planning and obstacle avoidance is addressed from its algorithmic and motion control perspectives. The flow-chart of the work conducted in this study is presented in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>.</p>
<p>The main contributions of the current study can be highlighted as follows:
<list list-type="bullet">
<list-item><p>Implement a STEAM framework around an MR in a simple and detailed manner in order to make it easy to be conducted from scratch by students, educators and researchers.</p></list-item>
<list-item><p>Show the multi-disciplinarity of MRs and how they can be used to assess skills in different disciplines.</p></list-item>
<list-item><p>Address the problem of path planning and obstacle avoidance of the DIY MR using an efficient and computationally low-cost algorithm (an improved Dijkstra algorithm).</p></list-item>
<list-item><p>Show how the shortest path solution derived from the algorithm is transferred into control motion and implemented practically.</p></list-item>
</list></p>
<p>The remainder of this paper is described as follows. In Section 2, a relatively detailed state-of-the-art of previously developed mobile robotics platforms is presented as well as selected researches about path planning. Section 3 will include the robot design and the steps of the STEAM framework. In Section 4, a path planning and obstacle avoidance application of the designed mobile robot will be presented. Section 5 concludes the paper.</p>
</sec>
<sec id="s2"><label>2</label><title>Related Works</title>
<p>During the last few years, many researches about mobile robotics platforms have been conducted from STEAM perspective. These researches were different according to several factors. In this section, selected platforms will be described according to many features including the year of implementation, the mechanical design tool, the cost, the used sensors, the programming tool, the application and the achieved skills. A special focus will be allocated to the path planning and its relevant components. Mona robotics platform has been developed in The University of Manchester, UK [<xref ref-type="bibr" rid="ref-1">1</xref>] in 2019. This platform is mainly based on open-source programmable devices, low-cost and including several sensors. Among the advantages of this platform is that it allows robots communication which strengthens the concept of swarm of robots largely used in research and education. The concept of swarm (group of interacting) mobile robots has been also addressed in [<xref ref-type="bibr" rid="ref-2">2</xref>] where the authors have developed an interface allowing full integration of robots in the ROS (Robotics Operating System). Through the novel driver interface, mobile robotics practitioners may focus more on their tasks which can include data manipulation, robots&#x2019; communication and sensors deployment. For teaching some concepts of science (the pulsimeter), robotic and coding (programming) tools have been used in a middle school in Turkey (2018-2019) [<xref ref-type="bibr" rid="ref-3">3</xref>]. Via a structured approach, students have developed their own experiments using the open-access Arduino platform. Small printable robots (called &#x201C;printbots&#x201D;) have been presented in [<xref ref-type="bibr" rid="ref-4">4</xref>] as strong educational tools for studying mobile robots and manipulators. The usefulness of these robots took benefit from the availability of 3D printers. Several courses have been designed (practice and simulation) over 8 years in a Spanish institute. The concept of deep learning (as extension of machine learning) is the trend of nowadays research in computer science and engineering. A real need of experimental platforms to easily conduct deep learning projects has motivated the authors in [<xref ref-type="bibr" rid="ref-5">5</xref>] to implement an affordable robotics platform around the well-known Arduino board. The main advantage of this platform is that it includes a mobile phone for capturing photos and videos which can be then easily handled in several integrated development environments (IDEs) such as Python, Matlab and C/C&#x002B;&#x002B;.</p>
<fig id="fig-1"><label>Figure 1</label><caption><title>Flow-chart of a STEAM framework based on a mobile robot (MR)</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-1.png"/></fig>
<p>When participating in a European robotics contest, the team of [<xref ref-type="bibr" rid="ref-6">6</xref>] has faced technical issues in their robots, 3 days before the beginning. Thus, they had resort to open hardware and software resources as well as to smartphones and cloud services to carry out &#x201C;fast&#x201D; prototypes which have later achieved 83&#x0025; of required tasks of the competition. In 2015, a Spanish team has designed a low-cost (around 35 Euro) robotics platform using Arduino and Android mobile operating system to be used in various courses covering information technology, communication and engineering [<xref ref-type="bibr" rid="ref-7">7</xref>]. Similar to the work presented in [<xref ref-type="bibr" rid="ref-4">4</xref>], the authors in [<xref ref-type="bibr" rid="ref-8">8</xref>] have designed low-cost robots using the 3D printing technology and have conducted 3 educational experiments with students. Several concepts including design, sensoring and programming have been successfully taught. During the European robotics week (2018), the work developed in a workshop for teaching STEM concepts has been described in detail in [<xref ref-type="bibr" rid="ref-9">9</xref>]. Although the participants had no previous experience in programming and mathematics, the main objectives of the workshop have been reported (by the authors) to be achieved. Developing countries such as Mexico are missing practical and hands-on tools to teach robotics in elementary and university schools which may result on decrease in motivation. To overcome this difficulty, the authors in [<xref ref-type="bibr" rid="ref-10">10</xref>] have used a hexapod robot to assess the programming skills. The achieved results were reported to be excellent. In the same direction, the authors in [<xref ref-type="bibr" rid="ref-11">11</xref>] have built a robotics platform only for 25 USD (2018) to implement a line-follower application where several skills related to sensors, Bluetooth communication and microcontrollers&#x2019; programming have been improved in a STEM framework. More successful STEM implementations using robotics platforms can be found in [<xref ref-type="bibr" rid="ref-12">12</xref>&#x2013;<xref ref-type="bibr" rid="ref-27">27</xref>]. Although these studies are distributed over different periods and were designed using different tools and resources, they all led to results promoting the capability of thinking as well as improving 21<sup>st</sup> century skills.</p>
<p>Path planning of mobile robots includes the algorithms and the resulting control motion strategies that allows the MR to move in its close environment following the shortest path and avoiding collision [<xref ref-type="bibr" rid="ref-28">28</xref>]. In their survey paper [<xref ref-type="bibr" rid="ref-29">29</xref>], the authors have provided a summary of the algorithms used for path planning. They reported that Dijkstra&#x2019;s algorithm remains among the best ones. The concept of neural dynamics has been used in [<xref ref-type="bibr" rid="ref-30">30</xref>] for solving the path planning problem of an autonomous robot moving in an unknown dynamic environment. From a control perspective, [<xref ref-type="bibr" rid="ref-31">31</xref>] has developed a switching control law for obstacle avoidance of a MR. The practical implementation has been shown to be without heavy computational effort nor a high memory requirement. A hardware platform and a software algorithm have been developed in [<xref ref-type="bibr" rid="ref-32">32</xref>] for a car system. Dijkstra&#x2019;s algorithm has been successfully applied for path planning and obstacle avoidance in a generated unknown indoor environment. Offline path planning algorithms have been used to generate data for training a neural network algorithm used online for path planning [<xref ref-type="bibr" rid="ref-33">33</xref>]. Although the results were reported to be promising, the time-consuming character of neural networks were considered as a limitation. Other researches have tackled the path planning of MRs using Q-learning algorithm [<xref ref-type="bibr" rid="ref-34">34</xref>] and a combination of Dijkstra and A&#x002A; algorithms [<xref ref-type="bibr" rid="ref-35">35</xref>]. As compared to the state-of-the-art algorithms for path planning, the improved Dijkstra algorithm has shown its superiority at least in three levels. Firstly, Dijkstra algorithm is simple in its structure because it works on any environment as modeled by the designer from the beginning without adding any nodes like in [<xref ref-type="bibr" rid="ref-28">28</xref>] where extra nodes are included. In fact, adding nodes may induce extra computational burden. Secondly, the Dijkstra algorithm has the ability to find the optimal path from a starting node to any other node in the graph including the target node defined by the user. Its computational complexity is known to be O(n<sup>2</sup>) where n is the number of nodes in the diagraph. This complexity is stated in [<xref ref-type="bibr" rid="ref-29">29</xref>] to be better than the complexity of A&#x002A; algorithm for example. Finally, our proposed improved Dijkstra algorithm is shown through this study to operate in a dynamic environment in which even moving obstacles can be detected and the MR can react to update its path accordingly without any additional computation time.</p>
<p>From the previous literature review, it can be noticed that:
<list list-type="bullet">
<list-item><p>Mobile robots (MRs) are efficient systems around which STEAM framework can be implemented for achieving several skills in education and conducting successful researches.</p></list-item>
<list-item><p>Path planning from both algorithmic and hardware perspectives can be practically implemented using the STEAM designed MR.</p></list-item>
<list-item><p>Dijkstra&#x2019;s algorithm remains among the best algorithms for MR path planning.</p></list-item>
</list></p>
</sec>
<sec id="s3"><label>3</label><title>STEAM Methodology Implementation</title>
<p>In this work, the progressive steps of designing and manufacturing a low-cost robotics platform to be used in education and research are detailed. The process follows a science, technology, engineering, art and mathematics (STEAM) approach. At each step, the component related to STEAM is clarified. The designed platform use free access resources in order to reduce the cost and make the design affordable by students and researchers particularly in developing countries where resources are relatively limited.</p>
<sec id="s3_1"><label>3.1</label><title>Mobile Robot Chassis Design</title>
<p>As an immediate consequence of the emergence of 3D printers, students and researchers can take benefit from this new technology to develop their own robotics platforms. However, the software side remains challenging because commercial (professional) software is still relatively expensive. As opposite to several platforms which require paid licenses, we chose a relatively new platform, Tinkercad (a product from Autodesk Company), known to be online and free<xref ref-type="fn" rid="fn1"><sup>1</sup></xref><fn id="fn1"><label>1</label><p><uri xlink:href="https://www.tinkercad.com">www.tinkercad.com</uri></p></fn>. This platform includes several tools that can help in 3D design, electric/electronic circuits, code-block programming and many free courses and tutorials. Moreover, this platform allows the user to create his personal account and keep all his previous designs and circuits in cloud storage. In this work, Tinkercad is used for two tasks: the mechanical design and the programming of the microcontroller during the simulation step.</p>
<p>In Tinkercad, the mechanical design is based on the principle of constructive solid geometry (CSG) where basic shapes and on adding/removing other shapes to construct complex forms are used. A screenshot of a simple mobile robotics platform customized for conducting this work is shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>.</p>
<fig id="fig-2"><label>Figure 2</label><caption><title>Screenshot of Tinkercad-based design of the mobile robot</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-2.png"/></fig>
</sec>
<sec id="s3_2"><label>3.2</label><title>Hardware Specification</title>
<p>In this study, the MR platform has been designed to be functional, low-cost, and extendable to other applications [<xref ref-type="bibr" rid="ref-27">27</xref>]. The following parts have been assembled to construct the MR:
<list list-type="bullet">
<list-item><p>Wheels: two standard wheels in addition to a castor wheel in order to provide to the MR stability and sufficient traction [<xref ref-type="bibr" rid="ref-24">24</xref>].</p></list-item>
<list-item><p>Motors: two direct current (DC) motors to operate the MR.</p></list-item>
<list-item><p>Motors&#x2019; driver: to control the MR motion.</p></list-item>
<list-item><p>Microcontroller: to generate the control signals applied to the driver as well as to receive the sensors&#x2019; signals.</p></list-item>
<list-item><p>Battery: to provide the energy to the MR.</p></list-item>
<list-item><p>Sensors: to serve as perception tools for the MR close environment.</p></list-item>
</list></p>
<p>The material used to construct the MR can be plastic, MDF (medium density fiber), acrylic or metal frame. In order to reduce the cost, in this study, the choice was a chassis fabricated using plastic material.</p>
<p>To select the driven motors and the battery pack capacity, an online motor sizing tool was used<xref ref-type="fn" rid="fn2"><sup>2</sup></xref><fn id="fn2"><label>2</label><p><uri xlink:href="https://www.robotshop.com/community/blog/show/drive-motor-sizing-tool">https://www.robotshop.com/community/blog/show/drive-motor-sizing-tool</uri></p></fn>. For a mobile robot, direct current (DC) motors are commonly used. However, those motors have the drawback of turning very fast without generating sufficient torque. The solution usually adopted consists of reducing the speed (<inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mi mathvariant="normal">&#x03A9;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> by using a gear-down in order to produce enough torque (<inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mi>T</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and keep the power (<inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> constant as in <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref>.
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi mathvariant="normal">&#x03A9;</mml:mi></mml:math></disp-formula></p>
<p>Since the MR will move in a flat surface, the torque will be calculated following <xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref> below.
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mrow><mml:mtext>T =&#xA0;</mml:mtext></mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:mtext>Mass &#x00D7; WheelRadius</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>Number of wheels</mml:mtext></mml:mrow></mml:mrow></mml:mfrac><mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">y</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mi mathvariant="normal">y</mml:mi><mml:mspace width="thickmathspace" /><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mspace width="thickmathspace" /></mml:mrow></mml:math></disp-formula></p>
<p>The safety factor is used here to allow the battery pack to power the MR embedded electronics such as the microcontroller and the sensors. Moreover, some imperfections in the surface will be overcome by the MR. The results provided by the sizing motor tool are summarized in <xref ref-type="table" rid="table-1">Tab. 1</xref>. Based on the results of <xref ref-type="table" rid="table-1">Tab. 1</xref>, the corresponding selected MR system parts as well as their technical specifications are provided in <xref ref-type="table" rid="table-2">Tab. 2</xref>. In order to implement the path planning applications, an ultrasonic sensor and two infrared line following sensors have been also included to the MR platform.</p>
<table-wrap id="table-1"><label>Table 1</label><caption><title>DC motors and battery pack capacity sizing</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Inputs</th>
<th align="left">Values</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Total mass (Kg)</td>
<td align="left">2</td>
</tr>
<tr>
<td align="left">Number of drive motors (&#x0023;)</td>
<td align="left">2</td>
</tr>
<tr>
<td align="left">Radius of drive wheel (m)</td>
<td align="left">0.03</td>
</tr>
<tr>
<td align="left">Robot velocity (m/s)</td>
<td align="left">2</td>
</tr>
<tr>
<td align="left">Maximum incline angle (deg.)</td>
<td align="left">10</td>
</tr>
<tr>
<td align="left">Supply voltage (V)</td>
<td align="left">12</td>
</tr>
<tr>
<td align="left">Desired acceleration (m/s<sup>2</sup>)</td>
<td align="left">1</td>
</tr>
<tr>
<td align="left">Desired operating time (min)</td>
<td align="left">5</td>
</tr>
<tr>
<td align="left">Total efficiency (&#x0025;)</td>
<td align="left">65</td>
</tr>
<tr>
<td align="left">Outputs</td>
<td align="left">Values</td>
</tr>
<tr>
<td align="left">Angular velocity (rad/s)</td>
<td align="left">66.667</td>
</tr>
<tr>
<td align="left">Torque (g.cm)</td>
<td align="left">1271.9</td>
</tr>
<tr>
<td align="left">Total power (W)</td>
<td align="left">8.3184</td>
</tr>
<tr>
<td align="left">Maximum current (A)</td>
<td align="left">0.6932</td>
</tr>
<tr>
<td align="left">Battery pack capacity (mAh)</td>
<td align="left">1155</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="table-2"><label>Table 2</label><caption><title>MR parts specifications</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Part</th>
<th align="left">Specifications</th>
<th align="left">Cost (USD)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">DC motor with wheel</td>
<td align="left">Number of wheeled motors: 2<break/>Operating voltage: 3-6 V<break/>Torque: 800 g.cm<break/>Load current: 170 mA<break/>A castor wheel for MR equilibrium</td>
<td align="left">10</td>
</tr>
<tr>
<td align="left">L298 DC motor driver</td>
<td align="left">Operating voltage: up to 46 V<break/>Total DC current: up to 4 A<break/>Number of driven motors: 4</td>
<td align="left">10</td>
</tr>
<tr>
<td align="left">Battery pack</td>
<td align="left">Number of batteries: 2<break/>Capacity: 2600 mAh/battery<break/>Operating voltage: 3.7 V</td>
<td align="left">10</td>
</tr>
<tr>
<td align="left">ARDUINO UNO R3 Microcontroller</td>
<td align="left">Series: AVR-Atmega<break/>Type: MCU 8-bit<break/>Number of digital pins: 14<break/>Number of analog inputs: 6<break/>Clock frequency: 16 Mhz<break/>Number of analog inputs: 6</td>
<td align="left">15</td>
</tr>
<tr>
<td align="left">Distance Ultrasonic sensor HC-SR04</td>
<td align="left">Number of sensors: 1<break/>Accuracy: 2 cm<break/>Detection range: 2 cm &#x2013; 450 cm</td>
<td align="left">15</td>
</tr>
<tr>
<td align="left">Line follower sensor</td>
<td align="left">Number: 2<break/>Ref: KY-033<break/>Principle: infrared transceiver<break/>Power: 5 V</td>
<td align="left">15</td>
</tr>
<tr>
<td align="left">Other additional parts</td>
<td align="left">Jumper wires<break/>ON/OFF switch<break/>Small breadboard</td>
<td align="left">5</td>
</tr>
<tr>
<td align="left"><bold>Total cost</bold></td>
<td align="left"/>
<td align="left"><bold>80</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<p><bold><italic>DC Motor Driver</italic></bold></p>
<p>The L298N module has the following pinouts:
<list list-type="bullet">
<list-item><p>Two terminal screwed power pins for each one of the two motors. These pins provide the voltage for driving the motors. The motors used in the MR require a voltage between 7 and 12 V.</p></list-item>
<list-item><p>One terminal screwed pin for the Ground.</p></list-item>
<list-item><p>A 5 V pin used for control signals&#x2019; generation.</p></list-item>
<list-item><p>Two Enable pins (ENA and ENB) used in general for controlling the motors speeds. This will be done through a jumper. If the jumper exists, the motors work at their maximum speeds and if it is removed, the Pulse Width Modulation (PWM) input is activated and thus the motors speeds can be controlled.</p></list-item>
<list-item><p>The pins IN1, IN2, IN3 and IN4 are used for controlling the motors directions and for stopping them. Note here that (IN1, IN2) are used for one motor and (IN3, IN4) are used for the other motor.</p></list-item>
</list></p>
<p>Since the robot can move Reverse, Forward, Left, Right and Stop, the corresponding combinations of the IN1, IN2, IN3 and IN4 states are summarized in <xref ref-type="table" rid="table-3">Tab. 3</xref>.</p>
<table-wrap id="table-3"><label>Table 3</label><caption><title>The L298 driver logic controller</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">IN1</th>
<th align="left">IN2</th>
<th align="left">IN3</th>
<th align="left">IN4</th>
<th align="left">Direction</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">0</td>
<td align="left">0</td>
<td align="left">0</td>
<td align="left">0</td>
<td align="left">Stop</td>
</tr>
<tr>
<td align="left">1</td>
<td align="left">0</td>
<td align="left">1</td>
<td align="left">0</td>
<td align="left">Forward</td>
</tr>
<tr>
<td align="left">0</td>
<td align="left">1</td>
<td align="left">0</td>
<td align="left">1</td>
<td align="left">Reverse</td>
</tr>
<tr>
<td align="left">1</td>
<td align="left">0</td>
<td align="left">0</td>
<td align="left">1</td>
<td align="left">Left</td>
</tr>
<tr>
<td align="left">0</td>
<td align="left">1</td>
<td align="left">1</td>
<td align="left">0</td>
<td align="left">Right</td>
</tr>
</tbody>
</table>
</table-wrap>
<p><bold><italic>Ultrasonic Sensor</italic></bold></p>
<p>The ultrasonic sensor (HC-SR04) is an electronic device able to measure the distance to the first object existing in front of it. It is based on the same principle of radar and sonar. In fact, the sensor source generates an ultra-high frequency signal which is reflected after hitting the obstacle. The reflected echo is sensed by the sensor receiver. The microcontroller measures the duration between sending the signal and receiving the echo and then calculates the distance using the formula:
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mrow><mml:mtext>distance =&#xA0;</mml:mtext></mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:mtext>speed &#x00D7; duration</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p>The speed of the ultrasonic wave is known to be 343 m/s.</p>
<p><bold><italic>Line Follower Sensor</italic></bold></p>
<p>Line follower sensor (KY-033) is a sensor that gives the mobile robot the ability to detect colored (white/light-black/dark) lines or surfaces. The sensor working operation is based on detecting reflected light being emitted by its infrared transmitter [<xref ref-type="bibr" rid="ref-20">20</xref>]. By measuring the amount of reflected infrared light, it can detect transitions from light to dark (lines) or even objects directly in front of it. If a HIGH value is received, the surface/line is dark/black and if the received value is LOW, the surface/line is light/white. This principle will be used later for following the optimal path derived from the path planning and obstacle avoidance algorithm using two line-follower sensors.</p>
</sec>
</sec>
<sec id="s4"><label>4</label><title>Path Planning and Obstacle Avoidance</title>
<sec id="s4_1"><label>4.1</label><title>Obstacle-free Path Planning Based on Dijkstra Algorithm</title>
<p>In this section, a path planning and obstacle avoidance algorithm is designed and its output transferred to a global motion planning for the MR [<xref ref-type="bibr" rid="ref-29">29</xref>]. Path planning is known to be among hard-to-solve problems since its main purpose is to generate an optimal path driving the MR from a starting point to a target point in an environment known a priori [<xref ref-type="bibr" rid="ref-28">28</xref>]. The path planning problem solution can be either global (when the problem is solved offline before starting the MR mission) or local (when the environment is sensed while the robot is moving alongside its trajectory). The arrival of new information may contribute to update the optimal path. Dijkstra&#x2019;s algorithm has shown high competitiveness when compared to similar algorithms such as A&#x002A; and its variants. Due to its usefulness, it has been adopted in many applications such as Google Maps [<xref ref-type="bibr" rid="ref-29">29</xref>]. Dijkstra&#x2019;s algorithm (as a global algorithm) has been combined to a dynamic window used as a local path planning algorithm in an unknown indoor environment [<xref ref-type="bibr" rid="ref-30">30</xref>] such as for logistics applications. In this paper, an approach using Dijkstra algorithm, first, in a global level and then, iteratively in a local level is designed, evaluated and tested on a real DIY MR. The key idea is to generate a global optimal path. During the MR motion, information received from an ultrasonic sensor (used as an obstacle detector) will serve to update the robot trajectory in order to avoid collision.</p>
<p>In this work, a MR is assumed to move inside its environment including obstacles. A path planning solution is the optimal sequence of movements that drive the MR from a starting point to a target point while following the shortest path and avoiding obstacles. The MR close environment is modeled using graph theory as a diagraph <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mrow><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mspace width="thickmathspace" /></mml:mrow><mml:mo>=</mml:mo><mml:mspace width="thickmathspace" /><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">V</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">E</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace" /><mml:mi mathvariant="bold-italic">W</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mi mathvariant="bold-italic">V</mml:mi></mml:math></inline-formula> is the set of vertices (including the source vertex <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi mathvariant="bold-italic">s</mml:mi></mml:math></inline-formula>)<inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi mathvariant="bold-italic">E</mml:mi></mml:math></inline-formula> is the set of edges and <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi mathvariant="bold-italic">W</mml:mi></mml:math></inline-formula> is the set of edges&#x2019; weights [<xref ref-type="bibr" rid="ref-36">36</xref>]. Some of the vertices are connected through edges having non-zero positive weights. The idea behind Dijkstra algorithm is to find the sub-graph having the minimum distance between the source vertex and all other vertices including the target vertex. Mathematically, path planning is defined as an optimization problem as in <xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref>.</p>
<p>Among the efficient algorithms previously used for solving <bold>problem 1</bold>, Dijkstra&#x2019;s algorithm is adopted in this paper. The main concept of this algorithm is to construct a set of vertices starting at the source vertex and ending at the target vertex such that the sum of edges&#x2019; weights (called distances) is minimal. <bold>Problem 1</bold> is posed as follows.</p>
<p><bold>Problem 1: Shortest path in an obstacle-free digraph</bold></p>
<p>Find the sub-graph <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mi mathvariant="bold-italic">Q</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi mathvariant="bold-italic">V</mml:mi></mml:math></inline-formula> including the source and target vertices which minimizes the distance from <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi mathvariant="bold-italic">s</mml:mi></mml:math></inline-formula> to <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi mathvariant="bold-italic">t</mml:mi></mml:math></inline-formula>. without loss of generality, let&#x2019;s consider the source vertex <bold><italic>s</italic></bold> as &#x0023;1 and the target vertex <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi mathvariant="bold-italic">t</mml:mi></mml:math></inline-formula> as &#x0023; <italic>p</italic>.
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mrow><mml:msub><mml:mrow><mml:mtext>d</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>st</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>=</mml:mo></mml:mrow><mml:munderover><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j = 1</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:munderover><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>d</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j,j + 1</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi mathvariant="normal">j</mml:mi></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mtext>Q</mml:mtext></mml:mrow></mml:math></disp-formula></p>
<p><inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mi>Q</mml:mi></mml:math></inline-formula> is assumed to be non-empty and includes <italic>p</italic> vertices, i.e., <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>p</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>. The vertex <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> is adjacent to the preceding vertex <italic>j</italic>.</p>
<p>The steps of this algorithm are presented as follows.
</p>
<fig id="fig-6">
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-6.png"/>
</fig>
</sec>
<sec id="s4_2"><label>4.2</label><title>Path Planning with Obstacle Avoidance</title>
<p>If the environment of the MR modeled as a diagraph includes obstacles, the path planning avoiding obstacles problem is formulated as in <bold>Problem 2</bold> below.</p>
<p><bold>Problem 2: Shortest path in a digraph including obstacles</bold></p>
<p>Find the sub-graph <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:msup><mml:mi mathvariant="bold-italic">Q</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mi mathvariant="bold-italic">Q</mml:mi></mml:math></inline-formula> including the source and target vertices which minimizes the distance from <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:mi mathvariant="bold-italic">s</mml:mi></mml:math></inline-formula> to <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi mathvariant="bold-italic">t</mml:mi></mml:math></inline-formula> while avoiding obstacles.</p>
<p>Based on the obstacle-free Dijkstra algorithm (<bold>Algorithm 1</bold>), a solution for the path planning with obstacles problem (<bold>Problem 2</bold>) is designed and implemented in this paper.
</p>
<fig id="fig-7">
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-7.png"/>
</fig>
</sec>
<sec id="s4_3"><label>4.3</label><title>Results</title>
<p>In this sub-section, the proposed algorithm for path planning and obstacle avoidance is tested on a case study to verify its performance. The derived solution is recorded in a look-up table and then transferred into a control motion law applied practically to the mobile robot designed in Section 3 above. The environment is modeled as a diagraph composed of 9 nodes (vertices) numbered from 1 to 9 and shown in <xref ref-type="fig" rid="fig-4">Fig. 4a</xref>. The edges as well as the diagraph weights are provided in <xref ref-type="table" rid="table-4">Tab. 4</xref>.</p>
<table-wrap id="table-4"><label>Table 4</label><caption><title>The diagraph nodes, edges and weights</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<tbody>
<tr>
<td align="left">Node i</td>
<td align="left">1</td>
<td align="left">1</td>
<td align="left">2</td>
<td align="left">2</td>
<td align="left">2</td>
<td align="left">3</td>
<td align="left">3</td>
<td align="left">4</td>
<td align="left">4</td>
<td align="left">5</td>
<td align="left">5</td>
<td align="left">6</td>
<td align="left">9</td>
<td align="left">7</td>
<td align="left">5</td>
<td align="left">9</td>
<td align="left">9</td>
<td align="left">9</td>
<td align="left">3</td>
</tr>
<tr>
<td align="left">Node j</td>
<td align="left">2</td>
<td align="left">3</td>
<td align="left">3</td>
<td align="left">4</td>
<td align="left">6</td>
<td align="left">5</td>
<td align="left">9</td>
<td align="left">5</td>
<td align="left">6</td>
<td align="left">6</td>
<td align="left">7</td>
<td align="left">7</td>
<td align="left">7</td>
<td align="left">8</td>
<td align="left">8</td>
<td align="left">7</td>
<td align="left">5</td>
<td align="left">3</td>
<td align="left">6</td>
</tr>
<tr>
<td align="left">W(i,j) (10 cm)</td>
<td align="left">5</td>
<td align="left">19</td>
<td align="left">13</td>
<td align="left">8</td>
<td align="left">28</td>
<td align="left">5</td>
<td align="left">8</td>
<td align="left">35</td>
<td align="left">27</td>
<td align="left">12</td>
<td align="left">9</td>
<td align="left">10</td>
<td align="left">7</td>
<td align="left">18</td>
<td align="left">23</td>
<td align="left">22</td>
<td align="left">11</td>
<td align="left">8</td>
<td align="left">15</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="fig-3"><label>Figure 3</label><caption><title>Illustration of the diagraphs of the path planning and obstacle avoidance implementation</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-3.png"/></fig>
<fig id="fig-4"><label>Figure 4</label><caption><title>Experimental setup views: <bold>(</bold>a<bold>)</bold> Front <bold>(</bold>b<bold>)</bold> Left side <bold>(</bold>c<bold>)</bold> Top <bold>(</bold>d<bold>)</bold> Bottom</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-4.png"/></fig>
<p>Dijkstra shortest path algorithm (<bold>Algorithm 1</bold>) was run on the diagraph of <xref ref-type="fig" rid="fig-3">Fig. 3a</xref>. The starting vertex was chosen as &#x0023;1 and the target vertex is &#x0023;8. The obtained optimal path is found to be Q&#x2019; &#x003D; &#x007B;1, 2, 3, 5, 8&#x007D; (<xref ref-type="fig" rid="fig-3">Fig. 3b</xref>) and the optimal length is found to be 460 cm. Two obstacles were arbitrarily placed in nodes 2 and 5. As per the designed algorithm, the MR should stop at every node it reaches in order to test the existence of eventual obstacles at its adjacent node. From the beginning, since an obstacle exists in node 2, the MR should update its path by applying <bold>algorithm 1</bold> to the diagraph after excluding node 2. Node 2 is here excluded by assigning a high value (5000 in our case) to all edges connecting it to all its adjacent nodes. The optimal path is then updated to become Q&#x2019; &#x003D; &#x007B;1, 3, 5, 8&#x007D; (<xref ref-type="fig" rid="fig-3">Fig. 3c</xref>) having 470 cm as length. The MR should move now to node 3. While stopping at node 3, the MR tests if there is any obstacle in the next optimal path node. Since node 5 includes an obstacle, the optimal path is updated by excluding node 5 using the same way as in node 2. <bold>Algorithm 1</bold> is run on the new diagraph. The final optimal path is Q&#x2019; &#x003D; &#x007B;1, 3, 9, 7, 8&#x007D; (<xref ref-type="fig" rid="fig-3">Fig. 3d</xref>) having 520 cm as an optimal length. Since the improved Dijkstra algorithm developed in this paper is big-O(n<sup>2</sup>), its convergence time is proportional to the square of the number of nodes in the diagraph modeling the environment. In practice, the MR is expected to operate indoor where the number of nodes is relatively small and consequently the convergence time will be relatively small. The convergence time depends also on the microcontroller on which the algorithm is implemented. In our case, the used Arduino board has acceptable computational efficiency and memory capacity which achieved in this case study good performance.</p>
</sec>
<sec id="s4_4"><label>4.4</label><title>Experimental Setup and Implementation</title>
<p>In order to practically implement the optimal path avoiding obstacles, an experimental setup around the DIY MR designed and assembled in the previous sections (<xref ref-type="fig" rid="fig-4">Fig. 4</xref>) will be used.</p>
<p>In order to make the MR follow the optimal path marked using a black line, two KY-033 line-follower sensors have been used [<xref ref-type="bibr" rid="ref-27">27</xref>]. The line following logic is provided in <xref ref-type="table" rid="table-5">Tab. 5</xref>. Theoretically, the MR can track the trajectory at any velocity less than its maximum velocity. However, during the experimentations, we were limited to the half of the maximum velocity for educational purpose in order to prevent losing trajectory tracking characteristic.</p>
<table-wrap id="table-5"><label>Table 5</label><caption><title>Line following logic</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Left sensor</th>
<th align="left">Right sensor</th>
<th align="left">Movement</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">HIGH</td>
<td align="left">HIGH</td>
<td align="left"><monospace>Stop</monospace></td>
</tr>
<tr>
<td align="left">LOW</td>
<td align="left">HIGH</td>
<td align="left"><monospace>Right</monospace></td>
</tr>
<tr>
<td align="left">HIGH</td>
<td align="left">LOW</td>
<td align="left"><monospace>Left</monospace></td>
</tr>
<tr>
<td align="left">LOW</td>
<td align="left">LOW</td>
<td align="left"><monospace>Forward</monospace></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Based on <xref ref-type="table" rid="table-5">Tab. 5</xref>, the optimal path is transferred into motion control movement as depicted in the movement sequence illustrated in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>.
</p>
<fig id="fig-8">
<graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-8.png"/>
</fig>
<fig id="fig-5"><label>Figure 5</label><caption><title>Illustration of the path planning avoiding obstacles</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_28165-fig-5.png"/></fig>
</sec>
</sec>
<sec id="s5"><label>5</label><title>Conclusion</title>
<p>In this paper, a low-cost robotics platform for education and research purposes has been designed and implemented in the first part. The educational aim of this platform is to implement Science-Technology-Engineering-Art-Mathematics (STEAM) framework using an affordable system. The progressive steps of implementation included the mechanical 3D design, the hardware specification and the programming. In the second part of the paper, an optimal path planning avoiding obstacles algorithm has been developed based on an improved Dijkstra algorithm usually operating in environments without obstacles. The main contributions of this paper are the systematic procedure used in sizing and implementation of the mobile robot and the modification reported to the diagraph using a technique excluding the nodes including obstacles. The designed robot can support two to three trays which makes it useful for indoor logistics operations as well as in nonholonomic MR identification and control. In addition, the MR is extendable to other applications in computer vision and artificial intelligence. Implementing other path planning algorithms and comparing them to the improved Dijkstra algorithm are expected as perspectives of the current study.</p>
</sec>
</body>
<back>
<fn-group>
<fn fn-type="other"><p><bold>Funding Statement:</bold> This research has been funded by Scientific Research Deanship at University of Ha&#x2019;il &#x2013; Saudi Arabia through Project Number BA-2107.</p></fn>
<fn fn-type="conflict"><p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p></fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>F.</given-names> <surname>Arvin</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Espinosa</surname></string-name>, <string-name><given-names>B.</given-names> <surname>Bird</surname></string-name>, <string-name><given-names>A.</given-names> <surname>West</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Watson</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Mona: An affordable open-source mobile robot for education and research</article-title>,&#x201D; <source>Journal of Intelligent &#x0026; Robotic Systems</source>, vol. <volume>94</volume>, pp. <fpage>761</fpage>&#x2013;<lpage>775</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Araujo</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Portugal</surname></string-name>, <string-name><given-names>M. S.</given-names> <surname>Couceiro</surname></string-name> and <string-name><given-names>R. P.</given-names> <surname>Rocha</surname></string-name></person-group>, &#x201C;<article-title>Integrating arduino-based educational mobile robots in ROS</article-title>,&#x201D; <source>Journal of Intelligent &#x0026; Robotic Systems</source>, vol. <volume>77</volume>, pp. <fpage>281</fpage>&#x2013;<lpage>298</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>N. K.</given-names> <surname>Cakir</surname></string-name> and <string-name><given-names>G.</given-names> <surname>Guven</surname></string-name></person-group>, &#x201C;<article-title>Arduino-assisted robotic and coding applications in science teaching: Pulsimeter activity in compliance with the 5E learning model</article-title>,&#x201D; <source>Science Activities</source>, vol. <volume>56</volume>, no. <issue>2</issue>, pp. <fpage>42</fpage>&#x2013;<lpage>51</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>L. A. P.</given-names> <surname>Fuentes-dur</surname></string-name></person-group>, &#x201C;<article-title>Low-cost printable robots in education</article-title>,&#x201D; <source>Journal of Intelligent &#x0026; Robotic Systems</source>, vol. <volume>81</volume>, pp. <fpage>5</fpage>&#x2013;<lpage>24</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Hu</surname></string-name></person-group>, &#x201C;<article-title>An educational arduino robot for visual deep learning experiments</article-title>,&#x201D; <source>International Journal of Intelligent Robotics and Applications</source>, vol. <volume>4</volume>, pp. <fpage>73</fpage>&#x2013;<lpage>81</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Limosani</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Manzi</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Faggiani</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Bianchi</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Pagliai</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Low-cost solution in international robotic challenge: Lessons learned by tuscany robotics team at ERL emergency robots 2017</article-title>,&#x201D; <source>Journal of Field Robotics</source>, vol. <volume>36</volume>, no. <issue>3</issue>, pp. <fpage>587</fpage>&#x2013;<lpage>601</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M. L.</given-names> <surname>Francisco</surname></string-name> and <string-name><given-names>F.</given-names> <surname>Cuesta</surname></string-name></person-group>, &#x201C;<article-title>Andruino-a1: Low-cost educational mobile robot based on android and arduino</article-title>,&#x201D; <source>Journal of Intelligent &#x0026; Robotic Systems</source>, vol. <volume>81</volume>, pp. <fpage>63</fpage>&#x2013;<lpage>76</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J. M.</given-names> <surname>Garc</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Balaguer</surname></string-name> and <string-name><given-names>M. A.</given-names> <surname>Salichs</surname></string-name></person-group>, &#x201C;<article-title>Developing educational printable robots to motivate university students using open source technologies</article-title>,&#x201D; <source>Journal of Intelligent &#x0026; Robotic Systems</source>, vol. <volume>81</volume>, pp. <fpage>25</fpage>&#x2013;<lpage>39</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>E.</given-names> <surname>Sancristobal</surname></string-name>, <string-name><given-names>G.</given-names> <surname>Carro</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Castro</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Blazquez</surname></string-name></person-group>, &#x201C;<article-title>European robotics week to introduce robotics and promote engineering</article-title>,&#x201D; <source>Computer Applications in Engineering Education</source>, vol. <volume>26</volume>, no. <issue>5</issue>, pp. <fpage>1068</fpage>&#x2013;<lpage>1080</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Ponce</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Molina</surname></string-name>, <string-name><given-names>E. O. L.</given-names> <surname>Caudana</surname></string-name>, <string-name><given-names>G. B.</given-names> <surname>Reyes</surname></string-name> and <string-name><given-names>N. M.</given-names> <surname>Parra</surname></string-name></person-group>, &#x201C;<article-title>Improving education in developing countries using robotic platforms</article-title>,&#x201D; <source>International Journal in Interactive Design and Manufacturing</source>, vol. <volume>13</volume>, no. <issue>4</issue>, pp. <fpage>1401</fpage>&#x2013;<lpage>1422</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>E. S.</given-names> <surname>P&#x00E9;rez</surname></string-name></person-group>, &#x201C;<article-title>An ultra-low cost line follower robot as educational tool for teaching programming and circuit&#x2019;s foundations</article-title>,&#x201D; <source>Computer Applications in Engineering Education</source>, vol. <volume>27</volume>, pp. <fpage>288</fpage>&#x2013;<lpage>302</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Eguchi</surname></string-name></person-group>, &#x201C;<article-title>Robocupjunior for promoting STEM education, 21st century skills, and technological advancement through robotics competition</article-title>,&#x201D; <source>Robotics and Autonomous Systems</source>, vol. <volume>75</volume>, pp. <fpage>692</fpage>&#x2013;<lpage>699</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Manuel</surname></string-name>, <string-name><given-names>S.</given-names> <surname>L&#x00F3;pez</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Luisa</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Garc&#x00ED;a</surname></string-name> and <string-name><given-names>E.</given-names> <surname>Vazquez</surname></string-name></person-group>, &#x201C;<article-title>The effect of programming on primary school students&#x2019; mathematical and scientific understanding: Educational use of mBot</article-title>,&#x201D; <source>Educational Technology Research and Development</source>, vol. <volume>67</volume>, no. <issue>6</issue>, pp. <fpage>1405</fpage>&#x2013;<lpage>1425</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Scaradozzi</surname></string-name>, <string-name><given-names>L. S. L.</given-names> <surname>Cesaretti</surname></string-name> and <string-name><given-names>M. S. E.</given-names> <surname>Mazzieri</surname></string-name></person-group>, &#x201C;<article-title>Implementation and assessment methodologies of teachers&#x2019; training courses for sTEM activities</article-title>,&#x201D; <source>Technology, Knowledge and Learning</source>, vol. <volume>24</volume>, no. <issue>2</issue>, pp. <fpage>247</fpage>&#x2013;<lpage>268</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Lei</surname></string-name>, <string-name><given-names>I. M.</given-names> <surname>Clemente</surname></string-name> and <string-name><given-names>Y.</given-names> <surname>Hu</surname></string-name></person-group>, &#x201C;<article-title>Computers &#x0026; education student in the shell: The robotic body and student engagement</article-title>,&#x201D; <source>Computers &#x0026; Education</source>, vol. <volume>130</volume>, pp. <fpage>59</fpage>&#x2013;<lpage>80</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Vandevelde</surname></string-name>, <string-name><given-names>F.</given-names> <surname>Wyffels</surname></string-name>, <string-name><given-names>B.</given-names> <surname>Vanderborght</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Saldien</surname></string-name></person-group>, &#x201C;<article-title>Design and evaluation of a DIY construction system for educational robot kits</article-title>,&#x201D; <source>International Journal of Technology Design and Education</source>, vol. <volume>26</volume>, no. <issue>4</issue>, pp. <fpage>521</fpage>&#x2013;<lpage>540</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>Zhong</surname></string-name> and <string-name><given-names>L.</given-names> <surname>Xia</surname></string-name></person-group>, &#x201C;<article-title>A systematic review on exploring the potential of educational robotics in mathematics education</article-title>,&#x201D; <source>International Journal of Science and Mathematics Education</source>, vol. <volume>18</volume>, pp. <fpage>79</fpage>&#x2013;<lpage>101</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Soriano</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Mar</surname></string-name>, <string-name><given-names>C.</given-names> <surname>De Vera</surname></string-name> and <string-name><given-names>E.</given-names> <surname>Valencia</surname></string-name></person-group>, &#x201C;<article-title>Low cost platform for automatic control education based on open hardware</article-title>,&#x201D; in <conf-name>Proc. of the 19th World Congress the Int. Federation of Automatic Control Cape Town</conf-name>, <conf-loc>South Africa</conf-loc>, pp. <fpage>9044</fpage>&#x2013;<lpage>9050</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>N. M. F.</given-names> <surname>Ferreira</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Araujo</surname></string-name> and <string-name><given-names>M. S.</given-names> <surname>Couceiro</surname></string-name></person-group>, &#x201C;<article-title>Applied computing and informatics intensive summer course in robotics &#x2013; robotcraft</article-title>,&#x201D; <source>Applied Computing and Informatics</source>, vol. <volume>16</volume>, no. <issue>1/2</issue>, pp. <fpage>155</fpage>&#x2013;<lpage>179</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Oltean</surname></string-name></person-group>, &#x201C;<article-title>Mobile robot platform with arduino Uno and raspberry Pi for autonomous navigation</article-title>,&#x201D; <source>Procedia Manufacturing</source>, vol. <volume>32</volume>, pp. <fpage>572</fpage>&#x2013;<lpage>577</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Larra</surname></string-name></person-group>, &#x201C;<article-title>Experiences incorporating lego mindstorms robots in the basic programming syllabus: Lessons learned</article-title>,&#x201D; <source>Journal of Intelligent &#x0026; Robotic Systems</source>, vol. <volume>81</volume>, pp. <fpage>117</fpage>&#x2013;<lpage>129</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A. F.</given-names> <surname>Ribeiro</surname></string-name> and <string-name><given-names>G.</given-names> <surname>Lopes</surname></string-name></person-group>, &#x201C;<article-title>Learning robotics: A review</article-title>,&#x201D; <source>Current Robotics Reports</source>, vol. <volume>1</volume>, pp. <fpage>1</fpage>&#x2013;<lpage>11</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Jdeed</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Schranz</surname></string-name> and <string-name><given-names>W.</given-names> <surname>Elmenreich</surname></string-name></person-group>, &#x201C;<article-title>A study using the low-cost swarm robotics platform spiderino in education</article-title>,&#x201D; <source>Computers and Education Open</source>, vol. <volume>1</volume>, no. <issue>April</issue>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>W. G.</given-names> <surname>Ali</surname></string-name></person-group>, &#x201C;<article-title>A semi-autonomous mobile robot for education and research</article-title>,&#x201D; <source>Journal of King Saud University-Engineering Sciences</source>, vol. <volume>23</volume>, no. <issue>2</issue>, pp. <fpage>131</fpage>&#x2013;<lpage>138</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Jawaid</surname></string-name></person-group>, &#x201C;<article-title>Robotic system education for young children by collaborative-project-based learning</article-title>,&#x201D; <source>Computer Applications in Engineering Education</source>, vol. <volume>28</volume>, pp. <fpage>178</fpage>&#x2013;<lpage>192</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Malinverni</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Valero</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Monique</surname></string-name>, <string-name><given-names>I.</given-names> <surname>Garcia</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Cruz</surname></string-name></person-group>, &#x201C;<article-title>Educational robotics as a boundary object: Towards a research agenda</article-title>,&#x201D; <source>International Journal of Child-Computer Interaction</source>, vol. <volume>29</volume>, pp. <fpage>100305</fpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Farkh</surname></string-name>, <string-name><given-names>K. S.</given-names> <surname>Alhuwaimel</surname></string-name> and <string-name><given-names>M. T.</given-names> <surname>Quasim</surname></string-name></person-group>, &#x201C;<article-title>A deep learning approach for the mobile-robot motion control system</article-title>,&#x201D; <source>Intelligent Automation &#x0026; Soft Computing</source>, vol. <volume>29</volume>, no. <issue>2</issue>, pp. <fpage>423</fpage>&#x2013;<lpage>435</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Z.</given-names> <surname>Durakli</surname></string-name> and <string-name><given-names>V.</given-names> <surname>Nabiyev</surname></string-name></person-group>, &#x201C;<article-title>A new approach based on bezier curves to solve path planning problems for mobile robots</article-title>,&#x201D; <source>Journal of Computational Science</source>, vol. <volume>58</volume>, pp. <fpage>101540</fpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>Karur</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Sharma</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Dharmatti</surname></string-name> and <string-name><given-names>J. E.</given-names> <surname>Siegel</surname></string-name></person-group>, &#x201C;<article-title>A survey of path planning algorithms for autonomous vehicles</article-title>,&#x201D; <source>Vehicles</source>, vol. <volume>3</volume>, pp. <fpage>448</fpage>&#x2013;<lpage>468</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Chen</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Liang</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Wang</surname></string-name>, <string-name><given-names>Q.</given-names> <surname>Pan</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Tan</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Autonomous mobile robot path planning in unknown dynamic environments using neural dynamics</article-title>,&#x201D; <source>Soft Computing</source>, vol. <volume>24</volume>, no. <issue>18</issue>, pp. <fpage>13979</fpage>&#x2013;<lpage>13995</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R. J.</given-names> <surname>Wai</surname></string-name>, <string-name><given-names>C. M.</given-names> <surname>Liu</surname></string-name> and <string-name><given-names>Y. W.</given-names> <surname>Lin</surname></string-name></person-group>, &#x201C;<article-title>Design of switching path-planning control for obstacle avoidance of mobile robot</article-title>,&#x201D; <source>Journal of the Franklin Institute</source>, vol. <volume>348</volume>, no. <issue>4</issue>, pp. <fpage>718</fpage>&#x2013;<lpage>737</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>L. S.</given-names> <surname>Liu</surname></string-name>, <string-name><given-names>J. F.</given-names> <surname>Lin</surname></string-name>, <string-name><given-names>J. X.</given-names> <surname>Yao</surname></string-name>, <string-name><given-names>D. W.</given-names> <surname>He</surname></string-name>, <string-name><given-names>J. S.</given-names> <surname>Zheng</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Path planning for smart Car based on dijkstra algorithm and dynamic window approach</article-title>,&#x201D; <source>Wireless Communications and Mobile Computing</source>, vol. <volume>2021</volume>, pp. <fpage>1</fpage>&#x2013;<lpage>6</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>I.</given-names> <surname>Sung</surname></string-name>, <string-name><given-names>B.</given-names> <surname>Choi</surname></string-name> and <string-name><given-names>P.</given-names> <surname>Nielsen</surname></string-name></person-group>, &#x201C;<article-title>On the training of a neural network for online path planning with offline path planning algorithms</article-title>,&#x201D; <source>International Journal of Information Management</source>, vol. <volume>57</volume>, pp. <fpage>102142</fpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Maoudj</surname></string-name> and <string-name><given-names>A.</given-names> <surname>Hentout</surname></string-name></person-group>, &#x201C;<article-title>Optimal path planning approach based on Q-learning algorithm for mobile robots</article-title>,&#x201D; <source>Applied Soft Computing Journal</source>, vol. <volume>97</volume>, pp. <fpage>106796</fpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H. M.</given-names> <surname>Zhang</surname></string-name> and <string-name><given-names>M. L.</given-names> <surname>Li</surname></string-name></person-group>, &#x201C;<article-title>Rapid path planning algorithm for mobile robot in dynamic environment</article-title>,&#x201D; <source>Advances in Mechanical Engineering</source>, vol. <volume>9</volume>, no. <issue>12</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>12</lpage>, <year>2017</year>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Wang</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Luo</surname></string-name> and <string-name><given-names>X.</given-names> <surname>Tan</surname></string-name></person-group>, &#x201C;<article-title>Path planning for automatic guided vehicles (AGVs) fusing MH-RRT with improved TEB</article-title>,&#x201D; <source>Actuators</source>, vol. <volume>10</volume>, no. <issue>12</issue>, pp. <fpage>314</fpage>, <year>2021</year>.</mixed-citation></ref>
</ref-list>
</back>
</article>