<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2023.1205775</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A parallel heterogeneous policy deep reinforcement learning algorithm for bipedal walking motion design</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" equal-contrib="yes">
<name><surname>Li</surname> <given-names>Chunguang</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="author-notes" rid="fn001"><sup>&#x02020;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/2283335/overview"/>
</contrib>
<contrib contrib-type="author" equal-contrib="yes">
<name><surname>Li</surname> <given-names>Mengru</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="author-notes" rid="fn001"><sup>&#x02020;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/2276228/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Tao</surname> <given-names>Chongben</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1074524/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>School of Computer and Information Engineering, Changzhou Institute of Technology, Changzhou</institution>, <addr-line>Jiangsu</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>School of Electronic and Information Engineering, Suzhou University of Science and Technology</institution>, <addr-line>Suzhou</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Feihu Zhang, Northwestern Polytechnical University, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Dong Hyun Kim, Samsung Research, Republic of Korea; Gaganpreet Singh, Munich University of the Federal Armed Forces, Germany; Qiang Fu, Air Force Engineering University, China</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Chongben Tao <email>tom1tao&#x00040;163.com</email></corresp>
<fn fn-type="equal" id="fn001"><p>&#x02020;These authors have contributed equally to this work and share first authorship</p></fn></author-notes>
<pub-date pub-type="epub">
<day>08</day>
<month>08</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>17</volume>
<elocation-id>1205775</elocation-id>
<history>
<date date-type="received">
<day>14</day>
<month>04</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>25</day>
<month>07</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2023 Li, Li and Tao.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Li, Li and Tao</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). 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.</p></license> </permissions>
<abstract>
<p>Considering the dynamics and non-linear characteristics of biped robots, gait optimization is an extremely challenging task. To tackle this issue, a parallel heterogeneous policy Deep Reinforcement Learning (DRL) algorithm for gait optimization is proposed. Firstly, the Deep Deterministic Policy Gradient (DDPG) algorithm is used as the main architecture to run multiple biped robots in parallel to interact with the environment. And the network is shared to improve the training efficiency. Furthermore, heterogeneous experience replay is employed instead of the traditional experience replay mechanism to optimize the utilization of experience. Secondly, according to the walking characteristics of biped robots, a biped robot periodic gait is designed with reference to sinusoidal curves. The periodic gait takes into account the effects of foot lift height, walking period, foot lift speed and ground contact force of the biped robot. Finally, different environments and different biped robot models pose challenges for different optimization algorithms. Thus, a unified gait optimization framework for biped robots based on the RoboCup3D platform is established. Comparative experiments were conducted using the unified gait optimization framework, and the experimental results show that the method outlined in this paper can make the biped robot walk faster and more stably.</p></abstract>
<kwd-group>
<kwd>gait optimization</kwd>
<kwd>biped robot</kwd>
<kwd>Deep Deterministic Policy Gradient</kwd>
<kwd>experience replay</kwd>
<kwd>parallel heterogeneous strategy</kwd>
</kwd-group>
<counts>
<fig-count count="14"/>
<table-count count="2"/>
<equation-count count="26"/>
<ref-count count="30"/>
<page-count count="14"/>
<word-count count="8034"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>As robotics research continues to advance, robots have development trends in various fields (Singh et al., <xref ref-type="bibr" rid="B24">2022</xref>). Particularly, the biped robot, as a kind of bionic robot, has higher adaptability, operation ability and interactivity due to its human-like double-leg structure. However, gait optimization, as a key issue in the stable walking technology of biped robots, has always been a hot and difficult point in the field of robotics research. In the early stage of gait optimization research, traditional control methods were widely used in the field of gait control of biped robots. The main categories include the following: fixed gait control methods, such as human walking parameters (Horn et al., <xref ref-type="bibr" rid="B9">2020</xref>; Rosa and Lynch, <xref ref-type="bibr" rid="B22">2022</xref>), zero moment point (ZMP) (Farid et al., <xref ref-type="bibr" rid="B7">2022</xref>; He and Yamamoto, <xref ref-type="bibr" rid="B8">2022</xref>), etc. Paredes et al. proposed an approach based on a linear inverted pendulum model to deal with biped gait, but the auxiliary input of gait parameters is required to achieve stable walking of biped robot (Paredes and Hereid, <xref ref-type="bibr" rid="B20">2022</xref>). Despite their low computational requirements, the aforementioned methods exhibit limited flexibility, as they are tailored to a single scenario and are susceptible to external perturbations. Feedback-based gait control methods, which refer to real-time adjustments based on the external environment and internal state perceived by the robot, such as passive walking (Safartoobi et al., <xref ref-type="bibr" rid="B23">2021</xref>), fuzzy logic control (Maroger et al., <xref ref-type="bibr" rid="B17">2021</xref>; Dong et al., <xref ref-type="bibr" rid="B4">2022</xref>), etc. These methods also have some drawbacks, with high requirements for sensors and computing power. Optimization-based gait control methods, which mainly refer to the theory of optimization algorithms (Duburcq et al., <xref ref-type="bibr" rid="B5">2020</xref>), inevitably require not only a large number of calculations, but also complex control planning. Currently, Genetic Algorithm (GA) and Particle Swarm Optimization (PSO) have been applied to optimize the gait of biped robots (Tao et al., <xref ref-type="bibr" rid="B25">2021</xref>; Liu et al., <xref ref-type="bibr" rid="B14">2022a</xref>). Kashyap et al. demonstrated the superiority of PSO over GA in gait optimization by their study (Kashyap and Parhi, <xref ref-type="bibr" rid="B11">2021</xref>). However, since the gait control of the biped robot is a multi-objective optimization problem, too many parameters need to be set for the biped robot, which may cause the PSO algorithm to fail to obtain the optimal value during optimization, resulting in the limitation of the walking speed of the robot. Generally speaking, most traditional research methods have problems such as low efficiency, poor robustness, and low generalization.</p>
<p>The advent and progression of reinforcement learning (RL) has opened up new avenues for gait control of biped robots (Kasaei et al., <xref ref-type="bibr" rid="B10">2021</xref>). RL methods do not depend on the level of robot hardware and also allow parameter debugging in a short time (Castillo et al., <xref ref-type="bibr" rid="B1">2020</xref>). However, the extraction of biped robot state features based on reinforcement learning approach is not an easy task (Wu et al., <xref ref-type="bibr" rid="B30">2020</xref>). Combined with more stable machine learning networks, RL has gradually developed into DRL, which provides a new solution for dealing with high-dimensional features (Niroui et al., <xref ref-type="bibr" rid="B19">2019</xref>; Clegg et al., <xref ref-type="bibr" rid="B3">2020</xref>). DRL can better handle complex state spaces from real-world scenarios of biped robots. DRL is able to automatically learn abstract, high-level feature representations and acquire strategies for control from environmental feedback through continuous training. Such an approach to learning strategies is more stable and can effectively avoid the effects of inaccurate dynamic models (Rodriguez and Behnke, <xref ref-type="bibr" rid="B21">2021</xref>). DDPG is a DRL algorithm for continuous control, which extends the application of RL by learning end-to-end to control directly based on the original inputs and outputs (Li et al., <xref ref-type="bibr" rid="B12">2019</xref>). DDPG-based biped robot walking revolves around multiple action strategies based on Markov Decision Process (MDP) to learn algorithms (Tao et al., <xref ref-type="bibr" rid="B26">2022</xref>). Compared with the greedy policy in parallel algorithm training in Tao et al. (<xref ref-type="bibr" rid="B26">2022</xref>), the algorithm proposed in this paper is better at dealing with the instability of parallel architecture. Although the biped gait control method based on DDPG enables the algorithm to converge faster through the experience replay mechanism, the same problem exists. The excellent performance of the experience replay mechanism requires many conditions, such as larger storage space, more training samples and more advanced hardware. Moreover, the current experience replay methods do not make full use of good experience. Additionally, the biped gait control method based on DDPG also lacks effective reward functions.</p>
<p>Building upon the aforementioned discourse, a parallel heterogeneous DRL algorithm to optimize the walking gait of biped robots is proposed by considering the algorithmic efficiency, experience utilization, and insufficient reward of DRL. Specifically, the main contributions of this paper are summarized in the following aspects.</p>
<list list-type="simple">
<list-item><p>1) The designed algorithm is based on the DDPG algorithm as the main architecture, which uses the multi-threading function of CPU to run the intelligent body in parallel to interact with the environment. The network model and learning experience are shared through a multi-threaded approach, allowing a large number of experience samples to be acquired at a low cost. In addition, experience samples filtered and stored by heterogeneous experience playback mechanism are used to sample excellent and common experience samples with different sampling probabilities to speed up training.</p></list-item>
<list-item><p>2) The gait of a biped robot is characterized by periodicity. In this paper, a sinusoidal periodic curve is used to construct the foot trajectory reference of the biped robot when walking. The reference has a positive effect on constructing positive reward incentives to generate good experience samples, which ultimately improves training efficiency. The foot velocity and ground reaction force during the cycle are also taken into account to provide assurance for the stability of the robot when walking.</p></list-item>
<list-item><p>3) Different environments and different biped robot models pose challenges for different optimization algorithms. Based on the RoboCup3D platform, a unified biped robot gait optimization training framework is constructed. The solution defines standard gait optimization tasks and provides a common environment interface for various optimization algorithms. When comparing the effects of different algorithms on the gait of the biped robot, only the algorithm module needs to be replaced, which reduces the baseline error caused by the difference in the environment.</p></list-item>
</list>
<p>The rest of the paper is organized as follows: Section 2 presents the work related to gait optimization of biped robots. Basic definitions and citations needed for this paper are given in Section 3. Section 4 presents the proposed algorithm, and Section 5 gives a general bipedal robot gait optimization training framework. In Section 6, the robustness of proposed method is verified by comparative experiments. In the end, the research is concluded in Section 7.</p>
</sec>
<sec id="s2">
<title>2. Related work</title>
<p>The traditional gait optimization method first plans the trajectory of each joint in the gait of biped robot according to the expected walking requirements, and then calculates the trajectory of each joint angle by using an inverse kinematic model. Generally speaking, gait optimization is to keep the biped robot stable and avoid falling down when walking, as well as to make the walking posture look beautiful. Due to complexity of the multi-link structure of biped robot, many researchers have obtained various simplified models through reasonable simplifications. The 3D Center of Gravity ZMP (COG-ZMP) model proposed by He et al. considered the effect of center of gravity acceleration on the stability of robot motion and used centroidal viscoelasticity control to stabilize the whole-body posture during the landing phase (He and Yamamoto, <xref ref-type="bibr" rid="B8">2022</xref>). Safartoobi et al. modeled the impulsive hybrid dynamics based on classical bipedal passive walking dynamics model (Safartoobi et al., <xref ref-type="bibr" rid="B23">2021</xref>). Elhosseini et al. used an improved Whale Optimization Algorithm to optimize parameters of biped robot, and results demonstrated that the method was with better convergence characteristics and smaller error (Elhosseini et al., <xref ref-type="bibr" rid="B6">2019</xref>). Tao et al. used a parallel multigroup PSO to optimize key parameters in the gait model, and results showed that the method were stable during the switching between single-support phase and dual-support phase (Tao et al., <xref ref-type="bibr" rid="B25">2021</xref>).</p>
<p>Since RL does not require an accurate mathematical model, many researchers have applied RL methods to control biped robots. Castillo et al. used a RL mechanism that combined physical insights gained from the hybrid nature of walking dynamics and the recognized zero dynamics approach for three-dimensional biped walking, which eventually produced stable limit walking cycles (Castillo et al., <xref ref-type="bibr" rid="B1">2020</xref>). Liu et al. combined Q-learning with radial basis function network to solve the walking problem of biped robot in different terrain (Liu et al., <xref ref-type="bibr" rid="B15">2018</xref>). RL and deep learning have been combined by researchers to propose the DRL approach. The most famous algorithm for DRL is Deep Q-learning (DQN) (Liu et al., <xref ref-type="bibr" rid="B16">2022b</xref>). Wu used passive dynamic walker as a reference and trained the controller using DQN algorithm to make the robot possible to walk on different slopes (Wu et al., <xref ref-type="bibr" rid="B29">2019</xref>). Melo et al. used Proximal Policy Optimization to train gait of the humanoid robot where the output was the step size and the direction of the robot (Melo et al., <xref ref-type="bibr" rid="B18">2021</xref>). Chun et al. proposed a deep reinforcement learning algorithm for gait optimization of biped robot based on realistic environmental. In their study, DDPG was used as a parameter setting method for a biped robot on a real-world environmental testbed, where the trained robot could maintain the walking stability even with short walking times and long strides (Chun et al., <xref ref-type="bibr" rid="B2">2023</xref>).</p>
</sec>
<sec id="s3">
<title>3. Preliminaries</title>
<p>In the interaction between RL and environment, agents learn appropriate actions to maximize the reward signal or achieve a certain goal. RL can be formalized as MDP. An MDP is defined as a four tuple (<italic>S, A, P</italic><sub><italic>a</italic></sub>, <italic>R</italic><sub><italic>a</italic></sub>), where <italic>S</italic> represents a finite set of states, and <italic>A</italic> represents a finite set of actions. <inline-formula><mml:math id="M1"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>s</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mi>Pr</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>s</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mtext>a</mml:mtext></mml:mrow></mml:math></inline-formula>  indicates the probability of transitioning to state <italic>s</italic>&#x02032; from <italic>s</italic> under the time <italic>t</italic> taking action of <italic>a</italic> and <inline-formula><mml:math id="M2"><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the current reward.</p>
<p>The objective of RL is in order to find a mapping function &#x003C0; (usually called &#x0201C;strategy&#x0201D;) from state to action which maximizes the cumulative rewards. The cumulative rewards can be defined as follows</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M3"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msup><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>r</italic>(<italic>s</italic><sub><italic>i</italic></sub>, <italic>a</italic><sub><italic>i</italic></sub>) is the reward obtained by taking action <italic>a</italic><sub><italic>i</italic></sub> in the state <italic>s</italic><sub><italic>i</italic></sub>; &#x003B3; represents the attenuation factor and &#x003B3;&#x02208;[0, 1].</p>
<p>In the process of optimization, the expected value of <italic>R</italic><sub>1</sub> from a start state distribution is defined as</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M4"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>J</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0007E;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0007E;</mml:mo><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Next, the action value function <italic>Q</italic> is defined. The expectation of the obtained feedback value is <italic>Q</italic> after taking action <italic>a</italic><sub><italic>t</italic></sub> according to strategy &#x003C0;, and the calculation process of <italic>Q</italic> is given as</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>Q</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0007E;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0007E;</mml:mo><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Furthermore, the Bellman Equation can be defined as Lillicrap et al. (<xref ref-type="bibr" rid="B13">2015</xref>)</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M6"><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msup><mml:mi>Q</mml:mi><mml:mi>&#x003C0;</mml:mi></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>~</mml:mo><mml:mi>E</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>[</mml:mo><mml:mi>r</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow></mml:mrow></mml:mtd><mml:mtd columnalign='left'><mml:mrow><mml:mo>+</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>~</mml:mo><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>[</mml:mo><mml:msup><mml:mi>Q</mml:mi><mml:mi>&#x003C0;</mml:mi></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>]</mml:mo><mml:mo stretchy='false'>]</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>
<p>DRL is a variant of RL that uses deep learning techniques to improve learning efficiency and accuracy. DDPG is a representative DRL method that is effective in solving the continuous control problem by generating Q values or action probabilities through a deep neural network and outputting continuous actions. DDPG uses two types of networks: actor networks and critic networks, which continue the idea of DQN by using a fixed target network. Each network includes both a target network and an estimation network. The traditional Policy Gradient method uses a random strategy to acquire actions by sampling the distribution of the current optimal strategy. In contrast, DDPG adopts a deterministic strategy, with the actor network taking the current state as input and outputting a deterministic action. The critic network is used to fit the state-action value function, with its input consisting of the current state and actions generated by the actor network, and the output being the current state-action pair Q value. This Q value is used to update the parameters of the actor network.</p>
</sec>
<sec sec-type="methods" id="s4">
<title>4. Methodology</title>
<sec>
<title>4.1. Parallel heterogeneous policy DRL algorithm</title>
<p>The framework of the proposed method is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. In the context of this manuscript, multiple agents are executed in parallel by utilizing the multithreading capabilities of computer CPUs to achieve global goals by sharing empirical data and strategies. Notably, the DDPG algorithm serves as a pivotal component of the framework outlined in this paper. Therefore, the proposed method in this paper is also known as the parallel heterogeneous policy DDPG algorithm (Parallel DDPG).</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>The process of gait optimization with Parallel DDPG. Multiple DDPG agents execute in parallel through the multi-thread function, and achieve global goals by sharing empirical data and strategies.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0001.tif"/>
</fig>
<p>DDPG is a method of differentiating strategy. The behavior strategy is random but the evaluation strategy is deterministic (Wang et al., <xref ref-type="bibr" rid="B28">2016</xref>). Random strategy can explore and produce a variety of behavioral data, which can be used by deterministic strategy for improvement of the strategy. DDPG is an Actor-Critic algorithm based on Deterministic Policy Gradient (DPG). The learning process of <italic>Q</italic>(<italic>s, a</italic>) in critics is the same as that in Q-learning.</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M7"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>&#x02202;</mml:mo><mml:mi>L</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msup><mml:mi>&#x003B8;</mml:mi><mml:mi>Q</mml:mi></mml:msup><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02202;</mml:mo><mml:msup><mml:mi>&#x003B8;</mml:mi><mml:mi>Q</mml:mi></mml:msup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>s</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo>~</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>[</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>Target</mml:mi><mml:mi>Q</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02212;</mml:mo><mml:mi>Q</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mi>&#x003B8;</mml:mi><mml:mi>Q</mml:mi></mml:msup><mml:mo stretchy='false'>)</mml:mo><mml:mfrac><mml:mrow><mml:mo>&#x02202;</mml:mo><mml:mi>Q</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mi>&#x003B8;</mml:mi><mml:mi>Q</mml:mi></mml:msup><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02202;</mml:mo><mml:msup><mml:mi>&#x003B8;</mml:mi><mml:mi>Q</mml:mi></mml:msup></mml:mrow></mml:mfrac><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>]</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E6"><label>(6)</label><mml:math id="M8"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mo class="qopname">Target</mml:mo><mml:mi>Q</mml:mi><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:msup><mml:mrow><mml:mi>Q</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>Q</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The value gradient on the actor network is</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M9"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>J</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>Q</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>Q</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:mfrac><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E8"><label>(8)</label><mml:math id="M10"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mo>&#x02207;</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:msub><mml:msub><mml:mi>J</mml:mi><mml:mi>&#x003B2;</mml:mi></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>&#x003B8;</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:mrow><mml:msub><mml:mo>&#x0222B;</mml:mo><mml:mi>S</mml:mi></mml:msub><mml:mrow><mml:msup><mml:mi>&#x003C1;</mml:mi><mml:mi>&#x003B2;</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mo>&#x02207;</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:msub><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>&#x003B8;</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msup><mml:mi>Q</mml:mi><mml:mi>&#x003BC;</mml:mi></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>&#x003B8;</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi>d</mml:mi><mml:mi>s</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mo>~</mml:mo><mml:msup><mml:mi>&#x003C1;</mml:mi><mml:mi>&#x003B2;</mml:mi></mml:msup></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mo>&#x02207;</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:msub><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>&#x003B8;</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msup><mml:mi>Q</mml:mi><mml:mi>&#x003BC;</mml:mi></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>&#x003B8;</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>MSE (Mean Squared Error) is adopted as the loss function, and Monte Carlo method is used to obtain unbiased estimation when calculating the gradient expectation of strategy. The gradient on the critic and actor network can be used to update network. Due to the reference to the structure of DQN, there is an additional target network. Although both DDPG and DQN use target networks to improve convergence and stability, parameters are updated in different ways. DDPG proposes a soft update instead of copying parameters directly to the target network. Specifically, DDPG sets up a copy for actor network and a copy for critic network separately as their own objective network. The updating formula for weight of target network is defined as</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02190;</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mi>&#x003B8;</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C4; &#x0003C; &#x0003C; 1.</p>
<p>The change of target value calculated by the target network will be very small which improves the stability of learning to a certain extent. In the environment-exploring phase of algorithm, DDPG adds a random noise sampled from a noise process <italic>N</italic> to the strategy performer, so as to take both exploration and exploitation into account, as shown in Equation (10) (Lillicrap et al., <xref ref-type="bibr" rid="B13">2015</xref>).</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M12"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>N</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>DDPG adopts the experience replay mechanism which is similar in DQN. In the learning phase, a buffer with limited size is set up to store the tuples of state transition in the training process, i.e., (<italic>s</italic><sub><italic>t</italic></sub>, <italic>a</italic><sub><italic>t</italic></sub>, <italic>r</italic><sub><italic>t</italic></sub>, <italic>s</italic><sub><italic>t</italic>&#x0002B;1</sub>). When the buffer is full, the old tuple is discarded. In the process of training, these tuples of state transition are randomly sampled from the buffer to update the critic network and the actor network, which enables the algorithm to learn from some irrelevant state transitions.</p>
<p>The proposed Parallel DDPG algorithm greatly improves the diversity of experience samples through the parallel training of multiple biped robots controlled by multiple threads. But each biped still uses the same actor network and critic network. All robots feed their state data back to the environment process according to the same actor network. Actor network and environmental processes interact in parallel to collect experience samples.</p>
<p>It is worth noting that the benefits of the parallel framework were previously demonstrated in our work (Tao et al., <xref ref-type="bibr" rid="B26">2022</xref>). However, in contrast to our previous approach of selecting the corresponding at value based on the maximum <italic>Q</italic><sub><italic>i</italic></sub> value, the parallel DDPG algorithm proposed in this paper collects the control outputs of each DDPG agent and performs a simple voting process, taking the mode as the final control output, ie, <inline-formula><mml:math id="M13"><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M14"><mml:mi>Q</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>Q</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">median</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Q</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>Q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></inline-formula> This approach improves the robustness of the algorithm. Our framework setting is particularly effective in addressing the issue of instability in parallel models. By integrating the outputs of multiple models, we are able to smooth the results and reduce fluctuations, which is a crucial improvement for the parallel framework. The instability problem is particularly prominent in parallel architectures, and our approach provides a promising solution to this challenge.</p>
<p>The experience generated by the interaction is stored in the experience filtering unit, and the actual experience playback is performed using two experience pools in this work. The two experience pools are the common experience pool and the excellent experience pool. The common experience pool is similar to the experience pool of the traditional DDPG algorithm. The excellent experience pool is used to store excellent experience with high rewards. Experience stats are added each round. At the end of each round, the stored experience is filtered by the experience filtering unit and sorted into the corresponding experience pool. The size of common experience pool and excellent experience pool is fixed. The probability of sampling from the Excellent experience pool and updating the parameters is &#x003B1; and the probability of sampling from the common experience pool and updating the parameters is 1&#x02212;&#x003B1;. Parallel DDPG with the heterogeneous experience replay mechanism is shown in <xref ref-type="table" rid="T3">Algorithm 1</xref>.</p>
<table-wrap position="float" id="T3">
<label>Algorithm 1</label>
<caption><p>Parallel DDPG algorithm.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-i0001.tif"/>
</table-wrap>
<p>Throughout the training process of gait optimization, each robot observes the current state from the environment and the Parallel DDPG algorithm calls the state function to obtain the state information of all robots. The actions output by the deterministic policy are executed by all robots separately in the simulated environment. After that, the reward for evaluating the gait is fed back to the Parallel DDPG algorithm. After each round, the experiences in the experience pool are sampled to update the Parallel DDPG model parameters. This process is iterative until termination. The training function algorithm is shown in <xref ref-type="table" rid="T4">Algorithm 2</xref>.</p>
<table-wrap position="float" id="T4">
<label>Algorithm 2</label>
<caption><p>Training algorithm.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-i0002.tif"/>
</table-wrap>
</sec>
<sec>
<title>4.2. Cyclic gait of biped robot</title>
<p>The leg state of biped robot walking is divided into swing phase and support phase. Both phases are a cyclical behavior and switch between the two. A sinusoidal curve is used as a foot height reference for the swing phase. The reference sinusoidal trajectories for the left and right feet are constructed as</p>
<disp-formula id="E11"><label>(11)</label><mml:math id="M15"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>h</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x00394;</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E12"><label>(12)</label><mml:math id="M16"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>h</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003C0;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x00394;</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In Equations (11) and (12), changing <italic>h</italic>&#x02212;&#x00394;<italic>h</italic> can adjust the maximum foot lift height of the biped robot in the swing phase. &#x00394;<italic>h</italic>/<italic>h</italic> is responsible for adjusting the timing of the double support phase. The <italic>T</italic> value is responsible for adjusting the step frequency of biped robot walking. Therefore, different styles of walking gaits of biped robots can be generated using Equations (11) and (12).</p>
<p>On the basis of Equations (11) and (12), this paper also designs a function punished (&#x003BE;<sub>&#x0002A;</sub>) to consider the effects of ground reaction force and foot velocity in cyclic gait, where &#x003BE;<sub>&#x0002A;</sub>&#x02208;[&#x02212;1, 1] is the relative progress of the cycle gait.</p>
<disp-formula id="E13"><label>(13)</label><mml:math id="M17"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mo class="qopname">punished</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mtext>a</mml:mtext><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mo>&#x0002B;</mml:mo><mml:mtext>b</mml:mtext><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where, <italic>a</italic> and <italic>b</italic> are weighting factors. When the biped robot is in the single support phase, this paper increases the parameter <italic>a</italic> to increase the foot speed and reduce the ground reaction force, which helps to improve the robot&#x00027;s maneuverability. When the bipedal robot is in the dual support phase, boosting parameter <italic>b</italic> can enhance ground reaction force and abate the pace of the two supporting legs, which ultimately serves to optimize robot stability. The specific framework of the periodic gait is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Periodic gait reference trajectories for biped robots. The leg movement of a biped robot during walking is divided into two phases: the swing phase and the support phase. These two phases cyclically alternate with each other. During the swing phase, a sinusoidal curve is used as a reference for the desired height of the foot.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0002.tif"/>
</fig>
</sec>
<sec>
<title>4.3. MDP construction</title>
<p>The purpose of MDP construction is to learn a set of strategies to enable biped robots to walk quickly and stably.</p>
<list list-type="simple">
<list-item><p>1) State space</p></list-item>
<list-item><p>To set the bipedal robot in motion, the position <italic>q</italic><sub><italic>i</italic></sub> and velocity <inline-formula><mml:math id="M18"><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x02022;</mml:mo></mml:mover></mml:math></inline-formula> of 8 joints are selected as part of the state space. Considering the kinematics of the biped robot, the following parameters are also added to the state space: the position of the Center of Mass (CoM) of each step, the angular velocity of the torso provided by the torso velocity gyro sensor, the torso acceleration provided by the torso acceleration accelerometer sensor and the calculation of the pressure sensor of both feet, the resulting force is used in the state space. Finally, to meet the requirements of cyclic gait walking for biped robots, the phase vector [<italic>sin</italic>(2&#x003C0;<italic>T</italic>&#x0002B;&#x003B4;<sub>0</sub>), <italic>cos</italic>(2&#x003C0;<italic>T</italic>&#x0002B;&#x003B4;<sub>0</sub>)] and velocity command <italic>v</italic><sub><italic>x</italic></sub> are also taken as part of the state space.</p></list-item>
<list-item><p>2) Action space</p></list-item>
<list-item><p>The output of the policy consists of the desired joint positions of the slave joints of the robot (8 per robot). The predictions of the network for the desired joint positions are added to fixed motor biases corresponding to the semi-sitting position of the robot, which are then sent to the lower-level PD controller.</p></list-item>
<list-item><p>3) Reward</p></list-item>
<list-item><p>To enable the biped robot to produce a fast and stable periodic gait, a reward function is designed according to the following rules.</p></list-item>
</list>
<p>(1) Periodic imitation rewards</p>
<p>In order to encourage the robot foot to walk according to the sinusoidal curve, the speed and force of the foot are considered to accelerate the training. The periodic imitation reward function is designed as</p>
<disp-formula id="E14"><label>(14)</label><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>0</mml:mn><mml:msup><mml:mrow><mml:mn>5</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:munderover></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>g</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where, <italic>h</italic><sub><italic>re</italic><sub><italic>f</italic></sub><sub><italic>i</italic></sub></sub> is the reference height of the left and right feet; <italic>h</italic><sub><italic>foo</italic><sub><italic>t</italic></sub><sub><italic>i</italic></sub></sub> is the actual height of the left and right feet; <italic>r</italic><sub><italic>gro</italic></sub> and <italic>r</italic><sub><italic>spe</italic></sub> are rewards for foot velocity and force, constructed as</p>
<disp-formula id="E15"><label>(15)</label><mml:math id="M20"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>g</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>g</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>g</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E16"><label>(16)</label><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000B7;</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where, <italic>F</italic><sub><italic>left</italic></sub> and <italic>F</italic><sub><italic>right</italic></sub> are the ground reaction forces on the left and right feet, respectively; <italic>S</italic><sub><italic>left</italic></sub> and <italic>S</italic><sub><italic>right</italic></sub> are the speeds of the left and right feet, respectively.</p>
<p>(2) Stability</p>
<p>In order to maintain the stability of walking, a biped robot needs to keep ZMP inside the support polygon at all times when walking. The support polygon is the smallest polygon area where the biped robot foot is in force contact with the ground. The smaller the distance of ZMP point from the center of support polygon, the more stable the biped robot. A coordinate system is established at the center of support polygon, and the distance between ZMP and the center of support foot is used as a reward.</p>
<disp-formula id="E17"><label>(17)</label><mml:math id="M22"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002A;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>p</italic><sub><italic>x</italic></sub>(<italic>k</italic>), <italic>p</italic><sub><italic>y</italic></sub>(<italic>k</italic>) are the coordinates of ZMP in each gait sequence, and <italic>a</italic><sub>2</sub> is the weight.</p>
<p>(3) Body shaking</p>
<p>In the leg support stage of biped robot, a biped robot is rewarded by criterion that the CoM of biped robot is always at the midpoint of the two-foot coordinate line, so that the torso of biped robot is always stable during the fast walking process.</p>
<disp-formula id="E18"><label>(18)</label><mml:math id="M23"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mn>0</mml:mn></mml:mtd><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mtext>shake</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mi>c</mml:mi></mml:mtd><mml:mtd columnalign='left'><mml:mrow><mml:mtext>otherwise</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <italic>c</italic><sub>1</sub> is the threshold; <italic>p</italic><sub><italic>shake</italic></sub> is the deviation between the actual drop point of CoM on X and Y axis and the midpoint of the line connecting centers of feets. The larger the value of <italic>p</italic><sub><italic>shake</italic></sub>, the larger the body sway angle of biped robot during walking, and the more unstable the gait is. In the theoretical case, the best gait results are obtained when the value of <italic>p</italic><sub><italic>shake</italic></sub> is 0. However, in the actual training process, the coordinate information obtained from RoboCup3D simulation server has some errors, so when <italic>p</italic><sub><italic>shake</italic></sub> is greater than <italic>c</italic><sub>1</sub>, the training needs to be punished and the penalty value is the constant <italic>c</italic>.</p>
<p>(4) Speed tracking reward</p>
<p>The velocity tracking reward for biped walking is designed as</p>
<disp-formula id="E19"><label>(19)</label><mml:math id="M24"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>65</mml:mn><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>25</mml:mn><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where,</p>
<disp-formula id="E20"><label>(20)</label><mml:math id="M25"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:mo>|</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E21"><label>(21)</label><mml:math id="M26"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:msup><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:mo>&#x0003C;</mml:mo><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Finally, the reward for each step is constructed as</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M27"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>6</mml:mn><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
</sec>
<sec id="s5">
<title>5. An optimized algorithm general gait training framework</title>
<p>Recently, various optimization algorithms have emerged one after another. However, different simulation environments and diverse motion models of biped robots have brought challenges to the testing standards of different optimization algorithms. For above-mentioned reasons, an optimized algorithm general gait training framework is designed for various algorithms. The framework defines standard gait optimization tasks and provides a common environment interface for various optimization algorithms. The training framework is mainly composed of RoboCup3D simulation environment, team code and OpenAI Gym.</p>
<p>The optimized algorithm general gait training framework uses RoboCup3D simulation environment to provide simulated physical environments such as stadiums and standard robots. The motion model of UT Austin3D is used as a unified motion model within the framework, and is open to the outside world to adjust parameters of walking engine. The frame is also modularly designed. The algorithm only needs to be connected to framework through the interface of OpenAI Gym to train biped robot gait. When comparing the gait optimization performance of different algorithms, the impact of differences in the simulation environment and motion models is reduced. And there is no need to repeat the development every time, so that researchers can focus more on the optimization of the algorithm.</p>
<p>This paper encapsulates functions related to gait and some other functions necessary from the team code into Python interface which are shown in <xref ref-type="table" rid="T1">Table 1</xref>. Then, according to the abstract definition of environment defined by OpenAI Gym (Torrado et al., <xref ref-type="bibr" rid="B27">2018</xref>), the optimization environment of biped robot is edited and registered locally to the environment collection of Gym, which can provide the function of receiving action, feedback observation and reward for RL algorithm as other existing environments. The system structure of optimization environment for the biped robot is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. As the team code is built based on the C&#x0002B;&#x0002B;, this paper uses ctypes module in Python library to compile C&#x0002B;&#x0002B; code into the form of dynamic linking library, i.e., so file under Linux system.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Partial list of python interface function.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Name of function</bold></th>
<th valign="top" align="left"><bold>Descriptions of function</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Reset()</td>
<td valign="top" align="left">Reset the robot to initial state</td>
</tr> <tr>
<td valign="top" align="left">Step()</td>
<td valign="top" align="left">Execute the action of walking</td>
</tr> <tr>
<td valign="top" align="left">Connect()</td>
<td valign="top" align="left">Build link with simulation server in prior to execution of training</td>
</tr> <tr>
<td valign="top" align="left">GetState()</td>
<td valign="top" align="left">Get the current state of the robot</td>
</tr> <tr>
<td valign="top" align="left">GetReward()</td>
<td valign="top" align="left">Get award for execution of a pervious action</td>
</tr></tbody>
</table>
</table-wrap>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Universal training framework for biped robots. The frame of the biped robot adopts a modular design, allowing for easy replacement of the algorithmic components as needed. To train the biped robot gait, a tested algorithm simply needs to be connected to the framework through the OpenAI Gym interface.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0003.tif"/>
</fig>
</sec>
<sec id="s6">
<title>6. Experiment and analysis</title>
<p>Experiments were conducted under the proposed general gait training framework. In the simulation platform, the range of viewing angles is &#x02212;120&#x000B0; to 120&#x000B0;. In order to get accurate data during the training process, the setViewCones value of server was changed from 120&#x000B0; to 360&#x000B0;. In the configuration of DDPG network structure, the numbers of input nodes and output nodes were 24 and 27, respectively. Three hidden layers with 300 nodes each were set in this network. The learning rate of actor were 0.0001 and the learning rate of critic were 0.001. The discount factor &#x003B3; was 0.995 and the &#x003C4; in the soft update was 0.01. The scene of biped robots using Parallel DDPG algorithm for gait training in RoboCup3D is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Scene graph of robot gait training. Multiple robots are placed within the training environment, ready for training to begin.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0004.tif"/>
</fig>
<p>To verify the effectiveness of the Parallel DDPG algorithm in gait optimization for bipedal robots, this paper compares the performance of Parallel DDPG, Asynchronous Advantage Actor-Critic (A3C), DDPG, Proximal Policy Optimization (PPO), and CMA-ES algorithms and conducts result analyses for each algorithm.</p>
<p>Firstly, the learning speed and reward value of the Parallel DDPG, A3C, DDPG, and PPO algorithms were compared. Each algorithm was trained for 21,000 times in the same environment, and the average reward value was recorded every 300 times. The variation of the average reward value during the training process is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. The Parallel DDPG algorithm achieved the highest average reward value among the four algorithms. In addition, compared to the DDPG and A3C algorithms, the Parallel DDPG algorithm converged to the optimal average reward value the fastest, requiring only 23 episodes. Although the PPO algorithm converged to the optimal average reward in fewer episodes, its average reward value was much lower than that of the parallel DDPG algorithm.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Comparison of parallel DDPG, DDPG, PPO, A3C training curves. The parallel DDPG achieves higher average rewards than the other three algorithms.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0005.tif"/>
</fig>
<p>To evaluate the generalization performance of our proposed algorithm, we conducted additional experiments using another bipedal robot, Atlas, in the Roboschool simulation environment. The simulation environment was different from the soccer field used in our general gait training framework. We trained Atlas using the same 21,000 time steps as in the previous experiment and recorded the average reward values, which were compared to the performance of the NAO robot. As shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, both robots converged under the training of our algorithm, with similar convergence speed and optimal average reward values. These results demonstrate the generalization performance of our algorithm.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>The Parallel DDPG algorithm is utilized to control the training of two biped robots with different physical parameters, resulting in two very similar learning curves.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0006.tif"/>
</fig>
<p>As CMA-ES is a global search algorithm that can serve as a benchmark to evaluate performance, and DDPG is the basis for the proposed Parallel DDPG, comparing the two algorithms can demonstrate the effectiveness of the improvement. Therefore, we conducted a more detailed comparison and analysis between the two algorithms.</p>
<p>We defined a reference system in which the X-axis points ahead of the robot, the Y-axis points to the left side of the robot, and the Z-axis points above the robot. Using this reference system, we recorded the X-axis and Z-axis trajectories of the walking swinging legs of three algorithms in <xref ref-type="fig" rid="F7">Figure 7</xref>. The Parallel DDPG algorithm optimizes the trajectory of the robot when raising and lowering its feet to ensure stability. As shown in <xref ref-type="fig" rid="F7">Figure 7</xref>, the trajectory obtained by the Parallel DDPG algorithm is smoother than that of the DDPG and CMA-ES algorithms.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>X-axis and Z-axis motion trajectory of swinging leg.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0007.tif"/>
</fig>
<p><xref ref-type="fig" rid="F8">Figure 8</xref> depicts the alterations in the hip joint angle of the robot following 200 cycles of training (0.05 s per cycle) using the three algorithms. The <xref ref-type="fig" rid="F8">Figure 8</xref> evidences that the hip joint coordination of the biped robot, utilizing the parallel DDPG algorithm, surpasses that of the other two algorithms, with swift and steady changes.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Angle change of hip joint. The trajectory fluctuations of the Parallel DDPG algorithm display the most pronounced periodicity, while those of the other two algorithms exhibit more oscillations.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0008.tif"/>
</fig>
<p>At the onset of the dual support phase, the anticipated coordinates of the CoM are positioned at the midpoint between the two feet. In the initial stage of dual support stage, the vehicle body swing is firstly detected by comparing the center point of two feet and two coordinates of CoM where the equation is <italic>x</italic><sub><italic>f</italic></sub> &#x0003D; <italic>c</italic><sub><italic>x</italic></sub>&#x02212;(<italic>x</italic><sub><italic>foot</italic></sub><italic>R</italic>&#x0002B;<italic>x</italic><sub><italic>foot</italic></sub><italic>L</italic>)/2. The biped robot utilizing the Parallel DDPG algorithm has less jitter and stable changes, and the results are shown in <xref ref-type="fig" rid="F9">Figure 9</xref>. The Parallel DDPG algorithm displays the narrowest fluctuation range of <italic>x</italic><sub><italic>f</italic></sub>, specifically between &#x02212;0.3 and 0.4. In contrast, the DDPG algorithm exhibits a fluctuation range of <italic>x</italic><sub><italic>f</italic></sub> between &#x02212;1.1 and 1.5, while the CMA-ES algorithm displays a fluctuation range of <italic>x</italic><sub><italic>f</italic></sub> between &#x02212;1.3 and 1.7.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Shake comparison of biped robot trained by three algorithms.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0009.tif"/>
</fig>
<p>The variations of angle and angular velocity between the leg and hip joints when the biped robot walks under the three algorithms is shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. All three algorithms enabled the biped robot to walk stably. The angular velocity of Parallel DDPG algorithm, CMA-ES algorithm, and DDPG algorithm are 2.2, 3.4, and 1.3 rad/s in the first step, respectively. The Parallel DDPG algorithm reaches the maximum angular velocity in the second step, as shown in <xref ref-type="fig" rid="F10">Figure 10A</xref>. The angular velocity of CMA-ES algorithm fluctuates in the early stage and stabilizes after adjustment is shown in <xref ref-type="fig" rid="F10">Figure 10B</xref>. DDPG reaches the maximum value at step 4, as shown in <xref ref-type="fig" rid="F10">Figure 10C</xref>. Moreover, the angular velocity achieved by the Parallel DDPG algorithm surpasses that of the other two algorithms. The aforementioned outcomes indicate that the biped robot trained by the Parallel DDPG algorithm boasts of the longest stride and maintains a rapid walking pace. The biped robot is able to maintain a stable gait when the rate of change of the moment of the swing legs converges. The biped robot using Parallel DDPG algorithm achieved a consistent swing leg moment rate of change in 1.7 s, as shown in <xref ref-type="fig" rid="F10">Figure 10A</xref>. CMA-ES algorithm and DDPG algorithm achieved a consistent swing leg moment rate of change in 3.6 and 3.2 s, respectively, as shown in <xref ref-type="fig" rid="F10">Figures 10B</xref>, <xref ref-type="fig" rid="F10">C</xref>. So Parallel DDPG algorithm made the biped robot reach the stable walking state in the shortest time.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Walking state diagram of biped robot under three algorithms. <bold>(A)</bold> Parallel DDPG. <bold>(B)</bold> CMA-ES. <bold>(C)</bold> DDPG.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0010.tif"/>
</fig>
<p><xref ref-type="fig" rid="F11">Figure 11</xref> shows the walking details of three algorithms tested on the RoboCup3D simulation platform for training a bipedal robot. The time point selected is in the middle and late stages of training, which is a period suitable for comparison. The CMA-ES algorithm resulted in a very unstable state, as shown in <xref ref-type="fig" rid="F11">Figure 11C</xref>, with the bipedal robot&#x00027;s body wobbling. In contrast, the Parallel DDPG and DDPG algorithms could maintain stability of the bipedal robot&#x00027;s torso due to autonomous learning based on UT Austin3D. The Parallel DDPG algorithm obviously showed a more stable pose.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Biped robots walking details of three algorithms. <bold>(A)</bold> Parallel DDPG. From left to right: t = 6.12 s, t = 6.25 s, t = 6.37 s, t = 6.50 s. <bold>(B)</bold> DDPG. From left to right: t = 6.12 s, t = 6.25 s, t = 6.37 s, t = 6.50 s. <bold>(C)</bold> CMA-ES. From left to right: t = 6.12 s, t = 6.25 s, t = 6.37 s, t = 6.50 s.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0011.tif"/>
</fig>
<p>When using three algorithms to walk, ZMP trajectories of biped robot are shown in <xref ref-type="fig" rid="F12">Figure 12</xref>. ZMP trajectories of DDPG and CMA-ES algorithms are close to the edges of support polygons. However, the ZMP trajectory profile of the Parallel DDPG shifts between the support polygons, which results in a large ZMP stability margin for the bipedal robot.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>ZMP trajectories optimized by three algorithms.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0012.tif"/>
</fig>
<p><xref ref-type="fig" rid="F13">Figure 13</xref> portrays the CoM landing point variations for the three methods. Throughout the biped support phase, the CoM utilizing the Parallel DDPG algorithm remains consistently stable at the center of the connection between the two legs, whereas the CoM using DDPG and CMA-ES displays instability.</p>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>The changes in the CoM landing points for three algorithms.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0013.tif"/>
</fig>
<p>Three algorithms were tested when the biped robot walked 15 meters away. <xref ref-type="table" rid="T2">Table 2</xref> presents the average outcomes of 100 tests, indicating that a biped robot incorporating the Parallel DDPG algorithm requires less time and exhibits a faster walking speed for the identical distance. The average speed of the biped robot utilizing the Parallel DDPG algorithm reached 0.85 m/s, whereas the average speed of DDPG algorithm was 0.75 m/s, and the average speed of CMA-ES algorithm was 0.71 m/s.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Straight speed comparison.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Algorithm</bold></th>
<th valign="top" align="center"><bold>Distance (m)</bold></th>
<th valign="top" align="center" colspan="3"><bold>Time (s)</bold></th>
<th valign="top" align="center" colspan="3"><bold>Speed (m/s)</bold></th>
</tr>
</thead>
<tbody>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<td/>
<td/>
<td valign="top" align="center"><bold>Average</bold></td>
<td valign="top" align="center"><bold>Max</bold></td>
<td valign="top" align="center"><bold>Min</bold></td>
<td valign="top" align="center"><bold>Average</bold></td>
<td valign="top" align="center"><bold>Max</bold></td>
<td valign="top" align="center"><bold>Min</bold></td>
</tr> <tr>
<td valign="top" align="left">Parallel DDPG</td>
<td valign="top" align="center">15</td>
<td valign="top" align="center">17.63</td>
<td valign="top" align="center">18.99</td>
<td valign="top" align="center">17.05</td>
<td valign="top" align="center">0.85</td>
<td valign="top" align="center">0.88</td>
<td valign="top" align="center">0.79</td>
</tr> <tr>
<td valign="top" align="left">DDPG</td>
<td valign="top" align="center">15</td>
<td valign="top" align="center">20.07</td>
<td valign="top" align="center">22.38</td>
<td valign="top" align="center">18.75</td>
<td valign="top" align="center">0.75</td>
<td valign="top" align="center">0.80</td>
<td valign="top" align="center">0.67</td>
</tr> <tr>
<td valign="top" align="left">CMA-ES</td>
<td valign="top" align="center">15</td>
<td valign="top" align="center">24.03</td>
<td valign="top" align="center">26.79</td>
<td valign="top" align="center">23.08</td>
<td valign="top" align="center">0.62</td>
<td valign="top" align="center">0.65</td>
<td valign="top" align="center">0.56</td>
</tr></tbody>
</table>
</table-wrap>
<p>Finally, a summary of the performance of the three algorithms that were further analyzed is shown in <xref ref-type="fig" rid="F14">Figure 14</xref>. <xref ref-type="fig" rid="F14">Figure 14</xref> summarizes the performance of the three algorithms in terms of jitter range span, average speed of walking 15 m, and time to reach stable walking state. The results in the figure align well with our previous summary of the performance of the three algorithms.</p>
<fig id="F14" position="float">
<label>Figure 14</label>
<caption><p>This figure describes the performance comparison of the three algorithms when controlling the biped robot to walk.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1205775-g0014.tif"/>
</fig>
</sec>
<sec sec-type="conclusions" id="s7">
<title>7. Conclusion</title>
<p>In this paper, a parallel heterogeneous DRL algorithm is proposed to optimize the walking gait of a biped robot. The parallel training method improves the training speed. The heterogeneous experience replay is used to replace the traditional experience replay mechanism to increase the efficiency of experience application. Sinusoidal curves have been used as a reference for the foot of the bipedal robot, which increases the potential of excellent empirical sample generation. The proposed training framework for biped robots gait optimization provides a unified test environment for gait training of different algorithms and reduces the effects of simulation environment and motion model differences. Experiments demonstrate that the Parallel DDPG algorithm enables a faster and more stable gait. However, it is important to note that there are limitations to this study due to the gap between simulation and practical application. In future research, we plan to extend the proposed method to a real biped robot and investigate various styles of periodic gaits. Overall, our results provide valuable insights into the development of gait optimization algorithms for biped robots, and we believe that our approach can be further improved and refined in future research.</p>
</sec>
<sec sec-type="data-availability" id="s8">
<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="s9">
<title>Author contributions</title>
<p>CL and ML contributed to methodology and programming of the study. ML wrote the first draft of the manuscript. CT wrote sections of the manuscript. All authors contributed to manuscript revision, read, and approved the submitted version.</p>
</sec>
</body>
<back>
<sec sec-type="funding-information" id="s10">
<title>Funding</title>
<p>This work was supported in part by the National Natural Science Foundation of China (Grant Nos. 62201375 and 61972454), in part by the China Postdoctoral Science Foundation (2021M691848), in part by the Natural Science Foundation of Jiangsu Province (BK20220635 and BK20201405), and in part by the Science and Technology Projects Fund of Suzhou (Grant No. SYG202142).</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<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="disclaimer" id="s11">
<title>Publisher&#x00027;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>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Castillo</surname> <given-names>G. A.</given-names></name> <name><surname>Weng</surname> <given-names>B.</given-names></name> <name><surname>Zhang</surname> <given-names>W.</given-names></name> <name><surname>Hereid</surname> <given-names>A.</given-names></name></person-group> (<year>2020</year>). <article-title>&#x0201C;Hybrid zero dynamics inspired feedback control policy design for 3d bipedal locomotion using reinforcement learning,&#x0201D;</article-title> in <source>2020 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Paris</publisher-loc>), <fpage>8746</fpage>&#x02013;<lpage>8752</lpage>.</citation>
</ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chun</surname> <given-names>Y.</given-names></name> <name><surname>Choi</surname> <given-names>J.</given-names></name> <name><surname>Min</surname> <given-names>I.</given-names></name> <name><surname>Ahn</surname> <given-names>M.</given-names></name> <name><surname>Han</surname> <given-names>J.</given-names></name></person-group> (<year>2023</year>). <article-title>&#x0201C;DDPG reinforcement learning experiment for improving the stability of bipedal walking of humanoid robots,&#x0201D;</article-title> in <source>2023 IEEE/SICE International Symposium on System Integration (SII)</source> (<publisher-loc>Atlanta, GA</publisher-loc>), <fpage>1</fpage>&#x02013;<lpage>7</lpage>.</citation>
</ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Clegg</surname> <given-names>A.</given-names></name> <name><surname>Erickson</surname> <given-names>Z.</given-names></name> <name><surname>Grady</surname> <given-names>P.</given-names></name> <name><surname>Turk</surname> <given-names>G.</given-names></name> <name><surname>Kemp</surname> <given-names>C. C.</given-names></name> <name><surname>Liu</surname> <given-names>C. K.</given-names></name></person-group> (<year>2020</year>). <article-title>Learning to collaborate from simulation for robot-assisted dressing</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>5</volume>, <fpage>2746</fpage>&#x02013;<lpage>2753</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2020.2972852</pub-id></citation>
</ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dong</surname> <given-names>C.</given-names></name> <name><surname>Yu</surname> <given-names>Z.</given-names></name> <name><surname>Chen</surname> <given-names>X.</given-names></name> <name><surname>Chen</surname> <given-names>H.</given-names></name> <name><surname>Huang</surname> <given-names>Y.</given-names></name> <name><surname>Huang</surname> <given-names>Q.</given-names></name></person-group> (<year>2022</year>). <article-title>Adaptability control towards complex ground based on fuzzy logic for humanoid robots</article-title>. <source>IEEE Trans. Fuzzy Syst.</source> <volume>30</volume>, <fpage>1574</fpage>&#x02013;<lpage>1584</lpage>. <pub-id pub-id-type="doi">10.1109/TFUZZ.2022.3167458</pub-id></citation>
</ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Duburcq</surname> <given-names>A.</given-names></name> <name><surname>Chevaleyre</surname> <given-names>Y.</given-names></name> <name><surname>Bredeche</surname> <given-names>N.</given-names></name> <name><surname>Boeris</surname> <given-names>G.</given-names></name></person-group> (<year>2020</year>). <article-title>&#x0201C;Online trajectory planning through combined trajectory optimization and function approximation: application to the exoskeleton atalante,&#x0201D;</article-title> in <source>2020 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Paris</publisher-loc>), <fpage>3756</fpage>&#x02013;<lpage>3762</lpage>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Elhosseini</surname> <given-names>M. A.</given-names></name> <name><surname>Haikal</surname> <given-names>A. Y.</given-names></name> <name><surname>Badawy</surname> <given-names>M.</given-names></name> <name><surname>Khashan</surname> <given-names>N.</given-names></name></person-group> (<year>2019</year>). <article-title>Biped robot stability based on an A&#x02013;C parametric whale optimization algorithm</article-title>. <source>J. Comput. Sci.</source> <volume>31</volume>, <fpage>17</fpage>&#x02013;<lpage>32</lpage>. <pub-id pub-id-type="doi">10.1016/j.jocs.2018.12.005</pub-id></citation>
</ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Farid</surname> <given-names>Y.</given-names></name> <name><surname>Siciliano</surname> <given-names>B.</given-names></name> <name><surname>Ruggiero</surname> <given-names>F.</given-names></name></person-group> (<year>2022</year>). <article-title>Review and descriptive investigation of the connection between bipedal locomotion and non-prehensile manipulation</article-title>. <source>Annu. Rev. Control</source> <volume>53</volume>, <fpage>51</fpage>&#x02013;<lpage>69</lpage>. <pub-id pub-id-type="doi">10.1016/j.arcontrol.2022.04.009</pub-id></citation>
</ref>
<ref id="B8">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>He</surname> <given-names>Z.</given-names></name> <name><surname>Yamamoto</surname> <given-names>K.</given-names></name></person-group> (<year>2022</year>). <article-title>&#x0201C;Humanoid running based on 3D COG-ZMP model and resolved centroidal viscoelasticity control,&#x0201D;</article-title> in <source>2022 IEEE-RAS 21st International Conference on Humanoid Robots (Humanoids)</source> (<publisher-loc>Ginowan</publisher-loc>), <fpage>645</fpage>&#x02013;<lpage>650</lpage>.</citation>
</ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Horn</surname> <given-names>J. C.</given-names></name> <name><surname>Mohammadi</surname> <given-names>A.</given-names></name> <name><surname>Hamed</surname> <given-names>K. A.</given-names></name> <name><surname>Gregg</surname> <given-names>R. D.</given-names></name></person-group> (<year>2020</year>). <article-title>Nonholonomic virtual constraint design for variable-incline bipedal robotic walking</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>5</volume>, <fpage>3691</fpage>&#x02013;<lpage>3698</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2020.2977263</pub-id></citation>
</ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kasaei</surname> <given-names>M.</given-names></name> <name><surname>Abreu</surname> <given-names>M.</given-names></name> <name><surname>Lau</surname> <given-names>N.</given-names></name> <name><surname>Pereira</surname> <given-names>A.</given-names></name> <name><surname>Reis</surname> <given-names>L. P.</given-names></name></person-group> (<year>2021</year>). <article-title>Robust biped locomotion using deep reinforcement learning on top of an analytical control approach</article-title>. <source>Robot. Auton. Syst.</source> <volume>146</volume>, <fpage>103900</fpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2021.103900</pub-id></citation>
</ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kashyap</surname> <given-names>A. K.</given-names></name> <name><surname>Parhi</surname> <given-names>D. R.</given-names></name></person-group> (<year>2021</year>). <article-title>Particle swarm optimization aided pid gait controller design for a humanoid robot</article-title>. <source>ISA Trans.</source> <volume>114</volume>, <fpage>306</fpage>&#x02013;<lpage>330</lpage>. <pub-id pub-id-type="doi">10.1016/j.isatra.2020.12.033</pub-id><pub-id pub-id-type="pmid">33358185</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>S.</given-names></name> <name><surname>Wu</surname> <given-names>Y.</given-names></name> <name><surname>Cui</surname> <given-names>X.</given-names></name> <name><surname>Dong</surname> <given-names>H.</given-names></name> <name><surname>Fang</surname> <given-names>F.</given-names></name> <name><surname>Russell</surname> <given-names>S.</given-names></name></person-group> (<year>2019</year>). <article-title>&#x0201C;Robust multi-agent reinforcement learning via minimax deep deterministic policy gradient,&#x0201D;</article-title> in <source>Proceedings of the AAAI Conference on Artificial Intelligence</source> (<publisher-loc>Honolulu, HI</publisher-loc>), <fpage>4213</fpage>&#x02013;<lpage>4220</lpage>.</citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lillicrap</surname> <given-names>T. P.</given-names></name> <name><surname>Hunt</surname> <given-names>J. J.</given-names></name> <name><surname>Pritzel</surname> <given-names>A.</given-names></name> <name><surname>Heess</surname> <given-names>N.</given-names></name> <name><surname>Erez</surname> <given-names>T.</given-names></name> <name><surname>Tassa</surname> <given-names>Y.</given-names></name> <etal/></person-group>. (<year>2015</year>). <article-title>Continuous control with deep reinforcement learning</article-title>. <source>arXiv preprint arXiv:1509.02971</source>. <pub-id pub-id-type="doi">10.48550/arXiv.1509.02971</pub-id><pub-id pub-id-type="pmid">29994078</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Jiang</surname> <given-names>D.</given-names></name> <name><surname>Tao</surname> <given-names>B.</given-names></name> <name><surname>Jiang</surname> <given-names>G.</given-names></name> <name><surname>Sun</surname> <given-names>Y.</given-names></name> <name><surname>Kong</surname> <given-names>J.</given-names></name> <etal/></person-group>. (<year>2022a</year>). <article-title>Genetic algorithm-based trajectory optimization for digital twin robots</article-title>. <source>Front. Bioeng. Biotechnol.</source> <volume>9</volume>, <fpage>793782</fpage>. <pub-id pub-id-type="doi">10.3389/fbioe.2021.793782</pub-id><pub-id pub-id-type="pmid">35083202</pub-id></citation></ref>
<ref id="B15">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Bi</surname> <given-names>S.</given-names></name> <name><surname>Dong</surname> <given-names>M.</given-names></name> <name><surname>Zhang</surname> <given-names>Y.</given-names></name> <name><surname>Huang</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>J.</given-names></name></person-group> (<year>2018</year>). <article-title>&#x0201C;A reinforcement learning method for humanoid robot walking,&#x0201D;</article-title> in <source>2018 IEEE 8th Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems (CYBER)</source> (<publisher-loc>Tianjin</publisher-loc>), <fpage>623</fpage>&#x02013;<lpage>628</lpage>.<pub-id pub-id-type="pmid">24808209</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Z.</given-names></name> <name><surname>Liu</surname> <given-names>Q.</given-names></name> <name><surname>Xu</surname> <given-names>W.</given-names></name> <name><surname>Wang</surname> <given-names>L.</given-names></name> <name><surname>Zhou</surname> <given-names>Z.</given-names></name></person-group> (<year>2022b</year>). <article-title>Robot learning towards smart robotic manufacturing: a review</article-title>. <source>Robot. Comput. Integr. Manufactur.</source> <volume>77</volume>, <fpage>102360</fpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2022.102360</pub-id></citation>
</ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Maroger</surname> <given-names>I.</given-names></name> <name><surname>Ramuzat</surname> <given-names>N.</given-names></name> <name><surname>Stasse</surname> <given-names>O.</given-names></name> <name><surname>Watier</surname> <given-names>B.</given-names></name></person-group> (<year>2021</year>). <article-title>Human trajectory prediction model and its coupling with a walking pattern generator of a humanoid robot</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>6</volume>, <fpage>6361</fpage>&#x02013;<lpage>6369</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2021.3092750</pub-id></citation>
</ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Melo</surname> <given-names>L. C.</given-names></name> <name><surname>Melo</surname> <given-names>D. C.</given-names></name> <name><surname>Maximo</surname> <given-names>M. R.</given-names></name></person-group> (<year>2021</year>). <article-title>Learning humanoid robot running motions with symmetry incentive through proximal policy optimization</article-title>. <source>J. Intell. Robot. Syst.</source> <volume>102</volume>, <fpage>54</fpage>. <pub-id pub-id-type="doi">10.1007/s10846-021-01355-9</pub-id></citation>
</ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Niroui</surname> <given-names>F.</given-names></name> <name><surname>Zhang</surname> <given-names>K.</given-names></name> <name><surname>Kashino</surname> <given-names>Z.</given-names></name> <name><surname>Nejat</surname> <given-names>G.</given-names></name></person-group> (<year>2019</year>). <article-title>Deep reinforcement learning robot for search and rescue applications: exploration in unknown cluttered environments</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>4</volume>, <fpage>610</fpage>&#x02013;<lpage>617</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2019.2891991</pub-id></citation>
</ref>
<ref id="B20">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Paredes</surname> <given-names>V. C.</given-names></name> <name><surname>Hereid</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <article-title>&#x0201C;Resolved motion control for 3D underactuated bipedal walking using linear inverted pendulum dynamics and neural adaptation,&#x0201D;</article-title> in <source>2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)</source> (<publisher-loc>Kyoto</publisher-loc>), <fpage>6761</fpage>&#x02013;<lpage>6767</lpage>.</citation>
</ref>
<ref id="B21">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Rodriguez</surname> <given-names>D.</given-names></name> <name><surname>Behnke</surname> <given-names>S.</given-names></name></person-group> (<year>2021</year>). <article-title>&#x0201C;Deepwalk: omnidirectional bipedal gait by deep reinforcement learning,&#x0201D;</article-title> in <source>2021 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Xi&#x00027;an</publisher-loc>), <fpage>3033</fpage>&#x02013;<lpage>3039</lpage>.</citation>
</ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rosa</surname> <given-names>N.</given-names></name> <name><surname>Lynch</surname> <given-names>K. M.</given-names></name></person-group> (<year>2022</year>). <article-title>A topological approach to gait generation for biped robots</article-title>. <source>IEEE Trans. Robot.</source> <volume>38</volume>, <fpage>699</fpage>&#x02013;<lpage>718</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2021.3094159</pub-id></citation>
</ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Safartoobi</surname> <given-names>M.</given-names></name> <name><surname>Dardel</surname> <given-names>M.</given-names></name> <name><surname>Daniali</surname> <given-names>H. M.</given-names></name></person-group> (<year>2021</year>). <article-title>Gait cycles of passive walking biped robot model with flexible legs</article-title>. <source>Mech. Mach. Theory</source> <volume>159</volume>, <fpage>104292</fpage>. <pub-id pub-id-type="doi">10.1016/j.mechmachtheory.2021.104292</pub-id></citation>
</ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Singh</surname> <given-names>B.</given-names></name> <name><surname>Kumar</surname> <given-names>R.</given-names></name> <name><surname>Singh</surname> <given-names>V. P.</given-names></name></person-group> (<year>2022</year>). <article-title>Reinforcement learning in robotic applications: a comprehensive survey</article-title>. <source>Artif. Intell. Rev.</source> <volume>55</volume>, <fpage>945</fpage>&#x02013;<lpage>990</lpage>. <pub-id pub-id-type="doi">10.1007/s10462-021-09997-9</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tao</surname> <given-names>C.</given-names></name> <name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>Z.</given-names></name> <name><surname>Cao</surname> <given-names>F.</given-names></name> <name><surname>Li</surname> <given-names>C.</given-names></name> <name><surname>Gao</surname> <given-names>H.</given-names></name></person-group> (<year>2021</year>). <article-title>Gait optimization method for humanoid robots based on parallel comprehensive learning particle swarm optimizer algorithm</article-title>. <source>Front. Neurorobot.</source> <volume>14</volume>, <fpage>600885</fpage>. <pub-id pub-id-type="doi">10.3389/fnbot.2020.600885</pub-id><pub-id pub-id-type="pmid">33519412</pub-id></citation></ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tao</surname> <given-names>C.</given-names></name> <name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>Z.</given-names></name> <name><surname>Gao</surname> <given-names>Z.</given-names></name></person-group> (<year>2022</year>). <article-title>Parallel deep reinforcement learning method for gait control of biped robot</article-title>. <source>IEEE Trans. Circ. Syst. II Express Briefs</source> <volume>69</volume>, <fpage>2802</fpage>&#x02013;<lpage>2806</lpage>. <pub-id pub-id-type="doi">10.1109/TCSII.2022.3145373</pub-id></citation>
</ref>
<ref id="B27">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Torrado</surname> <given-names>R. R.</given-names></name> <name><surname>Bontrager</surname> <given-names>P.</given-names></name> <name><surname>Togelius</surname> <given-names>J.</given-names></name> <name><surname>Liu</surname> <given-names>J.</given-names></name> <name><surname>Perez-Liebana</surname> <given-names>D.</given-names></name></person-group> (<year>2018</year>). <article-title>&#x0201C;Deep reinforcement learning for general video game AI,&#x0201D;</article-title> in <source>2018 IEEE Conference on Computational Intelligence and Games (CIG)</source> (<publisher-loc>Maastricht</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x02013;<lpage>8</lpage>.</citation>
</ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>F.-Y.</given-names></name> <name><surname>Zhang</surname> <given-names>J. J.</given-names></name> <name><surname>Zheng</surname> <given-names>X.</given-names></name> <name><surname>Wang</surname> <given-names>X.</given-names></name> <name><surname>Yuan</surname> <given-names>Y.</given-names></name> <name><surname>Dai</surname> <given-names>X.</given-names></name> <etal/></person-group>. (<year>2016</year>). <article-title>Where does AlphaGo go: from church-turing thesis to AlphaGo thesis and beyond</article-title>. <source>IEEE/CAA J. Automat. Sin.</source> <volume>3</volume>, <fpage>113</fpage>&#x02013;<lpage>120</lpage>. <pub-id pub-id-type="doi">10.1109/JAS.2016.7471613</pub-id></citation>
</ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>Y.</given-names></name> <name><surname>Yao</surname> <given-names>D.</given-names></name> <name><surname>Xiao</surname> <given-names>X.</given-names></name> <name><surname>Guo</surname> <given-names>Z.</given-names></name></person-group> (<year>2019</year>). <article-title>Intelligent controller for passivity-based biped robot using deep Q network</article-title>. <source>J. Intell. Fuzzy Syst.</source> <volume>36</volume>, <fpage>731</fpage>&#x02013;<lpage>745</lpage>. <pub-id pub-id-type="doi">10.3233/JIFS-172180</pub-id></citation>
</ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>Y.-H.</given-names></name> <name><surname>Yu</surname> <given-names>Z.-C.</given-names></name> <name><surname>Li</surname> <given-names>C.-Y.</given-names></name> <name><surname>He</surname> <given-names>M.-J.</given-names></name> <name><surname>Hua</surname> <given-names>B.</given-names></name> <name><surname>Chen</surname> <given-names>Z.-M.</given-names></name></person-group> (<year>2020</year>). <article-title>Reinforcement learning in dual-arm trajectory planning for a free-floating space robot</article-title>. <source>Aerospace Sci. Technol.</source> <volume>98</volume>, <fpage>105657</fpage>. <pub-id pub-id-type="doi">10.1016/j.ast.2019.105657</pub-id></citation>
</ref>
</ref-list> 
</back>
</article> 